From 853e940d5215aaebefb24b632df95f83e707988f Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Wed, 19 Oct 2022 12:02:45 +0300 Subject: [PATCH 1/3] Revert 8d3a8c71be84a3b3a88ccd45a413ca72a4bb2627 --- src/components/Composer/index.js | 6 +++--- src/lib/room.js | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/Composer/index.js b/src/components/Composer/index.js index f6f7327a9..39c1ae3ce 100644 --- a/src/components/Composer/index.js +++ b/src/components/Composer/index.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { createClassName } from '../helpers'; +import { createClassName, parse } from '../helpers'; import styles from './styles.scss'; const findLastTextNode = (node) => { @@ -76,7 +76,7 @@ export class Composer extends Component { .map((item) => new Promise((resolve) => item.getAsString(resolve))), ); - texts.forEach((text) => this.pasteText(text)); + texts.forEach((text) => this.pasteText(parse(text))); } handleDrop = (onUpload) => async (event) => { @@ -99,7 +99,7 @@ export class Composer extends Component { items.filter((item) => item.kind === 'string' && /^text\/plain/.test(item.type)) .map((item) => new Promise((resolve) => item.getAsString(resolve))), ); - texts.forEach((text) => this.pasteText(text)); + texts.forEach((text) => this.pasteText(parse(text))); } handleClick = () => { diff --git a/src/lib/room.js b/src/lib/room.js index 6125a2638..df2928d69 100644 --- a/src/lib/room.js +++ b/src/lib/room.js @@ -3,7 +3,7 @@ import { route } from 'preact-router'; import { Livechat } from '../api'; import { CallStatus, isCallOngoing } from '../components/Calls/CallStatus'; -import { setCookies, upsert, canRenderMessage } from '../components/helpers'; +import { setCookies, upsert, canRenderMessage, parse } from '../components/helpers'; import { store, initialState } from '../store'; import { normalizeAgent } from './api'; import Commands from './commands'; @@ -278,6 +278,8 @@ Livechat.onMessage(async (message) => { return; } + message.msg = parse(message.msg); + message = transformAgentInformationOnMessage(message); await store.setState({ From fd287837ec6734b1027b26acfc5106a0b573f1b0 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Wed, 19 Oct 2022 12:19:07 +0300 Subject: [PATCH 2/3] Build files --- build/4.chunk.0fe87.js.map | 1 - build/{4.chunk.0fe87.js => 4.chunk.40cd3.js} | 4 ++-- build/4.chunk.40cd3.js.map | 1 + build/5.chunk.13cc1.js | 2 ++ build/5.chunk.13cc1.js.map | 1 + build/5.chunk.2cf18.js | 2 -- build/5.chunk.2cf18.js.map | 1 - build/{bundle.9e8cc.js => bundle.e6802.js} | 4 ++-- build/{bundle.9e8cc.js.map => bundle.e6802.js.map} | 2 +- build/index.html | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 build/4.chunk.0fe87.js.map rename build/{4.chunk.0fe87.js => 4.chunk.40cd3.js} (99%) create mode 100644 build/4.chunk.40cd3.js.map create mode 100644 build/5.chunk.13cc1.js create mode 100644 build/5.chunk.13cc1.js.map delete mode 100644 build/5.chunk.2cf18.js delete mode 100644 build/5.chunk.2cf18.js.map rename build/{bundle.9e8cc.js => bundle.e6802.js} (98%) rename build/{bundle.9e8cc.js.map => bundle.e6802.js.map} (99%) diff --git a/build/4.chunk.0fe87.js.map b/build/4.chunk.0fe87.js.map deleted file mode 100644 index 5b30daa72..000000000 --- a/build/4.chunk.0fe87.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/crypto-js/core.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///../src/util.js","webpack:///../src/PureComponent.js","webpack:///../src/memo.js","webpack:///../src/forwardRef.js","webpack:///../src/Children.js","webpack:///../src/suspense.js","webpack:///../src/suspense-list.js","webpack:///../src/portals.js","webpack:///../src/render.js","webpack:///../src/events.js","webpack:///../src/index.js","webpack:///./node_modules/crypto-js/cipher-core.js","webpack:///./node_modules/markdown-it/lib/common/utils.js","webpack:///../src/parse-tag.js","webpack:///../src/parse.js","webpack:///../src/stringify.js","webpack:///./node_modules/react-i18next/dist/es/unescape.js","webpack:///./node_modules/react-i18next/dist/es/context.js","webpack:///./node_modules/react-i18next/dist/es/utils.js","webpack:///./node_modules/react-i18next/dist/es/Trans.js","webpack:///./node_modules/react-i18next/dist/es/useTranslation.js","webpack:///./node_modules/react-i18next/dist/es/withTranslation.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/crypto-js/evpkdf.js","webpack:///./node_modules/crypto-js/enc-base64.js","webpack:///./node_modules/crypto-js/md5.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/date-fns/esm/startOfWeek/index.js","webpack:///./node_modules/date-fns/_lib/isSameUTCWeek/index.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/date-fns/esm/addDays/index.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/date-fns/esm/startOfISOWeek/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/compareAsc/index.js","webpack:///./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/crypto-js/x64-core.js","webpack:///./node_modules/date-fns/esm/getISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/isSameDay/index.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toArray.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/i18next/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/i18next/dist/esm/i18next.js","webpack:///./node_modules/date-fns/esm/addMonths/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/startOfISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/match/index.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/node-libs-browser/node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/crypto-js/sha1.js","webpack:///./node_modules/crypto-js/hmac.js","webpack:///./node_modules/date-fns/esm/isWeekend/index.js","webpack:///./node_modules/date-fns/esm/startOfDay/index.js","webpack:///./node_modules/date-fns/esm/addWeeks/index.js","webpack:///./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/differenceInMonths/index.js","webpack:///./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack:///./node_modules/date-fns/esm/startOfMonth/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/startOfWeekYear/index.js","webpack:///./node_modules/date-fns/esm/isSameWeek/index.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/@rocket.chat/ui-kit/dist/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/date-fns/esm/parseISO/index.js","webpack:///./node_modules/date-fns/esm/isSunday/index.js","webpack:///./node_modules/date-fns/esm/addHours/index.js","webpack:///./node_modules/date-fns/esm/addQuarters/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","webpack:///./node_modules/date-fns/esm/differenceInDays/index.js","webpack:///./node_modules/date-fns/esm/eachDayOfInterval/index.js","webpack:///./node_modules/date-fns/esm/startOfQuarter/index.js","webpack:///./node_modules/date-fns/esm/eachWeekendOfInterval/index.js","webpack:///./node_modules/date-fns/esm/endOfMonth/index.js","webpack:///./node_modules/date-fns/esm/startOfYear/index.js","webpack:///./node_modules/date-fns/esm/endOfDay/index.js","webpack:///./node_modules/date-fns/esm/endOfWeek/index.js","webpack:///./node_modules/date-fns/esm/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/formatDistanceStrict/index.js","webpack:///./node_modules/date-fns/esm/getWeek/index.js","webpack:///./node_modules/date-fns/esm/getWeekYear/index.js","webpack:///./node_modules/date-fns/esm/subDays/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfWeek/index.js","webpack:///./node_modules/date-fns/esm/setMonth/index.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack:///./node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack:///./node_modules/date-fns/esm/parse/index.js","webpack:///./node_modules/crypto-js/sha256.js","webpack:///./node_modules/crypto-js/sha512.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/date-fns/esm/addBusinessDays/index.js","webpack:///./node_modules/date-fns/esm/isSaturday/index.js","webpack:///./node_modules/date-fns/esm/addISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/setISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/addMinutes/index.js","webpack:///./node_modules/date-fns/esm/addSeconds/index.js","webpack:///./node_modules/date-fns/esm/addYears/index.js","webpack:///./node_modules/date-fns/esm/areIntervalsOverlapping/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack:///./node_modules/date-fns/esm/getQuarter/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarYears/index.js","webpack:///./node_modules/date-fns/esm/differenceInHours/index.js","webpack:///./node_modules/date-fns/esm/subISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/differenceInMinutes/index.js","webpack:///./node_modules/date-fns/esm/differenceInYears/index.js","webpack:///./node_modules/date-fns/esm/eachHourOfInterval/index.js","webpack:///./node_modules/date-fns/esm/eachWeekOfInterval/index.js","webpack:///./node_modules/date-fns/esm/endOfYear/index.js","webpack:///./node_modules/date-fns/esm/endOfDecade/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/formatDuration/index.js","webpack:///./node_modules/date-fns/esm/formatISO/index.js","webpack:///./node_modules/date-fns/esm/formatISO9075/index.js","webpack:///./node_modules/date-fns/esm/formatRFC3339/index.js","webpack:///./node_modules/date-fns/esm/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/getDate/index.js","webpack:///./node_modules/date-fns/esm/getDay/index.js","webpack:///./node_modules/date-fns/esm/getDaysInMonth/index.js","webpack:///./node_modules/date-fns/esm/isLeapYear/index.js","webpack:///./node_modules/date-fns/esm/getISODay/index.js","webpack:///./node_modules/date-fns/esm/getISOWeek/index.js","webpack:///./node_modules/date-fns/esm/getTime/index.js","webpack:///./node_modules/date-fns/esm/getWeekOfMonth/index.js","webpack:///./node_modules/date-fns/esm/getWeeksInMonth/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/sub/index.js","webpack:///./node_modules/date-fns/esm/subMonths/index.js","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isMatch/index.js","webpack:///./node_modules/date-fns/esm/isSameHour/index.js","webpack:///./node_modules/date-fns/esm/startOfHour/index.js","webpack:///./node_modules/date-fns/esm/isSameISOWeek/index.js","webpack:///./node_modules/date-fns/esm/isSameMinute/index.js","webpack:///./node_modules/date-fns/esm/startOfMinute/index.js","webpack:///./node_modules/date-fns/esm/isSameMonth/index.js","webpack:///./node_modules/date-fns/esm/isSameQuarter/index.js","webpack:///./node_modules/date-fns/esm/isSameSecond/index.js","webpack:///./node_modules/date-fns/esm/startOfSecond/index.js","webpack:///./node_modules/date-fns/esm/isSameYear/index.js","webpack:///./node_modules/date-fns/esm/isToday/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfQuarter/index.js","webpack:///./node_modules/date-fns/esm/roundToNearestMinutes/index.js","webpack:///./node_modules/date-fns/esm/setDay/index.js","webpack:///./node_modules/date-fns/esm/setWeek/index.js","webpack:///./node_modules/date-fns/esm/setWeekYear/index.js","webpack:///./node_modules/date-fns/esm/constants/index.js","webpack:///./node_modules/date-fns/locale/hi/_lib/localize/index.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///../src/lib/log.ts","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/date-fns/esm/add/index.js","webpack:///./node_modules/date-fns/esm/closestIndexTo/index.js","webpack:///./node_modules/date-fns/esm/closestTo/index.js","webpack:///./node_modules/date-fns/esm/compareDesc/index.js","webpack:///./node_modules/date-fns/esm/differenceInBusinessDays/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarISOWeeks/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarQuarters/index.js","webpack:///./node_modules/date-fns/esm/differenceInISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/differenceInQuarters/index.js","webpack:///./node_modules/date-fns/esm/differenceInWeeks/index.js","webpack:///./node_modules/date-fns/esm/eachMonthOfInterval/index.js","webpack:///./node_modules/date-fns/esm/eachQuarterOfInterval/index.js","webpack:///./node_modules/date-fns/esm/eachWeekendOfMonth/index.js","webpack:///./node_modules/date-fns/esm/eachWeekendOfYear/index.js","webpack:///./node_modules/date-fns/esm/eachYearOfInterval/index.js","webpack:///./node_modules/date-fns/esm/endOfHour/index.js","webpack:///./node_modules/date-fns/esm/endOfISOWeek/index.js","webpack:///./node_modules/date-fns/esm/endOfISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/endOfMinute/index.js","webpack:///./node_modules/date-fns/esm/endOfQuarter/index.js","webpack:///./node_modules/date-fns/esm/endOfSecond/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/formatISODuration/index.js","webpack:///./node_modules/date-fns/esm/formatRFC7231/index.js","webpack:///./node_modules/date-fns/esm/fromUnixTime/index.js","webpack:///./node_modules/date-fns/esm/getDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/getDaysInYear/index.js","webpack:///./node_modules/date-fns/esm/getDecade/index.js","webpack:///./node_modules/date-fns/esm/getHours/index.js","webpack:///./node_modules/date-fns/esm/getISOWeeksInYear/index.js","webpack:///./node_modules/date-fns/esm/getMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/getMinutes/index.js","webpack:///./node_modules/date-fns/esm/getMonth/index.js","webpack:///./node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js","webpack:///./node_modules/date-fns/esm/getSeconds/index.js","webpack:///./node_modules/date-fns/esm/getUnixTime/index.js","webpack:///./node_modules/date-fns/esm/getYear/index.js","webpack:///./node_modules/date-fns/esm/intervalToDuration/index.js","webpack:///./node_modules/date-fns/esm/isAfter/index.js","webpack:///./node_modules/date-fns/esm/isBefore/index.js","webpack:///./node_modules/date-fns/esm/isEqual/index.js","webpack:///./node_modules/date-fns/esm/isExists/index.js","webpack:///./node_modules/date-fns/esm/isFirstDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/isFriday/index.js","webpack:///./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/isMonday/index.js","webpack:///./node_modules/date-fns/esm/isSameISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/isThursday/index.js","webpack:///./node_modules/date-fns/esm/isTuesday/index.js","webpack:///./node_modules/date-fns/esm/isWednesday/index.js","webpack:///./node_modules/date-fns/esm/isWithinInterval/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfDecade/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfISOWeek/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/lastDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/lightFormat/index.js","webpack:///./node_modules/date-fns/esm/max/index.js","webpack:///./node_modules/date-fns/esm/min/index.js","webpack:///./node_modules/date-fns/esm/parseJSON/index.js","webpack:///./node_modules/date-fns/esm/set/index.js","webpack:///./node_modules/date-fns/esm/setDate/index.js","webpack:///./node_modules/date-fns/esm/setDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/setHours/index.js","webpack:///./node_modules/date-fns/esm/setISODay/index.js","webpack:///./node_modules/date-fns/esm/setISOWeek/index.js","webpack:///./node_modules/date-fns/esm/setMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/setMinutes/index.js","webpack:///./node_modules/date-fns/esm/setQuarter/index.js","webpack:///./node_modules/date-fns/esm/setSeconds/index.js","webpack:///./node_modules/date-fns/esm/setYear/index.js","webpack:///./node_modules/date-fns/esm/startOfDecade/index.js","webpack:///./node_modules/date-fns/esm/subBusinessDays/index.js","webpack:///./node_modules/date-fns/esm/subHours/index.js","webpack:///./node_modules/date-fns/esm/subMinutes/index.js","webpack:///./node_modules/date-fns/esm/subQuarters/index.js","webpack:///./node_modules/date-fns/esm/subSeconds/index.js","webpack:///./node_modules/date-fns/esm/subWeeks/index.js","webpack:///./node_modules/date-fns/esm/subYears/index.js","webpack:///./node_modules/date-fns/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/locale/bn/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/fr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/fr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/fr/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/fr/_lib/match/index.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/safer-buffer/safer.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/uc.micro/categories/P/regex.js","webpack:///./node_modules/markdown-it/lib/ruler.js","webpack:///./node_modules/markdown-it/lib/token.js","webpack:///./node_modules/crypto-js/lib-typedarrays.js","webpack:///./node_modules/crypto-js/enc-utf16.js","webpack:///./node_modules/crypto-js/enc-base64url.js","webpack:///./node_modules/crypto-js/sha224.js","webpack:///./node_modules/crypto-js/sha384.js","webpack:///./node_modules/crypto-js/sha3.js","webpack:///./node_modules/crypto-js/ripemd160.js","webpack:///./node_modules/crypto-js/pbkdf2.js","webpack:///./node_modules/crypto-js/mode-cfb.js","webpack:///./node_modules/crypto-js/mode-ctr.js","webpack:///./node_modules/crypto-js/mode-ctr-gladman.js","webpack:///./node_modules/crypto-js/mode-ofb.js","webpack:///./node_modules/crypto-js/mode-ecb.js","webpack:///./node_modules/crypto-js/pad-ansix923.js","webpack:///./node_modules/crypto-js/pad-iso10126.js","webpack:///./node_modules/crypto-js/pad-iso97971.js","webpack:///./node_modules/crypto-js/pad-zeropadding.js","webpack:///./node_modules/crypto-js/pad-nopadding.js","webpack:///./node_modules/crypto-js/format-hex.js","webpack:///./node_modules/crypto-js/aes.js","webpack:///./node_modules/crypto-js/tripledes.js","webpack:///./node_modules/crypto-js/rc4.js","webpack:///./node_modules/crypto-js/rabbit.js","webpack:///./node_modules/crypto-js/rabbit-legacy.js","webpack:///../src/index.ts","webpack:///./node_modules/tiny-events/lib/index.js","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack:///./node_modules/date-fns/esm/_lib/assign/index.js","webpack:///./node_modules/date-fns/locale/af/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/af/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/af/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/af/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/af/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ar-DZ/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ar-DZ/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ar-DZ/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ar-DZ/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ar-DZ/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ar-MA/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ar-MA/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ar-MA/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ar-MA/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ar-MA/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ar-SA/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ar-SA/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ar-SA/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ar-SA/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ar-SA/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/az/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/az/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/az/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/az/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/az/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/be/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/be/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/be/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/be/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/be/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/bg/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/bg/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/bg/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/bg/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/bg/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/bn/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/bn/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/bn/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/bn/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ca/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ca/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ca/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ca/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ca/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/cs/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/cs/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/cs/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/cs/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/cs/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/cy/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/cy/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/cy/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/cy/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/cy/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/da/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/da/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/da/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/da/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/da/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/de/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/de/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/de/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/de/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/de/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/el/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/el/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/el/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/el/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/el/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/en-AU/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/en-CA/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/en-CA/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/en-GB/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/en-IN/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/en-NZ/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/eo/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/eo/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/eo/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/eo/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/eo/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/es/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/es/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/es/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/es/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/es/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/et/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/et/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/et/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/et/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/et/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/eu/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/eu/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/eu/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/eu/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/eu/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/fa-IR/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/fa-IR/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/fa-IR/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/fa-IR/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/fa-IR/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/fi/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/fi/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/fi/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/fi/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/fi/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/fr-CA/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/fr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/gd/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/gd/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/gd/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/gd/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/gd/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/gl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/gl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/gl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/gl/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/gl/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/gu/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/gu/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/gu/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/gu/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/gu/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/he/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/he/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/he/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/he/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/he/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/hi/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/hi/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/hi/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/hi/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/hr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/hr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/hr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/hr/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/hr/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/hu/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/hu/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/hu/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/hu/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/hu/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/hy/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/hy/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/hy/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/hy/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/hy/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/id/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/id/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/id/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/id/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/id/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/is/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/is/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/is/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/is/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/is/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/it/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/it/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/it/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/it/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/it/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ja/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ja/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ja/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ja/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ja/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ka/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ka/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ka/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ka/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ka/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/kk/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/kk/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/kk/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/kk/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/kk/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/kn/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/kn/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/kn/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/kn/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/kn/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ko/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ko/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ko/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ko/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ko/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/lt/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/lt/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/lt/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/lt/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/lt/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/lv/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/lv/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/lv/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/lv/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/lv/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/mk/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/mk/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/mk/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/mk/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/mk/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ms/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ms/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ms/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ms/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ms/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/mt/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/mt/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/mt/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/mt/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/mt/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/nb/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/nb/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/nb/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/nb/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/nb/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/nl-BE/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/nl-BE/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/nl-BE/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/nl-BE/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/nl-BE/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/nl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/nl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/nl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/nl/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/nl/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/nn/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/nn/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/nn/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/nn/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/nn/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/pl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/pl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/pl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/pl/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/pl/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/pt-BR/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/pt-BR/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/pt-BR/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/pt-BR/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/pt-BR/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/pt/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/pt/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/pt/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/pt/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/pt/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ro/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ro/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ro/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ro/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ro/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ru/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ru/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ru/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ru/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ru/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/sk/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/sk/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/sk/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/sk/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/sk/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/sl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/sl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/sl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/sl/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/sl/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/sr-Latn/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/sr-Latn/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/sr-Latn/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/sr-Latn/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/sr-Latn/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/sr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/sr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/sr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/sr/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/sr/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/sv/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/sv/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/sv/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/sv/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/sv/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ta/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ta/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ta/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ta/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ta/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/te/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/te/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/te/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/te/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/te/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/th/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/th/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/th/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/th/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/th/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/tr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/tr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/tr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/tr/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/tr/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/ug/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/ug/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/ug/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/ug/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/ug/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/uk/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/uk/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/uk/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/uk/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/uk/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/uz/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/uz/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/uz/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/uz/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/uz/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/vi/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/vi/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/vi/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/vi/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/vi/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/zh-CN/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/zh-CN/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/zh-CN/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/zh-CN/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/zh-CN/_lib/match/index.js","webpack:///./node_modules/date-fns/locale/zh-TW/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/locale/zh-TW/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/locale/zh-TW/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/locale/zh-TW/_lib/localize/index.js","webpack:///./node_modules/date-fns/locale/zh-TW/_lib/match/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/punycode/punycode.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/pbkdf2/lib/to-buffer.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/markdown-it/index.js","webpack:///./node_modules/markdown-it/lib/common/entities.js","webpack:///./node_modules/mdurl/index.js","webpack:///./node_modules/uc.micro/properties/Any/regex.js","webpack:///./node_modules/uc.micro/categories/Cc/regex.js","webpack:///./node_modules/uc.micro/categories/Z/regex.js","webpack:///./node_modules/markdown-it/lib/common/html_re.js","webpack:///./node_modules/markdown-it/lib/rules_inline/strikethrough.js","webpack:///./node_modules/markdown-it/lib/rules_inline/emphasis.js","webpack:///./node_modules/date-fns/esm/fp/_lib/convertToFP/index.js","webpack:///./node_modules/date-fns/esm/fp/add/index.js","webpack:///./node_modules/date-fns/esm/fp/addBusinessDays/index.js","webpack:///./node_modules/date-fns/esm/fp/addDays/index.js","webpack:///./node_modules/date-fns/esm/fp/addHours/index.js","webpack:///./node_modules/date-fns/esm/fp/addISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/fp/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/fp/addMinutes/index.js","webpack:///./node_modules/date-fns/esm/fp/addMonths/index.js","webpack:///./node_modules/date-fns/esm/fp/addQuarters/index.js","webpack:///./node_modules/date-fns/esm/fp/addSeconds/index.js","webpack:///./node_modules/date-fns/esm/fp/addWeeks/index.js","webpack:///./node_modules/date-fns/esm/fp/addYears/index.js","webpack:///./node_modules/date-fns/esm/fp/areIntervalsOverlapping/index.js","webpack:///./node_modules/date-fns/esm/fp/areIntervalsOverlappingWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/closestIndexTo/index.js","webpack:///./node_modules/date-fns/esm/fp/closestTo/index.js","webpack:///./node_modules/date-fns/esm/fp/compareAsc/index.js","webpack:///./node_modules/date-fns/esm/fp/compareDesc/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInBusinessDays/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarDays/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarISOWeeks/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarMonths/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarQuarters/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarWeeks/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarWeeksWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInCalendarYears/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInDays/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInHours/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInMinutes/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInMonths/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInQuarters/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInSeconds/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInWeeks/index.js","webpack:///./node_modules/date-fns/esm/fp/differenceInYears/index.js","webpack:///./node_modules/date-fns/esm/fp/eachDayOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/eachDayOfIntervalWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/eachHourOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/eachHourOfIntervalWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/eachMonthOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/eachQuarterOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/eachWeekOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/eachWeekOfIntervalWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/eachWeekendOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/eachWeekendOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/eachWeekendOfYear/index.js","webpack:///./node_modules/date-fns/esm/fp/eachYearOfInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfDay/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfDecade/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfDecadeWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfHour/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfISOWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfMinute/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfQuarter/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfSecond/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfWeekWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/endOfYear/index.js","webpack:///./node_modules/date-fns/esm/fp/format/index.js","webpack:///./node_modules/date-fns/esm/fp/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/fp/formatDistanceStrict/index.js","webpack:///./node_modules/date-fns/esm/fp/formatDistanceStrictWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatDistanceWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatDuration/index.js","webpack:///./node_modules/date-fns/esm/fp/formatDurationWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatISO/index.js","webpack:///./node_modules/date-fns/esm/fp/formatISO9075/index.js","webpack:///./node_modules/date-fns/esm/fp/formatISO9075WithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatISODuration/index.js","webpack:///./node_modules/date-fns/esm/fp/formatISOWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatRFC3339/index.js","webpack:///./node_modules/date-fns/esm/fp/formatRFC3339WithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatRFC7231/index.js","webpack:///./node_modules/date-fns/esm/fp/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/fp/formatRelativeWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/formatWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/fromUnixTime/index.js","webpack:///./node_modules/date-fns/esm/fp/getDate/index.js","webpack:///./node_modules/date-fns/esm/fp/getDay/index.js","webpack:///./node_modules/date-fns/esm/fp/getDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/fp/getDaysInMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/getDaysInYear/index.js","webpack:///./node_modules/date-fns/esm/fp/getDecade/index.js","webpack:///./node_modules/date-fns/esm/fp/getHours/index.js","webpack:///./node_modules/date-fns/esm/fp/getISODay/index.js","webpack:///./node_modules/date-fns/esm/fp/getISOWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/getISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/getISOWeeksInYear/index.js","webpack:///./node_modules/date-fns/esm/fp/getMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/fp/getMinutes/index.js","webpack:///./node_modules/date-fns/esm/fp/getMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/getOverlappingDaysInIntervals/index.js","webpack:///./node_modules/date-fns/esm/fp/getQuarter/index.js","webpack:///./node_modules/date-fns/esm/fp/getSeconds/index.js","webpack:///./node_modules/date-fns/esm/fp/getTime/index.js","webpack:///./node_modules/date-fns/esm/fp/getUnixTime/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeekOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeekOfMonthWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeekWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeekYearWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeeksInMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/getWeeksInMonthWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/getYear/index.js","webpack:///./node_modules/date-fns/esm/fp/intervalToDuration/index.js","webpack:///./node_modules/date-fns/esm/fp/isAfter/index.js","webpack:///./node_modules/date-fns/esm/fp/isBefore/index.js","webpack:///./node_modules/date-fns/esm/fp/isDate/index.js","webpack:///./node_modules/date-fns/esm/fp/isDateWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/isEqual/index.js","webpack:///./node_modules/date-fns/esm/fp/isExists/index.js","webpack:///./node_modules/date-fns/esm/fp/isFirstDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/isFriday/index.js","webpack:///./node_modules/date-fns/esm/fp/isLastDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/isLeapYear/index.js","webpack:///./node_modules/date-fns/esm/fp/isMatch/index.js","webpack:///./node_modules/date-fns/esm/fp/isMatchWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/isMonday/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameDay/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameHour/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameISOWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameMinute/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameQuarter/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameSecond/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameWeekWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/isSameYear/index.js","webpack:///./node_modules/date-fns/esm/fp/isSaturday/index.js","webpack:///./node_modules/date-fns/esm/fp/isSunday/index.js","webpack:///./node_modules/date-fns/esm/fp/isThursday/index.js","webpack:///./node_modules/date-fns/esm/fp/isTuesday/index.js","webpack:///./node_modules/date-fns/esm/fp/isValid/index.js","webpack:///./node_modules/date-fns/esm/fp/isWednesday/index.js","webpack:///./node_modules/date-fns/esm/fp/isWeekend/index.js","webpack:///./node_modules/date-fns/esm/fp/isWithinInterval/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfDecade/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfISOWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfQuarter/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfQuarterWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfWeekWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/lastDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/fp/lightFormat/index.js","webpack:///./node_modules/date-fns/esm/fp/max/index.js","webpack:///./node_modules/date-fns/esm/fp/min/index.js","webpack:///./node_modules/date-fns/esm/fp/parse/index.js","webpack:///./node_modules/date-fns/esm/fp/parseISO/index.js","webpack:///./node_modules/date-fns/esm/fp/parseISOWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/parseJSON/index.js","webpack:///./node_modules/date-fns/esm/fp/parseWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/roundToNearestMinutes/index.js","webpack:///./node_modules/date-fns/esm/fp/roundToNearestMinutesWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/set/index.js","webpack:///./node_modules/date-fns/esm/fp/setDate/index.js","webpack:///./node_modules/date-fns/esm/fp/setDay/index.js","webpack:///./node_modules/date-fns/esm/fp/setDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/fp/setDayWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/setHours/index.js","webpack:///./node_modules/date-fns/esm/fp/setISODay/index.js","webpack:///./node_modules/date-fns/esm/fp/setISOWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/setISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/setMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/fp/setMinutes/index.js","webpack:///./node_modules/date-fns/esm/fp/setMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/setQuarter/index.js","webpack:///./node_modules/date-fns/esm/fp/setSeconds/index.js","webpack:///./node_modules/date-fns/esm/fp/setWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/setWeekWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/setWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/setWeekYearWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/setYear/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfDay/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfDecade/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfHour/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfISOWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfMinute/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfMonth/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfQuarter/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfSecond/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfWeek/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfWeekWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfWeekYear/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfWeekYearWithOptions/index.js","webpack:///./node_modules/date-fns/esm/fp/startOfYear/index.js","webpack:///./node_modules/date-fns/esm/fp/sub/index.js","webpack:///./node_modules/date-fns/esm/fp/subBusinessDays/index.js","webpack:///./node_modules/date-fns/esm/fp/subDays/index.js","webpack:///./node_modules/date-fns/esm/fp/subHours/index.js","webpack:///./node_modules/date-fns/esm/fp/subISOWeekYears/index.js","webpack:///./node_modules/date-fns/esm/fp/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/fp/subMinutes/index.js","webpack:///./node_modules/date-fns/esm/fp/subMonths/index.js","webpack:///./node_modules/date-fns/esm/fp/subQuarters/index.js","webpack:///./node_modules/date-fns/esm/fp/subSeconds/index.js","webpack:///./node_modules/date-fns/esm/fp/subWeeks/index.js","webpack:///./node_modules/date-fns/esm/fp/subYears/index.js","webpack:///./node_modules/date-fns/esm/fp/toDate/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/crypto-js/index.js","webpack:///../../src/lib/clients/Livechat.ts","webpack:///../../src/lib/api/Livechat.ts","webpack:///../../src/lib/api/api.ts","webpack:///../src/lib/message.ts","webpack:///../../src/lib/drivers/index.ts","webpack:///../../src/lib/drivers/ddp.ts","webpack:///./node_modules/universal-websocket-client/browser.js","webpack:///../src/interfaces/index.ts","webpack:///../src/lib/util.ts","webpack:///./node_modules/js-sha256/src/sha256.js","webpack:///./node_modules/query-string/node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/void-elements/index.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/mem/index.js","webpack:///./node_modules/mem/node_modules/mimic-fn/index.js","webpack:///./node_modules/map-age-cleaner/dist/index.js","webpack:///./node_modules/p-defer/index.js","webpack:///./node_modules/date-fns/locale/af/index.js","webpack:///./node_modules/date-fns/locale/ar-DZ/index.js","webpack:///./node_modules/date-fns/locale/ar-MA/index.js","webpack:///./node_modules/date-fns/locale/ar-SA/index.js","webpack:///./node_modules/date-fns/locale/az/index.js","webpack:///./node_modules/date-fns/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/toDate/index.js","webpack:///./node_modules/date-fns/locale/be/index.js","webpack:///./node_modules/date-fns/locale/bg/index.js","webpack:///./node_modules/date-fns/locale/bn/index.js","webpack:///./node_modules/date-fns/locale/ca/index.js","webpack:///./node_modules/date-fns/locale/cs/index.js","webpack:///./node_modules/date-fns/locale/cy/index.js","webpack:///./node_modules/date-fns/locale/da/index.js","webpack:///./node_modules/date-fns/locale/de/index.js","webpack:///./node_modules/date-fns/locale/el/index.js","webpack:///./node_modules/date-fns/locale/en-AU/index.js","webpack:///./node_modules/date-fns/locale/en-CA/index.js","webpack:///./node_modules/date-fns/locale/en-GB/index.js","webpack:///./node_modules/date-fns/locale/en-IN/index.js","webpack:///./node_modules/date-fns/locale/en-NZ/index.js","webpack:///./node_modules/date-fns/locale/en-US/index.js","webpack:///./node_modules/date-fns/locale/eo/index.js","webpack:///./node_modules/date-fns/locale/es/index.js","webpack:///./node_modules/date-fns/locale/et/index.js","webpack:///./node_modules/date-fns/locale/eu/index.js","webpack:///./node_modules/date-fns/locale/fa-IR/index.js","webpack:///./node_modules/date-fns/locale/fi/index.js","webpack:///./node_modules/date-fns/locale/fr-CA/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/_lib/formatters/index.js","webpack:///./node_modules/date-fns/locale/fr-CH/index.js","webpack:///./node_modules/date-fns/locale/fr/_lib/formatters/index.js","webpack:///./node_modules/date-fns/locale/fr/index.js","webpack:///./node_modules/date-fns/locale/gd/index.js","webpack:///./node_modules/date-fns/locale/gl/index.js","webpack:///./node_modules/date-fns/locale/gu/index.js","webpack:///./node_modules/date-fns/locale/he/index.js","webpack:///./node_modules/date-fns/locale/hi/index.js","webpack:///./node_modules/date-fns/locale/hr/index.js","webpack:///./node_modules/date-fns/locale/hu/index.js","webpack:///./node_modules/date-fns/locale/hy/index.js","webpack:///./node_modules/date-fns/locale/id/index.js","webpack:///./node_modules/date-fns/locale/is/index.js","webpack:///./node_modules/date-fns/locale/it/index.js","webpack:///./node_modules/date-fns/locale/ja/index.js","webpack:///./node_modules/date-fns/locale/ka/index.js","webpack:///./node_modules/date-fns/locale/kk/index.js","webpack:///./node_modules/date-fns/locale/kn/index.js","webpack:///./node_modules/date-fns/locale/ko/index.js","webpack:///./node_modules/date-fns/locale/lt/index.js","webpack:///./node_modules/date-fns/locale/lv/index.js","webpack:///./node_modules/date-fns/locale/mk/index.js","webpack:///./node_modules/date-fns/locale/ms/index.js","webpack:///./node_modules/date-fns/locale/mt/index.js","webpack:///./node_modules/date-fns/locale/nb/index.js","webpack:///./node_modules/date-fns/locale/nl-BE/index.js","webpack:///./node_modules/date-fns/locale/nl/index.js","webpack:///./node_modules/date-fns/locale/nn/index.js","webpack:///./node_modules/date-fns/locale/pl/index.js","webpack:///./node_modules/date-fns/locale/pt-BR/index.js","webpack:///./node_modules/date-fns/locale/pt/index.js","webpack:///./node_modules/date-fns/locale/ro/index.js","webpack:///./node_modules/date-fns/locale/ru/index.js","webpack:///./node_modules/date-fns/locale/sk/index.js","webpack:///./node_modules/date-fns/locale/sl/index.js","webpack:///./node_modules/date-fns/locale/sr-Latn/index.js","webpack:///./node_modules/date-fns/locale/sr/index.js","webpack:///./node_modules/date-fns/locale/sv/index.js","webpack:///./node_modules/date-fns/locale/ta/index.js","webpack:///./node_modules/date-fns/locale/te/index.js","webpack:///./node_modules/date-fns/locale/th/index.js","webpack:///./node_modules/date-fns/locale/tr/index.js","webpack:///./node_modules/date-fns/locale/ug/index.js","webpack:///./node_modules/date-fns/locale/uk/index.js","webpack:///./node_modules/date-fns/locale/uz/index.js","webpack:///./node_modules/date-fns/locale/vi/index.js","webpack:///./node_modules/date-fns/locale/zh-CN/index.js","webpack:///./node_modules/date-fns/locale/zh-TW/index.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/aws4/aws4.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/aws4/lru.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/markdown-it/lib/index.js","webpack:///./node_modules/mdurl/encode.js","webpack:///./node_modules/mdurl/decode.js","webpack:///./node_modules/mdurl/format.js","webpack:///./node_modules/mdurl/parse.js","webpack:///./node_modules/uc.micro/index.js","webpack:///./node_modules/uc.micro/categories/Cf/regex.js","webpack:///./node_modules/markdown-it/lib/helpers/index.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_label.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_destination.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_title.js","webpack:///./node_modules/markdown-it/lib/renderer.js","webpack:///./node_modules/markdown-it/lib/parser_core.js","webpack:///./node_modules/markdown-it/lib/rules_core/normalize.js","webpack:///./node_modules/markdown-it/lib/rules_core/block.js","webpack:///./node_modules/markdown-it/lib/rules_core/inline.js","webpack:///./node_modules/markdown-it/lib/rules_core/linkify.js","webpack:///./node_modules/markdown-it/lib/rules_core/replacements.js","webpack:///./node_modules/markdown-it/lib/rules_core/smartquotes.js","webpack:///./node_modules/markdown-it/lib/rules_core/state_core.js","webpack:///./node_modules/markdown-it/lib/parser_block.js","webpack:///./node_modules/markdown-it/lib/rules_block/table.js","webpack:///./node_modules/markdown-it/lib/rules_block/code.js","webpack:///./node_modules/markdown-it/lib/rules_block/fence.js","webpack:///./node_modules/markdown-it/lib/rules_block/blockquote.js","webpack:///./node_modules/markdown-it/lib/rules_block/hr.js","webpack:///./node_modules/markdown-it/lib/rules_block/list.js","webpack:///./node_modules/markdown-it/lib/rules_block/reference.js","webpack:///./node_modules/markdown-it/lib/rules_block/heading.js","webpack:///./node_modules/markdown-it/lib/rules_block/lheading.js","webpack:///./node_modules/markdown-it/lib/rules_block/html_block.js","webpack:///./node_modules/markdown-it/lib/common/html_blocks.js","webpack:///./node_modules/markdown-it/lib/rules_block/paragraph.js","webpack:///./node_modules/markdown-it/lib/rules_block/state_block.js","webpack:///./node_modules/markdown-it/lib/parser_inline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text.js","webpack:///./node_modules/markdown-it/lib/rules_inline/newline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/escape.js","webpack:///./node_modules/markdown-it/lib/rules_inline/backticks.js","webpack:///./node_modules/markdown-it/lib/rules_inline/link.js","webpack:///./node_modules/markdown-it/lib/rules_inline/image.js","webpack:///./node_modules/markdown-it/lib/rules_inline/autolink.js","webpack:///./node_modules/markdown-it/lib/rules_inline/html_inline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/entity.js","webpack:///./node_modules/markdown-it/lib/rules_inline/balance_pairs.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text_collapse.js","webpack:///./node_modules/markdown-it/lib/rules_inline/state_inline.js","webpack:///./node_modules/linkify-it/index.js","webpack:///./node_modules/linkify-it/lib/re.js","webpack:///./node_modules/markdown-it/lib/presets/default.js","webpack:///./node_modules/markdown-it/lib/presets/zero.js","webpack:///./node_modules/markdown-it/lib/presets/commonmark.js","webpack:///./node_modules/emoji-mart/dist-es/utils/data.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/stringFromCodePoint.js","webpack:///./node_modules/emoji-mart/dist-es/utils/index.js","webpack:///./node_modules/emoji-mart/dist-es/utils/store.js","webpack:///./node_modules/emoji-mart/dist-es/utils/emoji-index/nimble-emoji-index.js","webpack:///./node_modules/emoji-mart/dist-es/utils/emoji-index/emoji-index.js","webpack:///./node_modules/emoji-mart/dist-es/utils/frequently.js","webpack:///./node_modules/emoji-mart/dist-es/svgs/index.js","webpack:///./node_modules/emoji-mart/dist-es/utils/shared-props.js","webpack:///./node_modules/emoji-mart/dist-es/components/anchors.js","webpack:///./node_modules/emoji-mart/dist-es/utils/shared-default-props.js","webpack:///./node_modules/emoji-mart/dist-es/components/emoji/nimble-emoji.js","webpack:///./node_modules/emoji-mart/dist-es/components/not-found.js","webpack:///./node_modules/emoji-mart/dist-es/components/category.js","webpack:///./node_modules/emoji-mart/dist-es/components/skins.js","webpack:///./node_modules/emoji-mart/dist-es/components/skins-emoji.js","webpack:///./node_modules/emoji-mart/dist-es/components/skins-dot.js","webpack:///./node_modules/emoji-mart/dist-es/components/preview.js","webpack:///./node_modules/emoji-mart/dist-es/components/search.js","webpack:///./node_modules/emoji-mart/dist-es/components/picker/nimble-picker.js","webpack:///./node_modules/emoji-mart/dist-es/components/picker/picker.js","webpack:///./node_modules/emoji-mart/dist-es/components/emoji/emoji.js","webpack:///./node_modules/history/node_modules/@babel/runtime/helpers/esm/extends.js"],"names":["requiredArgs","required","args","length","TypeError","toDate","argument","arguments","argStr","Object","prototype","toString","call","Date","getTime","console","warn","Error","stack","NaN","defineProperty","exports","value","default","dirtyOptions","options","width","String","defaultWidth","formats","module","dirtyIndex","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","dirtyString","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","array","predicate","key","findIndex","pattern","test","object","hasOwnProperty","findKey","valueCallback","rest","slice","parseResult","parsePattern","factory","CryptoJS","Math","undefined","crypto","window","self","globalThis","msCrypto","global","require","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","create","F","obj","subtype","C","C_lib","lib","Base","extend","overrides","this","mixIn","init","$super","apply","instance","properties","propertyName","clone","WordArray","words","sigBytes","encoder","Hex","stringify","concat","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","i","thatByte","j","ceil","random","nBytes","push","C_enc","enc","hexChars","bite","join","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","data","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","max","_minBufferSize","nBytesReady","min","offset","_doProcessBlock","splice","C_algo","Hasher","cfg","_doReset","update","messageUpdate","finalize","_doFinalize","_createHelper","hasher","message","_createHmacHelper","HMAC","algo","define","toInteger","dirtyNumber","number","Number","isNaN","floor","ctor","superCtor","super_","constructor","enumerable","writable","configurable","TempCtor","buffer","Buffer","copyProps","src","dst","SafeBuffer","arg","encodingOrOffset","from","alloc","allocUnsafe","allocUnsafeSlow","size","fill","encoding","buf","SlowBuffer","assign","props","shallowDiffers","a","b","PureComponent","isPureReactComponent","t","shouldComponentUpdate","state","Component","memo","c","comparer","shouldUpdate","nextProps","ref","updateRef","current","Memoed","createElement","isReactComponent","displayName","name","_forwarded","oldDiffHook","vnode","type","REACT_FORWARD_SYMBOL","Symbol","for","forwardRef","fn","Forwarded","$$typeof","render","mapFn","children","toChildArray","reduce","acc","index","Children","map","forEach","count","only","toArray","oldCatchError","detachedClone","removeOriginal","Suspense","_suspenders","suspended","component","_suspended","SuspenseList","_next","_map","error","newVNode","oldVNode","then","promise","suspendingComponent","resolve","resolved","onResolved","componentWillUnmount","onSuspensionComplete","setState","pop","forceUpdate","Fragment","fallback","list","child","node","delete","revealOrder","delegated","get","wrappedUnsuspend","unsuspend","Map","reverse","set","componentDidUpdate","componentDidMount","ContextProvider","getChildContext","Portal","_this","container","wrap","_container","_temp","parentNode","removeChild","_unmount","_wrap","_hasMounted","document","createTextNode","hydrate","appendChild","CAMEL_PROPS","REACT_ELEMENT_TYPE","oldEventHook","event","setSafeDescriptor","proto","v","persist","stoppedPropagating","defaultPrevented","origStopPropagation","stopPropagation","origPreventDefault","preventDefault","isPropagationStopped","isDefaultPrevented","nativeEvent","classNameDescriptor","class","oldVNodeHook","className","shouldSanitize","attrs","defaultValue","Array","isArray","multiple","indexOf","selected","download","replace","toLowerCase","newProps","ondoubleclick","ondblclick","onbeforeinput","onchange","normalized","oninput","_patchedLifecycles","isValidElement","element","cloneElement","preactCloneElement","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","version","parent","callback","firstChild","preactRender","preactHydrate","unmountComponentAtNode","createPortal","createContext","createFactory","bind","createRef","findDOMNode","base","nodeType","unstable_batchedUpdates","StrictMode","lazy","loader","prom","Lazy","Base64","EvpKDF","Cipher","C_mode","BlockCipherMode","CBC","Pkcs7","CipherParams","OpenSSLFormatter","SerializableCipher","OpenSSLKdf","PasswordBasedCipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","keySize","ivSize","selectCipherStrategy","cipher","encrypt","decrypt","ciphertext","StreamCipher","mode","iv","Encryptor","Decryptor","_cipher","_iv","xorBlock","block","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","cipherParams","formatter","format","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","kdf","execute","password","compute","derivedParams","_hasOwnProperty","has","isValidEntityCode","fromCodePoint","surrogate1","surrogate2","UNESCAPE_MD_RE","UNESCAPE_ALL_RE","RegExp","source","DIGITAL_ENTITY_TEST_RE","entities","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","ch","REGEXP_ESCAPE_RE","UNICODE_PUNCT_RE","mdurl","ucmicro","sources","keys","isString","_class","unescapeMd","str","unescapeAll","escaped","entity","code","replaceEntityPattern","escapeHtml","arrayReplaceAt","pos","newElements","isSpace","isWhiteSpace","isMdAsciiPunct","isPunctChar","escapeRE","normalizeReference","trim","toUpperCase","currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","hooks","initialState","invokeOrReturn","reducer","hookState","_reducer","nextValue","action","argsChanged","initialValue","createHandle","provider","sub","useErrorBoundary","cb","errState","componentDidCatch","flushAfterPaintEffects","some","invokeCleanup","invokeEffect","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","commitQueue","filter","hook","_cleanup","oldArgs","newArgs","f","attrRE","tag","res","voidElement","tagMatch","lookup","charAt","startsWith","endIndex","comment","reg","result","exec","attr","arr","split","lastIndex","substring","tagRE","whitespaceRE","empty","buff","doc","content","html","components","level","inComponent","end","isOpen","isComment","start","nextChar","parseTag","token","rootEl","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","m","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","target","_defineProperty","getOwnPropertyDescriptors","defineProperties","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","text","I18nContext","getDefaults","ReportNamespaces","_classCallCheck","usedNamespaces","_createClass","namespaces","ns","getI18n","initReactI18next","setDefaults","react","setI18n","_console","_len","alreadyWarned","warnOnce","_len2","_key2","loadNamespaces","i18n","isInitialized","on","initialized","off","oldI18nextHasLoadedNamespace","lng","languages","fallbackLng","lastLng","loadNotPending","l","n","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","getDisplayName","_excluded","_excluded2","hasChildren","checkLength","getChildren","getAsArray","renderNodes","targetString","i18nOptions","combinedTOpts","shouldUnescape","keepArray","emptyChildrenButNeedsHandling","getData","childs","_typeof","ast","HTML","opts","renderInner","rootReactNode","mappedChildren","mapAST","every","hasValidReactChildren","pushTranslatedJSX","inner","mem","isVoid","dummy","reactNode","astNode","reactNodes","newTarget","translationContent","interpolator","interpolate","language","tmp","isElement","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","_inner","parseFloat","_inner3","_inner4","wrapTextNodes","_content","Trans","_ref","i18nKey","_ref$tOptions","tOptions","defaults","i18nFromProps","tFromProps","additionalProps","_objectWithoutProperties","_ref2","i18nFromContext","defaultNSFromContext","defaultNS","k","reactI18nextOptions","nodesToString","stringNode","childrenArray","childIndex","childPropsCount","shouldKeepChild","childChildren","i18nIsDynamicList","hashTransKey","interpolationOverride","interpolation","prefix","suffix","useAsParent","defaultTransParent","usePrevious","ignore","useTranslation","reportNamespaces","notReadyT","retNotReady","ready","wait","keyPrefix","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","_useState","_useState2","_slicedToArray","setT","joinedNS","previousJoinedNS","isMounted","boundReset","store","isInitial","ret","Promise","withTranslation","WrappedComponent","I18nextWithTranslation","forwardedRef","_useTranslation","_useTranslation2","passDownProps","tReady","withRef","forwardRefReact","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","isEncoding","actual","write","fromString","isBuffer","checked","copy","val","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","_isBuffer","compare","x","y","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","MD5","iterations","derivedKey","derivedKeyWords","base64Chars","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bits1","bits2","bitsCombined","parseLoop","T","abs","sin","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","d","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","hash","H_i","s","HmacMD5","isValid","dirtyDate","date","assert","msg","equal","r","utils","BN","minAssert","minUtils","zero2","encode","getNAF","num","w","bits","naf","bitLength","ws","z","mod","andln","isOdd","isubn","iushrn","getJSF","k1","k2","jsf","m8","d1","d2","cmpn","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","startOfWeek","locale","localeWeekStartsOn","weekStartsOn","defaultWeekStartsOn","day","getDay","diff","setDate","getDate","setHours","dirtyDateLeft","dirtyDateRight","_index2","dateLeftStartOfWeek","_index","dateRightStartOfWeek","_interopRequireDefault","__esModule","Constructor","_defineProperties","descriptor","protoProps","staticProps","addDays","dirtyAmount","amount","inherits","isSurrogatePair","htonl","word","zero8","p","toHex32","endian","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","cl","dh","dl","carry","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","subClass","superClass","startOfISOWeek","differenceInCalendarDays","startOfDayLeft","startOfDay","startOfDayRight","timestampLeft","getTimezoneOffsetInMilliseconds","timestampRight","round","getDateMillisecondsPart","baseTimezoneOffset","getTimezoneOffset","setSeconds","compareAsc","dateLeft","dateRight","isBN","negative","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","total","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","toBuffer","toArrayLike","ArrayType","reqLength","q","clz32","_countBits","_zeroBits","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","bhi","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","egcd","A","B","D","g","isEven","yp","xp","im","jm","gcd","_invmp","x1","x2","delta","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","u","X32WordArray","C_x64","x64","Word","high","low","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","EMPTY","let","url","route","matches","segmentize","param","flags","plus","star","pathRankSort","rank","prepareVNodeForRanking","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","getCurrentUrl","location","getCurrentLocation","pathname","search","canRoute","history","setUrl","routeTo","didRoute","routeFromLink","getAttribute","href","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","delegateLinkHandler","nodeName","hasAttribute","eventListenersInitialized","Router","super","addEventListener","static","onChange","const","getMatchingChildren","updating","componentWillMount","unlisten","listen","componentWillUpdate","invoke","sort","Boolean","active","previous","previousUrl","router","Route","Link","onClick","getISOWeekYear","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_flush","fin","iterator","_assertThisInitialized","ReferenceError","_setPrototypeOf","_inherits","_possibleConstructorReturn","_arrayLikeToArray","arr2","_toArray","arrayWithHoles","iter","iterableToArray","minLen","arrayLikeToArray","unsupportedIterableToArray","nonIterableRest","consoleLogger","log","baseLogger","Logger","concreteLogger","logger","debug","bool","forward","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","EventEmitter","observers","events","listener","cloned","observer","_cloned","defer","rej","reject","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","prop","regexEscape","_entityMap","isIE10","navigator","userAgentData","userAgent","chars","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_isNativeReflectConstruct","Super","NewTarget","deepFind","keySeparator","paths","mix","endsWith","joinedPath","ResourceStore","_EventEmitter","_super","silent","addNamespaces","addResource","deep","pack","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","find","postProcessor","processors","addPostProcessor","handle","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","ki","looksLikeObjectPath","nestingRegexp","parts","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","na","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","deprecatedJsonVersions","suffixesOrder","zero","two","few","many","other","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","rule","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","prepend","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","JSON","formatters","doReduce","elem","ownKeys$4","_objectSpread$4","Formatter","NumberFormat","currency","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","ListFormat","_format","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","addResourceBundle","_getLastOfPath2","removePending","loadedKeys","fcName","tried","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","getOwnPropertyNames","I18n","modules","external","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","changeLanguage","usedCallback","append","resolvedLanguage","setResolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","setDefaultNamespace","loadLanguages","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","getMonth","daysInMonth","addMilliseconds","timestamp","startOfISOWeekYear","fourthOfJanuary","subMilliseconds","_date","_baseDate","_options","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_default","ordinalNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","month","short","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","any","ReflectOwnKeys","R","ReflectApply","receiver","Function","NumberIsNaN","emitter","errorListener","resolver","eventTargetAgnosticAddListener","handler","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","existing","warning","newListener","unshift","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","er","position","originalListener","spliceOne","rawListeners","eventNames","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","util","Readable","Writable","method","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","W","SHA1","HmacSHA1","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","isWeekend","addWeeks","days","differenceInMilliseconds","differenceInMonths","sign","difference","differenceInCalendarMonths","isLastMonthNotFull","differenceInSeconds","startOfMonth","addLeadingZeros","targetLength","startOfWeekYear","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","getWeekYear","firstWeek","isSameWeek","formatDistanceLocale","addSuffix","comparison","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","generated","createErrorType","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","determiner","this_len","getBuffer","Hash","finalSize","_block","_finalSize","_blockSize","accum","assigned","remainder","digest","rem","lowBits","highBits","toStringTag","O","I","PLAIN_TEXT","MARKDOWN","DIVIDER","SECTION","INPUT","CONDITIONAL","IMAGE","ACTIONS","CONTEXT","BUTTON","OVERFLOW","PLAIN_TEXT_INPUT","CONVERSATION_SELECT","CHANNEL_SELECT","USER_SELECT","STATIC_SELECT","MULTI_STATIC_SELECT","DATEPICKER","BLOCK","ACTION","FORM","E","plainText","mrkdwn","divider","section","image","actions","overflow","staticSelect","multiStaticSelect","datePicker","plainInput","engine","when","renderAccessories","renderActions","renderContext","renderInputs","buildFormatLongFn","formatLong","full","long","medium","time","dateTime","buildLocalizeFn","buildMatchFn","formatDistance","formatRelative","localize","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","hours","minutes","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","G","getUTCFullYear","signedYear","unit","lightFormatters","Y","signedWeekYear","getUTCWeekYear","weekYear","twoDigitYear","isoWeekYear","getUTCISOWeekYear","Q","getUTCMonth","L","week","getUTCWeek","isoWeek","getUTCISOWeek","getUTCDate","dayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","getUTCDayOfYear","dayOfWeek","getUTCDay","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","getUTCHours","K","getUTCMinutes","getUTCSeconds","S","X","_localize","timezoneOffset","_originalDate","originalDate","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","defaultLocale","utcDate","formatterOptions","firstCharacter","longFormatter","longFormatters","cleanEscapedString","useAdditionalWeekYearTokens","isProtectedWeekYearToken","throwProtectedError","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","parseISO","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","getUTCMilliseconds","parseTimezone","dateString","timeString","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","setUTCFullYear","fourthOfJanuaryDay","setUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseTimeUnit","seconds","validateTime","timezoneString","_hours","validateTimezone","isSunday","addHours","addQuarters","months","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","compareLocalAsc","getHours","getMinutes","getSeconds","getMilliseconds","differenceInDays","isLastDayNotFull","eachDayOfInterval","dirtyInterval","interval","startDate","endDate","endTime","dates","currentDate","step","startOfQuarter","currentMonth","eachWeekendOfInterval","dateInterval","weekends","endOfMonth","startOfYear","cleanDate","endOfDay","endOfWeek","dirtyBaseDate","localizeOptions","cloneObject","offsetInSeconds","includeSeconds","nearestMonth","monthsSinceStartOfYear","years","formatDistanceStrict","roundingMethodFn","roundingMethod","getWeek","firstWeekOfNextYear","firstWeekOfThisYear","subDays","lastDayOfWeek","dirtyMonth","dateWithDesiredMonth","getDaysInMonth","RIPEMD160","sha","alg","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","BlockHash","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","Reporter","DecoderBuffer","EncoderBuffer","reporter","item","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","raw","fail","_reporterState","setUTCDay","dirtyDay","currentDay","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","parsers","priority","incompatibleTokens","isTwoDigitYear","validate","normalizedTwoDigitYear","startOfUTCWeek","_match","_flags","firstWeekOfYear","startOfUTCISOWeek","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","subPriority","isLeapYear","wholeWeekDays","setUTCISODay","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","subFnOptions","setters","dateToSystemTimezone","tokens","usedTokens","parser","incompatibleToken","_i","usedToken","fullToken","uniquePrioritySetters","setter","setterArray","convertedDate","isPrime","sqrtN","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","t1","HmacSHA256","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","fh","fl","gh","gl","hh","hl","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","HmacSHA512","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","addBusinessDays","startedOnWeekend","fullWeeks","restDays","isSaturday","addISOWeekYears","setISOWeekYear","dirtyISOWeekYear","addMinutes","addSeconds","addYears","areIntervalsOverlapping","dirtyIntervalLeft","dirtyIntervalRight","intervalLeft","intervalRight","leftStartTime","leftEndTime","rightStartTime","rightEndTime","inclusive","differenceInCalendarISOWeekYears","yearDiff","monthDiff","getQuarter","differenceInCalendarYears","differenceInHours","subISOWeekYears","differenceInMinutes","differenceInYears","isLastYearNotFull","eachHourOfInterval","startTime","setMinutes","eachWeekOfInterval","startDateWeek","endDateWeek","weeks","currentWeek","endOfYear","endOfDecade","decade","defaultFormat","formatDuration","duration","formatISO","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","hourOffset","minuteOffset","hour","minute","second","separator","formatISO9075","formatRFC3339","fractionDigits","fractionalSecond","milliseconds","fractionalSeconds","baseDate","utcBaseDate","monthIndex","lastDayOfMonth","getISODay","getISOWeek","getWeekOfMonth","currentDayOfMonth","startWeekDay","lastDayOfFirstWeek","weekNumber","remainingDaysAfterFirstWeek","getWeeksInMonth","dateWithoutMonths","subMonths","dateWithoutDays","minutestoSub","secondstoSub","mstoSub","finalDate","isMatch","isSameHour","dateLeftStartOfHour","startOfHour","dateRightStartOfHour","isSameISOWeek","isSameMinute","dateLeftStartOfMinute","startOfMinute","dateRightStartOfMinute","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isSameSecond","dateLeftStartOfSecond","startOfSecond","dateRightStartOfSecond","setMilliseconds","isSameYear","isToday","now","lastDayOfQuarter","roundToNearestMinutes","nearestTo","roundedMinutes","remainderMinutes","addedMinutes","setDay","setWeek","setWeekYear","dirtyWeekYear","numberValues","localeToNumber","numberToLocale","localeNumber","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_reset","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","m1","scrub","keyBits","ivLen","keyLen","used","keyStart","ivStart","BaseCurve","conf","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","_fixedNafMul","doubles","_getDoubles","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","asn1","aesid","fixProc","ciphers","compat","parseKeys","passphrase","ndata","stripped","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","kde","kdeparams","iters","cipherText","keylen","pbkdf2Sync","createDecipheriv","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","signature","info","replaceLog","externalLog","InternalLog","__webpack_amd_options__","iterableToArrayLimit","dateWithMonths","dateWithDays","minutesToAdd","secondsToAdd","msToAdd","closestIndexTo","dirtyDateToCompare","dirtyDatesArray","dateToCompare","minDistance","timeToCompare","distance","closestTo","compareDesc","differenceInBusinessDays","calendarDifference","differenceInCalendarISOWeeks","startOfISOWeekLeft","startOfISOWeekRight","differenceInCalendarQuarters","quarterDiff","differenceInISOWeekYears","isLastISOWeekYearNotFull","differenceInQuarters","differenceInWeeks","eachMonthOfInterval","eachQuarterOfInterval","startDateQuarter","endDateQuarter","quarters","currentQuarter","eachWeekendOfMonth","eachWeekendOfYear","eachYearOfInterval","endOfHour","endOfISOWeek","endOfISOWeekYear","endOfMinute","endOfQuarter","endOfSecond","formatISODuration","_duration$years","_duration$months","_duration$days","_duration$hours","_duration$minutes","_duration$seconds","formatRFC7231","dayName","monthName","fromUnixTime","dirtyUnixTime","unixTime","getDayOfYear","getDaysInYear","getDecade","getISOWeeksInYear","thisYear","nextYear","getOverlappingDaysInIntervals","isOverlapping","overlapStartDate","overlapEndDate","differenceInMs","getUnixTime","getYear","intervalToDuration","remainingMonths","remainingDays","remainingHours","remainingMinutes","remainingSeconds","isAfter","isBefore","isEqual","dirtyLeftDate","dirtyRightDate","isExists","isFirstDayOfMonth","isFriday","isLastDayOfMonth","isMonday","isSameISOWeekYear","dateLeftStartOfYear","dateRightStartOfYear","isThursday","isTuesday","isWednesday","isWithinInterval","lastDayOfDecade","lastDayOfISOWeek","lastDayOfISOWeekYear","lastDayOfYear","lightFormat","datesArray","parseJSON","UTC","dirtyDayOfMonth","setDayOfYear","dirtyDayOfYear","dirtyHours","setISODay","setISOWeek","dirtyMilliseconds","dirtyMinutes","setQuarter","dirtyQuarter","oldQuarter","dirtySeconds","setYear","dirtyYear","startOfDecade","subBusinessDays","subHours","subMinutes","subQuarters","subSeconds","subWeeks","subYears","dateOrdinalNumber","HashBase","ARRAY16","_a","_b","_c","_d","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","config","localStorage","trace","ERR_STREAM_PREMATURE_CLOSE","eos","stream","called","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onerror","onclose","onrequest","req","setHeader","abort","isRequest","zl","zr","sl","sr","hr","_e","fn1","fn2","fn3","fn4","fn5","ar","br","cr","dr","tl","tr","Algorithm","sha1","sha224","sha256","sha384","sha512","Stream","PassThrough","CorkedRequest","entry","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","deprecate","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","destroy","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","pipe","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","first","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","createCipher","createCipheriv","Cipheriv","createDecipher","Decipher","Decipheriv","listCiphers","getCiphers","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","Rand","rand","generate","_rand","getBytes","getByte","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","move","_move","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","elliptic","curves","ec","eddsa","pre","PresetCurve","edwards","isInfinity","defineCurve","lambda","basis","common","ripemd","hmac","ripemd160","safer","Safer","kStringMaxLength","constants","MAX_LENGTH","MAX_STRING_LENGTH","tags","methods","Node","_baseState","reverseArgs","choice","optional","useDecoder","explicit","implicit","contains","stateProps","cstate","body","_useArgs","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","_createEncoderBuffer","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","ReporterError","rethrow","pathLen","inherited","partial","captureStackTrace","tagClass","0","tagClassByName","tagByName","_extends","Ruler","__rules__","__cache__","__find__","__compile__","chains","enabled","alt","altName","chain","at","before","beforeName","ruleName","after","afterName","enable","ignoreInvalid","enableOnly","disable","getRules","chainName","Token","nesting","markup","meta","hidden","attrIndex","attrPush","attrData","attrSet","attrGet","attrJoin","superInit","typedArray","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","typedArrayByteLength","swapEndian","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","Base64url","urlSafe","_safe_map","byte1","byte2","byte3","SHA224","HmacSHA224","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","_zl","_zr","_sl","_sr","_hl","_hr","f1","f2","f3","f4","f5","HmacRIPEMD160","PBKDF2","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","generateKeystreamAndEncrypt","keystream","counter","_counter","CTRGladman","incWord","incCounter","_keystream","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","_keyPriorReset","invKsRow","_doCryptBlock","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","key1","key2","key3","_des1","_des2","_des3","RC4","keySigBytes","_S","keyByteIndex","keyByte","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","C_","Rabbit","_X","_C","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","RabbitLegacy","all","handlers","evt","__once","strictUriEncode","decodeComponent","splitOnFirst","validateArrayFormatSeparator","strict","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","accumulator","parserForArrayFormat","keysSorter","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","parseUrl","query","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","numberOfDigits","dateLongFormatter","timeLongFormatter","P","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","dirtyObject","property","threeToTen","suffixes","70","80","50","100","30","60","90","declension","scheme","rem10","singularNominative","singularGenitive","pluralGenitive","buildLocalizeTokenFn","future","regular","past","accusativeWeekdays","thisWeek","weekday","weekdays","numberWithSuffix","masculine","feminine","neuter","isNeuter","isFeminine","eleven","formatRelativeLocalePlural","pluralToken","timeToken","suffixExist","usageGroup","withPreposition","standalone","monthValues","dayValues","futureSeconds","futureMinutes","futureHours","futureWeeks","futureMonths","futureYears","futureTense","_text","formattingMonthValues","formattingDayValues","ordinalName","_index3","withPrepositionIn","withPrepositionAgo","dual","adverb","translated","withSuffixes","withoutSuffixes","translations","about","over","almost","lessthan","xseconds","halfaminute","xminutes","xhours","xdays","xweeks","xmonths","xyears","isFuture","oneWithSuffix","otherWithSuffix","getResultByTense","parentToken","translateSeconds","translateSingular","aboutWeeks","xseconds_other","xminutes_one","xminutes_other","xhours_one","xhours_other","xdays_one","xdays_other","xweeks_one","xweeks_other","xmonths_one","xmonths_other","xyears_one","xyears_other","forms","special","schema","onlyNumeric","translation","plural","wordMapping","singular","group","twoFour","declensionGroup","adjectivesLastWeek","adjectivesThisWeek","adjectivesNextWeek","dayGrammaticalGender","getAdjective","getAdjectives","dayAndTimeWithAdjective","adjective","prefixPreposition","preposition","suffixPreposition","extractPreposition","localeObject","distanceInWordsLocale","distanceInWordsLocaleFuture","distanceInWordsLocalePast","form","getFormFromCount","getFormatDistanceLocaleWithSuffix","in","ago","resultObj","defaulFormattingWidth","checkWeek","baseFormat","root","freeExports","freeModule","freeGlobal","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","extra","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","_finalized","throwIfNotStringOrBuffer","ReadableState","EElistenerCount","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","head","clear","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","ev","asyncIterator","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","Sha256","_w","sigma1","_f","_g","_h","T1","T2","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","xh","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","pbkdf2","MAX_ALLOC","checkParameters","sizes","rmd160","saltLen","shaFunc","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","U","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","padSplit","DESState","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","lStart","rStart","keyL","keyR","incr32","getBlock","_prev","chunkNum","_cache","aes","GHASH","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","gen","n2","bn","brorand","MillerRabin","_randbelow","min_bytes","_randrange","stop","rone","n1","rn1","getDivisor","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","sha512_K","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","bignum","decoders","encoders","der","pem","DEREncoder","tree","DERNode","encodedTag","encodeTag","header","lenOctets","unused","id","relative","ident","objid","numArray","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","mon","sec","_getDecoder","createHash","i2ops","seed","paddedMsg","_typeof2","open_tag","close_tag","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","delimiters","startDelim","endDelim","loneMarkers","tokenize","scanned","scanDelims","jump","open","can_open","close","can_close","curr","tokens_meta","isStrong","convertToFP","arity","startOfUTCISOWeekYear","startOfUTCWeekYear","protocol","Protocols","DDP","livechatStream","userId","socket","import","DDPDriver","connect","disconnect","unsubscribe","subscription","unsubscribeAll","subscribeNotifyAll","subscribeLoggedNotify","subscribeNotifyUser","onMessage","onTyping","onAgentChange","rid","subscribe","onStreamData","onAgentStatusChange","status","onQueuePositionChange","onVisitorChange","visitor","notifyVisitorTyping","username","typing","credentials","notifyCallDeclined","topic","eventName","visitorToken","subscribeRoom","setUpConnection","methodCall","login","guest","grantVisitor","room","closeChat","post","shareScreen","messageType","transferChat","department","chatSurvey","survey","deleteVisitor","del","updateVisitorStatus","updateCallStatus","callStatus","callId","nextAgent","agent","sendMessage","editMessage","put","deleteMessage","loadMessages","messages","sendOfflineMessage","sendVisitorNavigation","page","requestTranscript","email","videoCall","sendCustomField","field","sendCustomFields","fields","uploadFile","formData","FormData","headersNeededForUpload","file","customHeaders","sendLogsToSNS","logs","host","_headers","getHeaders","headers","getBody","fetch","encodeURI","getParams","json","regExpSuccess","client","currentLogin","request","endpoint","auth","loggedIn","success","hasDataInsideResult","Client","me","authToken","logout","prepareMessage","Message","roomId","integrationId","others","bot","sent","lastPing","subscriptions","ms","reopen","reopenInterval","clearInterval","setInterval","alive","connection","onmessage","onClose","onopen","onOpen","support","connected","session","ping","catch","openTimeout","pingTimeout","reason","collection","stringdata","response","loginParams","subscribeAll","isLoginPass","isLoginOAuth","isLoginAuthenticated","isLoginResult","user","onEvent","subs","unsubAll","useSsl","hostToWS","readyState","Socket","moreConfigs","joinedIds","ddp","cancelled","rejectionTimeout","eventname","ejsonMessage","isTyping","$date","WebSocket","oath","credentialToken","credentialSecret","func","waitMilliseconds","immediate","doLater","callNow","ssl","ERROR","WINDOW","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","blocks","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","createMethod","nodeWrap","eval","nodeMethod","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h1","h2","h3","h4","h5","h6","h7","hBytes","finalized","hashed","oKeyPad","iKeyPad","notString","lastByteIndex","ab","da","cd","bc","hex","arrayBuffer","dataView","DataView","setUint32","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","entries","customDecodeURIComponent","separatorIndex","sourceKeys","_s","_n","mimicFn","mapAgeCleaner","cacheStore","WeakMap","weakCache","cache","cacheKey","maxAge","memoized","arguments_","bestCache","cacheItem","copyProperty","to","ignoreNonConfigurable","toDescriptor","fromDescriptor","canCopyProperty","changePrototype","fromPrototype","wrappedToString","withName","fromBody","toStringDescriptor","toStringName","changeToString","newToString","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","__importDefault","p_defer_1","processingKey","processingTimer","processingDeferred","cleanup","setupTimer","delay","unref","originalSet","_index4","_index5","monthToken","commonFormatters","dayOfMonthFormatter","monthFormatter","descriptors","formatRegExp","objects","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","cur","numLinesEst","reduceToSingleString","desc","line","NODE_DEBUG","pid","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","aws4","querystring","credentialsCache","lru","createHmac","encodeRfc3986","urlEncodedString","encodeRfc3986Full","HEADERS_TO_IGNORE","RequestSigner","hostParts","service","region","matchHost","hostname","Host","defaultCredentials","createHost","port","isCodeCommitGit","isSingleRegion","prepareRequest","parsePath","signQuery","parsedPath","sessionToken","getDateTime","accessKeyId","credentialString","signedHeaders","doNotModifyHeaders","Authorization","authorization","authHeader","formatPath","toISOString","kDate","kRegion","kService","secretAccessKey","kCredentials","stringToSign","canonicalString","bodyHash","pathStr","queryStr","normalizePath","decodePath","doNotEncodePath","decodeSlashesInPath","firstValOnly","reducedQuery","encodedQueryPieces","piece","canonicalHeaders","AWS_ACCESS_KEY_ID","AWS_ACCESS_KEY","AWS_SECRET_ACCESS_KEY","AWS_SECRET_KEY","AWS_SESSION_TOKEN","decodeURI","queryIx","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","eLen","eMax","eBias","nBits","rt","LN2","Url","slashes","urlParse","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","toASCII","ae","esc","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","qs","maxKeys","kstr","vstr","stringifyPrimitive","ks","rng","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","pipeline","_getString","_getBuffer","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","EE","_isStdio","didOnEnd","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","checkNative","resp","aesModes","desModes","ebtk","suite","des","instantiate","EDE","modeName","_des","des3","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","_last","padded","autoPadding","generatePrime","DH","ENCODINGS","genc","SEVEN","setPublicKey","pub","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","secret","getPrime","front","getPrivateKey","getGenerator","verify","algorithms","_hashType","_tag","_signType","sig","EC","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","keyFromPrivate","toDER","ecSign","dsaSign","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","xc","MontCurve","i4","a24","normalize","aa","bb","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","sha1_K","Kh","Ah","Bh","Dh","Eh","rh","sh","outer","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","_hmac","kmac","reseed","addEnc","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","backHalf","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_Rencoded","_Sencoded","Sencoded","toBytes","seq","int","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","namedCurve","Entity","_createNamed","Generated","_initNamed","PEMEncoder","label","PEMDecoder","lines","_reverse","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","mgf","withPublic","publicKey","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","nonZero","pkcs1","zBuffer","db","dif","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","LruCache","capacity","DoublyLinkedList","firstNode","lastNode","DoublyLinkedNode","prune","moveToFront","remove","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","getShim","isRequired","ReactPropTypes","symbol","arrayOf","elementType","instanceOf","objectOf","oneOfType","shape","exact","checkPropTypes","PropTypes","helpers","Renderer","ParserCore","ParserBlock","ParserInline","LinkifyIt","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","normalizeLinkText","toUnicode","MarkdownIt","presetName","inline","core","renderer","linkify","configure","presets","ruler","rules2","ruler2","missed","plugin","State","parseInline","inlineMode","renderInline","encodeCache","exclude","keepEscaped","nextCode","defaultChars","getEncodeCache","componentChars","decodeCache","getDecodeCache","chr","Any","Cc","Cf","Z","parseLinkLabel","parseLinkDestination","parseLinkTitle","disableNested","prevPos","labelEnd","posMax","oldPos","md","skipToken","ok","default_rules","code_inline","slf","renderAttrs","code_block","fence","highlighted","tmpAttrs","tmpToken","langName","highlight","langPrefix","renderInlineAsText","renderToken","hardbreak","xhtmlOut","softbreak","breaks","html_block","html_inline","nextToken","needLf","_rules","Core","NEWLINES_RE","NULL_RE","tok","isLinkClose","currentToken","nodes","ln","lastPos","htmlLinkLevel","fullUrl","urlText","links","blockTokens","pretest","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","tm","replaceFn","replace_scoped","inlineTokens","inside_autolink","replace_rare","blkIdx","typographer","QUOTE_TEST_RE","QUOTE_RE","replaceAt","process_inlines","thisLevel","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","canOpen","canClose","isSingle","openQuote","closeQuote","OUTER","single","quotes","StateCore","startLine","endLine","hasEmptyLines","maxNesting","skipEmptyLines","sCount","blkIndent","tight","outTokens","lineMax","getLine","bMarks","eMarks","escapedSplit","escapes","backTicked","lastBackTick","lineText","nextLine","columns","columnCount","aligns","tableLines","tbodyLines","tShift","getLines","haveEndMarker","skipChars","skipSpaces","adjustTab","lastLineEmpty","oldBMarks","oldBSCount","oldIndent","oldParentType","oldSCount","oldTShift","spaceAfterMarker","terminate","terminatorRules","wasOutdented","oldLineMax","bsCount","parentType","cnt","skipBulletListMarker","skipOrderedListMarker","contentStart","indent","indentAfterMarker","isOrdered","itemLines","listLines","listTokIdx","markerCharCode","markerValue","oldListIndent","oldTight","posAfterMarker","prevEmptyEnd","isTerminatingParagraph","listIndent","markTightParagraphs","_endLine","destEndPos","destEndLineNo","references","skipSpacesBack","skipCharsBack","block_names","HTML_SEQUENCES","StateBlock","indent_found","ddIndent","begin","keepLastLF","lineIndent","lineStart","_rules2","pushPending","isTerminatorChar","pmax","ESCAPED","matchStart","matchEnd","labelStart","parseReference","EMAIL_RE","AUTOLINK_RE","linkMatch","emailMatch","lc","isLetter","DIGITAL_RE","NAMED_RE","processDelimiters","closerIdx","openerIdx","closer","opener","minOpenerIdx","newMinOpenerIdx","isOddMatch","lastJump","openersBottom","StateInline","pendingLevel","_prev_delimiters","token_meta","canSplitWord","left_flanking","right_flanking","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","http","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","compile","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","__compiled__","__schemas__","compiled","link","createValidator","alias","slist","schema_test","src_ZPCc","schema_search","__index__","__text_cache__","resetScanCache","Match","__last_index__","__schema__","createMatch","schemas","definition","ml","tld_pos","testSchemaAt","keepOld","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","mapping","unified","non_qualified","has_img_apple","has_img_google","has_img_twitter","has_img_facebook","keywords","sheet","emoticons","short_names","added_in","buildSearch","emoji","addToSearch","strings","uncompress","compressed","emojis","sheet_x","sheet_y","toFixed","_String","highSurrogate","lowSurrogate","MAX_SIZE","codeUnits","COLONS_REGEX","SKINS","unifiedToNative","stringFromCodePoint","sanitize","skin_tone","skin_variations","customCategory","imageUrl","colons","skin","getSanitizedData","emojiData","variations","skinKey","variationData","uniq","intersect","uniqA","uniqB","deepMerge","originalValue","getter","NAMESPACE","isLocalStorageSupported","setNamespace","setHandlers","NimbleEmojiIndex","originalPool","customEmojisList","buildIndex","_loop","emoticon","skinTone","pool","emojiId","clearCustomEmojis","emojisToShowFilter","maxResults","include","_ref$custom","addCustomToPool","results","allResults","categories","category","isIncluded","isExcluded","customIsIncluded","customIsExcluded","aPool","aIndex","charIndex","_char","scores","subIndex","score","aScore","bScore","localeCompare","emojiIndex","frequently","DEFAULTS","perLine","quantity","frequentlyKeys","sliced","activity","React","xmlns","viewBox","height","foods","nature","people","places","recent","opacity","EmojiPropTypes","onOver","onLeave","backgroundImageFn","forceSize","tooltip","useButton","sheetSize","sheetColumns","sheetRows","PickerPropTypes","onSelect","onSkinChange","emojiSize","color","showPreview","showSkinTones","emojiTooltip","theme","autoFocus","enableFrequentEmojiSort","spriteUrl","skinEmoji","notFound","notFoundEmoji","icons","Anchors","_React$PureComponent","defaultCategory","handleClick","_this$props","onAnchorClick","_this$props2","categorieslabel","anchor","isSelected","iconId","backgroundColor","propTypes","defaultProps","EmojiDefaultProps","PickerDefaultProps","defaultSkin","_getData","_getPosition","_getData2","multiplyX","multiplyY","_getSanitizedData","_isNumeric","NimbleEmoji","nativeEmoji","fontSize","display","wordBreak","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","Tag","_convertStyleToCSS","_handleClick","onMouseEnter","_handleOver","onMouseLeave","_handleLeave","NotFound","emojiProps","notfound","Category","_React$Component","setContainerRef","setLabelRef","margin","minMargin","memoizeSize","_native","hasStickyPosition","nextPerLine","nextNative","nextHasStickyPosition","nextEmojis","nextEmojiProps","nextSkin","nextSize","nextSet","top","maxMargin","parentElement","_this$container$getBo","getBoundingClientRect","parentTop","labelHeight","scrollTop","frequentlyUsed","getEmojis","_this$props3","labelStyles","labelSpanStyles","containerStyles","Skins","opened","SkinsEmoji","_Skins","skinToneNodes","skintext","SkinsDot","handleKeyDown","keyCode","visible","skintones","role","onKeyDown","tabIndex","Preview","skinsProps","idleEmoji","_emojiData$emoticons","knownEmoticons","listedEmoticons","short_name","Search","doIdleTask","running","icon","isSearching","setRef","handleKeyUp","handleChange","requestIdleCallback","onSearch","focus","_this$state","inputId","placeholder","htmlFor","onKeyUp","disabled","I18N","NimblePicker","CUSTOM","RECENT_CATEGORY","SEARCH_CATEGORY","firstRender","allCategories","customCategories","customCategoriesCreated","customEmoji","hideRecent","categoryIndex","newEmojis","newCategory","includeRecent","excludeRecent","setAnchorsRef","handleAnchorClick","setSearchRef","handleSearch","setScrollRef","handleScroll","handleScrollPaint","handleEmojiOver","handleEmojiLeave","handleEmojiClick","handleEmojiSelect","setPreviewRef","handleSkinChange","handleDarkMatchMediaChange","testStickyPosition","firstRenderTimeout","updateCategoriesSize","leaveTimeout","darkMatchMedia","stickyTestElement","matchMedia","media","preview","categoryRefs","scroll","updateDisplay","waitingForPaint","activeCategory","scrollingDown","minTop","ii","clientHeight","scrollHeight","anchors","categoryName","scrollToComponent","newState","handled","scrollbarWidth","offsetWidth","clientWidth","measureScrollbar","getPreferredTheme","onScroll","getCategories","setCategoryRef","Picker","Emoji"],"mappings":"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,WCAzBwtH,EAAYxtH,IAAI,G,WCAfwtH,EAAYxtH,IAAI,G,WCATwtH,EAAYxtH,IAAI,G,WCAhBwtH,EAAYxtH,IAAI,G,WCArBwtH,EAAYxtH,IAAI,G,WCAjBwtH,EAAYxtH,IAAI,G,WCAdwtH,EAAYxtH,IAAI,G,WCAjBwtH,EAAYxtH,IAAI,G,WCAlBwtH,EAAYxtH,IAAI,G,WCAhBwtH,EAAYxtH,IAAI,G,WCAhBwtH,EAAYxtH,IAAI,GCALwtH,EAAYxtH,IAAI,G,WCA1BwtH,EAAYxtH,IAAI,GCALwtH,EAAYxtH,IAAI,G,WCA1BwtH,EAAYxtH,IAAI,G,WCAdwtH,EAAYxtH,IAAI,G,WCAnBwtH,EAAYxtH,IAAI,GCALwtH,EAAYxtH,IAAI,G,WCAxBwtH,EAAYxtH,IAAI,G,WCAnBwtH,EAAYxtH,IAAI,G,WCAjBwtH,EAAYxtH,IAAI,G,WCAfwtH,EAAYxtH,IAAI,G,WCA1BwtH,EAAYxtH,IAAI,G,WCAbwtH,EAAYxtH,IAAI,GCALwtH,EAAYxtH,IAAI,G,WCA7BwtH,EAAYxtH,IAAI,G,WCAbwtH,EAAYxtH,IAAI,G,WCAZwtH,EAAYxtH,IAAI,G,WCArBwtH,EAAYxtH,IAAI,G,YCAjBwtH,EAAYxtH,IAAI,G,YCAdwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,G,YCAlBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCA3BwtH,EAAYxtH,KAAI,G,YCAnBwtH,EAAYxtH,KAAI,G,YCARwtH,EAAYxtH,KAAI,G,YCAVwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCAtBwtH,EAAYxtH,KAAI,G,YCA3BwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCAhCwtH,EAAYxtH,KAAI,G,YCAZwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCAvBwtH,EAAYxtH,KAAI,GCAbwtH,EAAYxtH,KAAI,G,YCAvBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCA3BwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCAxBwtH,EAAYxtH,KAAI,G,YCArBwtH,EAAYxtH,KAAI,G,YCArBwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,G,YCAVwtH,EAAYxtH,KAAI,G,YCAdwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,G,YCApBwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,G,YCAZwtH,EAAYxtH,KAAI,G,YCAbwtH,EAAYxtH,KAAI,G,YCAlBwtH,EAAYxtH,KAAI,G,YCArBwtH,EAAYxtH,KAAI,G,YCAlBwtH,EAAYxtH,KAAI,G,YCAKwtH,EAAYxtH,KAAI,G,YCAnCwtH,EAAYxtH,KAAI,G,YCAhBwtH,EAAYxtH,KAAI,G,YCAnBwtH,EAAYxtH,KAAI,G,YCAZwtH,EAAYxtH,KAAI,G,YCApBwtH,EAAYxtH,KAAI,G,YCATwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCAvBwtH,EAAYxtH,KAAI,G,YCAvBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCAvBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCAnCwtH,EAAYxtH,KAAI,G,YCALwtH,EAAYxtH,KAAI,G,YCA3BwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,G,YCAlBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCA1BwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,G,YCAPwtH,EAAYxtH,KAAI,G,YCAzBwtH,EAAYxtH,KAAI,G,YCARwtH,EAAYxtH,KAAI,G,YCAtBwtH,EAAYxtH,KAAI,G,YCAnBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCA1BwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,G,YCAfwtH,EAAYxtH,KAAI,G,YCAbwtH,EAAYxtH,KAAI,G,YCAZwtH,EAAYxtH,KAAI,G,YCArBwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,G,YCAdwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,G,YCAlBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCA3BwtH,EAAYxtH,KAAI,G,YCAhBwtH,EAAYxtH,KAAI,G,YCAlBwtH,EAAYxtH,KAAI,G,YCAdwtH,EAAYxtH,KAAI,G,YCAjBwtH,EAAYxtH,KAAI,GCAlBwtH,E,OAAYxtH,EAAI,GCAZwtH,E,OAAYxtH,EAAI,GCAlBwtH,E,OAAYxtH,EAAI,GCATwtH,E,OAAYxtH,EAAI,GCAjBwtH,E,OAAYxtH,EAAI,GCAfwtH,E,OAAYxtH,EAAI,GCAZwtH,E,OAAYxtH,EAAI,GCAtBwtH,E,OAAYxtH,EAAI,G,YCAdwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCA9BwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCA3BwtH,E,OAAYxtH,EAAI,GCAlBwtH,E,OAAYxtH,EAAI,GCAxBwtH,E,OAAYxtH,EAAI,GCAhBwtH,E,OAAYxtH,EAAI,G,YCAdwtH,EAAYxtH,KAAI,G,QCCbmkE,GADAqpD,EAAYxtH,KAAI,G,ICALwtH,EAAYxtH,KAAI,GCA1BwtH,E,OAAYxtH,EAAI,GCATwtH,EAAYxtH,KAAI,G,YCAXwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCA7CwtH,E,OAAYxtH,EAAI,GCAZwtH,E,OAAYxtH,EAAI,G,YCAjBwtH,EAAYxtH,KAAI,GCAVwtH,E,OAAYxtH,EAAI,GCAXwtH,EAAYxtH,KAAI,GCAzBwtH,E,OAAYxtH,EAAI,GCAfwtH,E,OAAYxtH,EAAI,GCAfwtH,E,OAAYxtH,EAAI,GCAZwtH,E,OAAYxtH,EAAI,GCAfwtH,E,OAAYxtH,EAAI,GCArBwtH,E,OAAYxtH,EAAI,GCAlBwtH,E,OAAYxtH,EAAI,GCAdwtH,E,OAAYxtH,EAAI,GCAhBwtH,E,OAAYxtH,EAAI,G,YCAnBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,YCAvBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCA/BwtH,E,OAAYxtH,EAAI,GCAbwtH,E,OAAYxtH,EAAI,GCAbwtH,E,OAAYxtH,EAAI,GCAlBwtH,E,OAAYxtH,EAAI,GCAbwtH,E,OAAYxtH,EAAI,GCAZwtH,E,OAAYxtH,EAAI,GCArBwtH,E,OAAYxtH,EAAI,GCAjBwtH,E,OAAYxtH,EAAI,GCAdwtH,E,OAAYxtH,EAAI,GCAjBwtH,E,OAAYxtH,EAAI,G,YCAlBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,G,QCAvBwtH,EAAYxtH,KAAI,GCALwtH,EAAYxtH,KAAI,GCA/BwtH,E,OAAYxtH,EAAI,GCAxBwtH,E,OAAYxtH,EAAI,GCAJwtH,E,OAAYxtH,EAAI,GCAxBwtH,E,OAAYxtH,EAAI,GCAfwtH,E,OAAYxtH,EAAI,GCATwtH,E,OAAYxtH,EAAI,GCAhBwtH,E,OAAYxtH,EAAI,GCArBwtH,E,OAAYxtH,EAAI,GCAjBwtH,E,OAAYxtH,EAAI,GCAdwtH,E,OAAYxtH,EAAI,GCAjBwtH,E,OAAYxtH,EAAI,GCAlBwtH,E,OAAYxtH,EAAI,GCAhBwtH,E,OAAYxtH,EAAI,GCAlBwtH,E,OAAYxtH,EAAI,G,q5CCEd,SAAS0tH,EAAsB98F,GAC5C9/B,YAAa,EAAGO,WAChB,IAAI8gD,EAAO0uB,YAAkBjwC,GACzBu/B,EAAkB,IAAIx+D,KAAK,GAC/Bw+D,EAAgBmV,eAAenzB,EAAM,EAAG,GACxCge,EAAgBqR,YAAY,EAAG,EAAG,EAAG,GACrC,IAAI3wC,EAAOg9C,YAAkB1d,GAC7B,OAAOt/B,ECLM,SAASuwC,EAAcxwC,GACpC9/B,YAAa,EAAGO,WAChB,IAAIw/B,EAAO1/B,YAAOy/B,GACdgD,EAAOi6C,YAAkBh9C,GAAMj/B,UAAY87H,EAAsB78F,GAAMj/B,UAI3E,OAAOoD,KAAKojC,MAAMxE,EAVO,QAUwB,I,gHCRpC,SAAS+5F,EAAmB/8F,EAAWt+B,GACpDxB,YAAa,EAAGO,WAChB,IAAIkB,EAAUD,GAAgB,GAC1BghC,EAAS/gC,EAAQ+gC,OACjB0lC,EAA8B1lC,GAAUA,EAAO/gC,SAAW+gC,EAAO/gC,QAAQ0mE,sBACzEC,EAA8D,MAA/BF,EAAsC,EAAI/8D,YAAU+8D,GACnFC,EAAyD,MAAjC1mE,EAAQ0mE,sBAAgCC,EAA+Bj9D,YAAU1J,EAAQ0mE,uBACjH9mB,EAAOsuB,YAAe7vC,EAAWt+B,GACjC8mE,EAAY,IAAIznE,KAAK,GACzBynE,EAAUkM,eAAenzB,EAAM,EAAG8mB,GAClCG,EAAUoI,YAAY,EAAG,EAAG,EAAG,GAC/B,IAAI3wC,EAAO48C,YAAerU,EAAW9mE,GACrC,OAAOu+B,ECXM,SAASqwC,EAAWtwC,EAAWr+B,GAC5CzB,YAAa,EAAGO,WAChB,IAAIw/B,EAAO1/B,YAAOy/B,GACdgD,EAAO65C,YAAe58C,EAAMt+B,GAASX,UAAY+7H,EAAmB98F,EAAMt+B,GAASX,UAIvF,OAAOoD,KAAKojC,MAAMxE,EAVO,QAUwB,I,6CCdjC9+B,E,qOAAAA,EAaV,SAAUC,GAEjB,OAAOA,GAdgB,WAAnB,EAAO5C,GAEVS,EAAOT,QAAUA,EAAU2C,EAAQU,EAAQ,KAAWA,EAAQ,KAAeA,EAAQ,KAAsBA,EAAQ,KAAgBA,EAAQ,KAAiBA,EAAQ,KAAoBA,EAAQ,KAAUA,EAAQ,KAAWA,EAAQ,KAAaA,EAAQ,KAAaA,EAAQ,KAAaA,EAAQ,KAAaA,EAAQ,KAAWA,EAAQ,KAAgBA,EAAQ,KAAWA,EAAQ,KAAaA,EAAQ,KAAaA,EAAQ,KAAkBA,EAAQ,KAAeA,EAAQ,KAAeA,EAAQ,KAAuBA,EAAQ,KAAeA,EAAQ,KAAeA,EAAQ,KAAmBA,EAAQ,KAAmBA,EAAQ,KAAmBA,EAAQ,KAAsBA,EAAQ,KAAoBA,EAAQ,KAAiBA,EAAQ,KAAUA,EAAQ,KAAgBA,EAAQ,KAAUA,EAAQ,KAAaA,EAAQ,OAI3yBwG,EAAO,CAAC,OAAU,OAAc,OAAqB,OAAe,OAAgB,OAAmB,OAAS,OAAU,OAAY,OAAY,OAAY,OAAY,OAAU,OAAe,OAAU,OAAY,OAAY,OAAiB,OAAc,OAAc,OAAsB,OAAc,OAAc,OAAkB,OAAkB,OAAkB,OAAqB,OAAmB,OAAgB,OAAS,OAAe,OAAS,OAAY,aAAzd,gE,yuGCHR,iBACA,UACA,SAQA,cAKE,WAAa,GAAE,IAAAw5C,EAAM,SAAmC,GAAxB,YAAO,QAAe,gBAAE,EAAAo4E,iBAAQ,IAAG,IAAAC,UAAUC,IAAG,EAAKpgC,EAAM,IAA9E,2DAAb,EACE,eAAQl4C,OAAM,GAAKk4C,KAAS,K,OAL9B,EAAAqgC,eAAyB,uBACzB,EAAAC,OAAiB,GACjB,EAAAx4E,OAAkB,SAClB,EAAAy4E,OAAqCttG,QAAQ1e,UAG3C,EAAKisH,OAAON,EAAUlgC,G,EAsF1B,OA7F4C,OAS1C,YAAAwgC,OAAA,SAAQN,EAAqBlgC,GAA7B,WACE,OAAQkgC,GAIN,KAAK,EAAAC,UAAUC,IACbr3H,KAAKw3H,OAAS,8CAAyC,UAAkBnsH,MAAK,SAAC,GAAkB,WAAIqsH,EAAX,aAAoB,GAAG34E,OAAQ,EAAKA,QAAWk4C,OACzI,MACF,QACE,MAAM,IAAI37F,MAAM,qBAAqB67H,EAAQ,aAAar8H,OAAO0d,KAAK,EAAA4+G,WAAWn1H,UAGjF,YAAA01H,QAAN,SAAe77H,EAAyB2V,G,qGAC9B,SAAMzR,KAAKw3H,Q,OAAnB,SAAQ,SAA8BG,QAAQ77H,GAASuP,MAAK,WAAM,OAAC,EAAD,8BAE9D,YAAAusH,WAAN,W,0FAA4C,SAAM53H,KAAKw3H,Q,OAAnB,SAAQ,SAA8BI,sBACpE,YAAAC,YAAN,SAAmBC,G,0FAAqD,SAAM93H,KAAKw3H,Q,OAAnB,SAAQ,SAA8BK,YAAYC,YAC5G,YAAAC,eAAN,W,0FAAgD,SAAM/3H,KAAKw3H,Q,OAAnB,SAAQ,SAA8BO,0BACxE,YAAAC,mBAAN,W,0FAAoD,SAAMh4H,KAAKw3H,Q,OAAnB,SAAQ,SAA+BQ,8BAC7E,YAAAC,sBAAN,W,0FAAuD,SAAMj4H,KAAKw3H,Q,OAAnB,SAAQ,SAA+BS,iCAChF,YAAAC,oBAAN,W,0FAAqD,SAAMl4H,KAAKw3H,Q,OAAnB,SAAQ,SAA+BU,+BAC9E,YAAAC,UAAN,SAAiB38G,G,0FAAuC,SAAMxb,KAAKw3H,Q,OAAnB,SAAQ,SAA8BW,UAAU38G,YAC1F,YAAA48G,SAAN,SAAgB58G,G,0FAAuC,SAAMxb,KAAKw3H,Q,OAAnB,SAAQ,SAA8BY,SAAS58G,YACxF,YAAA68G,cAAN,SAAqBC,EAAa98G,G,0FAChC,SAAMxb,KAAKu4H,UAAUv4H,KAAKs3H,eAAgBgB,I,OAC1C,OADA,SACA,GAAMt4H,KAAKw4H,aAAax4H,KAAKs3H,gBAAgB,SAAC,G,IAAmB,EAAP,WAAA/8H,KAAA,GAAO,GAAE2O,EAAI,OAAEzF,EAAI,OAC9D,cAATyF,GACFsS,EAAG/X,O,cAFP,S,YAMI,YAAAg1H,oBAAN,SAA2BH,EAAa98G,G,0FACtC,SAAMxb,KAAKu4H,UAAUv4H,KAAKs3H,eAAgBgB,I,OAC1C,OADA,SACA,GAAMt4H,KAAKw4H,aAAax4H,KAAKs3H,gBAAgB,SAAC,G,IAAmB,EAAP,WAAA/8H,KAAA,GAAO,GAAE2O,EAAI,OAAEwvH,EAAM,SAChE,gBAATxvH,GACFsS,EAAGk9G,O,cAFP,S,YAOI,YAAAC,sBAAN,SAA6BL,EAAa98G,G,0FACxC,SAAMxb,KAAKu4H,UAAUv4H,KAAKs3H,eAAgBgB,I,OAC1C,OADA,SACA,GAAMt4H,KAAKw4H,aAAax4H,KAAKs3H,gBAAgB,SAAC,G,IAAmB,EAAP,WAAA/8H,KAAA,GAAO,GAAE2O,EAAI,OAAEzF,EAAI,OAC9D,cAATyF,GACFsS,EAAG/X,O,cAFP,S,YAOI,YAAAm1H,gBAAN,SAAuBN,EAAa98G,G,0FAClC,SAAMxb,KAAKu4H,UAAUv4H,KAAKs3H,eAAgBgB,I,OAC1C,OADA,SACA,GAAMt4H,KAAKw4H,aAAax4H,KAAKs3H,gBAAgB,SAAC,G,IAAmB,EAAP,WAAA/8H,KAAA,GAAO,GAAE2O,EAAI,OAAE2vH,EAAO,UACjE,gBAAT3vH,GACFsS,EAAGq9G,O,cAFP,S,YAOI,YAAAC,oBAAN,SAA2BR,EAAaS,EAAkBC,EAAiBt4G,G,0FACjE,SAAM1gB,KAAKw3H,Q,OAAnB,SAAQ,SAA8BsB,oBAAoBR,EAAKS,EAAUC,EAAQh5H,KAAKi5H,YAAYj6G,MAAO0B,YAGrG,YAAAw4G,mBAAN,SAA0BZ,G,0FAChB,SAAMt4H,KAAKw3H,Q,OAAnB,SAAQ,SAA8B0B,mBAAmBZ,YAGrD,YAAAC,UAAN,SAAiBY,EAAeC,G,gGAEtB,OADAp6G,EAAUhf,KAAKi5H,YAAV,MACL,GAAMj5H,KAAKw3H,Q,OAAnB,SAAQ,SAA8Be,UAAUY,EAAOC,EAAW,CAAEp6G,MAAK,EAAEq6G,aAAcr6G,aAGrF,YAAAs6G,cAAN,SAAqBhB,G,gGAEX,OADAt5G,EAAUhf,KAAKi5H,YAAV,MACL,GAAMj5H,KAAKw3H,Q,OAAnB,SAAQ,SAA8B8B,cAAchB,EAAK,CAAEt5G,MAAK,EAAEq6G,aAAcr6G,aAG5E,YAAAw5G,aAAN,SAAoBpqH,EAAeoN,G,0FACzB,SAAMxb,KAAKw3H,Q,OAAnB,SAAQ,SAA8BgB,aAAapqH,EAAOoN,YAGtD,YAAA+9G,gBAAN,W,gGAEU,OADAv6G,EAAUhf,KAAKi5H,YAAV,MACL,GAAMj5H,KAAKw3H,Q,OAAnB,SAAQ,SAA8BgC,WAAW,2BAA4B,CAAEx6G,MAAK,aAExF,EA7FA,CAA4C,W,0lECQ5C,IAEA,yE,OACE,EAAAi6G,YAA0C,G,EAyC5C,OA1CyC,OAEvC,YAAAQ,MAAA,SAAOC,GAAqC,OAAO15H,KAAK25H,aAAaD,IAC/D,YAAAziC,OAAN,SAAc9J,G,0FAAsC,SAAMntF,KAAKwM,IAAI,kBAAmB2gF,GAAQ,I,OAAlD,SAAQ,SAAkD8J,gBAChG,YAAA2iC,KAAN,SAAYzsC,G,0FAAkD,SAAMntF,KAAKwM,IAAI,gBAAe,GAAIwS,MAAOhf,KAAKi5H,YAAYj6G,OAAUmuE,IAAU,I,OAAtF,SAAQ,SAAsFysC,cACpJ,YAAAC,UAAA,SAAW,G,IAAEvB,EAAG,MAAqB,OAAOt4H,KAAK85H,KAAK,sBAAuB,CAAExB,IAAG,EAAEt5G,MAAOhf,KAAKi5H,YAAYj6G,QAAS,IACrH,YAAA+6G,YAAA,SAAa,G,IAAEzB,EAAG,MAAE0B,EAAW,cAAW,OAAOh6H,KAAK85H,KAAK,4BAA6B,CAAExB,IAAG,EAAEt5G,MAAOhf,KAAKi5H,YAAYj6G,MAAOg7G,YAAW,IAAI,IAC7I,YAAAC,aAAA,SAAc,G,IAAE3B,EAAG,MAAE4B,EAAU,aAAqB,OAAQl6H,KAAK85H,KAAK,yBAA0B,CAAExB,IAAG,EAAEt5G,MAAOhf,KAAKi5H,YAAYj6G,MAAOk7G,WAAU,IAAI,IACpJ,YAAAC,WAAA,SAAYC,GAAkC,OAAQp6H,KAAK85H,KAAK,uBAAwB,CAAExB,IAAK8B,EAAO9B,IAAKt5G,MAAOhf,KAAKi5H,YAAYj6G,MAAOvb,KAAM22H,EAAO32H,OAAQ,IAC/J,YAAAo1H,QAAA,WAAa,OAAO74H,KAAKwM,IAAI,oBAAoBxM,KAAKi5H,YAAYj6G,QAC5D,YAAA26G,aAAN,SAAoBD,G,gGACE,SAAM15H,KAAK85H,KAAK,mBAAoBJ,GAAO,I,OAI/D,OAJQb,EAAY,SAAL,QACf74H,KAAKi5H,YAAc,CACjBj6G,MAAO65G,EAAQ75G,OAEjB,GAAO65G,WAEH,YAAAwB,cAAN,W,0FAAiC,SAAMr6H,KAAKs6H,IAAI,oBAAoBt6H,KAAKi5H,YAAYj6G,Q,OAA5D,SAAQ,SAA8D65G,iBACzF,YAAA0B,oBAAN,SAA2B7B,G,0FAA0B,SAAM14H,KAAK85H,KAAK,0BAA2B,CAAE96G,MAAOhf,KAAKi5H,YAAYj6G,MAAO05G,OAAM,K,OAA1F,SAAQ,SAAuFA,gBACtI,YAAA8B,iBAAN,SAAwBC,EAAoBnC,EAAaoC,G,0FAA0B,SAAM16H,KAAK85H,KAAK,8BAA+B,CAAE96G,MAAOhf,KAAKi5H,YAAYj6G,MAAOy7G,WAAU,EAAEnC,IAAG,EAAEoC,OAAM,K,OAA/G,SAAQ,SAA4GD,oBACzL,YAAAE,UAAN,SAAiBT,G,YAAA,IAAAA,MAAA,I,mFAAmC,SAAMl6H,KAAKwM,IAAI,uBAAuBxM,KAAKi5H,YAAYj6G,MAAS,CAAEk7G,WAAU,K,OAApF,SAAQ,SAAiFU,eAC/H,YAAAA,MAAN,SAAa,G,IAAEtC,EAAG,M,0FAAmB,SAAMt4H,KAAKwM,IAAI,uBAAuB8rH,EAAG,IAAIt4H,KAAKi5H,YAAYj6G,Q,OAAtE,SAAQ,SAAwE47G,eACvG,YAAAz1H,QAAN,SAAe6uH,EAAY7mC,G,0FAAiC,SAAMntF,KAAKwM,IAAI,oBAAoBwnH,EAAI,GAAIh1G,MAAOhf,KAAKi5H,YAAYj6G,OAAUmuE,K,OAArF,SAAQ,SAAwFhoF,iBACpJ,YAAA01H,YAAA,SAAa11H,GAAmC,OAAQnF,KAAK85H,KAAK,mBAAkB,OAAO30H,GAAO,CAAE6Z,MAAOhf,KAAKi5H,YAAYj6G,SAAS,IACrI,YAAA87G,YAAA,SAAa9G,EAAY7uH,GAAmC,OAAQnF,KAAK+6H,IAAI,oBAAoB/G,EAAM7uH,GAAS,IAChH,YAAA61H,cAAA,SAAehH,EAAY,G,IAAEsE,EAAG,MAAqB,OAAQt4H,KAAKs6H,IAAI,oBAAoBtG,EAAM,CAAEsE,IAAG,EAAEt5G,MAAOhf,KAAKi5H,YAAYj6G,QAAS,IAClI,YAAAi8G,aAAN,SAAoB3C,EAAanrC,G,0FAA6C,SAAMntF,KAAKwM,IAAI,6BAA6B8rH,EAAK,OAAOnrC,GAAM,CAAEnuE,MAAOhf,KAAKi5H,YAAYj6G,SAAS,I,OAAzG,SAAQ,SAAyGk8G,kBACjL,YAAAC,mBAAN,SAA0Bh2H,G,0FAAkD,SAAMnF,KAAK85H,KAAK,2BAA0B,KAAO30H,IAAW,I,OAApE,SAAQ,SAAoEA,iBAChJ,YAAAi2H,sBAAA,SAAuBC,GAAmC,OAAQr7H,KAAK85H,KAAK,wBAAuB,KAAOuB,IAAQ,IAClH,YAAAC,kBAAA,SAAmBC,EAAe,G,IAAEjD,EAAG,MAAqB,OAAQt4H,KAAK85H,KAAK,sBAAuB,CAAE96G,MAAOhf,KAAKi5H,YAAYj6G,MAAOs5G,IAAG,EAAEiD,MAAK,IAAI,IACpJ,YAAAC,UAAA,SAAW,G,IAAElD,EAAG,MAAqB,OAAOt4H,KAAKwM,IAAI,uBAAuBxM,KAAKi5H,YAAYj6G,MAAS,CAAEs5G,IAAG,IAAI,IAC/G,YAAAmD,gBAAA,SAAiBC,GAAqC,OAAO17H,KAAK85H,KAAK,wBAAyB4B,GAAO,IACvG,YAAAC,iBAAA,SAAkBC,GAAuC,OAAO57H,KAAK85H,KAAK,yBAA0B8B,GAAQ,IAC5G,YAAAC,WAAA,SAAY1uC,GACV,IAAM2uC,EAAW,IAAIC,SACfC,EAAyB,CAC7B,kBAAmBh8H,KAAKi5H,YAAYj6G,OAGtC,OADA88G,EAAS5kE,OAAO,OAAQi2B,EAAO8uC,MACxBj8H,KAAK85H,KAAK,mBAAmB3sC,EAAOmrC,IAAOwD,GAAU,OAAOt9H,EAAW,CAAE09H,cAAeF,KAE3F,YAAAG,cAAN,SAAqBC,G,0FAAuC,SAAMp8H,KAAK85H,KAAK,eAAgBsC,GAAM,I,OAA9C,SAAQ,kBAC9D,EA1CA,CAFA,WAEyC,S,swECxBzC,aAUA,UAEA,SA0EA,aAKE,WAAa,G,IAAE,IAAAC,YAAI,IAAG,0BAAuB,EAF7C,KAAAC,SAAgB,GAGdt8H,KAAKq8H,KAAOA,EAiEhB,OA9DE,sBAAI,sBAAO,C,IAGX,WACE,UACE,eAAgB,oBACbr8H,KAAKs8H,W,IANZ,SAAa98H,GACXQ,KAAKs8H,SAAW98H,G,gCASlB,YAAA+8H,WAAA,SAAYzgI,GACV,OAAOA,GAAWA,EAAQogI,cACxBpgI,EAAQogI,cACRl8H,KAAKw8H,SAGT,YAAAC,QAAA,SAASh5H,GACP,OAAOA,aAAgBs4H,SACrBt4H,EACAiuD,KAAK5wD,UAAU2C,IAGnB,YAAA+I,IAAA,SAAK+qC,EAAa9zC,EAAW3H,GAC3B,OAAO4gI,MAAS18H,KAAKq8H,KAAI,WAAWM,UAAUplF,GAAI,IAAIv3C,KAAK48H,UAAUn5H,GAAS,CAC5Ew8D,OAAQ,MACRu8D,QAASx8H,KAAKu8H,WAAWzgI,KACxBuP,KAAKrL,KAAK6jD,SAEf,YAAAi2E,KAAA,SAAMviF,EAAa9zC,EAAW3H,GAC5B,OAAO4gI,MAAS18H,KAAKq8H,KAAI,WAAWM,UAAUplF,GAAQ,CACpD0oB,OAAQ,OACRukC,KAAMxkG,KAAKy8H,QAAQh5H,GACnB+4H,QAASx8H,KAAKu8H,WAAWzgI,KACxBuP,KAAKrL,KAAK6jD,SAEf,YAAAk3E,IAAA,SAAKxjF,EAAa9zC,EAAW3H,GAC3B,OAAO4gI,MAAS18H,KAAKq8H,KAAI,WAAWM,UAAUplF,GAAQ,CACpD0oB,OAAQ,MACRukC,KAAMxkG,KAAKy8H,QAAQh5H,GACnB+4H,QAASx8H,KAAKu8H,WAAWzgI,KACxBuP,KAAKrL,KAAK6jD,SAGf,YAAAx3C,OAAA,SAAQkrC,EAAa9zC,EAAY3H,GAC/B,OAAO4gI,MAAS18H,KAAKq8H,KAAI,WAAWM,UAAUplF,GAAQ,CACpD0oB,OAAQ,SACRukC,KAAMxkG,KAAKy8H,QAAQh5H,GACnB+4H,QAASx8H,KAAKu8H,WAAWzgI,KACxBuP,KAAKrL,KAAK6jD,SAED,YAAAA,OAAd,SAAsBrpB,G,kGAEP,OADLk+F,EAAWl+F,EAAL,OACD,GAAMA,EAAEqiG,Q,OAErB,OAFMp5H,EAAO,SAEb,GAAO,CAAEi1H,OAAM,EAAEj1H,KAAI,YAGf,YAAAm5H,UAAR,SAAmBn5H,GACjB,OAAO3I,OAAO0d,KAAK/U,GAAMyG,KAAI,SAAUsd,GACrC,OAAOrkB,mBAAmBqkB,GAAK,KAA0B,WAAnB,EAAO/jB,EAAK+jB,IAAkBrkB,mBAAmBuuD,KAAK5wD,UAAU2C,EAAK+jB,KAAOrkB,mBAAmBM,EAAK+jB,QACzIvlB,KAAK,MAEZ,EAvEA,GAyEa,EAAA66H,cAAgB,4BAO7B,kBAWE,WAAa,G,IAAEC,EAAM,SAAEV,EAAI,OAAE,IAAAt9E,OAA7B,QAAmC,IAAG,YACpC,cAAO,M,OAXT,EAAAw4E,OAAiB,GAGjB,EAAAyF,aAKW,KAwBX,EAAAC,QAAU,SACVh9D,EACAi9D,EACAz5H,EACA05H,EACEz0G,EACA5sB,G,YAHF,IAAA2H,MAAA,SACA,IAAA05H,OAAA,G,0FAIEn9H,KAAK++C,QAAU/+C,KAAK++C,OAAOC,MAAM,SAAUihB,EAAM,IAAMi9D,EAAQ,KAAOxrE,KAAK5wD,UAAU2C,I,iBAEnF,G,wBAAI05H,IAASn9H,KAAKo9H,WAChB,MAAM,IAAI9hI,MAAM,I,OAEdmiB,OAAM,EACFwiD,G,IACD,kB,IACA,kB,IACA,qB,IAEA,mB,mBAJgB,SAAMjgE,KAAK+8H,OAAOvwH,IAAI0wH,EAAUz5H,EAAM3H,I,OAAU,OAAzD2hB,EAAS,SAAgD,O,OAChD,SAAMzd,KAAK+8H,OAAOhC,IAAImC,EAAUz5H,EAAM3H,I,OAAU,OAAzD2hB,EAAS,SAAgD,O,OAC7C,SAAMzd,KAAK+8H,OAAO1wH,OAAO6wH,EAAUz5H,EAAM3H,I,OAAU,OAA5D2hB,EAAS,SAAmD,O,OAErD,SAAMzd,KAAK+8H,OAAOjD,KAAKoD,EAAUz5H,EAAM3H,I,OAAU,OAA1D2hB,EAAS,SAAiD,O,QAEzE,IAAKA,EAAQ,MAAM,IAAIniB,MAAM,OAAQ2kE,EAAM,IAAMi9D,EAAQ,qBACzD,IAAKl9H,KAAKq9H,QAAQ5/G,EAAQiL,GAAS,MAAMjL,EAGzC,OAFAzd,KAAK++C,QAAU/+C,KAAK++C,OAAOC,MAAM,SAASihB,EAAM,IAAIi9D,EAAQ,WAAWz/G,EAAOi7G,QACxE4E,EAAsB7/G,IAAWA,EAAOha,KAC9C,GAAmB,WAAXw8D,GAAwBq9D,EAAsB7/G,EAASA,EAAOha,M,QAGtE,M,WADAzD,KAAK++C,QAAU/+C,KAAK++C,OAAO7zC,MAAM,oBAAqBgyH,EAAQ,MAAQxrE,KAAK5wD,UAAU,IAC/E,E,0BAIV,EAAAg5H,KAAoB,SAACoD,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,GAAiB,YAAjB,IAAAA,MAAA,IAAiB,EAAKmhI,QAAQ,OAAQC,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,IAGvH,EAAA0Q,IAAmB,SAAC0wH,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,GAAiB,YAAjB,IAAAA,MAAA,IAAiB,EAAKmhI,QAAQ,MAAOC,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,IAGrH,EAAAi/H,IAAmB,SAACmC,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,GAAiB,YAAjB,IAAAA,MAAA,IAAiB,EAAKmhI,QAAQ,MAAOC,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,IAGrH,EAAAw+H,IAAmB,SAAC4C,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,GAAiB,YAAjB,IAAAA,MAAA,IAAiB,EAAKmhI,QAAQ,SAAUC,EAAUz5H,EAAM05H,EAAMz0G,EAAQ5sB,IA7DtH,EAAKihI,OAASA,GAAU,IAAIQ,EAAO,CAAElB,KAAI,IACzC,EAAKt9E,OAAS,S,EA0GlB,OAxHiC,OAiB/B,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO/+C,KAAKg9H,cAAgBh9H,KAAKg9H,aAAajE,U,gCAGhD,YAAAqE,SAAA,WACE,OAAOtiI,OAAO0d,KAAKxY,KAAKg9H,cAAgB,IAAWh4G,OAAM,SAAChiB,GAAW,OAAAA,MAuDvE,YAAAq6H,QAAA,SAAS5/G,EAAaiL,GACpB,cACwB,IAAlBjL,EAAOi7G,QACbj7G,EAAOi7G,QAAU,EAAAoE,cAAcl/H,KAAK6f,EAAOi7G,SAC3Cj7G,EAAOi7G,QAAUhwG,GAAUA,EAAO9qB,KAAK6f,EAAOi7G,UAI1C,YAAAe,MAAN,SAAaR,EAA2B1+H,G,gGACrB,SAAMyF,KAAK85H,KAAK,QAAO,OAAOb,GAAgB1+H,K,OAY/D,OAZQkJ,EAAS,SAAL,KACZzD,KAAKu3H,OAAS9zH,EAAK8zH,OACnBv3H,KAAKg9H,aAAe,CAClBjE,SAAUt1H,EAAK+5H,GAAGzE,SAClBxB,OAAQ9zH,EAAK8zH,OACbkG,UAAWh6H,EAAKg6H,UAChBhgH,OAAQha,GAEVzD,KAAK+8H,OAAOP,QAAU,CACpB,eAAgB/4H,EAAKg6H,UACrB,YAAah6H,EAAK8zH,QAEpB,GAAO9zH,WAEH,YAAAi6H,OAAN,W,gGACE,OAAK19H,KAAKg9H,aAGK,GAAMh9H,KAAK85H,KAAK,SAAU,IAAI,IAF3C,GAAO,M,OAKT,OAHMr8G,EAAS,SACfzd,KAAKu3H,OAAS,GACdv3H,KAAKg9H,aAAe,KACpB,GAAOv/G,WAMT,YAAAkgH,eAAA,SACDt/G,EACAi6G,EACA/9H,GAEG,OAAO,IAAI,EAAAqjI,QAAQv/G,EAAO,GAAIi6G,IAAG,EAAEuF,OAAQvF,GAAQ/9H,KAEvD,EAxHA,CAAiC,EAAAmlD,c,+cC1JjC,MACE,SAAarhC,EAA4B,GAAE,IAAAy/G,EAAa,gBAAKC,EAAM,IAA1B,mBAChB,iBAAZ1/G,EACTvjB,OAAOyM,OAAOvH,KAAM,CAAEs6B,IAAKjc,GAAW0/G,GAEtCjjI,OAAOyM,OAAOvH,KAAMqe,EAAS0/G,GAE3BD,IACF99H,KAAKg+H,IAAM,CAAE18H,EAAGw8H,KART,EAAAF,W,iGC8Cb,SAAYxG,GACX,cACA,YAFD,CAAY,EAAAA,YAAA,EAAAA,UAAS,M,q2FCrDrB,iBACA,SAEA,SAGA,EAAA13E,aAAa3kD,UAAUyxB,mBAAqB,SAAUpe,GAMpD,OALIA,EACFpO,KAAKu9D,WAAWnvD,GAAS,GAEzBpO,KAAKu9D,WAAa,GAEb,IAGT,cAkBA,UACA,UAGA,cAeE,WACEzhE,EACOooH,QAAA,IAAAA,MAAA,MAFT,MAIE,cAAO,K,OAFA,EAAAA,SAhBT,EAAA+Z,KAAO,EAEP,EAAAC,SAAWhjI,KAAKgqF,MAChB,EAAAi5C,cAAiD,GACjD,EAAA/pB,SAAoC,GAsCpC,EAAAoiB,KAAO,SAAC4H,GACN,YADM,IAAAA,MAAa,EAAKnnC,OAAOonC,QACxB,IAAIn0G,SAAQ,SAAO1e,EAAS20C,GAAM,qC,+DAGvC,OADAngD,KAAKk+H,SAAWhjI,KAAKgqF,MACrB,GAAMllF,KAAK02H,S,OAAX,SACI12H,KAAKs+H,gBAAgBC,cAAcv+H,KAAKs+H,gBAC5Ct+H,KAAKs+H,eAAiBE,aAAY,WAChC,OAAQ,EAAKC,SAAW,EAAKJ,WAC5BD,GACH,KACEM,EAAa,IAAI,UAAU1+H,KAAKq8H,OACrBvkC,QAAU33C,EACrB,MAAOnhD,GAEP,OADAgB,KAAK++C,OAAO7zC,MAAMlM,GAClB,GAAOmhD,EAAOnhD,I,OAEhBgB,KAAK0+H,WAAaA,EAClB1+H,KAAK0+H,WAAWC,UAAY3+H,KAAKm4H,UAAUlmH,KAAKjS,MAChDA,KAAK0+H,WAAW3mC,QAAU/3F,KAAK4+H,QAAQ3sH,KAAKjS,MAC5CA,KAAK0+H,WAAWG,OAAS7+H,KAAK8+H,OAAO7sH,KAAKjS,KAAMwL,G,eAKpD,EAAAszH,OAAS,SAAOrtH,GAAkB,qC,+DACd,SAAMzR,KAAK2nD,KAAK,CAChCrtB,IAAK,UACL/oB,QAAS,IACTwtH,QAAS,CAAC,IAAK,OAAQ,W,cAHnBC,EAAY,SAKlBh/H,KAAKi/H,QAAUD,EAAUC,QACzBj/H,KAAKk/H,OAAOC,OAAM,SAACngI,GAAQ,SAAK+/C,OAAO7zC,MAAM,gCAAgClM,EAAlD,YAC3BgB,KAAKysB,KAAK,QACNzsB,KAAKkkH,OAAQ,GAAMlkH,KAAKy5H,MAAMz5H,KAAKkkH,SAAnC,M,OAAa,S,iBACjB,SAAOzyG,EAASzR,KAAK0+H,qBAIvB,EAAAE,QAAU,SAAC57H,GACT,IAEE,GADA,EAAKypB,KAAK,QAASzpB,GACJ,MAAXA,EAAEgW,KACJ,OAAO,EAAKqlH,SAER,EAAKC,gBAAgBC,cAAc,EAAKD,gBAC5C,EAAKc,aAAeljH,aAAa,EAAKkjH,aACtC,EAAKC,aAAenjH,aAAa,EAAKmjH,oBAC/B,EAAKX,WAEd,EAAK3/E,OAAOuvC,KAAK,gBAAgBtrF,EAAEgW,KAAI,KAAKhW,EAAEs8H,QAE9C,MAAOp0H,GACP,EAAK6zC,OAAO7zC,MAAMA,KAUtB,EAAAitH,UAAY,SAACn1H,GACX,EAAKk7H,SAAWhjI,KAAKgqF,MAChB,EAAKg6C,OACV,IAAMz7H,EAAQT,EAAES,KAAQiuD,KAAKxvD,MAAMc,EAAES,WAAQjF,EAE7C,GADA,EAAKugD,OAAOC,MAAMv7C,IACbA,EAAM,OAAO,EAAKs7C,OAAO7zC,MAAM,2BAA2BlI,EAAEmC,SACjE,EAAK45C,OAAOC,MAAM,4BAA4Bh8C,EAAES,MAC5CA,EAAK87H,YAAY,EAAK9yG,KAAKhpB,EAAK87H,WAAY97H,GAC5CA,EAAK62B,KAAK,EAAK7N,KAAKhpB,EAAK62B,IAAK72B,IAIpC,EAAAizH,MAAQ,gD,oEACF12H,KAAKg/H,WACPh/H,KAAK+3H,iBAAiBoH,OAAM,SAAAn8H,GAAK,SAAK+7C,OAAOC,MAAZ,MACjC,GAAM,IAAI90B,SAAQ,SAAC1e,GACjB,GAAI,EAAKkzH,WAGP,OAFA,EAAKpyG,KAAK,QAAS9gB,QACnB,EAAKkzH,WAAWhI,MAAM,IAAM,iBAI/ByI,MAAMn/H,KAAK++C,OAAO7zC,SATjB,M,OAEF,S,iBASF,SAAOgf,QAAQ1e,mBAIjB,EAAA6yH,OAAS,gD,6DACP,OAAIr+H,KAAKo/H,YAAa,IACtB,GAAMp/H,KAAK02H,S,cAAX,SACA12H,KAAKo/H,YAAc9iH,YAAW,gD,6DAE5B,cADOtc,KAAKo/H,YACZ,GAAMp/H,KAAKw2H,OACR2I,OAAM,SAACngI,GAAQ,SAAK+/C,OAAO7zC,MAAM,uBAAuBlM,EAAzC,a,cADlB,S,aAECgB,KAAKi3F,OAAOonC,Q,YA4BjB,EAAA12E,KAAO,SAAOnoD,GAAQ,qC,sCACpB,SAAO,IAAI0qB,SAAQ,SAAC1e,EAAS20C,GAC3B,IAAK,EAAKu+E,WAAY,MAAM,IAAIpjI,MAAM,yCACtC,IAAM04H,EAAKx0H,EAAIw0H,IAAM,OAAQ,EAAKiK,KAClC,EAAKA,MAAQ,EACb,IAAMx6H,EAAO,EAAH,KAAQjE,GAAS,oBAAoB5B,KAAK4B,EAAI86B,KAAO,GAAK,CAAE05F,GAAE,IAClEwL,EAAa9tE,KAAK5wD,UAAU2C,GAClC,EAAKs7C,OAAOC,MAAM,0BAA0BwgF,GAC5C,EAAKd,WAAW/2E,KAAK63E,GAErB,EAAKlzG,KAAK,eAAgB6zB,GAC1B,IAAMN,GAAyB,SAAbp8C,EAAK62B,IAAkB,OAAyB,YAAb72B,EAAK62B,KAAqB,cAAgB72B,EAAKuwH,GACpG,IAAKn0E,EACH,OAAOr0C,IAET,EAAK8gB,KAAKuzB,GAAU,SAACpiC,GAEnB,OADA,EAAK0E,IAAI,aAAcg+B,GACf1iC,EAAOvS,MAAQi1C,EAAO1iC,EAAOvS,OAASM,EAAQ,EAAD,KAAO,oBAAoB5N,KAAK4B,EAAI86B,KAAO,GAAK,CAAE05F,GAAE,IAASv2G,kBAMxH,EAAAyhH,KAAO,gD,6CACLl/H,KAAKq/H,aAAenjH,aAAalc,KAAKq/H,aACtCr/H,KAAKq/H,YAAc/iH,YAAW,WAC5B,EAAKqrC,KAAK,CAAErtB,IAAK,SACdjvB,MAAK,WACJ,OAAO,EAAK6zH,UAEbC,OAAM,WAAM,uBACdn/H,KAAKi3F,OAAOioC,M,WAGjB,EAAAT,MAAQ,WACN,QAAK,EAAKP,UACFhjI,KAAKgqF,MAAQ,EAAKg5C,UAA+B,EAAnB,EAAKjnC,OAAOioC,MASpD,EAAAjkI,KAAO,SAAOglE,G,IAAgB,wD,oGACX,SAAMjgE,KAAK2nD,KAAK,CAAErtB,IAAK,SAAU2lC,OAAM,EAAEktB,OAAM,IAC7DgyC,OAAM,SAACngI,GAEN,MADA,EAAK+/C,OAAO7zC,MAAM,qBAAqBlM,EAAImG,SACrCnG,M,OAEV,UALMygI,EAAW,UAKAhiH,OAAUgiH,EAAShiH,OAASgiH,WAO/C,EAAAhG,MAAQ,SAAOR,GAAgB,qC,0DAEd,OADT9rC,EAASntF,KAAK0/H,YAAYzG,GAChC,EAAAj5H,KAAe,GAAMA,KAAK/E,KAAK,QAASkyF,I,OACxC,OADA,EAAK+2B,OAAU,SACf,GAAMlkH,KAAK2/H,gB,OAEX,OAFA,SACA3/H,KAAKysB,KAAK,QAASzsB,KAAKkkH,QACxB,GAAOlkH,KAAKkkH,gBAId,EAAAwb,YAAc,SACZzG,GAOA,OACE,EAAA2G,YAAY3G,IACZ,EAAA4G,aAAa5G,IACb,EAAA6G,qBAAqB7G,GAEdA,EAEL,EAAA8G,cAAc9G,GAC0B,CACxC/U,OAAQ+U,EAAYj6G,OAIS,CAC/BghH,KAAM,CAAEjH,SAAUE,EAAYF,UAC9BhiH,SAAU,CACRuuD,OAAQ,EAAAm0B,OAAOw/B,EAAYliH,UAC3BJ,UAAW,aAOjB,EAAA+mH,OAAS,WAEP,OADA,EAAKxZ,OAAS,KACP,EAAK6T,iBACZ1sH,MAAK,WAAM,SAAKpQ,KAAL,cAIb,EAAAglI,QAAU,SAACjM,EAAYviH,GACrB,EAAKwQ,GAAG+xG,EAAIviH,IASd,EAAA8mH,UAAY,SAACzvH,EAAcqkF,EAAe17E,GAExC,OADA,EAAKstC,OAAOuvC,KAAK,sBAAsBxlF,EAAI,YAAY4oD,KAAK5wD,UAAUqsF,IAC/D,EAAKxlC,KAAK,CAAErtB,IAAK,MAAOxxB,KAAI,EAAEqkF,OAAM,IACxC9hF,MAAK,SAACoS,GACL,IAAMu2G,EAAMv2G,EAAOyiH,KAAQziH,EAAOyiH,KAAK,QAAK1hI,EACtCq5H,EAAc,EAAKA,YAAY5lH,KAAK,EAAM+hH,GAC1CiM,EAAU,EAAKA,QAAQhuH,KAAK,EAAMnJ,GAClCgvH,EAAe,CAAE9D,GAAE,EAAElrH,KAAI,EAAEqkF,OAAM,EAAE0qC,YAAW,EAAEoI,QAAO,GAG7D,OAFIxuH,GAAUqmH,EAAamI,QAAQxuH,GACnC,EAAK0sH,cAAcnK,GAAM8D,EAClBA,KAERqH,OAAM,SAACngI,GAEN,MADA,EAAK+/C,OAAO7zC,MAAM,0BAA0BlM,EAAImG,SAC1CnG,MAKZ,EAAA2gI,aAAe,WACb,IAAMxB,EAAgBrjI,OAAO0d,KAAK,EAAK2lH,eAAiB,IAAIj0H,KAAI,SAACzM,GACzD,MAAmB,EAAK0gI,cAAc1gI,GAApCqL,EAAI,OAAEqkF,EAAM,SACpB,OAAO,EAAKorC,UAAUzvH,EAAMqkF,MAE9B,OAAOjjE,QAAQiqF,IAAIgqB,IAIrB,EAAAtG,YAAc,SAAC7D,GACb,OAAK,EAAKmK,cAAcnK,WACjB,EAAKmK,cAAcnK,GACnB,EAAKrsE,KAAK,CAAErtB,IAAK,QAAS05F,GAAE,IAChC3oH,MAAK,SAAC5H,GAAc,OAAAA,EAAKga,QAAUha,EAAf,QACpB07H,OAAM,SAACngI,GACN,IAAKA,EAAIs7B,KAAmB,UAAZt7B,EAAIs7B,IAElB,MADA,EAAKykB,OAAO7zC,MAAM,4BAA4BlM,EAAImG,SAC5CnG,MAPwBkrB,QAAQi2B,OAAO6zE,IAarD,EAAA+D,eAAiB,WACf,IAAMoI,EAAWrlI,OAAO0d,KAAK,EAAK2lH,eAAej0H,KAAI,SAAC8pH,GACpD,OAAO,EAAKmK,cAAcnK,GAAI6D,iBAEhC,OAAO3tG,QAAQiqF,IAAIgsB,GAChB90H,MAAK,WAAM,SAAK8yH,cAAL,OAvTd,EAAKp/E,OAASjjD,EAAQijD,QAAU,SAChC,EAAKk4C,OAAS,CACZolC,KAAMvgI,EAAQugI,MAAQ,wBACtB+D,OAAQtkI,EAAQskI,SAAU,EAC1B/B,OAAQviI,EAAQuiI,QAAU,IAC1Ba,KAAMpjI,EAAQqgB,SAAW,KAG3B,EAAKkgH,KAAU,EAAAgE,SAAS,EAAKppC,OAAOolC,KAAM,EAAKplC,OAAOmpC,QAAO,aAE7D,EAAKn+G,GAAG,QAAQ,WACd,EAAK0lC,KAAK,CAAErtB,IAAK,SAAUjvB,KAAK,EAAK0zC,OAAOC,MAAO,EAAKD,OAAO7zC,UAGjE,EAAK+W,GAAG,UAAU,SAACxe,GAAc,SAAKgpB,KAAKhpB,EAAKuwH,GAAI,CAAEA,GAAIvwH,EAAKuwH,GAAIv2G,OAAQha,EAAKga,OAAQvS,MAAOzH,EAA9D,WACjC,EAAKwe,GAAG,SAAS,SAACxe,GAAc,SAAKgpB,KAAKhpB,EAAKy8H,KAAK,GAApB,M,EA0SpC,OA7U4B,OAgJ1B,sBAAI,wBAAS,C,IAAb,WACE,SACElgI,KAAK0+H,YAC0B,IAA/B1+H,KAAK0+H,WAAW4B,aAChBtgI,KAAKy+H,U,gCAKT,sBAAI,uBAAQ,C,IAAZ,WACE,OAAQz+H,KAAKg/H,aAAeh/H,KAAKkkH,Q,gCAmLrC,EA7UA,CAA4B,EAAAxkE,cAAf,EAAA6gF,SA+Ub,kBAkCE,WAAa,sBAAE,QAAAlE,YAAI,IAAG,mBAAgB,EAAiBplC,GAAF,gBAAQ,UAAE,IAAAl4C,cAAM,IAAG,WAAM,EAAKyhF,EAAW,IAAjF,4CAAb,EACE,cAAO,K,OAZT,EAAArC,cAAiD,GAMjD,EAAA5G,OAAiB,GAGjB,EAAAkJ,UAAsB,GA8BtB,EAAA9I,QAAU,SAACxvH,GACT,QADS,IAAAA,MAAA,IACL,EAAK62H,UACP,OAAO90G,QAAQ1e,QAAQ,GAEzB,IAAMyrF,EAAM,OAAwB,EAAKA,QAAW9uF,GAEpD,OAAO,IAAI+hB,SAAQ,SAAC1e,EAAS20C,GAC3B,EAAKpB,OAAOuvC,KAAK,sBAAuB2I,GACxC,EAAKknC,cAAgB,EAAKuC,IAAIvC,cAC9B,EAAKuC,IAAIlK,OAAO2I,OAAM,SAACngI,GACrB,EAAK+/C,OAAO7zC,MAAM,+BAA+BlM,EAAImG,SACrDg7C,EAAOnhD,MAGT,EAAK0hI,IAAIz+G,GAAG,QAAQ,WAAM,SAAKwK,KAAL,gBAE1B,IAAIk0G,GAAY,EACVC,EAAmBtkH,YAAW,WAClC,EAAKyiC,OAAOuvC,KAAK,qBAAqB2I,EAAO96E,QAAO,KACpD,IAAMnd,EAAM,IAAI1D,MAAM,6BACtBqlI,GAAY,EACZ,EAAKD,IAAIl0G,mBAAmB,aAC5B2zB,EAAOnhD,KACNi4F,EAAO96E,SAILwkH,GACH,EAAKr0G,KAAK,aAAa,WAErB,GADA,EAAKyyB,OAAOuvC,KAAK,sBACbqyC,EAAW,OAAO,EAAKD,IAAIhK,QAC/Bx6G,aAAa0kH,GACbp1H,EAAQ,UAUhB,EAAAosH,WAAa,WACX,OAAO,EAAK8I,IAAIhK,SAGlB,EAAA6B,UAAY,SAACY,EAAe0H,G,IAAmB,wDAE7C,OADA,EAAK9hF,OAAOuvC,KAAK,+BAA+B6qC,EAAK,MAAMznE,KAAK5wD,UAAUvG,IACnE,EAAKmmI,IAAInI,UAAUY,EAAO,CAAC0H,EAAW,CAAE,eAAiB,EAAO,KAAQtmI,MAGjF,EAAAy9H,mBAAqB,WAEnB,OAAO9tG,QAAQiqF,IAAI,CACjB,eACA,oBACA,oBACA,eACA,0BACA,uBACAjqG,KAAI,SAAAkE,GAAS,SAAKmqH,UARN,oBAQuBnqH,GAAtB,QAGjB,EAAA6pH,sBAAwB,WAEtB,OAAO/tG,QAAQiqF,IAAI,CACjB,oBACA,gBACA,eACA,oBACA,oBACA,gBACAjqG,KAAI,SAAAkE,GAAS,SAAKmqH,UARN,uBAQuBnqH,GAAtB,QAGjB,EAAA8pH,oBAAsB,WAEpB,OAAOhuG,QAAQiqF,IAAI,CACjB,UACA,MACA,SACA,eACA,gBACA,wBACA,iBACAjqG,KAAI,SAAAkE,GAAS,SAAKmqH,UATN,qBAS0B,EAAKhB,OAAM,IAAInpH,GAAxC,QAGjB,EAAAkrH,cAAgB,SAAChB,G,IAAa,wDAC5B,IAAMa,EAAQ,qBACd,OAAOjvG,QAAQiqF,IAAI,CACjB,EAAKokB,UAAS,MAAd,EAAI,GAAW,uBAAwBD,GAAQ/9H,IAC/C,EAAKg+H,UAAS,MAAd,EAAI,GAAWY,EAAUb,EAAG,WAAc/9H,IAC1C,EAAKg+H,UAAS,MAAd,EAAI,GAAWY,EAAUb,EAAG,kBAAqB/9H,OAKrD,EAAAk/H,MAAQ,SAAOR,EAA2B1+H,GAAS,qC,+DAC5CyF,KAAK0gI,KAAQ1gI,KAAK0gI,IAAI1B,UAAvB,MACF,GAAMh/H,KAAK23H,W,OAAX,S,iBAG0B,OAD5B33H,KAAK++C,OAAOuvC,KAAK,2BAA2B58B,KAAK5wD,UAAUm4H,IAC/B,GAAMj5H,KAAK0gI,IAAIjH,MAAMR,I,OAEjD,OAFMQ,EAAsB,SAC5Bz5H,KAAKu3H,OAASkC,EAAMzF,GACpB,GAAOyF,WAET,EAAAiE,OAAS,gD,yDACH19H,KAAK0gI,KAAO1gI,KAAK0gI,IAAI1B,UACvB,GAAMh/H,KAAK0gI,IAAIhD,UADb,M,OACF,S,mCAKJ,EAAA7F,YAAc,SAACC,GACb,OAAO,EAAK4I,IAAI7I,YAAYC,EAAa9D,KAI3C,EAAA+D,eAAiB,WACf,OAAO,EAAK2I,IAAI3I,kBAGlB,EAAAS,aAAe,SAACpqH,EAAeoN,GAC7B,SAASqkC,EAAU16C,GACjBqW,EAAIrW,GAEN,OAAO+kB,QAAQ1e,QAAQ,EAAKk1H,IAAIz+G,GAAG7T,EAAOyxC,IACvCx0C,MAAK,WAAM,MAAC,CACXglH,KAAM,WAAM,SAAKqQ,IAAIv+G,IAAI/T,EAAb,SAIlB,EAAA+pH,UAAY,SAAC38G,GACX,EAAKklH,IAAIz+G,GAAG,wBAAwB,SAAC,G,IAAmB9c,EAAP,WAAA5K,KAAA,GAAc,GAAe,OAAAihB,EAAG,EAAKslH,aAAa37H,QAGrG,EAAAizH,SAAW,SAAC58G,GACV,OAAO,EAAKklH,IAAIz+G,GAAG,sBAAsB,SAAC,G,IAAY,aAAA1nB,KAAA,GAAOw+H,EAAQ,KAAEgI,EAAQ,KAC7EvlH,EAAGu9G,EAAUgI,OAIjB,EAAAjI,oBAAsB,SAACR,EAAaS,EAAkBC,EAAiBh6G,EAAe0B,GACpF,OAAO,EAAKggH,IAAIzlI,KAAK,qBAA0Bq9H,EAAG,UAAYS,EAAUC,EAAQ,CAAEh6G,MAAK,EAAE0B,KAAI,KAG/F,EAAAw4G,mBAAqB,SAACZ,GACpB,OAAO,EAAKoI,IAAIzlI,KAAK,qBAA0Bq9H,EAAG,UAAY,aAAc,CAAEmC,WAAY,cAG5F,EAAAqG,aAAe,SAAC37H,GAId,OAHIA,EAAQ8hH,KACV9hH,EAAQ8hH,GAAK,IAAI/rH,KAAKiK,EAAQ8hH,GAAG+Z,QAE5B77H,GAGT,EAAAq0H,WAAa,SAACv5D,G,UAAgB,oDAC5B,OAAO,IAAKygE,KAAIzlI,KAAI,WAACglE,GAAW1lE,KAxLhC,EAAK08F,OAAM,SACNA,GACAupC,GAAW,CACdnE,KAAMA,EAAKtsH,QAAQ,gBAAiB,IACpCoM,QAAS,MAMX,EAAKukH,IAAM,IAAIH,EAAM,OAAM,EAAKtpC,QAAM,CAAEl4C,OAAM,KAC9C,EAAKA,OAASA,E,EA+KlB,OA/N+B,OAoG7B,sBAAI,wBAAS,C,IAAb,WACE,QAAS/+C,KAAK0gI,IAAI1B,W,gCA0HtB,EA/NA,CAA+B,EAAAt/E,cAAlB,EAAAg4E,a,6BCvXbv7H,EAAOT,QAAUulI,W,yJCiFjB,uBAA6B9zC,GAC3B,OACEA,EAAO6yC,MACP7yC,EAAOp2E,eACkBvY,IAAzB2uF,EAAO6yC,KAAKjH,eACev6H,IAA3B2uF,EAAOp2E,SAASuuD,QAUpB,wBAA8B6nB,GAC5B,OACEA,EAAO+zC,WACoB1iI,IAA3B2uF,EAAOg0C,sBACqB3iI,IAA5B2uF,EAAOi0C,kBAUX,gCAAsCj0C,GACpC,YAA0B3uF,IAAlB2uF,EAAO+2B,QA+BjB,yBAA+B/2B,GAC7B,YAAyB3uF,IAAjB2uF,EAAOnuE,Q,2GC7IjB,oBACEqiH,EACAC,EACAC,GAEA,IAAIplH,EACJ,YAJA,IAAAmlH,MAAA,UACA,IAAAC,OAAA,GAGO,W,IAAqB,sDAC1B,IAAM5iI,EAAOqB,KACPwhI,EAAU,WACdrlH,OAAU3d,EACL+iI,GAAWF,EAAKjhI,MAAMzB,EAAMpE,IAE7BknI,EAAUF,QAAyB/iI,IAAZ2d,EACzBA,GAASD,aAAaC,GAC1BA,EAAUG,WAAWklH,EAASF,GAC1BG,GAASJ,EAAKjhI,MAAMzB,EAAMpE,KAKlC,oBAA0B8hI,EAAcqF,GAEtC,YAFsC,IAAAA,OAAA,GAE/B,MAAKA,EAAM,IAAM,IAAE,OAD1BrF,EAAOA,EAAKtsH,QAAQ,kBAAmB,O;;;;;;;;IChBzC,WACE,aAEA,IAAI4xH,MAAQ,wBACRC,OAA2B,YAAlB,oBAAOljI,OAAP,oBAAOA,SAChBugH,KAAO2iB,OAASljI,OAAS,GACzBugH,KAAK4iB,sBACPD,QAAS,GAEX,IAAIE,YAAcF,QAA0B,YAAhB,oBAAOjjI,KAAP,oBAAOA,OAC/BojI,SAAW9iB,KAAK+iB,sBAA2C,iBAAnB,IAAOjuH,QAAP,oBAAOA,WAAwBA,QAAQqY,UAAYrY,QAAQqY,SAAShgB,KAC5G21H,QACF9iB,KAAOngH,OACEgjI,aACT7iB,KAAOtgH,MAET,IAAIsjI,WAAahjB,KAAKijB,wBAA4C,WAAlB,QAAO/lI,SAAuBA,OAAOT,QACjFymI,IAAsC58H,yBACtC68H,cAAgBnjB,KAAKojB,2BAAoD,oBAAhB10G,YACzD20G,UAAY,mBAAmBzkH,MAAM,IACrC0kH,MAAQ,EAAE,WAAY,QAAS,MAAO,KACtCC,MAAQ,CAAC,GAAI,GAAI,EAAG,GACpBh3D,EAAI,CACN,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAElFi3D,aAAe,CAAC,MAAO,QAAS,SAAU,eAE1CC,OAAS,IAETzjB,KAAK+iB,sBAAyBvyH,MAAMC,UACtCD,MAAMC,QAAU,SAAUlQ,GACxB,MAA+C,mBAAxC1E,OAAOC,UAAUC,SAASC,KAAKuE,MAItC4iI,eAAiBnjB,KAAK0jB,mCAAsCh1G,YAAYe,SAC1Ef,YAAYe,OAAS,SAAUlvB,GAC7B,MAAsB,WAAf,QAAOA,IAAoBA,EAAI8G,QAAU9G,EAAI8G,OAAOL,cAAgB0nB,cAI/E,IAAIi1G,mBAAqB,SAAUC,EAAYC,GAC7C,OAAO,SAAU39H,GACf,OAAO,IAAIuiH,OAAOob,GAAO,GAAMj+H,OAAOM,GAAS09H,OAI/CE,aAAe,SAAUD,GAC3B,IAAI7iE,EAAS2iE,mBAAmB,MAAOE,GACnCf,UACF9hE,EAAS+iE,SAAS/iE,EAAQ6iE,IAE5B7iE,EAAO3gE,OAAS,WACd,OAAO,IAAIooH,OAAOob,IAEpB7iE,EAAOp7D,OAAS,SAAUM,GACxB,OAAO86D,EAAO3gE,SAASuF,OAAOM,IAEhC,IAAK,IAAI7D,EAAI,EAAGA,EAAImhI,aAAajoI,SAAU8G,EAAG,CAC5C,IAAI4H,EAAOu5H,aAAanhI,GACxB2+D,EAAO/2D,GAAQ05H,mBAAmB15H,EAAM45H,GAE1C,OAAO7iE,GAGL+iE,SAAW,SAAXA,SAAqB/iE,OAAQ6iE,OAC/B,IAAIrkI,OAASwkI,KAAK,qBACd18H,OAAS08H,KAAK,4BACdtsH,UAAYmsH,MAAQ,SAAW,SAC/BI,WAAa,SAAU/9H,GACzB,GAAuB,iBAAZA,EACT,OAAO1G,OAAO82H,WAAW5+G,WAAW9R,OAAOM,EAAS,QAAQmgE,OAAO,OAEnE,GAAIngE,QACF,MAAM,IAAI7J,MAAMqmI,OAKpB,OAJax8H,EAAQc,cAAgB0nB,cACjCxoB,EAAU,IAAIsoB,WAAWtoB,IAGzBsK,MAAMC,QAAQvK,IAAYwoB,YAAYe,OAAOvpB,IAC/CA,EAAQc,cAAgBM,OACjB9H,OAAO82H,WAAW5+G,WAAW9R,OAAO,IAAI0B,OAAOpB,IAAUmgE,OAAO,OAEhErF,OAAO96D,IAGlB,OAAO+9H,YAGLC,uBAAyB,SAAUN,EAAYC,GACjD,OAAO,SAAUrlI,EAAK0H,GACpB,OAAO,IAAIi+H,WAAW3lI,EAAKqlI,GAAO,GAAMj+H,OAAOM,GAAS09H,OAIxDQ,iBAAmB,SAAUP,GAC/B,IAAI7iE,EAASkjE,uBAAuB,MAAOL,GAC3C7iE,EAAO3gE,OAAS,SAAU7B,GACxB,OAAO,IAAI2lI,WAAW3lI,EAAKqlI,IAE7B7iE,EAAOp7D,OAAS,SAAUpH,EAAK0H,GAC7B,OAAO86D,EAAO3gE,OAAO7B,GAAKoH,OAAOM,IAEnC,IAAK,IAAI7D,EAAI,EAAGA,EAAImhI,aAAajoI,SAAU8G,EAAG,CAC5C,IAAI4H,EAAOu5H,aAAanhI,GACxB2+D,EAAO/2D,GAAQi6H,uBAAuBj6H,EAAM45H,GAE9C,OAAO7iE,GAGT,SAASynD,OAAOob,EAAOQ,GACjBA,GACFZ,OAAO,GAAKA,OAAO,IAAMA,OAAO,GAAKA,OAAO,GAAKA,OAAO,GACtDA,OAAO,GAAKA,OAAO,GAAKA,OAAO,GAAKA,OAAO,GAC3CA,OAAO,GAAKA,OAAO,GAAKA,OAAO,IAAMA,OAAO,IAC5CA,OAAO,IAAMA,OAAO,IAAMA,OAAO,IAAMA,OAAO,IAAM,EACtD1iI,KAAK0iI,OAASA,QAEd1iI,KAAK0iI,OAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAG7DI,GACF9iI,KAAKujI,GAAK,WACVvjI,KAAKwjI,GAAK,UACVxjI,KAAKyjI,GAAK,UACVzjI,KAAK0jI,GAAK,WACV1jI,KAAK2jI,GAAK,WACV3jI,KAAK4jI,GAAK,WACV5jI,KAAK6jI,GAAK,WACV7jI,KAAK8jI,GAAK,aAEV9jI,KAAKujI,GAAK,WACVvjI,KAAKwjI,GAAK,WACVxjI,KAAKyjI,GAAK,WACVzjI,KAAK0jI,GAAK,WACV1jI,KAAK2jI,GAAK,WACV3jI,KAAK4jI,GAAK,WACV5jI,KAAK6jI,GAAK,UACV7jI,KAAK8jI,GAAK,YAGZ9jI,KAAKgV,MAAQhV,KAAK6e,MAAQ7e,KAAKozB,MAAQpzB,KAAK+jI,OAAS,EACrD/jI,KAAKgkI,UAAYhkI,KAAKikI,QAAS,EAC/BjkI,KAAKg/F,OAAQ,EACbh/F,KAAK8iI,MAAQA,EA4Qf,SAASM,WAAW3lI,EAAKqlI,EAAOQ,GAC9B,IAAIhiI,EAAG4H,EAAO,QAAOzL,GACrB,GAAa,WAATyL,EAAmB,CACrB,IAAgD8P,EAA5Coa,EAAQ,GAAI54B,EAASiD,EAAIjD,OAAQwP,EAAQ,EAC7C,IAAK1I,EAAI,EAAGA,EAAI9G,IAAU8G,GACxB0X,EAAOvb,EAAImF,WAAWtB,IACX,IACT8xB,EAAMppB,KAAWgP,EACRA,EAAO,MAChBoa,EAAMppB,KAAY,IAAQgP,GAAQ,EAClCoa,EAAMppB,KAAY,IAAe,GAAPgP,GACjBA,EAAO,OAAUA,GAAQ,OAClCoa,EAAMppB,KAAY,IAAQgP,GAAQ,GAClCoa,EAAMppB,KAAY,IAASgP,GAAQ,EAAK,GACxCoa,EAAMppB,KAAY,IAAe,GAAPgP,IAE1BA,EAAO,QAAoB,KAAPA,IAAiB,GAA6B,KAAtBvb,EAAImF,aAAatB,IAC7D8xB,EAAMppB,KAAY,IAAQgP,GAAQ,GAClCoa,EAAMppB,KAAY,IAASgP,GAAQ,GAAM,GACzCoa,EAAMppB,KAAY,IAASgP,GAAQ,EAAK,GACxCoa,EAAMppB,KAAY,IAAe,GAAPgP,GAG9Bvb,EAAM21B,MACD,CACL,GAAa,WAATlqB,EAWF,MAAM,IAAI5N,MAAMqmI,OAVhB,GAAY,OAARlkI,EACF,MAAM,IAAInC,MAAMqmI,OACX,GAAIS,cAAgB3kI,EAAIwI,cAAgB0nB,YAC7ClwB,EAAM,IAAIgwB,WAAWhwB,QAChB,KAAKgS,MAAMC,QAAQjS,IACnB2kI,cAAiBz0G,YAAYe,OAAOjxB,IACvC,MAAM,IAAInC,MAAMqmI,OAQpBlkI,EAAIjD,OAAS,KACfiD,EAAO,IAAIiqH,OAAOob,GAAO,GAAOj+H,OAAOpH,GAAKF,SAG9C,IAAI2mI,EAAU,GAAIC,EAAU,GAC5B,IAAK7iI,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACvB,IAAIqG,EAAIlK,EAAI6D,IAAM,EAClB4iI,EAAQ5iI,GAAK,GAAOqG,EACpBw8H,EAAQ7iI,GAAK,GAAOqG,EAGtB+/G,OAAOzsH,KAAK+E,KAAM8iI,EAAOQ,GAEzBtjI,KAAK6E,OAAOs/H,GACZnkI,KAAKkkI,QAAUA,EACflkI,KAAKmlB,OAAQ,EACbnlB,KAAKsjI,aAAeA,EAjUtB5b,OAAO3sH,UAAU8J,OAAS,SAAUM,GAClC,IAAInF,KAAKgkI,UAAT,CAGA,IAAII,EAAWl7H,EAAO,QAAO/D,GAC7B,GAAa,WAAT+D,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAM,IAAI5N,MAAMqmI,OAVhB,GAAgB,OAAZx8H,EACF,MAAM,IAAI7J,MAAMqmI,OACX,GAAIS,cAAgBj9H,EAAQc,cAAgB0nB,YACjDxoB,EAAU,IAAIsoB,WAAWtoB,QACpB,KAAKsK,MAAMC,QAAQvK,IACnBi9H,cAAiBz0G,YAAYe,OAAOvpB,IACvC,MAAM,IAAI7J,MAAMqmI,OAMtByC,GAAY,EAId,IAFA,IAAIprH,EAAiB1X,EAAX0I,EAAQ,EAAMxP,EAAS2K,EAAQ3K,OAAQkoI,EAAS1iI,KAAK0iI,OAExD14H,EAAQxP,GAAQ,CAUrB,GATIwF,KAAKikI,SACPjkI,KAAKikI,QAAS,EACdvB,EAAO,GAAK1iI,KAAKgV,MACjB0tH,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC1CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC3CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAC5CA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAM,GAGpD0B,EACF,IAAK9iI,EAAItB,KAAK6e,MAAO7U,EAAQxP,GAAU8G,EAAI,KAAM0I,EAC/C04H,EAAOphI,GAAK,IAAM6D,EAAQ6E,IAAUw4H,MAAY,EAANlhI,UAG5C,IAAKA,EAAItB,KAAK6e,MAAO7U,EAAQxP,GAAU8G,EAAI,KAAM0I,GAC/CgP,EAAO7T,EAAQvC,WAAWoH,IACf,IACT04H,EAAOphI,GAAK,IAAM0X,GAAQwpH,MAAY,EAANlhI,KACvB0X,EAAO,MAChB0pH,EAAOphI,GAAK,KAAO,IAAQ0X,GAAQ,IAAOwpH,MAAY,EAANlhI,KAChDohI,EAAOphI,GAAK,KAAO,IAAe,GAAP0X,IAAiBwpH,MAAY,EAANlhI,MACzC0X,EAAO,OAAUA,GAAQ,OAClC0pH,EAAOphI,GAAK,KAAO,IAAQ0X,GAAQ,KAAQwpH,MAAY,EAANlhI,KACjDohI,EAAOphI,GAAK,KAAO,IAAS0X,GAAQ,EAAK,KAAUwpH,MAAY,EAANlhI,KACzDohI,EAAOphI,GAAK,KAAO,IAAe,GAAP0X,IAAiBwpH,MAAY,EAANlhI,OAElD0X,EAAO,QAAoB,KAAPA,IAAiB,GAAqC,KAA9B7T,EAAQvC,aAAaoH,IACjE04H,EAAOphI,GAAK,KAAO,IAAQ0X,GAAQ,KAAQwpH,MAAY,EAANlhI,KACjDohI,EAAOphI,GAAK,KAAO,IAAS0X,GAAQ,GAAM,KAAUwpH,MAAY,EAANlhI,KAC1DohI,EAAOphI,GAAK,KAAO,IAAS0X,GAAQ,EAAK,KAAUwpH,MAAY,EAANlhI,KACzDohI,EAAOphI,GAAK,KAAO,IAAe,GAAP0X,IAAiBwpH,MAAY,EAANlhI,MAKxDtB,KAAKqkI,cAAgB/iI,EACrBtB,KAAKozB,OAAS9xB,EAAItB,KAAK6e,MACnBvd,GAAK,IACPtB,KAAKgV,MAAQ0tH,EAAO,IACpB1iI,KAAK6e,MAAQvd,EAAI,GACjBtB,KAAK85B,OACL95B,KAAKikI,QAAS,GAEdjkI,KAAK6e,MAAQvd,EAOjB,OAJItB,KAAKozB,MAAQ,aACfpzB,KAAK+jI,QAAU/jI,KAAKozB,MAAQ,YAAc,EAC1CpzB,KAAKozB,MAAQpzB,KAAKozB,MAAQ,YAErBpzB,OAGT0nH,OAAO3sH,UAAUgK,SAAW,WAC1B,IAAI/E,KAAKgkI,UAAT,CAGAhkI,KAAKgkI,WAAY,EACjB,IAAItB,EAAS1iI,KAAK0iI,OAAQphI,EAAItB,KAAKqkI,cACnC3B,EAAO,IAAM1iI,KAAKgV,MAClB0tH,EAAOphI,GAAK,IAAMihI,MAAU,EAAJjhI,GACxBtB,KAAKgV,MAAQ0tH,EAAO,IAChBphI,GAAK,KACFtB,KAAKikI,QACRjkI,KAAK85B,OAEP4oG,EAAO,GAAK1iI,KAAKgV,MACjB0tH,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC1CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC3CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAC5CA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAM,GAExDA,EAAO,IAAM1iI,KAAK+jI,QAAU,EAAI/jI,KAAKozB,QAAU,GAC/CsvG,EAAO,IAAM1iI,KAAKozB,OAAS,EAC3BpzB,KAAK85B,SAGP4tF,OAAO3sH,UAAU++B,KAAO,WACtB,IACqCt4B,EAAGulF,EAAIC,EAAIhN,EAAKE,EAAYoqD,EAAIC,EAAIC,EAAIC,EADzE/8H,EAAI1H,KAAKujI,GAAI57H,EAAI3H,KAAKwjI,GAAIr7H,EAAInI,KAAKyjI,GAAIpqG,EAAIr5B,KAAK0jI,GAAI1gI,EAAIhD,KAAK2jI,GAAI9mH,EAAI7c,KAAK4jI,GAAIvyF,EAAIrxC,KAAK6jI,GACzFv0F,EAAItvC,KAAK8jI,GAAIpB,EAAS1iI,KAAK0iI,OAE7B,IAAKlhI,EAAI,GAAIA,EAAI,KAAMA,EAGrBulF,IADA7M,EAAKwoD,EAAOlhI,EAAI,OACF,EAAM04E,GAAM,KAASA,IAAO,GAAOA,GAAM,IAAQA,IAAO,EAEtE8M,IADA9M,EAAKwoD,EAAOlhI,EAAI,MACF,GAAO04E,GAAM,KAASA,IAAO,GAAOA,GAAM,IAAQA,IAAO,GACvEwoD,EAAOlhI,GAAKkhI,EAAOlhI,EAAI,IAAMulF,EAAK27C,EAAOlhI,EAAI,GAAKwlF,GAAM,EAI1D,IADAy9C,EAAK98H,EAAIQ,EACJ3G,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACnBxB,KAAKg/F,OACHh/F,KAAK8iI,OACPwB,EAAK,OAELh1F,GADA4qC,EAAKwoD,EAAO,GAAK,YACR,WAAa,EACtBrpG,EAAI6gD,EAAK,UAAY,IAErBoqD,EAAK,UAELh1F,GADA4qC,EAAKwoD,EAAO,GAAK,WACR,YAAc,EACvBrpG,EAAI6gD,EAAK,WAAa,GAExBl6E,KAAKg/F,OAAQ,IAEbjY,GAAOr/E,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAG9EsyE,GADAsqD,EAAK58H,EAAIC,GACGD,EAAIS,EAAKs8H,EAIrBn1F,EAAIjW,GAFJ6gD,EAAK5qC,GAJL03C,GAAOhkF,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAGxEA,EAAI6Z,GAAO7Z,EAAIquC,GACFm6B,EAAEhqE,GAAKkhI,EAAOlhI,KAEnB,EACd63B,EAAI6gD,GAFC6M,EAAK/M,IAEK,GAEjB+M,GAAO1tD,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAG9E2gD,GADAuqD,EAAKlrG,EAAI3xB,GACG2xB,EAAI1xB,EAAK28H,EAIrBjzF,EAAIlpC,GAFJ+xE,EAAK7oC,GAJL21C,GAAO13C,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAGxEA,EAAItsC,GAAOssC,EAAIzyB,GACF2uD,EAAEhqE,EAAI,GAAKkhI,EAAOlhI,EAAI,KAE3B,EAEdulF,IADA5+E,EAAI+xE,GAFC6M,EAAK/M,IAEK,KACF,EAAM7xE,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAG9E6xE,GADAwqD,EAAKr8H,EAAIkxB,GACGlxB,EAAIT,EAAK68H,EAIrB1nH,EAAIlV,GAFJuyE,EAAKr9D,GAJLmqE,GAAO31C,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAGxEA,EAAI/B,GAAO+B,EAAIruC,GACFwoE,EAAEhqE,EAAI,GAAKkhI,EAAOlhI,EAAI,KAE3B,EAEdulF,IADAp/E,EAAIuyE,GAFC6M,EAAK/M,IAEK,KACF,EAAMryE,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAG9EqyE,GADAyqD,EAAK98H,EAAIQ,GACGR,EAAI0xB,EAAKmrG,EAIrBxhI,EAAI0E,GAFJwyE,EAAKl3E,GAJLgkF,GAAOnqE,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAGxEA,EAAIw0B,GAAOx0B,EAAIyyB,GACFk8B,EAAEhqE,EAAI,GAAKkhI,EAAOlhI,EAAI,KAE3B,EACdkG,EAAIwyE,GAFC6M,EAAK/M,IAEK,EAGjBh6E,KAAKujI,GAAKvjI,KAAKujI,GAAK77H,GAAK,EACzB1H,KAAKwjI,GAAKxjI,KAAKwjI,GAAK77H,GAAK,EACzB3H,KAAKyjI,GAAKzjI,KAAKyjI,GAAKt7H,GAAK,EACzBnI,KAAK0jI,GAAK1jI,KAAK0jI,GAAKrqG,GAAK,EACzBr5B,KAAK2jI,GAAK3jI,KAAK2jI,GAAK3gI,GAAK,EACzBhD,KAAK4jI,GAAK5jI,KAAK4jI,GAAK/mH,GAAK,EACzB7c,KAAK6jI,GAAK7jI,KAAK6jI,GAAKxyF,GAAK,EACzBrxC,KAAK8jI,GAAK9jI,KAAK8jI,GAAKx0F,GAAK,GAG3Bo4E,OAAO3sH,UAAU2pI,IAAM,WACrB1kI,KAAK+E,WAEL,IAAIw+H,EAAKvjI,KAAKujI,GAAIC,EAAKxjI,KAAKwjI,GAAIC,EAAKzjI,KAAKyjI,GAAIC,EAAK1jI,KAAK0jI,GAAIC,EAAK3jI,KAAK2jI,GAAIC,EAAK5jI,KAAK4jI,GAClFC,EAAK7jI,KAAK6jI,GAAIC,EAAK9jI,KAAK8jI,GAEtBY,EAAMpC,UAAWiB,GAAM,GAAM,IAAQjB,UAAWiB,GAAM,GAAM,IAC9DjB,UAAWiB,GAAM,GAAM,IAAQjB,UAAWiB,GAAM,GAAM,IACtDjB,UAAWiB,GAAM,GAAM,IAAQjB,UAAWiB,GAAM,EAAK,IACrDjB,UAAWiB,GAAM,EAAK,IAAQjB,UAAe,GAALiB,GACxCjB,UAAWkB,GAAM,GAAM,IAAQlB,UAAWkB,GAAM,GAAM,IACtDlB,UAAWkB,GAAM,GAAM,IAAQlB,UAAWkB,GAAM,GAAM,IACtDlB,UAAWkB,GAAM,GAAM,IAAQlB,UAAWkB,GAAM,EAAK,IACrDlB,UAAWkB,GAAM,EAAK,IAAQlB,UAAe,GAALkB,GACxClB,UAAWmB,GAAM,GAAM,IAAQnB,UAAWmB,GAAM,GAAM,IACtDnB,UAAWmB,GAAM,GAAM,IAAQnB,UAAWmB,GAAM,GAAM,IACtDnB,UAAWmB,GAAM,GAAM,IAAQnB,UAAWmB,GAAM,EAAK,IACrDnB,UAAWmB,GAAM,EAAK,IAAQnB,UAAe,GAALmB,GACxCnB,UAAWoB,GAAM,GAAM,IAAQpB,UAAWoB,GAAM,GAAM,IACtDpB,UAAWoB,GAAM,GAAM,IAAQpB,UAAWoB,GAAM,GAAM,IACtDpB,UAAWoB,GAAM,GAAM,IAAQpB,UAAWoB,GAAM,EAAK,IACrDpB,UAAWoB,GAAM,EAAK,IAAQpB,UAAe,GAALoB,GACxCpB,UAAWqB,GAAM,GAAM,IAAQrB,UAAWqB,GAAM,GAAM,IACtDrB,UAAWqB,GAAM,GAAM,IAAQrB,UAAWqB,GAAM,GAAM,IACtDrB,UAAWqB,GAAM,GAAM,IAAQrB,UAAWqB,GAAM,EAAK,IACrDrB,UAAWqB,GAAM,EAAK,IAAQrB,UAAe,GAALqB,GACxCrB,UAAWsB,GAAM,GAAM,IAAQtB,UAAWsB,GAAM,GAAM,IACtDtB,UAAWsB,GAAM,GAAM,IAAQtB,UAAWsB,GAAM,GAAM,IACtDtB,UAAWsB,GAAM,GAAM,IAAQtB,UAAWsB,GAAM,EAAK,IACrDtB,UAAWsB,GAAM,EAAK,IAAQtB,UAAe,GAALsB,GACxCtB,UAAWuB,GAAM,GAAM,IAAQvB,UAAWuB,GAAM,GAAM,IACtDvB,UAAWuB,GAAM,GAAM,IAAQvB,UAAWuB,GAAM,GAAM,IACtDvB,UAAWuB,GAAM,GAAM,IAAQvB,UAAWuB,GAAM,EAAK,IACrDvB,UAAWuB,GAAM,EAAK,IAAQvB,UAAe,GAALuB,GAO1C,OANK7jI,KAAK8iI,QACR4B,GAAOpC,UAAWwB,GAAM,GAAM,IAAQxB,UAAWwB,GAAM,GAAM,IAC3DxB,UAAWwB,GAAM,GAAM,IAAQxB,UAAWwB,GAAM,GAAM,IACtDxB,UAAWwB,GAAM,GAAM,IAAQxB,UAAWwB,GAAM,EAAK,IACrDxB,UAAWwB,GAAM,EAAK,IAAQxB,UAAe,GAALwB,IAErCY,GAGThd,OAAO3sH,UAAUC,SAAW0sH,OAAO3sH,UAAU2pI,IAE7Chd,OAAO3sH,UAAUuqE,OAAS,WACxBtlE,KAAK+E,WAEL,IAAIw+H,EAAKvjI,KAAKujI,GAAIC,EAAKxjI,KAAKwjI,GAAIC,EAAKzjI,KAAKyjI,GAAIC,EAAK1jI,KAAK0jI,GAAIC,EAAK3jI,KAAK2jI,GAAIC,EAAK5jI,KAAK4jI,GAClFC,EAAK7jI,KAAK6jI,GAAIC,EAAK9jI,KAAK8jI,GAEtBlmH,EAAM,CACP2lH,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,EACvDC,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,EACvDC,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,EACvDC,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,EACvDC,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,EACvDC,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,EACvDC,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,GAK1D,OAHK7jI,KAAK8iI,OACRllH,EAAIhc,KAAMkiI,GAAM,GAAM,IAAOA,GAAM,GAAM,IAAOA,GAAM,EAAK,IAAW,IAALA,GAE5DlmH,GAGT8pG,OAAO3sH,UAAUwC,MAAQmqH,OAAO3sH,UAAUuqE,OAE1CoiD,OAAO3sH,UAAU4pI,YAAc,WAC7B3kI,KAAK+E,WAEL,IAAIuB,EAAS,IAAIqnB,YAAY3tB,KAAK8iI,MAAQ,GAAK,IAC3C8B,EAAW,IAAIC,SAASv+H,GAW5B,OAVAs+H,EAASE,UAAU,EAAG9kI,KAAKujI,IAC3BqB,EAASE,UAAU,EAAG9kI,KAAKwjI,IAC3BoB,EAASE,UAAU,EAAG9kI,KAAKyjI,IAC3BmB,EAASE,UAAU,GAAI9kI,KAAK0jI,IAC5BkB,EAASE,UAAU,GAAI9kI,KAAK2jI,IAC5BiB,EAASE,UAAU,GAAI9kI,KAAK4jI,IAC5BgB,EAASE,UAAU,GAAI9kI,KAAK6jI,IACvB7jI,KAAK8iI,OACR8B,EAASE,UAAU,GAAI9kI,KAAK8jI,IAEvBx9H,GA6DT88H,WAAWroI,UAAY,IAAI2sH,OAE3B0b,WAAWroI,UAAUgK,SAAW,WAE9B,GADA2iH,OAAO3sH,UAAUgK,SAAS9J,KAAK+E,MAC3BA,KAAKmlB,MAAO,CACdnlB,KAAKmlB,OAAQ,EACb,IAAIq8C,EAAYxhE,KAAKzC,QACrBmqH,OAAOzsH,KAAK+E,KAAMA,KAAK8iI,MAAO9iI,KAAKsjI,cACnCtjI,KAAK6E,OAAO7E,KAAKkkI,SACjBlkI,KAAK6E,OAAO28D,GACZkmD,OAAO3sH,UAAUgK,SAAS9J,KAAK+E,QAInC,IAAItE,QAAUqnI,eACdrnI,QAAQ+9F,OAAS/9F,QACjBA,QAAQ89F,OAASupC,cAAa,GAC9BrnI,QAAQ+9F,OAAO0J,KAAOkgC,mBACtB3nI,QAAQ89F,OAAO2J,KAAOkgC,kBAAiB,GAEnCpB,UACF9lI,OAAOT,QAAUA,SAEjBujH,KAAKxlB,OAAS/9F,QAAQ+9F,OACtBwlB,KAAKzlB,OAAS99F,QAAQ89F,OAClB2oC,MACF58H,yCACE,OAAO7J,SADH,0IAvfZ,K,4HCRAS,EAAOT,QAAU,SAAAkd,GAAG,OAAIzV,mBAAmByV,GAAK7I,QAAQ,YAAY,SAAAoiB,GAAC,iBAAQA,EAAEvvB,WAAW,GAAG5H,SAAS,IAAI6e,oB,kQCA1G,IACIkrH,EAAgB,IAAIrtH,OADZ,eAC0B,MAClCstH,EAAe,IAAIttH,OAAO,kBAAoB,MAElD,SAASutH,EAAiB1mH,EAAYV,GACrC,IAEC,OAAO/a,mBAAmByb,EAAWtc,KAAK,KACzC,MAAOjD,IAIT,GAA0B,IAAtBuf,EAAW/jB,OACd,OAAO+jB,EAGRV,EAAQA,GAAS,EAGjB,IAAI+kB,EAAOrkB,EAAWrgB,MAAM,EAAG2f,GAC3BglB,EAAQtkB,EAAWrgB,MAAM2f,GAE7B,OAAOpO,MAAM1U,UAAUgG,OAAO9F,KAAK,GAAIgqI,EAAiBriG,GAAOqiG,EAAiBpiG,IAGjF,SAAS+pD,EAAOj3C,GACf,IACC,OAAO7yC,mBAAmB6yC,GACzB,MAAO32C,GAGR,IAFA,IAAI25E,EAAShjC,EAAMx4C,MAAM4nI,GAEhBzjI,EAAI,EAAGA,EAAIq3E,EAAOn+E,OAAQ8G,IAGlCq3E,GAFAhjC,EAAQsvF,EAAiBtsD,EAAQr3E,GAAGW,KAAK,KAE1B9E,MAAM4nI,GAGtB,OAAOpvF,GAyCTx5C,EAAOT,QAAU,SAAUwpI,GAC1B,GAA0B,iBAAfA,EACV,MAAM,IAAIzqI,UAAU,sDAAwD,EAAOyqI,GAAa,KAGjG,IAIC,OAHAA,EAAaA,EAAWn1H,QAAQ,MAAO,KAGhCjN,mBAAmBoiI,GACzB,MAAOlmI,GAER,OAjDF,SAAkC22C,GAQjC,IANA,IAAIwvF,EAAa,CAChB,SAAU,KACV,SAAU,MAGPhoI,EAAQ6nI,EAAatnH,KAAKi4B,GACvBx4C,GAAO,CACb,IAECgoI,EAAWhoI,EAAM,IAAM2F,mBAAmB3F,EAAM,IAC/C,MAAO6B,GACR,IAAIye,EAASmvE,EAAOzvF,EAAM,IAEtBsgB,IAAWtgB,EAAM,KACpBgoI,EAAWhoI,EAAM,IAAMsgB,GAIzBtgB,EAAQ6nI,EAAatnH,KAAKi4B,GAI3BwvF,EAAW,OAAS,IAIpB,IAFA,IAAIC,EAAUtqI,OAAO0d,KAAK2sH,GAEjB7jI,EAAI,EAAGA,EAAI8jI,EAAQ5qI,OAAQ8G,IAAK,CAExC,IAAI7D,EAAM2nI,EAAQ9jI,GAClBq0C,EAAQA,EAAM5lC,QAAQ,IAAI2H,OAAOja,EAAK,KAAM0nI,EAAW1nI,IAGxD,OAAOk4C,EAeC0vF,CAAyBH,M,6BCzFlC/oI,EAAOT,QAAU,SAACoB,EAAQolF,GACzB,GAAwB,iBAAXplF,GAA4C,iBAAdolF,EAC1C,MAAM,IAAIznF,UAAU,iDAGrB,GAAkB,KAAdynF,EACH,MAAO,CAACplF,GAGT,IAAMwoI,EAAiBxoI,EAAO8S,QAAQsyE,GAEtC,OAAwB,IAApBojD,EACI,CAACxoI,GAGF,CACNA,EAAOoB,MAAM,EAAGonI,GAChBxoI,EAAOoB,MAAMonI,EAAiBpjD,EAAU1nF,W,cCJ1C2B,EAAOT,QAfP,SAAuCic,EAAQ4mE,GAC7C,GAAc,MAAV5mE,EAAgB,MAAO,GAC3B,IAEIla,EAAK6D,EAFLue,EAAS,GACT0lH,EAAazqI,OAAO0d,KAAKb,GAG7B,IAAKrW,EAAI,EAAGA,EAAIikI,EAAW/qI,OAAQ8G,IACjC7D,EAAM8nI,EAAWjkI,GACbi9E,EAAS3uE,QAAQnS,IAAQ,IAC7BoiB,EAAOpiB,GAAOka,EAAOla,IAGvB,OAAOoiB,GAGuC1jB,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cCfrH,SAAS8oB,EAAQhlB,GAGf,OAAQrD,EAAOT,QAAU8oB,EAAU,mBAAqBpb,QAAU,iBAAmBA,OAAOs0C,SAAW,SAAUl+C,GAC/G,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqB4J,QAAU5J,EAAIyG,cAAgBmD,QAAU5J,IAAQ4J,OAAOrO,UAAY,gBAAkByE,GACvHrD,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,QAAU8oB,EAAQhlB,GAG5FrD,EAAOT,QAAU8oB,EAASroB,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cCL/FS,EAAOT,QAAU,CACf,MAAQ,EACR,MAAQ,EACR,IAAM,EACN,KAAO,EACP,OAAS,EACT,IAAM,EACN,KAAO,EACP,OAAS,EACT,MAAQ,EACR,MAAQ,EACR,OAAS,EACT,QAAU,EACV,OAAS,EACT,KAAO,I,cCbTS,EAAOT,QANP,SAAyB2E,EAAU09B,GACjC,KAAM19B,aAAoB09B,GACxB,MAAM,IAAItjC,UAAU,sCAIU0B,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cCNvG,SAASsiC,EAAkBne,EAAQrY,GACjC,IAAK,IAAIlG,EAAI,EAAGA,EAAIkG,EAAMhN,OAAQ8G,IAAK,CACrC,IAAI28B,EAAaz2B,EAAMlG,GACvB28B,EAAW/3B,WAAa+3B,EAAW/3B,aAAc,EACjD+3B,EAAW73B,cAAe,EACtB,UAAW63B,IAAYA,EAAW93B,UAAW,GACjDrL,OAAOW,eAAeokB,EAAQoe,EAAWxgC,IAAKwgC,IAalD9hC,EAAOT,QATP,SAAsBqiC,EAAaG,EAAYC,GAM7C,OALID,GAAYF,EAAkBD,EAAYhjC,UAAWmjC,GACrDC,GAAaH,EAAkBD,EAAaI,GAChDrjC,OAAOW,eAAesiC,EAAa,YAAa,CAC9C53B,UAAU,IAEL43B,GAGsB5hC,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cCfpGS,EAAOT,QAJP,SAAyBkiB,GACvB,GAAInO,MAAMC,QAAQkO,GAAM,OAAOA,GAGCzhB,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cC0BvGS,EAAOT,QA9BP,SAA+BkiB,EAAKtc,GAClC,IAAIy3E,EAAY,MAAPn7D,EAAc,KAAyB,oBAAXxU,QAA0BwU,EAAIxU,OAAOs0C,WAAa9/B,EAAI,cAE3F,GAAU,MAANm7D,EAAJ,CACA,IAIIysD,EAAI9sC,EAJJzlE,EAAO,GACPwyG,GAAK,EACLhvC,GAAK,EAIT,IACE,IAAK1d,EAAKA,EAAG99E,KAAK2iB,KAAQ6nH,GAAMD,EAAKzsD,EAAGhjC,QAAQ95B,QAC9CgX,EAAKrxB,KAAK4jI,EAAG7pI,QAET2F,GAAK2xB,EAAKz4B,SAAW8G,GAH4BmkI,GAAK,IAK5D,MAAOzmI,GACPy3F,GAAK,EACLiC,EAAK15F,EARP,QAUE,IACOymI,GAAsB,MAAhB1sD,EAAE,QAAoBA,EAAE,SADrC,QAGE,GAAI0d,EAAI,MAAMiC,GAIlB,OAAOzlE,IAG+B92B,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,gBC9B7G,IAAI6iD,EAAmBx/C,EAAQ,MAW/B5C,EAAOT,QATP,SAAqColC,EAAGwd,GACtC,GAAKxd,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAOyd,EAAiBzd,EAAGwd,GACtD,IAAI37B,EAAI7nB,OAAOC,UAAUC,SAASC,KAAK6lC,GAAG5iC,MAAM,GAAI,GAEpD,MADU,WAANykB,GAAkBme,EAAE76B,cAAa0c,EAAIme,EAAE76B,YAAY6C,MAC7C,QAAN6Z,GAAqB,QAANA,EAAoBlT,MAAM3I,KAAKg6B,GACxC,cAANne,GAAqB,2CAA2C/kB,KAAK+kB,GAAW47B,EAAiBzd,EAAGwd,QAAxG,IAG4CniD,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cCDnHS,EAAOT,QAVP,SAA2BkiB,EAAK6N,IACnB,MAAPA,GAAeA,EAAM7N,EAAIpjB,UAAQixB,EAAM7N,EAAIpjB,QAE/C,IAAK,IAAI8G,EAAI,EAAG28C,EAAO,IAAIxuC,MAAMgc,GAAMnqB,EAAImqB,EAAKnqB,IAC9C28C,EAAK38C,GAAKsc,EAAItc,GAGhB,OAAO28C,GAG2B9hD,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,cCNzGS,EAAOT,QAJP,WACE,MAAM,IAAIjB,UAAU,8IAGa0B,EAAOT,QAAQoiC,YAAa,EAAM3hC,EAAOT,QAAP,QAA4BS,EAAOT,S,ysCCHxG,IAAMgqI,EAAU3mI,EAAQ,MAClB4mI,EAAgB5mI,EAAQ,MAExB6mI,EAAa,IAAIC,QAgDvB1pI,EAAOT,QA9CK,SAAC6N,GAAqB,IAAjBzN,EAAiB,uDAAP,GAEpBgqI,EAAYhqI,EAAQiqI,OAAS,IAAIF,QACvC,EAII/pI,EAHHkqI,gBADD,MACY,8BADZ,IAIIlqI,EAFHiqI,aAFD,MAES,IAAIp5H,IAFb,EAGCs5H,EACGnqI,EADHmqI,OAGqB,iBAAXA,GACVN,EAAcI,GAGf,IAAMG,EAAW,WAAyB,2BAAZC,EAAY,yBAAZA,EAAY,gBACzC,IAAM1oI,EAAMuoI,EAASG,GAGfC,GAAY3oI,GAAuB,WAAf,EAAOA,IAAmC,mBAARA,EAE3DsoI,EADAD,EAGD,GAAIM,EAAUjvH,IAAI1Z,GACjB,OAAO2oI,EAAU55H,IAAI/O,GAAKgG,KAG3B,IAAM4iI,EAAY98H,EAAGnJ,MAAMJ,KAAMmmI,GAOjC,OALAC,EAAUv5H,IAAIpP,EAAK,CAClBgG,KAAM4iI,EACNJ,OAAQA,EAAS/qI,KAAKgqF,MAAQ+gD,EAASzvG,MAGjC6vG,GAGR,IAGCX,EAAQQ,EAAU38H,GACjB,MAAO6kC,IAIT,OAFAw3F,EAAW/4H,IAAIq5H,EAAUH,GAElBG,GAKR/pI,EAAOT,QAAQkoH,MAAQ,SAAAr6G,GACtB,IAAKq8H,EAAWzuH,IAAI5N,GACnB,MAAM,IAAIjO,MAAM,iDAGjB,IAAMyqI,EAAQH,EAAWp5H,IAAIjD,GACF,mBAAhBw8H,EAAMniB,OAChBmiB,EAAMniB,U,quDC3DR,IAAM0iB,EAAe,SAACC,EAAIz/H,EAAMkwG,EAAUwvB,GAGzC,GAAiB,WAAbxvB,GAAsC,cAAbA,GAKZ,cAAbA,GAAyC,WAAbA,EAAhC,CAIA,IAAMyvB,EAAe3rI,OAAO6kB,yBAAyB4mH,EAAIvvB,GACnD0vB,EAAiB5rI,OAAO6kB,yBAAyB7Y,EAAMkwG,IAExD2vB,EAAgBF,EAAcC,IAAmBF,GAItD1rI,OAAOW,eAAe8qI,EAAIvvB,EAAU0vB,KAM/BC,EAAkB,SAAUF,EAAcC,GAC/C,YAAwBloI,IAAjBioI,GAA8BA,EAAargI,cACjDqgI,EAAatgI,WAAaugI,EAAevgI,UACzCsgI,EAAavgI,aAAewgI,EAAexgI,YAC3CugI,EAAargI,eAAiBsgI,EAAetgI,eAC5CqgI,EAAatgI,UAAYsgI,EAAa9qI,QAAU+qI,EAAe/qI,QAI5DirI,EAAkB,SAACL,EAAIz/H,GAC5B,IAAM+/H,EAAgB/rI,OAAOkmC,eAAel6B,GACxC+/H,IAAkB/rI,OAAOkmC,eAAeulG,IAI5CzrI,OAAOimC,eAAewlG,EAAIM,IAGrBC,EAAkB,SAACC,EAAUC,GAAX,2BAAsCD,EAAtC,eAAqDC,IAEvEC,EAAqBnsI,OAAO6kB,yBAAyBm8C,SAAS/gE,UAAW,YACzEmsI,EAAepsI,OAAO6kB,yBAAyBm8C,SAAS/gE,UAAUC,SAAU,QAK5EmsI,EAAiB,SAACZ,EAAIz/H,EAAMgC,GACjC,IAAMi+H,EAAoB,KAATj+H,EAAc,GAAd,eAA2BA,EAAK8Q,OAAhC,OACXwtH,EAAcN,EAAgB70H,KAAK,KAAM80H,EAAUjgI,EAAK9L,YAE9DF,OAAOW,eAAe2rI,EAAa,OAAQF,GAC3CpsI,OAAOW,eAAe8qI,EAAI,WAA1B,OAA0CU,GAA1C,IAA8DtrI,MAAOyrI,MAgBtEjrI,EAAOT,QAbS,SAAC6qI,EAAIz/H,GAA+C,+DAAP,GAAO,IAAxC0/H,6BAAwC,SAC5D19H,EAAQy9H,EAARz9H,KAD4D,IAG5Ci5C,QAAQziC,QAAQxY,IAH4B,IAGnE,2BAA8C,KAAnCkwG,EAAmC,QAC7CsvB,EAAaC,EAAIz/H,EAAMkwG,EAAUwvB,IAJiC,8BAUnE,OAHAI,EAAgBL,EAAIz/H,GACpBqgI,EAAeZ,EAAIz/H,EAAMgC,GAElBy9H,I,8iCCtER,IAAIc,EAAarnI,MAAQA,KAAKqnI,WAAc,SAAUC,EAASC,EAAY9wB,EAAG+wB,GAC1E,OAAO,IAAK/wB,IAAMA,EAAIvsF,WAAU,SAAU1e,EAAS20C,GAC/C,SAASsnF,EAAU9rI,GAAS,IAAMs1E,EAAKu2D,EAAUzxF,KAAKp6C,IAAW,MAAOqH,GAAKm9C,EAAOn9C,IACpF,SAAS0kI,EAAS/rI,GAAS,IAAMs1E,EAAKu2D,EAAS,MAAU7rI,IAAW,MAAOqH,GAAKm9C,EAAOn9C,IACvF,SAASiuE,EAAKxzD,GAAUA,EAAOxB,KAAOzQ,EAAQiS,EAAO9hB,OAAS,IAAI86G,GAAE,SAAUjrG,GAAWA,EAAQiS,EAAO9hB,UAAW0P,KAAKo8H,EAAWC,GACnIz2D,GAAMu2D,EAAYA,EAAUpnI,MAAMknI,EAASC,GAAc,KAAKxxF,YAGlE4xF,EAAmB3nI,MAAQA,KAAK2nI,iBAAoB,SAAUpsG,GAC9D,OAAQA,GAAOA,EAAIuC,WAAcvC,EAAM,CAAE,QAAWA,IAExDzgC,OAAOW,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAMisI,EAAYD,EAAgB5oI,EAAQ,OAC1C,SAAS4mI,EAAcz7H,GAA0B,IACzC29H,EACAC,EACAC,EAHyC,OAArB/wB,EAAqB,uDAAV,SAI7BgxB,EAAU,kBAAMX,EAAU,OAAM,OAAQ,EAAf,yBAAuB,wHAC5B7oI,IAAlBqpI,EAD8C,iDAK5CI,EAAa,SAACrzD,GAAD,OAAUyyD,EAAU,OAAM,OAAQ,EAAf,yBAAuB,sGACzDU,EAAqBH,EAAUhsI,aACzBssI,EAAQtzD,EAAK,GAAGoiC,GAAY97G,KAAKgqF,QAC1B,GAH4C,uBAKrDh7E,EAAImC,OAAOuoE,EAAK,IAChBmzD,EAAmBv8H,UANkC,iCAUzDq8H,EAAgBjzD,EAAK,GASgB,mBARrCkzD,EAAkBxrH,YAAW,WAEzBpS,EAAImC,OAAOuoE,EAAK,IACZmzD,GACAA,EAAmBv8H,YAExB08H,IAEwBC,OAEvBL,EAAgBK,QArBqC,kBAuBlDJ,EAAmBz8H,SAvB+B,6CALX,aA+B1BpB,GA/B0B,yDAgC1C,OADO6vF,EA/BmC,kBAgCpCkuC,EAAWluC,GAhCyB,sHAAAl9E,IAAA,+EAsClDgrH,OAAgBrpI,EAtCkC,wEAwChD6E,EAAQ,WACVwkI,OAAgBrpI,OACQA,IAApBspI,IACA5rH,aAAa4rH,GACbA,OAAkBtpI,QAEKA,IAAvBupI,IACAA,EAAmB5nF,YAAO3hD,GAC1BupI,OAAqBvpI,IAGvB4pI,EAAcl+H,EAAI2C,IAAIoF,KAAK/H,GAiBjC,OAhBAA,EAAI2C,IAAM,SAACpP,EAAK9B,GACRuO,EAAIiN,IAAI1Z,IAERyM,EAAImC,OAAO5O,GAGf,IAAMggB,EAAS2qH,EAAY3qI,EAAK9B,GAOhC,OALIksI,GAAiBA,IAAkBpqI,GACnC4F,IAGJ2kI,IACOvqH,GAEXuqH,IACO99H,EAEXxO,EAAQE,QAAU+pI,EAElBxpI,EAAOT,QAAUiqI,EACjBxpI,EAAOT,QAAQE,QAAU+pI,G,6BC1FzBxpI,EAAOT,QAAU,WAChB,IAAMuuB,EAAM,GAOZ,OALAA,EAAI3e,QAAU,IAAI4e,SAAQ,SAAC1e,EAAS20C,GACnCl2B,EAAIze,QAAUA,EACdye,EAAIk2B,OAASA,KAGPl2B,I,8BCPRnvB,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAaI66D,EAbS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CAEPihC,aAAc,EACdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCxCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GASvF,IAYI66D,EAZS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EACdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCtCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,QAYR,SAAwBu+B,EAAWt+B,IACjC,EAAIs+G,EAAQv+G,SAAS,EAAGhB,WACxB,IAAIkB,EAAUD,GAAgB,GAC1BghC,EAAS/gC,EAAQ+gC,OACjBC,EAAqBD,GAAUA,EAAO/gC,SAAW+gC,EAAO/gC,QAAQihC,aAChEC,EAA4C,MAAtBF,EAA6B,GAAI,EAAIa,EAAO/hC,SAASkhC,GAC3EC,EAAuC,MAAxBjhC,EAAQihC,aAAuBC,GAAsB,EAAIW,EAAO/hC,SAASE,EAAQihC,cAEpG,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIvP,WAAW,oDAGvB,IAAI4M,GAAO,EAAIqD,EAAQ7hC,SAASu+B,GAC5B8C,EAAM7C,EAAK+wC,YACXhuC,GAAQF,EAAMF,EAAe,EAAI,GAAKE,EAAMF,EAGhD,OAFA3C,EAAK20C,WAAW30C,EAAKwwC,aAAeztC,GACpC/C,EAAK2wC,YAAY,EAAG,EAAG,EAAG,GACnB3wC,GA3BT,IAAIuD,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAwBvFrD,EAAOT,QAAUA,EAAQE,S,6BCnCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,QAER,SAAmB6J,GACjB,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOjK,IAGT,IAAIkK,EAASC,OAAOF,GAEpB,GAAIG,MAAMF,GACR,OAAOA,EAGT,OAAOA,EAAS,EAAInH,KAAKkD,KAAKiE,GAAUnH,KAAKsH,MAAMH,IAGrDvJ,EAAOT,QAAUA,EAAQE,S,kQCnBzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,QAoCR,SAAgBjB,IACd,EAAIgjC,EAAO/hC,SAAS,EAAGhB,WACvB,IAAIC,EAASC,OAAOC,UAAUC,SAASC,KAAKN,GAE5C,OAAIA,aAAoBO,MAA4B,WAApB,EAAOP,IAAoC,kBAAXE,EAEvD,IAAIK,KAAKP,EAASQ,WACI,iBAAbR,GAAoC,oBAAXE,EAClC,IAAIK,KAAKP,IAES,iBAAbA,GAAoC,oBAAXE,GAAoD,oBAAZO,UAE3EA,QAAQC,KAAK,+IAEbD,QAAQC,MAAK,IAAIC,OAAQC,QAGpB,IAAIL,KAAKM,OAnDpB,IAEgCgE,EAF5Bm+B,GAE4Bn+B,EAFIT,EAAQ,OAESS,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAqDvFrD,EAAOT,QAAUA,EAAQE,S,6BC5DzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAK3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAavF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC5CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAcvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC7CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAEdylC,sBAAuB,IAK3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAcvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC7CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,MAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAevF,IAeI66D,EAfS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAYigE,EAAQ1sI,QACpBktE,eAAgBrrC,EAAQ7hC,QACxBmtE,SAAUoxC,EAAQv+G,QAClBuB,MAAOkrI,EAAQzsI,QAEfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC/CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAClB,IAAI+1D,EAAa,GAIE,CAAC,MAAO,QACdxnD,SAAQ,SAAUo+H,GAC7B52E,EAAW,MAAQ42E,GAAc,SAAUnuG,EAAMt+B,GAC/C,IAAI0sI,EAAmB1sI,EAAQ61D,WAE3B82E,EAAsBD,EADkB,IAAtBpuG,EAAKwwC,aAAqB,KAAO,KAEnD89D,EAAiBF,EAAiBD,GACtC,OAAOE,EAAoBruG,EAAMt+B,GAAW,IAAM4sI,EAAetuG,EAAMt+B,OAG3E,IAAIu+D,EAAW1I,EACfj2D,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCpBzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAavF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC5CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAClB,IAAI+1D,EAAa,GAIE,CAAC,MAAO,QACdxnD,SAAQ,SAAUo+H,GAC7B52E,EAAW,MAAQ42E,GAAc,SAAUnuG,EAAMt+B,GAC/C,IAAI0sI,EAAmB1sI,EAAQ61D,WAE3B82E,EAAsBD,EADkB,IAAtBpuG,EAAKwwC,aAAqB,KAAO,KAEnD89D,EAAiBF,EAAiBD,GACtC,OAAOE,EAAoBruG,EAAMt+B,GAAW,IAAM4sI,EAAetuG,EAAMt+B,OAG3E,IAAIu+D,EAAW1I,EACfj2D,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCpBzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,MAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,MAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,MAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,MAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAevF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC9CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAavF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC5CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAcvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC7CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAcvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC7CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAavF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC5CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAevF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC9CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAavF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC5CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,UACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC3CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAevF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC9CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC1CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAUvF,IAcI66D,EAdS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BCzCzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAWvF,IAgBI66D,EAhBS,CACXrhD,KAAM,KACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAM3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC5CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAcvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,6BC7CzBd,OAAOW,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQE,aAAU,EAElB,IAAI+hC,EAASE,EAAuB9+B,EAAQ,OAExC0+B,EAAUI,EAAuB9+B,EAAQ,OAEzCo7G,EAAUt8E,EAAuB9+B,EAAQ,OAEzCspI,EAAUxqG,EAAuB9+B,EAAQ,OAEzCupI,EAAUzqG,EAAuB9+B,EAAQ,OAE7C,SAAS8+B,EAAuBr+B,GAAO,OAAOA,GAAOA,EAAIs+B,WAAat+B,EAAM,CAAE5D,QAAS4D,GAYvF,IAcI66D,EAdS,CACXrhD,KAAM,QACN6vD,eAAgBlrC,EAAO/hC,QACvBysE,WAAY5qC,EAAQ7hC,QACpBktE,eAAgBqxC,EAAQv+G,QACxBmtE,SAAUs/D,EAAQzsI,QAClBuB,MAAOmrI,EAAQ1sI,QACfE,QAAS,CACPihC,aAAc,EAGdylC,sBAAuB,IAI3B9mE,EAAQE,QAAUy+D,EAClBl+D,EAAOT,QAAUA,EAAQE,S,uQCxBzB,IAAImkB,EAA4BjlB,OAAOilB,2BACrC,SAAmCvgB,GAGjC,IAFA,IAAIgZ,EAAO1d,OAAO0d,KAAKhZ,GACnBmpI,EAAc,GACTrnI,EAAI,EAAGA,EAAIkX,EAAKhe,OAAQ8G,IAC/BqnI,EAAYnwH,EAAKlX,IAAMxG,OAAO6kB,yBAAyBngB,EAAKgZ,EAAKlX,IAEnE,OAAOqnI,GAGPC,EAAe,WACnBltI,EAAQ0a,OAAS,SAASyG,GACxB,IAAKpE,EAASoE,GAAI,CAEhB,IADA,IAAIgsH,EAAU,GACLvnI,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IACpCunI,EAAQjnI,KAAK6wB,EAAQ73B,UAAU0G,KAEjC,OAAOunI,EAAQ5mI,KAAK,KAGlBX,EAAI,EAmBR,IAnBA,IACI/G,EAAOK,UACP6wB,EAAMlxB,EAAKC,OACXoe,EAAM5c,OAAO6gB,GAAG9M,QAAQ64H,GAAc,SAASz2G,GACjD,GAAU,OAANA,EAAY,MAAO,IACvB,GAAI7wB,GAAKmqB,EAAK,OAAO0G,EACrB,OAAQA,GACN,IAAK,KAAM,OAAOn2B,OAAOzB,EAAK+G,MAC9B,IAAK,KAAM,OAAOqE,OAAOpL,EAAK+G,MAC9B,IAAK,KACH,IACE,OAAOowD,KAAK5wD,UAAUvG,EAAK+G,MAC3B,MAAO8sC,GACP,MAAO,aAEX,QACE,OAAOjc,MAGJA,EAAI53B,EAAK+G,GAAIA,EAAImqB,EAAK0G,EAAI53B,IAAO+G,GACpC8xE,EAAOjhD,KAAOuhD,EAASvhD,GACzBvZ,GAAO,IAAMuZ,EAEbvZ,GAAO,IAAM6Z,EAAQN,GAGzB,OAAOvZ,GAOTld,EAAQ8+F,UAAY,SAASjxF,EAAI+wB,GAC/B,QAAuB,IAAZvmB,IAAqD,IAA1BA,EAAQ+0H,cAC5C,OAAOv/H,EAIT,QAAuB,IAAZwK,EACT,OAAO,WACL,OAAOrY,EAAQ8+F,UAAUjxF,EAAI+wB,GAAKl6B,MAAMJ,KAAMpF,YAIlD,IAAIqiE,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAIlpD,EAAQg1H,iBACV,MAAM,IAAIztI,MAAMg/B,GACPvmB,EAAQi1H,iBACjB5tI,QAAQ+7F,MAAM78D,GAEdl/B,QAAQ8P,MAAMovB,GAEhB2iC,GAAS,EAEX,OAAO1zD,EAAGnJ,MAAMJ,KAAMpF,aAO1B,IACIquI,EADAC,EAAS,GA6Bb,SAASz2G,EAAQjzB,EAAKmlB,GAEpB,IAAIouB,EAAM,CACRo2F,KAAM,GACNC,QAASC,GAkBX,OAfIzuI,UAAUJ,QAAU,IAAGu4C,EAAIu2F,MAAQ1uI,UAAU,IAC7CA,UAAUJ,QAAU,IAAGu4C,EAAIw2F,OAAS3uI,UAAU,IAC9Cu4E,EAAUxuD,GAEZouB,EAAIy2F,WAAa7kH,EACRA,GAETjpB,EAAQ+tI,QAAQ12F,EAAKpuB,GAGnB6uD,EAAYzgC,EAAIy2F,cAAaz2F,EAAIy2F,YAAa,GAC9Ch2D,EAAYzgC,EAAIu2F,SAAQv2F,EAAIu2F,MAAQ,GACpC91D,EAAYzgC,EAAIw2F,UAASx2F,EAAIw2F,QAAS,GACtC/1D,EAAYzgC,EAAI22F,iBAAgB32F,EAAI22F,eAAgB,GACpD32F,EAAIw2F,SAAQx2F,EAAIq2F,QAAUO,GACvBC,EAAY72F,EAAKvzC,EAAKuzC,EAAIu2F,OAoCnC,SAASK,EAAiB/wH,EAAKixH,GAC7B,IAAI13E,EAAQ1/B,EAAQq3G,OAAOD,GAE3B,OAAI13E,EACK,KAAY1/B,EAAQ82G,OAAOp3E,GAAO,GAAK,IAAMv5C,EAC7C,KAAY6Z,EAAQ82G,OAAOp3E,GAAO,GAAK,IAEvCv5C,EAKX,SAASywH,EAAezwH,EAAKixH,GAC3B,OAAOjxH,EAeT,SAASgxH,EAAY72F,EAAKp3C,EAAOouI,GAG/B,GAAIh3F,EAAI22F,eACJ/tI,GACAk4E,EAAWl4E,EAAM82B,UAEjB92B,EAAM82B,UAAY/2B,EAAQ+2B,WAExB92B,EAAMsK,aAAetK,EAAMsK,YAAYlL,YAAcY,GAAQ,CACjE,IAAIsuB,EAAMtuB,EAAM82B,QAAQs3G,EAAch3F,GAItC,OAHKt6B,EAASwR,KACZA,EAAM2/G,EAAY72F,EAAK9oB,EAAK8/G,IAEvB9/G,EAIT,IAAIs8E,EA+FN,SAAyBxzD,EAAKp3C,GAC5B,GAAI63E,EAAY73E,GACd,OAAOo3C,EAAIq2F,QAAQ,YAAa,aAClC,GAAI3wH,EAAS9c,GAAQ,CACnB,IAAIquI,EAAS,IAAOt4E,KAAK5wD,UAAUnF,GAAOoU,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,IACjE,OAAOgjC,EAAIq2F,QAAQY,EAAQ,UAE7B,GAAI12D,EAAS33E,GACX,OAAOo3C,EAAIq2F,QAAQ,GAAKztI,EAAO,UACjC,GAAIw3E,EAAUx3E,GACZ,OAAOo3C,EAAIq2F,QAAQ,GAAKztI,EAAO,WAEjC,GAAIy3E,EAAOz3E,GACT,OAAOo3C,EAAIq2F,QAAQ,OAAQ,QA9Gba,CAAgBl3F,EAAKp3C,GACrC,GAAI4qG,EACF,OAAOA,EAIT,IAAI/tF,EAAO1d,OAAO0d,KAAK7c,GACnBuuI,EApCN,SAAqB3sI,GACnB,IAAIu8B,EAAO,GAMX,OAJAv8B,EAAM4M,SAAQ,SAASokB,EAAKwgC,GAC1Bj1B,EAAKvL,IAAO,KAGPuL,EA6BWqwG,CAAY3xH,GAQ9B,GANIu6B,EAAIy2F,aACNhxH,EAAO1d,OAAOi7D,oBAAoBp6D,IAKhCi4E,EAAQj4E,KACJ6c,EAAK5I,QAAQ,YAAc,GAAK4I,EAAK5I,QAAQ,gBAAkB,GACrE,OAAOw6H,EAAYzuI,GAIrB,GAAoB,IAAhB6c,EAAKhe,OAAc,CACrB,GAAIq5E,EAAWl4E,GAAQ,CACrB,IAAImN,EAAOnN,EAAMmN,KAAO,KAAOnN,EAAMmN,KAAO,GAC5C,OAAOiqC,EAAIq2F,QAAQ,YAActgI,EAAO,IAAK,WAE/C,GAAI2qE,EAAS93E,GACX,OAAOo3C,EAAIq2F,QAAQ1xH,OAAO3c,UAAUC,SAASC,KAAKU,GAAQ,UAE5D,GAAIg4E,EAAOh4E,GACT,OAAOo3C,EAAIq2F,QAAQluI,KAAKH,UAAUC,SAASC,KAAKU,GAAQ,QAE1D,GAAIi4E,EAAQj4E,GACV,OAAOyuI,EAAYzuI,GAIvB,IA2CIi6C,EA3CAxjC,EAAO,GAAI7U,GAAQ,EAAO8sI,EAAS,CAAC,IAAK,MAGzC36H,EAAQ/T,KACV4B,GAAQ,EACR8sI,EAAS,CAAC,IAAK,MAIbx2D,EAAWl4E,MAEbyW,EAAO,cADCzW,EAAMmN,KAAO,KAAOnN,EAAMmN,KAAO,IACf,KAkB5B,OAdI2qE,EAAS93E,KACXyW,EAAO,IAAMsF,OAAO3c,UAAUC,SAASC,KAAKU,IAI1Cg4E,EAAOh4E,KACTyW,EAAO,IAAMlX,KAAKH,UAAUuvI,YAAYrvI,KAAKU,IAI3Ci4E,EAAQj4E,KACVyW,EAAO,IAAMg4H,EAAYzuI,IAGP,IAAhB6c,EAAKhe,QAAkB+C,GAAyB,GAAhB5B,EAAMnB,OAItCuvI,EAAe,EACbt2D,EAAS93E,GACJo3C,EAAIq2F,QAAQ1xH,OAAO3c,UAAUC,SAASC,KAAKU,GAAQ,UAEnDo3C,EAAIq2F,QAAQ,WAAY,YAInCr2F,EAAIo2F,KAAKvnI,KAAKjG,GAIZi6C,EADEr4C,EAsCN,SAAqBw1C,EAAKp3C,EAAOouI,EAAcG,EAAa1xH,GAE1D,IADA,IAAIo9B,EAAS,GACJt0C,EAAI,EAAGohB,EAAI/mB,EAAMnB,OAAQ8G,EAAIohB,IAAKphB,EACrCxD,EAAenC,EAAOK,OAAOsF,IAC/Bs0C,EAAOh0C,KAAK2oI,EAAex3F,EAAKp3C,EAAOouI,EAAcG,EACjDluI,OAAOsF,IAAI,IAEfs0C,EAAOh0C,KAAK,IAShB,OANA4W,EAAKrO,SAAQ,SAAS1M,GACfA,EAAIN,MAAM,UACby4C,EAAOh0C,KAAK2oI,EAAex3F,EAAKp3C,EAAOouI,EAAcG,EACjDzsI,GAAK,OAGNm4C,EArDI40F,CAAYz3F,EAAKp3C,EAAOouI,EAAcG,EAAa1xH,GAEnDA,EAAKtO,KAAI,SAASzM,GACzB,OAAO8sI,EAAex3F,EAAKp3C,EAAOouI,EAAcG,EAAazsI,EAAKF,MAItEw1C,EAAIo2F,KAAKr9H,MA6GX,SAA8B8pC,EAAQxjC,EAAMi4H,GAQ1C,GANaz0F,EAAO9rC,QAAO,SAASgsC,EAAM20F,GAGxC,OADIA,EAAI76H,QAAQ,OAAS,GAAG86H,EACrB50F,EAAO20F,EAAI16H,QAAQ,kBAAmB,IAAIvV,OAAS,IACzD,GAEU,GACX,OAAO6vI,EAAO,IACG,KAATj4H,EAAc,GAAKA,EAAO,OAC3B,IACAwjC,EAAO3zC,KAAK,SACZ,IACAooI,EAAO,GAGhB,OAAOA,EAAO,GAAKj4H,EAAO,IAAMwjC,EAAO3zC,KAAK,MAAQ,IAAMooI,EAAO,GA5H1DM,CAAqB/0F,EAAQxjC,EAAMi4H,IAxBjCA,EAAO,GAAKj4H,EAAOi4H,EAAO,GA+CrC,SAASD,EAAYzuI,GACnB,MAAO,IAAML,MAAMP,UAAUC,SAASC,KAAKU,GAAS,IAwBtD,SAAS4uI,EAAex3F,EAAKp3C,EAAOouI,EAAcG,EAAazsI,EAAKF,GAClE,IAAIuL,EAAM8P,EAAKgyH,EAsCf,IArCAA,EAAO9vI,OAAO6kB,yBAAyBhkB,EAAO8B,IAAQ,CAAE9B,MAAOA,EAAM8B,KAC5D+O,IAELoM,EADEgyH,EAAK/9H,IACDkmC,EAAIq2F,QAAQ,kBAAmB,WAE/Br2F,EAAIq2F,QAAQ,WAAY,WAG5BwB,EAAK/9H,MACP+L,EAAMm6B,EAAIq2F,QAAQ,WAAY,YAG7BtrI,EAAeosI,EAAazsI,KAC/BqL,EAAO,IAAMrL,EAAM,KAEhBmb,IACCm6B,EAAIo2F,KAAKv5H,QAAQg7H,EAAKjvI,OAAS,GAE/Bid,EADEw6D,EAAO22D,GACHH,EAAY72F,EAAK63F,EAAKjvI,MAAO,MAE7BiuI,EAAY72F,EAAK63F,EAAKjvI,MAAOouI,EAAe,IAE5Cn6H,QAAQ,OAAS,IAErBgJ,EADErb,EACIqb,EAAIiF,MAAM,MAAM3T,KAAI,SAAS2gI,GACjC,MAAO,KAAOA,KACb5oI,KAAK,MAAMK,OAAO,GAEf,KAAOsW,EAAIiF,MAAM,MAAM3T,KAAI,SAAS2gI,GACxC,MAAO,MAAQA,KACd5oI,KAAK,OAIZ2W,EAAMm6B,EAAIq2F,QAAQ,aAAc,YAGhC51D,EAAY1qE,GAAO,CACrB,GAAIvL,GAASE,EAAIN,MAAM,SACrB,OAAOyb,GAET9P,EAAO4oD,KAAK5wD,UAAU,GAAKrD,IAClBN,MAAM,iCACb2L,EAAOA,EAAKxG,OAAO,EAAGwG,EAAKtO,OAAS,GACpCsO,EAAOiqC,EAAIq2F,QAAQtgI,EAAM,UAEzBA,EAAOA,EAAKiH,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChCjH,EAAOiqC,EAAIq2F,QAAQtgI,EAAM,WAI7B,OAAOA,EAAO,KAAO8P,EA2BvB,SAASlJ,EAAQspF,GACf,OAAOvpF,MAAMC,QAAQspF,GAIvB,SAAS7lB,EAAUvsE,GACjB,MAAsB,kBAARA,EAIhB,SAASwsE,EAAOxsE,GACd,OAAe,OAARA,EAST,SAAS0sE,EAAS1sE,GAChB,MAAsB,iBAARA,EAIhB,SAAS6R,EAAS7R,GAChB,MAAsB,iBAARA,EAShB,SAAS4sE,EAAY5sE,GACnB,YAAe,IAARA,EAIT,SAAS6sE,EAASjmC,GAChB,OAAOkmC,EAASlmC,IAA8B,oBAAvB0lC,EAAe1lC,GAIxC,SAASkmC,EAAS9sE,GAChB,MAAsB,WAAf,EAAOA,IAA4B,OAARA,EAIpC,SAAS+sE,EAAOt6C,GACd,OAAOq6C,EAASr6C,IAA4B,kBAAtB65C,EAAe75C,GAIvC,SAASu6C,EAAQ5wE,GACf,OAAO0wE,EAAS1wE,KACW,mBAAtBkwE,EAAelwE,IAA2BA,aAAa1H,OAI9D,SAASu4E,EAAWjtE,GAClB,MAAsB,mBAARA,EAgBhB,SAASssE,EAAepyC,GACtB,OAAOhmC,OAAOC,UAAUC,SAASC,KAAK6lC,GAIxC,SAASxrB,EAAIqN,GACX,OAAOA,EAAI,GAAK,IAAMA,EAAE3nB,SAAS,IAAM2nB,EAAE3nB,SAAS,IApbpDU,EAAQ2lH,SAAW,SAASx0G,GAI1B,GAHI2mE,EAAYy1D,KACdA,EAAel1H,EAAQmY,IAAI4+G,YAAc,IAC3Cj+H,EAAMA,EAAIgN,eACLqvH,EAAOr8H,GACV,GAAI,IAAI6K,OAAO,MAAQ7K,EAAM,MAAO,KAAKjP,KAAKqrI,GAAe,CAC3D,IAAI8B,EAAMh3H,EAAQg3H,IAClB7B,EAAOr8H,GAAO,WACZ,IAAIytB,EAAM5+B,EAAQ0a,OAAOhW,MAAM1E,EAASd,WACxCQ,QAAQ8P,MAAM,YAAa2B,EAAKk+H,EAAKzwG,SAGvC4uG,EAAOr8H,GAAO,aAGlB,OAAOq8H,EAAOr8H,IAoChBnR,EAAQ+2B,QAAUA,EAIlBA,EAAQ82G,OAAS,CACf,KAAS,CAAC,EAAG,IACb,OAAW,CAAC,EAAG,IACf,UAAc,CAAC,EAAG,IAClB,QAAY,CAAC,EAAG,IAChB,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,QAAY,CAAC,GAAI,IACjB,IAAQ,CAAC,GAAI,IACb,OAAW,CAAC,GAAI,KAIlB92G,EAAQq3G,OAAS,CACf,QAAW,OACX,OAAU,SACV,QAAW,SACX,UAAa,OACb,KAAQ,OACR,OAAU,QACV,KAAQ,UAER,OAAU,OAkRZpuI,EAAQgU,QAAUA,EAKlBhU,EAAQy3E,UAAYA,EAKpBz3E,EAAQ03E,OAASA,EAKjB13E,EAAQ23E,kBAHR,SAA2BzsE,GACzB,OAAc,MAAPA,GAOTlL,EAAQ43E,SAAWA,EAKnB53E,EAAQ+c,SAAWA,EAKnB/c,EAAQ63E,SAHR,SAAkB3sE,GAChB,MAAsB,WAAf,EAAOA,IAOhBlL,EAAQ83E,YAAcA,EAKtB93E,EAAQ+3E,SAAWA,EAKnB/3E,EAAQg4E,SAAWA,EAKnBh4E,EAAQi4E,OAASA,EAMjBj4E,EAAQk4E,QAAUA,EAKlBl4E,EAAQm4E,WAAaA,EAUrBn4E,EAAQo4E,YARR,SAAqBltE,GACnB,OAAe,OAARA,GACe,kBAARA,GACQ,iBAARA,GACQ,iBAARA,GACQ,WAAf,EAAOA,SACQ,IAARA,GAIhBlL,EAAQ0yB,SAAWrvB,EAAQ,MAY3B,IAAI+wE,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,OAG5B,SAAStW,IACP,IAAIngC,EAAI,IAAIn+B,KACRutE,EAAO,CAACnzD,EAAI+jB,EAAE82C,YACN76D,EAAI+jB,EAAE+2C,cACN96D,EAAI+jB,EAAEg3C,eAAepuE,KAAK,KACtC,MAAO,CAACo3B,EAAEgE,UAAWyyC,EAAOz2C,EAAEggC,YAAaoP,GAAMxmE,KAAK,KAqCxD,SAASnE,EAAe0B,EAAK0hD,GAC3B,OAAOpmD,OAAOC,UAAU+C,eAAe7C,KAAKuE,EAAK0hD,GAjCnDxlD,EAAQijD,IAAM,WACZvjD,QAAQujD,IAAI,UAAW6a,IAAa99D,EAAQ0a,OAAOhW,MAAM1E,EAASd,aAiBpEc,EAAQ6iC,SAAWx/B,EAAQ,MAE3BrD,EAAQ+tI,QAAU,SAASuB,EAAQlkG,GAEjC,IAAKA,IAAQ4sC,EAAS5sC,GAAM,OAAOkkG,EAInC,IAFA,IAAIxyH,EAAO1d,OAAO0d,KAAKsuB,GACnBxlC,EAAIkX,EAAKhe,OACN8G,KACL0pI,EAAOxyH,EAAKlX,IAAMwlC,EAAItuB,EAAKlX,IAE7B,OAAO0pI,GAOT,IAAIC,EAA6C,oBAAX7hI,OAAyBA,OAAO,8BAA2B5K,EA0DjG,SAAS0sI,EAAsB5L,EAAQ9jH,GAKrC,IAAK8jH,EAAQ,CACX,IAAI6L,EAAY,IAAI7vI,MAAM,2CAC1B6vI,EAAU7L,OAASA,EACnBA,EAAS6L,EAEX,OAAO3vH,EAAG8jH,GAlEZ5jI,EAAQ0vI,UAAY,SAAmBC,GACrC,GAAwB,mBAAbA,EACT,MAAM,IAAI5wI,UAAU,oDAEtB,GAAIwwI,GAA4BI,EAASJ,GAA2B,CAClE,IAAI1hI,EACJ,GAAkB,mBADdA,EAAK8hI,EAASJ,IAEhB,MAAM,IAAIxwI,UAAU,iEAKtB,OAHAK,OAAOW,eAAe8N,EAAI0hI,EAA0B,CAClDtvI,MAAO4N,EAAIrD,YAAY,EAAOC,UAAU,EAAOC,cAAc,IAExDmD,EAGT,SAASA,IAQP,IAPA,IAAI+hI,EAAgBC,EAChBjgI,EAAU,IAAI4e,SAAQ,SAAU1e,EAAS20C,GAC3CmrF,EAAiB9/H,EACjB+/H,EAAgBprF,KAGd5lD,EAAO,GACF+G,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IACpC/G,EAAKqH,KAAKhH,UAAU0G,IAEtB/G,EAAKqH,MAAK,SAAU5C,EAAKrD,GACnBqD,EACFusI,EAAcvsI,GAEdssI,EAAe3vI,MAInB,IACE0vI,EAASjrI,MAAMJ,KAAMzF,GACrB,MAAOyE,GACPusI,EAAcvsI,GAGhB,OAAOsM,EAQT,OALAxQ,OAAOimC,eAAex3B,EAAIzO,OAAOkmC,eAAeqqG,IAE5CJ,GAA0BnwI,OAAOW,eAAe8N,EAAI0hI,EAA0B,CAChFtvI,MAAO4N,EAAIrD,YAAY,EAAOC,UAAU,EAAOC,cAAc,IAExDtL,OAAOklB,iBACZzW,EACAwW,EAA0BsrH,KAI9B3vI,EAAQ0vI,UAAUI,OAASP,EAiD3BvvI,EAAQ+vI,YAlCR,SAAqBJ,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAI5wI,UAAU,oDAMtB,SAASixI,IAEP,IADA,IAAInxI,EAAO,GACF+G,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IACpC/G,EAAKqH,KAAKhH,UAAU0G,IAGtB,IAAIqqI,EAAUpxI,EAAKuR,MACnB,GAAuB,mBAAZ6/H,EACT,MAAM,IAAIlxI,UAAU,8CAEtB,IAAIkE,EAAOqB,KACPwb,EAAK,WACP,OAAOmwH,EAAQvrI,MAAMzB,EAAM/D,YAI7BywI,EAASjrI,MAAMJ,KAAMzF,GAClB8Q,MAAK,SAAS4e,GAAOlW,EAAQgY,SAASvQ,EAAI,KAAMyO,MAC3C,SAASi2B,GAAOnsC,EAAQgY,SAASm/G,EAAuBhrF,EAAK1kC,MAMvE,OAHA1gB,OAAOimC,eAAe2qG,EAAe5wI,OAAOkmC,eAAeqqG,IAC3DvwI,OAAOklB,iBAAiB0rH,EACA3rH,EAA0BsrH,IAC3CK,K,sQC5rBTvvI,EAAOT,QAAU,SAAkBkL,GACjC,OAAOA,GAAsB,WAAf,EAAOA,IACI,mBAAbA,EAAI0nB,MACS,mBAAb1nB,EAAIO,MACc,mBAAlBP,EAAIwtB,Y,cCJW,mBAAlBt5B,OAAOwE,OAEhBnD,EAAOT,QAAU,SAAkBoK,EAAMC,GACvCD,EAAKE,OAASD,EACdD,EAAK/K,UAAYD,OAAOwE,OAAOyG,EAAUhL,UAAW,CAClDkL,YAAa,CACXtK,MAAOmK,EACPI,YAAY,EACZC,UAAU,EACVC,cAAc,MAMpBjK,EAAOT,QAAU,SAAkBoK,EAAMC,GACvCD,EAAKE,OAASD,EACd,IAAIM,EAAW,aACfA,EAAStL,UAAYgL,EAAUhL,UAC/B+K,EAAK/K,UAAY,IAAIsL,EACrBP,EAAK/K,UAAUkL,YAAcH,I,iBCpBjC,gBAAI8lI,EAAOlwI,EACP67C,EAAMx4C,EAAQ,MACd8sI,EAAc9sI,EAAQ,MACtBN,EAASM,EAAQ,MAEjB+sI,EADM/sI,EAAQ,KACKgtI,CAAI,KAI3B,SAAS5oC,EAAK1lG,EAAKX,EAAQsK,GACzB,OAAO3I,EAAOutI,WAAW,SAAUvuI,GAAKoH,OAAO/H,EAAQ,QAAQwoE,OAAOl+D,GAGxE,SAAS0yB,EAAKh9B,EAAQsK,GACpB,OAAO3I,EAAO82H,WAAW,UAAU1wH,OAAO/H,EAAQ,QAAQwoE,OAAOl+D,GAInE,SAAS6kI,EAAcC,GACrB,OAAOA,EAAiBn8H,QAAQ,YAAY,SAAS5H,GACnD,MAAO,IAAMA,EAAEvF,WAAW,GAAG5H,SAAS,IAAI6e,iBAI9C,SAASsyH,EAAkBvzH,GACzB,OAAOqzH,EAAc9oI,mBAAmByV,IAO1C,IAAIwzH,EAAoB,CACtB,eAAiB,EACjB,YAAc,EACd,mBAAmB,EACnB,cAAc,EACd,QAAU,EACV,qBAAqB,EACrB,OAAS,GAKX,SAASC,EAAcpP,EAAShE,GAEP,iBAAZgE,IAAsBA,EAAU1lF,EAAIr1C,MAAM+6H,IAErD,IAAIT,EAAUS,EAAQT,QAAWS,EAAQT,SAAW,GAChD8P,IAActsI,KAAKusI,UAAYvsI,KAAKwsI,SAAWxsI,KAAKysI,UAAUxP,EAAQyP,UAAYzP,EAAQZ,MAAQG,EAAQmQ,MAAQnQ,EAAQH,MAE9Hr8H,KAAKi9H,QAAUA,EACfj9H,KAAKi5H,YAAcA,GAAej5H,KAAK4sI,qBAEvC5sI,KAAKusI,QAAUtP,EAAQsP,SAAWD,EAAU,IAAM,GAClDtsI,KAAKwsI,OAASvP,EAAQuP,QAAUF,EAAU,IAAM,YAG3B,UAAjBtsI,KAAKusI,UAAqBvsI,KAAKusI,QAAU,QAExCtP,EAAQh9D,QAAUg9D,EAAQz4B,OAC7By4B,EAAQh9D,OAAS,QAEdu8D,EAAQmQ,MAASnQ,EAAQH,OAC5BG,EAAQmQ,KAAO1P,EAAQyP,UAAYzP,EAAQZ,MAAQr8H,KAAK6sI,aAGpD5P,EAAQ6P,OACVtQ,EAAQmQ,MAAQ,IAAM1P,EAAQ6P,OAE7B7P,EAAQyP,UAAazP,EAAQZ,OAChCY,EAAQyP,SAAWlQ,EAAQmQ,MAAQnQ,EAAQH,MAE7Cr8H,KAAK+sI,gBAAmC,eAAjB/sI,KAAKusI,SAA+C,QAAnBtP,EAAQh9D,OAGlEosE,EAActxI,UAAU0xI,UAAY,SAASpQ,GAC3C,IACIiQ,IADSjQ,GAAQ,IAAIl/H,MAAM,oDACL,IAAIe,MAAM,EAAG,GAQvC,GAHqB,OAAjBouI,EAAU,KACZA,EAAYA,EAAU1/H,WAEJ,MAAhB0/H,EAAU,GACZA,EAAU,GAAK,KACfA,EAAU,GAAK,iBAEf,IAAK,IAAIhrI,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAI,OAAO1D,KAAK0uI,EAAUhrI,IAAK,CAC7BgrI,EAAU,GAAKA,EAAUhrI,GAAGpD,MAAM,GAClCouI,EAAU,GAAK,KACf,MAKN,OAAOA,GAITD,EAActxI,UAAUiyI,eAAiB,WAEvC,MAAI,CAAC,KAAM,OAAOp9H,QAAQ5P,KAAKusI,UAAY,GAAqB,cAAhBvsI,KAAKwsI,QAE9C,CAAC,aAAc,KAAM,UAAW,MAAO,eAAgB,OAC3D58H,QAAQ5P,KAAKusI,UAAY,GAG9BF,EAActxI,UAAU8xI,WAAa,WACnC,IAAIL,EAASxsI,KAAKgtI,iBAAmB,GAAK,IAAMhtI,KAAKwsI,OAErD,OADiC,QAAjBxsI,KAAKusI,QAAoB,QAAUvsI,KAAKusI,SACrCC,EAAS,kBAG9BH,EAActxI,UAAUkyI,eAAiB,WACvCjtI,KAAKktI,YAEL,IAAuDp3B,EAAnDmnB,EAAUj9H,KAAKi9H,QAAST,EAAUS,EAAQT,QAE1CS,EAAQkQ,WAEVntI,KAAKotI,WAAWt3B,MAAQA,EAAQ91G,KAAKotI,WAAWt3B,OAAS,GAErD91G,KAAKi5H,YAAYoU,eACnBv3B,EAAM,wBAA0B91G,KAAKi5H,YAAYoU,cAE9B,OAAjBrtI,KAAKusI,SAAqBz2B,EAAM,mBAClCA,EAAM,iBAAmB,OAEvBA,EAAM,cACR91G,KAAKoyD,SAAW0jD,EAAM,cAEtBA,EAAM,cAAgB91G,KAAKstI,cAE7Bx3B,EAAM,mBAAqB,mBAC3BA,EAAM,oBAAsB91G,KAAKi5H,YAAYsU,YAAc,IAAMvtI,KAAKwtI,mBACtE13B,EAAM,uBAAyB91G,KAAKytI,kBAI/BxQ,EAAQyQ,oBAAuB1tI,KAAK+sI,mBACnC9P,EAAQz4B,MAASg4B,EAAQ,iBAAoBA,EAAQ,kBACvDA,EAAQ,gBAAkB,qDAExBS,EAAQz4B,MAASg4B,EAAQ,mBAAsBA,EAAQ,oBACzDA,EAAQ,kBAAoBj2H,EAAOsnB,WAAWovG,EAAQz4B,QAEpDxkG,KAAKi5H,YAAYoU,cAAiB7Q,EAAQ,yBAA4BA,EAAQ,0BAChFA,EAAQ,wBAA0Bx8H,KAAKi5H,YAAYoU,cAEhC,OAAjBrtI,KAAKusI,SAAqB/P,EAAQ,yBAA4BA,EAAQ,0BACxEA,EAAQ,wBAA0B1iG,EAAK95B,KAAKi9H,QAAQz4B,MAAQ,GAAI,QAE9Dg4B,EAAQ,eAAiBA,EAAQ,cACnCx8H,KAAKoyD,SAAWoqE,EAAQ,eAAiBA,EAAQ,cAEjDA,EAAQ,cAAgBx8H,KAAKstI,sBAG1B9Q,EAAQmR,qBACRnR,EAAQoR,gBAInBvB,EAActxI,UAAU+mE,KAAO,WAW7B,OAVK9hE,KAAKotI,YAAYptI,KAAKitI,iBAEvBjtI,KAAKi9H,QAAQkQ,UACfntI,KAAKotI,WAAWt3B,MAAM,mBAAqB91G,KAAKquF,YAEhDruF,KAAKi9H,QAAQT,QAAQmR,cAAgB3tI,KAAK6tI,aAG5C7tI,KAAKi9H,QAAQ/kF,KAAOl4C,KAAK8tI,aAElB9tI,KAAKi9H,SAGdoP,EAActxI,UAAUuyI,YAAc,WACpC,IAAKttI,KAAKoyD,SAAU,CAClB,IAAIoqE,EAAUx8H,KAAKi9H,QAAQT,QACzBpiG,EAAO,IAAIl/B,KAAKshI,EAAQthI,MAAQshI,EAAQpiG,MAAQ,IAAIl/B,MAEtD8E,KAAKoyD,SAAWh4B,EAAK2zG,cAAch+H,QAAQ,iBAAkB,IAGzD/P,KAAK+sI,kBAAiB/sI,KAAKoyD,SAAWpyD,KAAKoyD,SAASl0D,MAAM,GAAI,IAEpE,OAAO8B,KAAKoyD,UAGdi6E,EAActxI,UAAUsiC,QAAU,WAChC,OAAOr9B,KAAKstI,cAAchrI,OAAO,EAAG,IAGtC+pI,EAActxI,UAAU8yI,WAAa,WACnC,MAAO,CACL,+BAAiC7tI,KAAKi5H,YAAYsU,YAAc,IAAMvtI,KAAKwtI,mBAC3E,iBAAmBxtI,KAAKytI,gBACxB,aAAeztI,KAAKquF,aACpBpsF,KAAK,OAGToqI,EAActxI,UAAUszF,UAAY,WAClC,IAEI2/C,EAAOC,EAASC,EAFhB9zG,EAAOp6B,KAAKq9B,UACZ2oG,EAAW,CAAChmI,KAAKi5H,YAAYkV,gBAAiB/zG,EAAMp6B,KAAKwsI,OAAQxsI,KAAKusI,SAAStqI,OACrDmsI,EAAetC,EAAiBt/H,IAAIw5H,GAQlE,OAPKoI,IACHJ,EAAQ7qC,EAAK,OAASnjG,KAAKi5H,YAAYkV,gBAAiB/zG,GACxD6zG,EAAU9qC,EAAK6qC,EAAOhuI,KAAKwsI,QAC3B0B,EAAW/qC,EAAK8qC,EAASjuI,KAAKusI,SAC9B6B,EAAejrC,EAAK+qC,EAAU,gBAC9BpC,EAAiBj/H,IAAIm5H,EAAUoI,IAE1BjrC,EAAKirC,EAAcpuI,KAAKquI,eAAgB,QAGjDhC,EAActxI,UAAUszI,aAAe,WACrC,MAAO,CACL,mBACAruI,KAAKstI,cACLttI,KAAKwtI,mBACL1zG,EAAK95B,KAAKsuI,kBAAmB,QAC7BrsI,KAAK,OAGToqI,EAActxI,UAAUuzI,gBAAkB,WACnCtuI,KAAKotI,YAAYptI,KAAKitI,iBAE3B,IAQIsB,EARAC,EAAUxuI,KAAKotI,WAAWl1F,KAC1B49D,EAAQ91G,KAAKotI,WAAWt3B,MACxB0mB,EAAUx8H,KAAKi9H,QAAQT,QACvBiS,EAAW,GACXC,EAAiC,OAAjB1uI,KAAKusI,QACrBoC,EAA8B,OAAjB3uI,KAAKusI,SAAoBvsI,KAAKi9H,QAAQ2R,gBACnDC,EAAuC,OAAjB7uI,KAAKusI,QAC3BuC,EAAgC,OAAjB9uI,KAAKusI,QAYxB,GAREgC,EADmB,OAAjBvuI,KAAKusI,SAAoBvsI,KAAKi9H,QAAQkQ,UAC7B,mBACFntI,KAAK+sI,gBACH,GAEAvQ,EAAQ,yBAA2BA,EAAQ,yBACpD1iG,EAAK95B,KAAKi9H,QAAQz4B,MAAQ,GAAI,OAG9BsR,EAAO,CACT,IAAIi5B,EAAej0I,OAAO0d,KAAKs9F,GAAOhsG,QAAO,SAAStK,EAAK/B,GACzD,OAAKA,GACL+B,EAAI2sI,EAAkB1uI,IAASgS,MAAMC,QAAQomG,EAAMr4G,KAChDqxI,EAAeh5B,EAAMr4G,GAAK,GAD8Bq4G,EAAMr4G,GAE1D+B,GAHUA,IAIhB,IACCwvI,EAAqB,GACzBl0I,OAAO0d,KAAKu2H,GAAc/zF,OAAO7wC,SAAQ,SAAS1M,GAC3CgS,MAAMC,QAAQq/H,EAAatxI,IAG9BsxI,EAAatxI,GAAKyM,IAAIiiI,GAAmBnxF,OACtC7wC,SAAQ,SAASokB,GAAOygH,EAAmBptI,KAAKnE,EAAM,IAAM8wB,MAH/DygH,EAAmBptI,KAAKnE,EAAM,IAAM0uI,EAAkB4C,EAAatxI,QAMvEgxI,EAAWO,EAAmB/sI,KAAK,KAiBrC,MAfgB,MAAZusI,IACEE,IAAeF,EAAUA,EAAQz+H,QAAQ,UAAW,MAUrC,OATnBy+H,EAAUA,EAAQ3wH,MAAM,KAAK/T,QAAO,SAASouC,EAAM+2F,GAOjD,OANIP,GAA2B,OAAVO,EACnB/2F,EAAKpsC,MACK4iI,GAA2B,MAAVO,IACvBN,IAAYM,EAAQnsI,mBAAmBmsI,EAAMl/H,QAAQ,MAAO,OAChEmoC,EAAKt2C,KAAKuqI,EAAkB8C,KAEvB/2F,IACN,IAAIj2C,KAAK,MACA,KAAYusI,EAAU,IAAMA,GACpCK,IAAqBL,EAAUA,EAAQz+H,QAAQ,OAAQ,OAGtD,CACL/P,KAAKi9H,QAAQh9D,QAAU,MACvBuuE,EACAC,EACAzuI,KAAKkvI,mBAAqB,KAC1BlvI,KAAKytI,gBACLc,GACAtsI,KAAK,OAGToqI,EAActxI,UAAUm0I,iBAAmB,WACzC,IAAI1S,EAAUx8H,KAAKi9H,QAAQT,QAI3B,OAAO1hI,OAAO0d,KAAKgkH,GAChBhgH,QAAO,SAAS/e,GAAO,OAA+C,MAAxC2uI,EAAkB3uI,EAAIuS,kBACpDgrC,MAAK,SAAStzC,EAAGC,GAAK,OAAOD,EAAEsI,cAAgBrI,EAAEqI,eAAiB,EAAI,KACtE9F,KAAI,SAASzM,GAAO,OAAOA,EAAIuS,cAAgB,IAAcwsH,EAAQ/+H,GALxDzC,WAAW4e,OAAO7J,QAAQ,OAAQ,QAM/C9N,KAAK,OAGVoqI,EAActxI,UAAU0yI,cAAgB,WACtC,OAAO3yI,OAAO0d,KAAKxY,KAAKi9H,QAAQT,SAC7BtyH,KAAI,SAASzM,GAAO,OAAOA,EAAIuS,iBAC/BwM,QAAO,SAAS/e,GAAO,OAAiC,MAA1B2uI,EAAkB3uI,MAChDu9C,OACA/4C,KAAK,MAGVoqI,EAActxI,UAAUyyI,iBAAmB,WACzC,MAAO,CACLxtI,KAAKq9B,UACLr9B,KAAKwsI,OACLxsI,KAAKusI,QACL,gBACAtqI,KAAK,MAGToqI,EAActxI,UAAU6xI,mBAAqB,WAC3C,IAAI1gH,EAAMnY,QAAQmY,IAClB,MAAO,CACLqhH,YAAarhH,EAAIijH,mBAAqBjjH,EAAIkjH,eAC1CjB,gBAAiBjiH,EAAImjH,uBAAyBnjH,EAAIojH,eAClDjC,aAAcnhH,EAAIqjH,oBAItBlD,EAActxI,UAAUmyI,UAAY,WAClC,IAAIh1F,EAAOl4C,KAAKi9H,QAAQ/kF,MAAQ,IAK5B,qCAAqCt6C,KAAKs6C,KAC5CA,EAAOykF,UAAU6S,UAAUt3F,KAG7B,IAAIu3F,EAAUv3F,EAAKtoC,QAAQ,KACvBkmG,EAAQ,KAER25B,GAAW,IACb35B,EAAQ+1B,EAAY3pI,MAAMg2C,EAAKh6C,MAAMuxI,EAAU,IAC/Cv3F,EAAOA,EAAKh6C,MAAM,EAAGuxI,IAGvBzvI,KAAKotI,WAAa,CAChBl1F,KAAMA,EACN49D,MAAOA,IAIXu2B,EAActxI,UAAU+yI,WAAa,WACnC,IAAI51F,EAAOl4C,KAAKotI,WAAWl1F,KACvB49D,EAAQ91G,KAAKotI,WAAWt3B,MAE5B,OAAKA,GAGY,MAAbA,EAAM,YAAoBA,EAAM,IAE7B59D,EAAO,IAAM+zF,EAAcJ,EAAY/qI,UAAUg1G,KALrC59D,GAQrB0zF,EAAKS,cAAgBA,EAErBT,EAAK9pE,KAAO,SAASm7D,EAAShE,GAC5B,OAAO,IAAIoT,EAAcpP,EAAShE,GAAan3D,U,uDCjXjDpmE,EAAQmyB,WAuCR,SAAqB6hH,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClDp0I,EAAQg7B,YAiDR,SAAsBg5G,GACpB,IAAI3pH,EAcAzkB,EAbAquI,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvB/xH,EAAM,IAAImyH,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVxkH,EAAMqkH,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKvuI,EAAI,EAAGA,EAAImqB,EAAKnqB,GAAK,EACxBykB,EACGmqH,EAAUR,EAAI9sI,WAAWtB,KAAO,GAChC4uI,EAAUR,EAAI9sI,WAAWtB,EAAI,KAAO,GACpC4uI,EAAUR,EAAI9sI,WAAWtB,EAAI,KAAO,EACrC4uI,EAAUR,EAAI9sI,WAAWtB,EAAI,IAC/Bsc,EAAIqyH,KAAclqH,GAAO,GAAM,IAC/BnI,EAAIqyH,KAAclqH,GAAO,EAAK,IAC9BnI,EAAIqyH,KAAmB,IAANlqH,EAGK,IAApB+pH,IACF/pH,EACGmqH,EAAUR,EAAI9sI,WAAWtB,KAAO,EAChC4uI,EAAUR,EAAI9sI,WAAWtB,EAAI,KAAO,EACvCsc,EAAIqyH,KAAmB,IAANlqH,GAGK,IAApB+pH,IACF/pH,EACGmqH,EAAUR,EAAI9sI,WAAWtB,KAAO,GAChC4uI,EAAUR,EAAI9sI,WAAWtB,EAAI,KAAO,EACpC4uI,EAAUR,EAAI9sI,WAAWtB,EAAI,KAAO,EACvCsc,EAAIqyH,KAAclqH,GAAO,EAAK,IAC9BnI,EAAIqyH,KAAmB,IAANlqH,GAGnB,OAAOnI,GA3FTliB,EAAQs1B,cAkHR,SAAwBm/G,GAQtB,IAPA,IAAIpqH,EACA0F,EAAM0kH,EAAM31I,OACZ41I,EAAa3kH,EAAM,EACnBu5B,EAAQ,GAIH1jD,EAAI,EAAG+uI,EAAO5kH,EAAM2kH,EAAY9uI,EAAI+uI,EAAM/uI,GAH9B,MAInB0jD,EAAMpjD,KAAK0uI,EACTH,EAAO7uI,EAAIA,EALM,MAKgB+uI,EAAOA,EAAQ/uI,EAL/B,QAUF,IAAf8uI,GACFrqH,EAAMoqH,EAAM1kH,EAAM,GAClBu5B,EAAMpjD,KACJub,EAAO4I,GAAO,GACd5I,EAAQ4I,GAAO,EAAK,IACpB,OAEsB,IAAfqqH,IACTrqH,GAAOoqH,EAAM1kH,EAAM,IAAM,GAAK0kH,EAAM1kH,EAAM,GAC1Cu5B,EAAMpjD,KACJub,EAAO4I,GAAO,IACd5I,EAAQ4I,GAAO,EAAK,IACpB5I,EAAQ4I,GAAO,EAAK,IACpB,MAIJ,OAAOi/B,EAAM/iD,KAAK,KA3IpB,IALA,IAAIkb,EAAS,GACT+yH,EAAY,GACZH,EAA4B,oBAAftiH,WAA6BA,WAAahe,MAEvDuJ,EAAO,mEACF1X,EAAI,EAAGmqB,EAAMzS,EAAKxe,OAAQ8G,EAAImqB,IAAOnqB,EAC5C6b,EAAO7b,GAAK0X,EAAK1X,GACjB4uI,EAAUl3H,EAAKpW,WAAWtB,IAAMA,EAQlC,SAASsuI,EAASF,GAChB,IAAIjkH,EAAMikH,EAAIl1I,OAEd,GAAIixB,EAAM,EAAI,EACZ,MAAM,IAAInwB,MAAM,kDAKlB,IAAIu0I,EAAWH,EAAI9/H,QAAQ,KAO3B,OANkB,IAAdigI,IAAiBA,EAAWpkH,GAMzB,CAACokH,EAJcA,IAAapkH,EAC/B,EACA,EAAKokH,EAAW,GAsEtB,SAASS,EAAaH,EAAOtxH,EAAOH,GAGlC,IAFA,IAAIqH,EARoBiV,EASpB4a,EAAS,GACJt0C,EAAIud,EAAOvd,EAAIod,EAAKpd,GAAK,EAChCykB,GACIoqH,EAAM7uI,IAAM,GAAM,WAClB6uI,EAAM7uI,EAAI,IAAM,EAAK,QACP,IAAf6uI,EAAM7uI,EAAI,IACbs0C,EAAOh0C,KAdFub,GADiB6d,EAeMjV,IAdT,GAAK,IACxB5I,EAAO6d,GAAO,GAAK,IACnB7d,EAAO6d,GAAO,EAAI,IAClB7d,EAAa,GAAN6d,IAaT,OAAO4a,EAAO3zC,KAAK,IAjGrBiuI,EAAU,IAAIttI,WAAW,IAAM,GAC/BstI,EAAU,IAAIttI,WAAW,IAAM,I,cCnB/BlH,EAAQk0B,KAAO,SAAUtpB,EAAQhC,EAAQisI,EAAMC,EAAM7uI,GACnD,IAAIqB,EAAGqc,EACHoxH,EAAiB,EAAT9uI,EAAc6uI,EAAO,EAC7BE,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTtvI,EAAIivI,EAAQ5uI,EAAS,EAAK,EAC1B03B,EAAIk3G,GAAQ,EAAI,EAChBv2G,EAAI1zB,EAAOhC,EAAShD,GAOxB,IALAA,GAAK+3B,EAELr2B,EAAIg3B,GAAM,IAAO42G,GAAU,EAC3B52G,KAAQ42G,EACRA,GAASH,EACFG,EAAQ,EAAG5tI,EAAS,IAAJA,EAAWsD,EAAOhC,EAAShD,GAAIA,GAAK+3B,EAAGu3G,GAAS,GAKvE,IAHAvxH,EAAIrc,GAAM,IAAO4tI,GAAU,EAC3B5tI,KAAQ4tI,EACRA,GAASJ,EACFI,EAAQ,EAAGvxH,EAAS,IAAJA,EAAW/Y,EAAOhC,EAAShD,GAAIA,GAAK+3B,EAAGu3G,GAAS,GAEvE,GAAU,IAAN5tI,EACFA,EAAI,EAAI2tI,MACH,IAAI3tI,IAAM0tI,EACf,OAAOrxH,EAAI7jB,IAAsBg7B,KAAdwD,GAAK,EAAI,GAE5B3a,GAAQ9gB,KAAKk2B,IAAI,EAAG+7G,GACpBxtI,GAAQ2tI,EAEV,OAAQ32G,GAAK,EAAI,GAAK3a,EAAI9gB,KAAKk2B,IAAI,EAAGzxB,EAAIwtI,IAG5C90I,EAAQwyB,MAAQ,SAAU5nB,EAAQ3K,EAAO2I,EAAQisI,EAAMC,EAAM7uI,GAC3D,IAAIqB,EAAGqc,EAAGlX,EACNsoI,EAAiB,EAAT9uI,EAAc6uI,EAAO,EAC7BE,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATL,EAAcjyI,KAAKk2B,IAAI,GAAI,IAAMl2B,KAAKk2B,IAAI,GAAI,IAAM,EAC1DnzB,EAAIivI,EAAO,EAAK5uI,EAAS,EACzB03B,EAAIk3G,EAAO,GAAK,EAChBv2G,EAAIr+B,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ4C,KAAKu5B,IAAIn8B,GAEbiK,MAAMjK,IAAUA,IAAU66B,KAC5BnX,EAAIzZ,MAAMjK,GAAS,EAAI,EACvBqH,EAAI0tI,IAEJ1tI,EAAIzE,KAAKsH,MAAMtH,KAAKogD,IAAIhjD,GAAS4C,KAAKuyI,KAClCn1I,GAASwM,EAAI5J,KAAKk2B,IAAI,GAAIzxB,IAAM,IAClCA,IACAmF,GAAK,IAGLxM,GADEqH,EAAI2tI,GAAS,EACNE,EAAK1oI,EAEL0oI,EAAKtyI,KAAKk2B,IAAI,EAAG,EAAIk8G,IAEpBxoI,GAAK,IACfnF,IACAmF,GAAK,GAGHnF,EAAI2tI,GAASD,GACfrxH,EAAI,EACJrc,EAAI0tI,GACK1tI,EAAI2tI,GAAS,GACtBtxH,GAAM1jB,EAAQwM,EAAK,GAAK5J,KAAKk2B,IAAI,EAAG+7G,GACpCxtI,GAAQ2tI,IAERtxH,EAAI1jB,EAAQ4C,KAAKk2B,IAAI,EAAGk8G,EAAQ,GAAKpyI,KAAKk2B,IAAI,EAAG+7G,GACjDxtI,EAAI,IAIDwtI,GAAQ,EAAGlqI,EAAOhC,EAAShD,GAAS,IAAJ+d,EAAU/d,GAAK+3B,EAAGha,GAAK,IAAKmxH,GAAQ,GAI3E,IAFAxtI,EAAKA,GAAKwtI,EAAQnxH,EAClBoxH,GAAQD,EACDC,EAAO,EAAGnqI,EAAOhC,EAAShD,GAAS,IAAJ0B,EAAU1B,GAAK+3B,EAAGr2B,GAAK,IAAKytI,GAAQ,GAE1EnqI,EAAOhC,EAAShD,EAAI+3B,IAAU,IAAJW,I,kQC3D5B,IAAIqlF,EAAWtgH,EAAQ,MACnB+gE,EAAO/gE,EAAQ,MASnB,SAASgyI,IACP/wI,KAAKm3H,SAAW,KAChBn3H,KAAKgxI,QAAU,KACfhxI,KAAKm9H,KAAO,KACZn9H,KAAKq8H,KAAO,KACZr8H,KAAK8sI,KAAO,KACZ9sI,KAAK0sI,SAAW,KAChB1sI,KAAK85B,KAAO,KACZ95B,KAAK64C,OAAS,KACd74C,KAAK81G,MAAQ,KACb91G,KAAK44C,SAAW,KAChB54C,KAAKk4C,KAAO,KACZl4C,KAAKq5C,KAAO,KAnBd39C,EAAQwG,MAAQ+uI,EAChBv1I,EAAQ8P,QA0ZR,SAAoBmM,EAAQs8G,GAC1B,OAAOgd,EAASt5H,GAAQ,GAAO,GAAMnM,QAAQyoH,IA1Z/Cv4H,EAAQw1I,cAiaR,SAA0Bv5H,EAAQs8G,GAChC,OAAKt8G,EACEs5H,EAASt5H,GAAQ,GAAO,GAAMu5H,cAAcjd,GAD/BA,GAjatBv4H,EAAQ0a,OAsVR,SAAmB5W,GAKbsgE,EAAKrnD,SAASjZ,KAAMA,EAAMyxI,EAASzxI,IACvC,OAAMA,aAAeuxI,EACdvxI,EAAI4W,SADuB26H,EAAIh2I,UAAUqb,OAAOnb,KAAKuE,IA1V9D9D,EAAQq1I,IAAMA,EAqBd,IAAII,EAAkB,oBAClBC,EAAc,WAGdC,EAAoB,qCAOpBC,EAAS,CAAC,IAAK,IAAK,IAAK,KAAM,IAAK,KAAKvwI,OAHhC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OAM/CwwI,EAAa,CAAC,KAAMxwI,OAAOuwI,GAK3BE,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KAAKzwI,OAAOwwI,GAChDE,EAAkB,CAAC,IAAK,IAAK,KAE7BC,EAAsB,yBACtBC,EAAoB,+BAEpBC,EAAiB,CACf,YAAc,EACd,eAAe,GAGjBC,EAAmB,CACjB,YAAc,EACd,eAAe,GAGjBC,EAAkB,CAChB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEXjG,EAAc9sI,EAAQ,MAE1B,SAASkyI,EAAS15F,EAAKw6F,EAAkBC,GACvC,GAAIz6F,GAAOuoB,EAAK4T,SAASn8B,IAAQA,aAAew5F,EAAK,OAAOx5F,EAE5D,IAAIf,EAAI,IAAIu6F,EAEZ,OADAv6F,EAAEt0C,MAAMq1C,EAAKw6F,EAAkBC,GACxBx7F,EAGTu6F,EAAIh2I,UAAUmH,MAAQ,SAASq1C,EAAKw6F,EAAkBC,GACpD,IAAKlyE,EAAKrnD,SAAS8+B,GACjB,MAAM,IAAI98C,UAAU,yCAA2C,EAAO88C,IAMxE,IAAI06F,EAAa16F,EAAI3nC,QAAQ,KACzBsiI,GACqB,IAAhBD,GAAqBA,EAAa16F,EAAI3nC,QAAQ,KAAQ,IAAM,IACjEuiI,EAAS56F,EAAI15B,MAAMq0H,GAEvBC,EAAO,GAAKA,EAAO,GAAGpiI,QADL,MACyB,KAG1C,IAAI9R,EAFJs5C,EAAM46F,EAAOlwI,KAAKiwI,GAQlB,GAFAj0I,EAAOA,EAAK2b,QAEPo4H,GAA+C,IAA1Bz6F,EAAI15B,MAAM,KAAKrjB,OAAc,CAErD,IAAI43I,EAAaf,EAAkB3zH,KAAKzf,GACxC,GAAIm0I,EAeF,OAdApyI,KAAKk4C,KAAOj6C,EACZ+B,KAAKq5C,KAAOp7C,EACZ+B,KAAK44C,SAAWw5F,EAAW,GACvBA,EAAW,IACbpyI,KAAK64C,OAASu5F,EAAW,GAEvBpyI,KAAK81G,MADHi8B,EACWlG,EAAY3pI,MAAMlC,KAAK64C,OAAOv2C,OAAO,IAErCtC,KAAK64C,OAAOv2C,OAAO,IAEzByvI,IACT/xI,KAAK64C,OAAS,GACd74C,KAAK81G,MAAQ,IAER91G,KAIX,IAAIsO,EAAQ6iI,EAAgBzzH,KAAKzf,GACjC,GAAIqQ,EAAO,CAET,IAAI+jI,GADJ/jI,EAAQA,EAAM,IACS0B,cACvBhQ,KAAKm3H,SAAWkb,EAChBp0I,EAAOA,EAAKqE,OAAOgM,EAAM9T,QAO3B,GAAIw3I,GAAqB1jI,GAASrQ,EAAKd,MAAM,wBAAyB,CACpE,IAAI6zI,EAAgC,OAAtB/yI,EAAKqE,OAAO,EAAG,IACzB0uI,GAAa1iI,GAASujI,EAAiBvjI,KACzCrQ,EAAOA,EAAKqE,OAAO,GACnBtC,KAAKgxI,SAAU,GAInB,IAAKa,EAAiBvjI,KACjB0iI,GAAY1iI,IAAUwjI,EAAgBxjI,IAAU,CAmBnD,IADA,IASI6uH,EAAMmV,EATNC,GAAW,EACNjxI,EAAI,EAAGA,EAAImwI,EAAgBj3I,OAAQ8G,IAAK,EAElC,KADTkxI,EAAMv0I,EAAK2R,QAAQ6hI,EAAgBnwI,QACP,IAAbixI,GAAkBC,EAAMD,KACzCA,EAAUC,IAiBE,KATdF,GAFe,IAAbC,EAEOt0I,EAAKuxB,YAAY,KAIjBvxB,EAAKuxB,YAAY,IAAK+iH,MAM/BpV,EAAOl/H,EAAKC,MAAM,EAAGo0I,GACrBr0I,EAAOA,EAAKC,MAAMo0I,EAAS,GAC3BtyI,KAAKm9H,KAAOr6H,mBAAmBq6H,IAIjCoV,GAAW,EACX,IAASjxI,EAAI,EAAGA,EAAIkwI,EAAah3I,OAAQ8G,IAAK,CAC5C,IAAIkxI,GACS,KADTA,EAAMv0I,EAAK2R,QAAQ4hI,EAAalwI,QACJ,IAAbixI,GAAkBC,EAAMD,KACzCA,EAAUC,IAGG,IAAbD,IACFA,EAAUt0I,EAAKzD,QAEjBwF,KAAKq8H,KAAOp+H,EAAKC,MAAM,EAAGq0I,GAC1Bt0I,EAAOA,EAAKC,MAAMq0I,GAGlBvyI,KAAKyyI,YAILzyI,KAAK0sI,SAAW1sI,KAAK0sI,UAAY,GAIjC,IAAIgG,EAAoC,MAArB1yI,KAAK0sI,SAAS,IACe,MAA5C1sI,KAAK0sI,SAAS1sI,KAAK0sI,SAASlyI,OAAS,GAGzC,IAAKk4I,EAEH,IADA,IAAIC,EAAY3yI,KAAK0sI,SAAS7uH,MAAM,MACpB6E,GAAPphB,EAAI,EAAOqxI,EAAUn4I,QAAQ8G,EAAIohB,EAAGphB,IAAK,CAChD,IAAIupD,EAAO8nF,EAAUrxI,GACrB,GAAKupD,IACAA,EAAK1tD,MAAMu0I,GAAsB,CAEpC,IADA,IAAIkB,EAAU,GACLpxI,EAAI,EAAGgmB,EAAIqjC,EAAKrwD,OAAQgH,EAAIgmB,EAAGhmB,IAClCqpD,EAAKjoD,WAAWpB,GAAK,IAIvBoxI,GAAW,IAEXA,GAAW/nF,EAAKrpD,GAIpB,IAAKoxI,EAAQz1I,MAAMu0I,GAAsB,CACvC,IAAImB,EAAaF,EAAUz0I,MAAM,EAAGoD,GAChCwxI,EAAUH,EAAUz0I,MAAMoD,EAAI,GAC9BolC,EAAMmkB,EAAK1tD,MAAMw0I,GACjBjrG,IACFmsG,EAAWjxI,KAAK8kC,EAAI,IACpBosG,EAAQ91E,QAAQt2B,EAAI,KAElBosG,EAAQt4I,SACVyD,EAAO,IAAM60I,EAAQ7wI,KAAK,KAAOhE,GAEnC+B,KAAK0sI,SAAWmG,EAAW5wI,KAAK,KAChC,QAMJjC,KAAK0sI,SAASlyI,OAjND,IAkNfwF,KAAK0sI,SAAW,GAGhB1sI,KAAK0sI,SAAW1sI,KAAK0sI,SAAS18H,cAG3B0iI,IAKH1yI,KAAK0sI,SAAWrtB,EAAS0zB,QAAQ/yI,KAAK0sI,WAGxC,IAAI9tG,EAAI5+B,KAAK8sI,KAAO,IAAM9sI,KAAK8sI,KAAO,GAClCx9F,EAAItvC,KAAK0sI,UAAY,GACzB1sI,KAAKq8H,KAAO/sF,EAAI1Q,EAChB5+B,KAAKq5C,MAAQr5C,KAAKq8H,KAIdqW,IACF1yI,KAAK0sI,SAAW1sI,KAAK0sI,SAASpqI,OAAO,EAAGtC,KAAK0sI,SAASlyI,OAAS,GAC/C,MAAZyD,EAAK,KACPA,EAAO,IAAMA,IAOnB,IAAK2zI,EAAeS,GAKlB,IAAS/wI,EAAI,EAAGohB,EAAI6uH,EAAW/2I,OAAQ8G,EAAIohB,EAAGphB,IAAK,CACjD,IAAI0xI,EAAKzB,EAAWjwI,GACpB,IAA0B,IAAtBrD,EAAK2R,QAAQojI,GAAjB,CAEA,IAAIC,EAAM9vI,mBAAmB6vI,GACzBC,IAAQD,IACVC,EAAMlwI,OAAOiwI,IAEf/0I,EAAOA,EAAK4f,MAAMm1H,GAAI/wI,KAAKgxI,IAM/B,IAAIn5G,EAAO77B,EAAK2R,QAAQ,MACV,IAAVkqB,IAEF95B,KAAK85B,KAAO77B,EAAKqE,OAAOw3B,GACxB77B,EAAOA,EAAKC,MAAM,EAAG47B,IAEvB,IAAIo5G,EAAKj1I,EAAK2R,QAAQ,KAoBtB,IAnBY,IAARsjI,GACFlzI,KAAK64C,OAAS56C,EAAKqE,OAAO4wI,GAC1BlzI,KAAK81G,MAAQ73G,EAAKqE,OAAO4wI,EAAK,GAC1BnB,IACF/xI,KAAK81G,MAAQ+1B,EAAY3pI,MAAMlC,KAAK81G,QAEtC73G,EAAOA,EAAKC,MAAM,EAAGg1I,IACZnB,IAET/xI,KAAK64C,OAAS,GACd74C,KAAK81G,MAAQ,IAEX73G,IAAM+B,KAAK44C,SAAW36C,GACtB6zI,EAAgBO,IAChBryI,KAAK0sI,WAAa1sI,KAAK44C,WACzB54C,KAAK44C,SAAW,KAId54C,KAAK44C,UAAY54C,KAAK64C,OAAQ,CAC5Bja,EAAI5+B,KAAK44C,UAAY,GAAzB,IACI5e,EAAIh6B,KAAK64C,QAAU,GACvB74C,KAAKk4C,KAAOtZ,EAAI5E,EAKlB,OADAh6B,KAAKq5C,KAAOr5C,KAAKoW,SACVpW,MAcT+wI,EAAIh2I,UAAUqb,OAAS,WACrB,IAAI+mH,EAAOn9H,KAAKm9H,MAAQ,GACpBA,IAEFA,GADAA,EAAOh6H,mBAAmBg6H,IACdptH,QAAQ,OAAQ,KAC5BotH,GAAQ,KAGV,IAAIhG,EAAWn3H,KAAKm3H,UAAY,GAC5Bv+E,EAAW54C,KAAK44C,UAAY,GAC5B9e,EAAO95B,KAAK85B,MAAQ,GACpBuiG,GAAO,EACPvmB,EAAQ,GAER91G,KAAKq8H,KACPA,EAAOc,EAAOn9H,KAAKq8H,KACVr8H,KAAK0sI,WACdrQ,EAAOc,IAAwC,IAAhCn9H,KAAK0sI,SAAS98H,QAAQ,KACjC5P,KAAK0sI,SACL,IAAM1sI,KAAK0sI,SAAW,KACtB1sI,KAAK8sI,OACPzQ,GAAQ,IAAMr8H,KAAK8sI,OAInB9sI,KAAK81G,OACLh2C,EAAK4T,SAAS1zE,KAAK81G,QACnBh7G,OAAO0d,KAAKxY,KAAK81G,OAAOt7G,SAC1Bs7G,EAAQ+1B,EAAY/qI,UAAUd,KAAK81G,QAGrC,IAAIj9D,EAAS74C,KAAK64C,QAAWi9D,GAAU,IAAMA,GAAW,GAsBxD,OApBIqhB,GAAoC,MAAxBA,EAAS70H,QAAQ,KAAY60H,GAAY,KAIrDn3H,KAAKgxI,WACH7Z,GAAY2a,EAAgB3a,MAAuB,IAATkF,GAC9CA,EAAO,MAAQA,GAAQ,IACnBzjF,GAAmC,MAAvBA,EAASx7B,OAAO,KAAYw7B,EAAW,IAAMA,IACnDyjF,IACVA,EAAO,IAGLviG,GAA2B,MAAnBA,EAAK1c,OAAO,KAAY0c,EAAO,IAAMA,GAC7C+e,GAA+B,MAArBA,EAAOz7B,OAAO,KAAYy7B,EAAS,IAAMA,GAOhDs+E,EAAWkF,GALlBzjF,EAAWA,EAAS7oC,QAAQ,SAAS,SAAS5S,GAC5C,OAAOgG,mBAAmBhG,QAE5B07C,EAASA,EAAO9oC,QAAQ,IAAK,QAEgB+pB,GAO/Ci3G,EAAIh2I,UAAUyQ,QAAU,SAASyoH,GAC/B,OAAOj0H,KAAKkxI,cAAcD,EAAShd,GAAU,GAAO,IAAO79G,UAQ7D26H,EAAIh2I,UAAUm2I,cAAgB,SAASjd,GACrC,GAAIn0D,EAAKrnD,SAASw7G,GAAW,CAC3B,IAAIkf,EAAM,IAAIpC,EACdoC,EAAIjxI,MAAM+xH,GAAU,GAAO,GAC3BA,EAAWkf,EAKb,IAFA,IAAI11H,EAAS,IAAIszH,EACbqC,EAAQt4I,OAAO0d,KAAKxY,MACfqzI,EAAK,EAAGA,EAAKD,EAAM54I,OAAQ64I,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACjB51H,EAAO61H,GAAQtzI,KAAKszI,GAQtB,GAHA71H,EAAOqc,KAAOm6F,EAASn6F,KAGD,KAAlBm6F,EAAS56E,KAEX,OADA57B,EAAO47B,KAAO57B,EAAOrH,SACdqH,EAIT,GAAIw2G,EAAS+c,UAAY/c,EAASkD,SAAU,CAG1C,IADA,IAAIoc,EAAQz4I,OAAO0d,KAAKy7G,GACfuf,EAAK,EAAGA,EAAKD,EAAM/4I,OAAQg5I,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACJ,aAATC,IACFh2H,EAAOg2H,GAAQxf,EAASwf,IAU5B,OANI3B,EAAgBr0H,EAAO05G,WACvB15G,EAAOivH,WAAajvH,EAAOm7B,WAC7Bn7B,EAAOy6B,KAAOz6B,EAAOm7B,SAAW,KAGlCn7B,EAAO47B,KAAO57B,EAAOrH,SACdqH,EAGT,GAAIw2G,EAASkD,UAAYlD,EAASkD,WAAa15G,EAAO05G,SAAU,CAS9D,IAAK2a,EAAgB7d,EAASkD,UAAW,CAEvC,IADA,IAAI3+G,EAAO1d,OAAO0d,KAAKy7G,GACd1lH,EAAI,EAAGA,EAAIiK,EAAKhe,OAAQ+T,IAAK,CACpC,IAAIiZ,EAAIhP,EAAKjK,GACbkP,EAAO+J,GAAKysG,EAASzsG,GAGvB,OADA/J,EAAO47B,KAAO57B,EAAOrH,SACdqH,EAIT,GADAA,EAAO05G,SAAWlD,EAASkD,SACtBlD,EAASoI,MAASwV,EAAiB5d,EAASkD,UAS/C15G,EAAOm7B,SAAWq7E,EAASr7E,aAT+B,CAE1D,IADA,IAAI86F,GAAWzf,EAASr7E,UAAY,IAAI/6B,MAAM,KACvC61H,EAAQl5I,UAAYy5H,EAASoI,KAAOqX,EAAQtjG,WAC9C6jF,EAASoI,OAAMpI,EAASoI,KAAO,IAC/BpI,EAASyY,WAAUzY,EAASyY,SAAW,IACzB,KAAfgH,EAAQ,IAAWA,EAAQ12E,QAAQ,IACnC02E,EAAQl5I,OAAS,GAAGk5I,EAAQ12E,QAAQ,IACxCv/C,EAAOm7B,SAAW86F,EAAQzxI,KAAK,KAWjC,GAPAwb,EAAOo7B,OAASo7E,EAASp7E,OACzBp7B,EAAOq4F,MAAQme,EAASne,MACxBr4F,EAAO4+G,KAAOpI,EAASoI,MAAQ,GAC/B5+G,EAAO0/G,KAAOlJ,EAASkJ,KACvB1/G,EAAOivH,SAAWzY,EAASyY,UAAYzY,EAASoI,KAChD5+G,EAAOqvH,KAAO7Y,EAAS6Y,KAEnBrvH,EAAOm7B,UAAYn7B,EAAOo7B,OAAQ,CACpC,IAAIja,EAAInhB,EAAOm7B,UAAY,GACvB5e,EAAIvc,EAAOo7B,QAAU,GACzBp7B,EAAOy6B,KAAOtZ,EAAI5E,EAIpB,OAFAvc,EAAOuzH,QAAUvzH,EAAOuzH,SAAW/c,EAAS+c,QAC5CvzH,EAAO47B,KAAO57B,EAAOrH,SACdqH,EAGT,IAAIk2H,EAAel2H,EAAOm7B,UAA0C,MAA9Bn7B,EAAOm7B,SAASx7B,OAAO,GACzDw2H,EACI3f,EAASoI,MACTpI,EAASr7E,UAA4C,MAAhCq7E,EAASr7E,SAASx7B,OAAO,GAElDy2H,EAAcD,GAAYD,GACXl2H,EAAO4+G,MAAQpI,EAASr7E,SACvCk7F,EAAgBD,EAChBE,EAAUt2H,EAAOm7B,UAAYn7B,EAAOm7B,SAAS/6B,MAAM,MAAQ,GAE3Dm2H,GADAN,EAAUzf,EAASr7E,UAAYq7E,EAASr7E,SAAS/6B,MAAM,MAAQ,GACnDJ,EAAO05G,WAAa2a,EAAgBr0H,EAAO05G,WA2B3D,GApBI6c,IACFv2H,EAAOivH,SAAW,GAClBjvH,EAAOqvH,KAAO,KACVrvH,EAAO4+G,OACU,KAAf0X,EAAQ,GAAWA,EAAQ,GAAKt2H,EAAO4+G,KACtC0X,EAAQ/2E,QAAQv/C,EAAO4+G,OAE9B5+G,EAAO4+G,KAAO,GACVpI,EAASkD,WACXlD,EAASyY,SAAW,KACpBzY,EAAS6Y,KAAO,KACZ7Y,EAASoI,OACQ,KAAfqX,EAAQ,GAAWA,EAAQ,GAAKzf,EAASoI,KACxCqX,EAAQ12E,QAAQi3D,EAASoI,OAEhCpI,EAASoI,KAAO,MAElBwX,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFn2H,EAAO4+G,KAAQpI,EAASoI,MAA0B,KAAlBpI,EAASoI,KAC3BpI,EAASoI,KAAO5+G,EAAO4+G,KACrC5+G,EAAOivH,SAAYzY,EAASyY,UAAkC,KAAtBzY,EAASyY,SAC/BzY,EAASyY,SAAWjvH,EAAOivH,SAC7CjvH,EAAOo7B,OAASo7E,EAASp7E,OACzBp7B,EAAOq4F,MAAQme,EAASne,MACxBi+B,EAAUL,OAEL,GAAIA,EAAQl5I,OAGZu5I,IAASA,EAAU,IACxBA,EAAQjoI,MACRioI,EAAUA,EAAQhzI,OAAO2yI,GACzBj2H,EAAOo7B,OAASo7E,EAASp7E,OACzBp7B,EAAOq4F,MAAQme,EAASne,WACnB,IAAKh2C,EAAKuT,kBAAkB4gD,EAASp7E,QAAS,CAInD,GAAIm7F,EACFv2H,EAAOivH,SAAWjvH,EAAO4+G,KAAO0X,EAAQ3jG,SAIpC6jG,KAAax2H,EAAO4+G,MAAQ5+G,EAAO4+G,KAAKzsH,QAAQ,KAAO,IAC1C6N,EAAO4+G,KAAKx+G,MAAM,QAEjCJ,EAAO0/G,KAAO8W,EAAW7jG,QACzB3yB,EAAO4+G,KAAO5+G,EAAOivH,SAAWuH,EAAW7jG,SAW/C,OARA3yB,EAAOo7B,OAASo7E,EAASp7E,OACzBp7B,EAAOq4F,MAAQme,EAASne,MAEnBh2C,EAAKsT,OAAO31D,EAAOm7B,WAAcknB,EAAKsT,OAAO31D,EAAOo7B,UACvDp7B,EAAOy6B,MAAQz6B,EAAOm7B,SAAWn7B,EAAOm7B,SAAW,KACpCn7B,EAAOo7B,OAASp7B,EAAOo7B,OAAS,KAEjDp7B,EAAO47B,KAAO57B,EAAOrH,SACdqH,EAGT,IAAKs2H,EAAQv5I,OAWX,OARAijB,EAAOm7B,SAAW,KAEdn7B,EAAOo7B,OACTp7B,EAAOy6B,KAAO,IAAMz6B,EAAOo7B,OAE3Bp7B,EAAOy6B,KAAO,KAEhBz6B,EAAO47B,KAAO57B,EAAOrH,SACdqH,EAcT,IARA,IAAIwgF,EAAO81C,EAAQ71I,OAAO,GAAG,GACzBg2I,GACCz2H,EAAO4+G,MAAQpI,EAASoI,MAAQ0X,EAAQv5I,OAAS,KACxC,MAATyjG,GAAyB,OAATA,IAA2B,KAATA,EAInCk2C,EAAK,EACA7yI,EAAIyyI,EAAQv5I,OAAQ8G,GAAK,EAAGA,IAEtB,OADb28F,EAAO81C,EAAQzyI,IAEbyyI,EAAQvvI,OAAOlD,EAAG,GACA,OAAT28F,GACT81C,EAAQvvI,OAAOlD,EAAG,GAClB6yI,KACSA,IACTJ,EAAQvvI,OAAOlD,EAAG,GAClB6yI,KAKJ,IAAKN,IAAeC,EAClB,KAAOK,IAAMA,EACXJ,EAAQ/2E,QAAQ,OAIhB62E,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAG32H,OAAO,IACpC22H,EAAQ/2E,QAAQ,IAGdk3E,GAAsD,MAAjCH,EAAQ9xI,KAAK,KAAKK,QAAQ,IACjDyxI,EAAQnyI,KAAK,IAGf,IAUMqyI,EAVFG,EAA4B,KAAfL,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAG32H,OAAO,GAGjC42H,IACFv2H,EAAOivH,SAAWjvH,EAAO4+G,KAAO+X,EAAa,GACbL,EAAQv5I,OAASu5I,EAAQ3jG,QAAU,IAI/D6jG,KAAax2H,EAAO4+G,MAAQ5+G,EAAO4+G,KAAKzsH,QAAQ,KAAO,IAC1C6N,EAAO4+G,KAAKx+G,MAAM,QAEjCJ,EAAO0/G,KAAO8W,EAAW7jG,QACzB3yB,EAAO4+G,KAAO5+G,EAAOivH,SAAWuH,EAAW7jG,UAyB/C,OArBAyjG,EAAaA,GAAep2H,EAAO4+G,MAAQ0X,EAAQv5I,UAEhC45I,GACjBL,EAAQ/2E,QAAQ,IAGb+2E,EAAQv5I,OAIXijB,EAAOm7B,SAAWm7F,EAAQ9xI,KAAK,MAH/Bwb,EAAOm7B,SAAW,KAClBn7B,EAAOy6B,KAAO,MAMX4nB,EAAKsT,OAAO31D,EAAOm7B,WAAcknB,EAAKsT,OAAO31D,EAAOo7B,UACvDp7B,EAAOy6B,MAAQz6B,EAAOm7B,SAAWn7B,EAAOm7B,SAAW,KACpCn7B,EAAOo7B,OAASp7B,EAAOo7B,OAAS,KAEjDp7B,EAAO0/G,KAAOlJ,EAASkJ,MAAQ1/G,EAAO0/G,KACtC1/G,EAAOuzH,QAAUvzH,EAAOuzH,SAAW/c,EAAS+c,QAC5CvzH,EAAO47B,KAAO57B,EAAOrH,SACdqH,GAGTszH,EAAIh2I,UAAU03I,UAAY,WACxB,IAAIpW,EAAOr8H,KAAKq8H,KACZyQ,EAAOsE,EAAY1zH,KAAK2+G,GACxByQ,IAEW,OADbA,EAAOA,EAAK,MAEV9sI,KAAK8sI,KAAOA,EAAKxqI,OAAO,IAE1B+5H,EAAOA,EAAK/5H,OAAO,EAAG+5H,EAAK7hI,OAASsyI,EAAKtyI,SAEvC6hI,IAAMr8H,KAAK0sI,SAAWrQ,K,kQCxtB5BlgI,EAAOT,QAAU,CACf+c,SAAU,SAAS7R,GACjB,MAAuB,iBAATA,GAEhB8sE,SAAU,SAAS9sE,GACjB,MAAuB,WAAhB,EAAOA,IAA6B,OAARA,GAErCwsE,OAAQ,SAASxsE,GACf,OAAe,OAARA,GAETysE,kBAAmB,SAASzsE,GAC1B,OAAc,MAAPA,K,6BCaX,SAAS9I,EAAe0B,EAAK0hD,GAC3B,OAAOpmD,OAAOC,UAAU+C,eAAe7C,KAAKuE,EAAK0hD,GAGnD/kD,EAAOT,QAAU,SAAS24I,EAAI7iF,EAAK5e,EAAI92C,GACrC01D,EAAMA,GAAO,IACb5e,EAAKA,GAAM,IACX,IAAIpzC,EAAM,GAEV,GAAkB,iBAAP60I,GAAiC,IAAdA,EAAG75I,OAC/B,OAAOgF,EAGT,IAAI+wD,EAAS,MACb8jF,EAAKA,EAAGx2H,MAAM2zC,GAEd,IAAI8iF,EAAU,IACVx4I,GAAsC,iBAApBA,EAAQw4I,UAC5BA,EAAUx4I,EAAQw4I,SAGpB,IAAI7oH,EAAM4oH,EAAG75I,OAET85I,EAAU,GAAK7oH,EAAM6oH,IACvB7oH,EAAM6oH,GAGR,IAAK,IAAIhzI,EAAI,EAAGA,EAAImqB,IAAOnqB,EAAG,CAC5B,IAEIizI,EAAMC,EAAMhtH,EAAGjZ,EAFf4jB,EAAIkiH,EAAG/yI,GAAGyO,QAAQwgD,EAAQ,OAC1BxB,EAAM58B,EAAEviB,QAAQgjC,GAGhBmc,GAAO,GACTwlF,EAAOpiH,EAAE7vB,OAAO,EAAGysD,GACnBylF,EAAOriH,EAAE7vB,OAAOysD,EAAM,KAEtBwlF,EAAOpiH,EACPqiH,EAAO,IAGThtH,EAAI1kB,mBAAmByxI,GACvBhmI,EAAIzL,mBAAmB0xI,GAElB12I,EAAe0B,EAAKgoB,GAEd9X,EAAQlQ,EAAIgoB,IACrBhoB,EAAIgoB,GAAG5lB,KAAK2M,GAEZ/O,EAAIgoB,GAAK,CAAChoB,EAAIgoB,GAAIjZ,GAJlB/O,EAAIgoB,GAAKjZ,EAQb,OAAO/O,GAGT,IAAIkQ,EAAUD,MAAMC,SAAW,SAAUg1G,GACvC,MAA8C,mBAAvC5pH,OAAOC,UAAUC,SAASC,KAAKypH,K,kQC3DxC,IAAI+vB,EAAqB,SAASlmI,GAChC,SAAeA,IACb,IAAK,SACH,OAAOA,EAET,IAAK,UACH,OAAOA,EAAI,OAAS,QAEtB,IAAK,SACH,OAAOwkB,SAASxkB,GAAKA,EAAI,GAE3B,QACE,MAAO,KAIbpS,EAAOT,QAAU,SAAS8D,EAAKgyD,EAAK5e,EAAI9pC,GAOtC,OANA0oD,EAAMA,GAAO,IACb5e,EAAKA,GAAM,IACC,OAARpzC,IACFA,OAAMhB,GAGW,WAAf,EAAOgB,GACF0K,EAAI01D,EAAWpgE,IAAM,SAASgoB,GACnC,IAAIktH,EAAKvxI,mBAAmBsxI,EAAmBjtH,IAAMorB,EACrD,OAAIljC,EAAQlQ,EAAIgoB,IACPtd,EAAI1K,EAAIgoB,IAAI,SAASjZ,GAC1B,OAAOmmI,EAAKvxI,mBAAmBsxI,EAAmBlmI,OACjDtM,KAAKuvD,GAEDkjF,EAAKvxI,mBAAmBsxI,EAAmBj1I,EAAIgoB,QAEvDvlB,KAAKuvD,GAIL1oD,EACE3F,mBAAmBsxI,EAAmB3rI,IAAS8pC,EAC/CzvC,mBAAmBsxI,EAAmBj1I,IAF3B,IAKpB,IAAIkQ,EAAUD,MAAMC,SAAW,SAAUg1G,GACvC,MAA8C,mBAAvC5pH,OAAOC,UAAUC,SAASC,KAAKypH,IAGxC,SAASx6G,EAAKw6G,EAAI7nG,GAChB,GAAI6nG,EAAGx6G,IAAK,OAAOw6G,EAAGx6G,IAAI2S,GAE1B,IADA,IAAIG,EAAM,GACD1b,EAAI,EAAGA,EAAIojH,EAAGlqH,OAAQ8G,IAC7B0b,EAAIpb,KAAKib,EAAE6nG,EAAGpjH,GAAIA,IAEpB,OAAO0b,EAGT,IAAI4iD,EAAa9kE,OAAO0d,MAAQ,SAAUhZ,GACxC,IAAIwd,EAAM,GACV,IAAK,IAAIvf,KAAO+B,EACV1E,OAAOC,UAAU+C,eAAe7C,KAAKuE,EAAK/B,IAAMuf,EAAIpb,KAAKnE,GAE/D,OAAOuf,I,6BCjFTthB,EAAQ0D,YAAc1D,EAAQi5I,IAAMj5I,EAAQk5I,kBAAoBl5I,EAAQm5I,KAAO91I,EAAQ,KACvFrD,EAAQ65H,WAAa75H,EAAQopE,KAAO/lE,EAAQ,KAC5CrD,EAAQswI,WAAatwI,EAAQ8uH,KAAOzrH,EAAQ,MAE5C,IAAI+1I,EAAQ/1I,EAAQ,MAChBg2I,EAAWj6I,OAAO0d,KAAKs8H,GACvBE,EAAS,CAAC,OAAQ,SAAU,SAAU,SAAU,SAAU,MAAO,UAAUj0I,OAAOg0I,GACtFr5I,EAAQu5I,UAAY,WAClB,OAAOD,GAGT,IAAIp2G,EAAI7/B,EAAQ,MAChBrD,EAAQqvH,OAASnsF,EAAEmsF,OACnBrvH,EAAQiyF,WAAa/uD,EAAE+uD,WAEvB,IAAIsgC,EAAMlvH,EAAQ,MAElBrD,EAAQoX,OAASm7G,EAAIn7G,OACrBpX,EAAQ4jG,aAAe2uB,EAAI3uB,aAC3B5jG,EAAQ8jG,SAAWyuB,EAAIzuB,SACvB9jG,EAAQ6jG,eAAiB0uB,EAAI1uB,eAC7B7jG,EAAQgkG,SAAWuuB,EAAIvuB,SACvBhkG,EAAQ+jG,eAAiBwuB,EAAIxuB,eAC7B/jG,EAAQikG,WAAasuB,EAAItuB,WACzBjkG,EAAQkyF,iBAAmBqgC,EAAIrgC,iBAC/BlyF,EAAQmkG,WAAaouB,EAAIpuB,WACzBnkG,EAAQkkG,YAAcquB,EAAIruB,YAE1B,IAAI5/D,EAAKjhC,EAAQ,MAEjBrD,EAAQw5I,mBAAqBl1G,EAAGk1G,mBAChCx5I,EAAQy5I,yBAA2Bn1G,EAAGm1G,yBACtCz5I,EAAQ05I,iBAAmBp1G,EAAGo1G,iBAC9B15I,EAAQ25I,oBAAsBr1G,EAAGq1G,oBACjC35I,EAAQ45I,cAAgBt1G,EAAGs1G,cAE3B,IAAIxzE,EAAO/iE,EAAQ,MAEnBrD,EAAQ65I,WAAazzE,EAAKyzE,WAC1B75I,EAAQ85I,KAAO1zE,EAAK0zE,KACpB95I,EAAQ+5I,aAAe3zE,EAAK2zE,aAC5B/5I,EAAQg6I,OAAS5zE,EAAK4zE,OAEtBh6I,EAAQi6I,WAAa52I,EAAQ,MAE7B,IAAI62I,EAAgB72I,EAAQ,MAE5BrD,EAAQk6I,cAAgBA,EAAcA,cACtCl6I,EAAQm6I,eAAiBD,EAAcC,eACvCn6I,EAAQo6I,cAAgBF,EAAcE,cACtCp6I,EAAQq6I,eAAiBH,EAAcG,eAevC,IAAIC,EAAKj3I,EAAQ,MAEjBrD,EAAQu6I,WAAaD,EAAGC,WACxBv6I,EAAQw6I,eAAiBF,EAAGE,eAE5Bx6I,EAAQy6I,kBAAoB,WAC1B,MAAM,IAAI76I,MAAM,CACd,kDACA,0BACA,0DACA2G,KAAK,QAGTvG,EAAQ8nG,UAAY,CAClB,0BAA6B,EAC7B,qBAAwB,EACxB,6BAAgC,EAChC,0BAA6B,EAC7B,YAAe,EACf,aAAgB,EAChB,kBAAqB,EACrB,mBAAsB,EACtB,eAAkB,EAClB,uBAA0B,EAC1B,iBAAoB,EACpB,sBAAyB,EACzB,4BAA+B,EAC/B,8BAAiC,EACjC,wBAA2B,I,iBC/F7B9nG,EAAUS,EAAOT,QAAUqD,EAAQ,OAC3B66F,OAASl+F,EACjBA,EAAQqkE,SAAWrkE,EACnBA,EAAQskE,SAAWjhE,EAAQ,MAC3BrD,EAAQmkE,OAAS9gE,EAAQ,KACzBrD,EAAQ0gD,UAAYr9C,EAAQ,MAC5BrD,EAAQm+F,YAAc96F,EAAQ,MAC9BrD,EAAQi8F,SAAW54F,EAAQ,KAC3BrD,EAAQ06I,SAAWr3I,EAAQ,O,8BCN3B,SAASugB,EAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAI9U,SAASsH,EAAgBtgB,EAAK/B,EAAK9B,GAAiK,OAApJ8B,KAAO+B,EAAO1E,OAAOW,eAAe+D,EAAK/B,EAAK,CAAE9B,MAAOA,EAAOuK,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkB3G,EAAI/B,GAAO9B,EAAgB6D,EAI3M,SAASw+B,EAAkBne,EAAQrY,GAAS,IAAK,IAAIlG,EAAI,EAAGA,EAAIkG,EAAMhN,OAAQ8G,IAAK,CAAE,IAAI28B,EAAaz2B,EAAMlG,GAAI28B,EAAW/3B,WAAa+3B,EAAW/3B,aAAc,EAAO+3B,EAAW73B,cAAe,EAAU,UAAW63B,IAAYA,EAAW93B,UAAW,GAAMrL,OAAOW,eAAeokB,EAAQoe,EAAWxgC,IAAKwgC,IAI7S,IACI13B,EADWxH,EAAQ,KACDwH,OAGlBksB,EADY1zB,EAAQ,MACA0zB,QAEpB+4G,EAAS/4G,GAAWA,EAAQ+4G,QAAU,UAM1CrvI,EAAOT,QAEP,WACE,SAAS6lH,KArBX,SAAyBlhH,EAAU09B,GAAe,KAAM19B,aAAoB09B,GAAgB,MAAM,IAAItjC,UAAU,qCAsB5GqmB,CAAgB9gB,KAAMuhH,GAEtBvhH,KAAK2jH,KAAO,KACZ3jH,KAAKgqH,KAAO,KACZhqH,KAAKxF,OAAS,EAtBlB,IAAsBujC,EAAaG,EAAYC,EAoM7C,OApMoBJ,EAyBPwjF,GAzBoBrjF,EAyBR,CAAC,CACxBzgC,IAAK,OACL9B,MAAO,SAAc4S,GACnB,IAAIwrF,EAAQ,CACVt2F,KAAM8K,EACNwnC,KAAM,MAEJ/1C,KAAKxF,OAAS,EAAGwF,KAAKgqH,KAAKj0E,KAAOgkD,EAAW/5F,KAAK2jH,KAAO5pB,EAC7D/5F,KAAKgqH,KAAOjwB,IACV/5F,KAAKxF,SAER,CACDiD,IAAK,UACL9B,MAAO,SAAiB4S,GACtB,IAAIwrF,EAAQ,CACVt2F,KAAM8K,EACNwnC,KAAM/1C,KAAK2jH,MAEO,IAAhB3jH,KAAKxF,SAAcwF,KAAKgqH,KAAOjwB,GACnC/5F,KAAK2jH,KAAO5pB,IACV/5F,KAAKxF,SAER,CACDiD,IAAK,QACL9B,MAAO,WACL,GAAoB,IAAhBqE,KAAKxF,OAAT,CACA,IAAIyvB,EAAMjqB,KAAK2jH,KAAKlgH,KAGpB,OAFoB,IAAhBzD,KAAKxF,OAAcwF,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,KAAUhqH,KAAK2jH,KAAO3jH,KAAK2jH,KAAK5tE,OAC7E/1C,KAAKxF,OACAyvB,KAER,CACDxsB,IAAK,QACL9B,MAAO,WACLqE,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,KACxBhqH,KAAKxF,OAAS,IAEf,CACDiD,IAAK,OACL9B,MAAO,SAAcq+B,GACnB,GAAoB,IAAhBh6B,KAAKxF,OAAc,MAAO,GAI9B,IAHA,IAAIokC,EAAI5+B,KAAK2jH,KACT15F,EAAM,GAAK2U,EAAEn7B,KAEVm7B,EAAIA,EAAEmX,MACX9rB,GAAO+P,EAAI4E,EAAEn7B,KAGf,OAAOwmB,IAER,CACDxsB,IAAK,SACL9B,MAAO,SAAgBgnB,GACrB,GAAoB,IAAhB3iB,KAAKxF,OAAc,OAAO+L,EAAOQ,MAAM,GAK3C,IAJA,IArEcN,EAAKoZ,EAAQvb,EAqEvB2lB,EAAM1jB,EAAOS,YAAY2b,IAAM,GAC/Bic,EAAI5+B,KAAK2jH,KACTriH,EAAI,EAEDs9B,GAzEOn4B,EA0EDm4B,EAAEn7B,KA1EIoc,EA0EEoK,EA1EM3lB,EA0EDhD,EAzE9BiF,EAAOxL,UAAUuzB,KAAKrzB,KAAKwL,EAAKoZ,EAAQvb,GA0ElChD,GAAKs9B,EAAEn7B,KAAKjJ,OACZokC,EAAIA,EAAEmX,KAGR,OAAO9rB,IAGR,CACDxsB,IAAK,UACL9B,MAAO,SAAiBgnB,EAAGonG,GACzB,IAAI9/F,EAcJ,OAZItH,EAAI3iB,KAAK2jH,KAAKlgH,KAAKjJ,QAErByvB,EAAMjqB,KAAK2jH,KAAKlgH,KAAKvF,MAAM,EAAGykB,GAC9B3iB,KAAK2jH,KAAKlgH,KAAOzD,KAAK2jH,KAAKlgH,KAAKvF,MAAMykB,IAGtCsH,EAFStH,IAAM3iB,KAAK2jH,KAAKlgH,KAAKjJ,OAExBwF,KAAKowC,QAGL25E,EAAa/pH,KAAKq2I,WAAW1zH,GAAK3iB,KAAKs2I,WAAW3zH,GAGnDsH,IAER,CACDxsB,IAAK,QACL9B,MAAO,WACL,OAAOqE,KAAK2jH,KAAKlgH,OAGlB,CACDhG,IAAK,aACL9B,MAAO,SAAoBgnB,GACzB,IAAIic,EAAI5+B,KAAK2jH,KACTx7G,EAAI,EACJ8hB,EAAM2U,EAAEn7B,KAGZ,IAFAkf,GAAKsH,EAAIzvB,OAEFokC,EAAIA,EAAEmX,MAAM,CACjB,IAAIn9B,EAAMgmB,EAAEn7B,KACRklD,EAAKhmC,EAAI/J,EAAIpe,OAASoe,EAAIpe,OAASmoB,EAIvC,GAHIgmC,IAAO/vC,EAAIpe,OAAQyvB,GAAOrR,EAASqR,GAAOrR,EAAI1a,MAAM,EAAGykB,GAGjD,IAFVA,GAAKgmC,GAEQ,CACPA,IAAO/vC,EAAIpe,UACX2N,EACEy2B,EAAEmX,KAAM/1C,KAAK2jH,KAAO/kF,EAAEmX,KAAU/1C,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,OAE5DhqH,KAAK2jH,KAAO/kF,EACZA,EAAEn7B,KAAOmV,EAAI1a,MAAMyqD,IAGrB,QAGAxgD,EAIJ,OADAnI,KAAKxF,QAAU2N,EACR8hB,IAGR,CACDxsB,IAAK,aACL9B,MAAO,SAAoBgnB,GACzB,IAAIsH,EAAM1jB,EAAOS,YAAY2b,GACzBic,EAAI5+B,KAAK2jH,KACTx7G,EAAI,EAIR,IAHAy2B,EAAEn7B,KAAK6qB,KAAKrE,GACZtH,GAAKic,EAAEn7B,KAAKjJ,OAELokC,EAAIA,EAAEmX,MAAM,CACjB,IAAI1uC,EAAMu3B,EAAEn7B,KACRklD,EAAKhmC,EAAItb,EAAI7M,OAAS6M,EAAI7M,OAASmoB,EAIvC,GAHAtb,EAAIinB,KAAKrE,EAAKA,EAAIzvB,OAASmoB,EAAG,EAAGgmC,GAGvB,IAFVhmC,GAAKgmC,GAEQ,CACPA,IAAOthD,EAAI7M,UACX2N,EACEy2B,EAAEmX,KAAM/1C,KAAK2jH,KAAO/kF,EAAEmX,KAAU/1C,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,OAE5DhqH,KAAK2jH,KAAO/kF,EACZA,EAAEn7B,KAAO4D,EAAInJ,MAAMyqD,IAGrB,QAGAxgD,EAIJ,OADAnI,KAAKxF,QAAU2N,EACR8hB,IAGR,CACDxsB,IAAK+tI,EACL7vI,MAAO,SAAeyyC,EAAGtyC,GACvB,OAAO22B,EAAQzyB,KAnMrB,SAAuB6f,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,EAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,EAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,EAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EAmMlfD,CAAc,GAAI9jB,EAAS,CAE9CwtI,MAAO,EAEPI,eAAe,UA/LuD1rG,EAAkBD,EAAYhjC,UAAWmjC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAoM3KojF,EApLT,I,+BC5BA,YAEA,IAAIg1B,EAEJ,SAASz2H,EAAgBtgB,EAAK/B,EAAK9B,GAAiK,OAApJ8B,KAAO+B,EAAO1E,OAAOW,eAAe+D,EAAK/B,EAAK,CAAE9B,MAAOA,EAAOuK,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkB3G,EAAI/B,GAAO9B,EAAgB6D,EAE3M,IAAIm4F,EAAW54F,EAAQ,KAEnBy3I,EAAeptI,OAAO,eACtBqtI,EAAcrtI,OAAO,cACrBstI,EAASttI,OAAO,SAChButI,EAASvtI,OAAO,SAChBwtI,EAAextI,OAAO,eACtBytI,EAAiBztI,OAAO,iBACxB0tI,EAAU1tI,OAAO,UAErB,SAAS2tI,EAAiBp7I,EAAOsgB,GAC/B,MAAO,CACLtgB,MAAOA,EACPsgB,KAAMA,GAIV,SAAS+6H,EAAe54F,GACtB,IAAI5yC,EAAU4yC,EAAKo4F,GAEnB,GAAgB,OAAZhrI,EAAkB,CACpB,IAAI/H,EAAO26C,EAAK04F,GAASlnH,OAIZ,OAATnsB,IACF26C,EAAKw4F,GAAgB,KACrBx4F,EAAKo4F,GAAgB,KACrBp4F,EAAKq4F,GAAe,KACpBjrI,EAAQurI,EAAiBtzI,GAAM,MAKrC,SAASwzI,EAAW74F,GAGlBrqC,EAAQgY,SAASirH,EAAgB54F,GAgBnC,IAAI84F,EAAyBp8I,OAAOkmC,gBAAe,eAC/Cm2G,EAAuCr8I,OAAOimC,gBA4D/CjhB,EA5D+Dy2H,EAAwB,CACxF,aACE,OAAOv2I,KAAK82I,IAGd/gG,KAAM,WACJ,IAAI5oC,EAAQnN,KAIRkL,EAAQlL,KAAK02I,GAEjB,GAAc,OAAVxrI,EACF,OAAOgf,QAAQi2B,OAAOj1C,GAGxB,GAAIlL,KAAK22I,GACP,OAAOzsH,QAAQ1e,QAAQurI,OAAiBv4I,GAAW,IAGrD,GAAIwB,KAAK82I,GAASp2E,UAKhB,OAAO,IAAIx2C,SAAQ,SAAU1e,EAAS20C,GACpCpsC,EAAQgY,UAAS,WACX5e,EAAMupI,GACRv2F,EAAOhzC,EAAMupI,IAEblrI,EAAQurI,OAAiBv4I,GAAW,UAU5C,IACI8M,EADA8rI,EAAcp3I,KAAK42I,GAGvB,GAAIQ,EACF9rI,EAAU,IAAI4e,QA1DpB,SAAqBktH,EAAah5F,GAChC,OAAO,SAAU5yC,EAAS20C,GACxBi3F,EAAY/rI,MAAK,WACX+yC,EAAKu4F,GACPnrI,EAAQurI,OAAiBv4I,GAAW,IAItC4/C,EAAKy4F,GAAgBrrI,EAAS20C,KAC7BA,IAiDqBk3F,CAAYD,EAAap3I,WAC1C,CAGL,IAAIyD,EAAOzD,KAAK82I,GAASlnH,OAEzB,GAAa,OAATnsB,EACF,OAAOymB,QAAQ1e,QAAQurI,EAAiBtzI,GAAM,IAGhD6H,EAAU,IAAI4e,QAAQlqB,KAAK62I,IAI7B,OADA72I,KAAK42I,GAAgBtrI,EACdA,IAE+BlC,OAAOw8G,eAAe,WAC9D,OAAO5lH,QACL8f,EAAgBy2H,EAAuB,UAAU,WACnD,IAAIrxF,EAASllD,KAKb,OAAO,IAAIkqB,SAAQ,SAAU1e,EAAS20C,GACpC+E,EAAO4xF,GAAS/5C,QAAQ,MAAM,SAAU/9F,GAClCA,EACFmhD,EAAOnhD,GAITwM,EAAQurI,OAAiBv4I,GAAW,aAGtC+3I,GAAwBW,GAoE5B/6I,EAAOT,QAlEiC,SAA2C47F,GACjF,IAAIggD,EAEA55F,EAAW5iD,OAAOwE,OAAO63I,GAA4Dr3H,EAArBw3H,EAAiB,GAAoCR,EAAS,CAChIn7I,MAAO27F,EACPnxF,UAAU,IACR2Z,EAAgBw3H,EAAgBd,EAAc,CAChD76I,MAAO,KACPwK,UAAU,IACR2Z,EAAgBw3H,EAAgBb,EAAa,CAC/C96I,MAAO,KACPwK,UAAU,IACR2Z,EAAgBw3H,EAAgBZ,EAAQ,CAC1C/6I,MAAO,KACPwK,UAAU,IACR2Z,EAAgBw3H,EAAgBX,EAAQ,CAC1Ch7I,MAAO27F,EAAO72B,eAAeo3B,WAC7B1xF,UAAU,IACR2Z,EAAgBw3H,EAAgBT,EAAgB,CAClDl7I,MAAO,SAAe6P,EAAS20C,GAC7B,IAAI18C,EAAOi6C,EAASo5F,GAASlnH,OAEzBnsB,GACFi6C,EAASk5F,GAAgB,KACzBl5F,EAAS84F,GAAgB,KACzB94F,EAAS+4F,GAAe,KACxBjrI,EAAQurI,EAAiBtzI,GAAM,MAE/Bi6C,EAAS84F,GAAgBhrI,EACzBkyC,EAAS+4F,GAAet2F,IAG5Bh6C,UAAU,IACRmxI,IA8BJ,OA7BA55F,EAASk5F,GAAgB,KACzBj/C,EAASL,GAAQ,SAAUt4F,GACzB,GAAIA,GAAoB,+BAAbA,EAAIga,KAAuC,CACpD,IAAImnC,EAASzC,EAAS+4F,GAWtB,OARe,OAAXt2F,IACFzC,EAASk5F,GAAgB,KACzBl5F,EAAS84F,GAAgB,KACzB94F,EAAS+4F,GAAe,KACxBt2F,EAAOnhD,SAGT0+C,EAASg5F,GAAU13I,GAIrB,IAAIwM,EAAUkyC,EAAS84F,GAEP,OAAZhrI,IACFkyC,EAASk5F,GAAgB,KACzBl5F,EAAS84F,GAAgB,KACzB94F,EAAS+4F,GAAe,KACxBjrI,EAAQurI,OAAiBv4I,GAAW,KAGtCk/C,EAASi5F,IAAU,KAErBr/C,EAAOr1E,GAAG,WAAYg1H,EAAWhlI,KAAK,KAAMyrC,IACrCA,K,iCC3MTvhD,EAAOT,QAAU,WACf,MAAM,IAAIJ,MAAM,mD,6BCwBlBa,EAAOT,QAAUm+F,EAEjB,IAAIz9C,EAAYr9C,EAAQ,MAIxB,SAAS86F,EAAY/9F,GACnB,KAAMkE,gBAAgB65F,GAAc,OAAO,IAAIA,EAAY/9F,GAC3DsgD,EAAUnhD,KAAK+E,KAAMlE,GAJvBiD,EAAQ,IAARA,CAAoB86F,EAAaz9C,GAOjCy9C,EAAY9+F,UAAUwiD,WAAa,SAAU0/C,EAAO71F,EAAUoU,GAC5DA,EAAG,KAAMyhF,K,6BCjCX,IAAI5F,EAWJ,IAAIoqB,EAAiB1iH,EAAQ,KAAmB2qD,MAC5C6tF,EAAmB91B,EAAe81B,iBAClC7wB,EAAuBjF,EAAeiF,qBAE1C,SAAS56F,EAAK9sB,GAEZ,GAAIA,EAAK,MAAMA,EAOjB,SAASw4I,EAAUlgD,EAAQ8qB,EAAS1mB,EAASjqF,GAC3CA,EAvBF,SAAcA,GACZ,IAAI8lF,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACT9lF,EAASrR,WAAM,EAAQxF,aAkBd0xB,CAAK7a,GAChB,IAAIgmI,GAAS,EACbngD,EAAOr1E,GAAG,SAAS,WACjBw1H,GAAS,UAECj5I,IAAR64F,IAAmBA,EAAMt4F,EAAQ,MACrCs4F,EAAIC,EAAQ,CACVp3B,SAAUkiD,EACVj8G,SAAUu1F,IACT,SAAU18F,GACX,GAAIA,EAAK,OAAOyS,EAASzS,GACzBy4I,GAAS,EACThmI,OAEF,IAAIivD,GAAY,EAChB,OAAO,SAAU1hE,GACf,IAAIy4I,IACA/2E,EAGJ,OAFAA,GAAY,EAvBhB,SAAmB42B,GACjB,OAAOA,EAAOY,WAAqC,mBAAjBZ,EAAOa,MAwBnCC,CAAUd,GAAgBA,EAAOa,QACP,mBAAnBb,EAAOyF,QAA+BzF,EAAOyF,eACxDtrF,EAASzS,GAAO,IAAI0nH,EAAqB,UAI7C,SAASzrH,EAAKsO,GACZA,IAGF,SAASm0F,EAAK52F,EAAMy/H,GAClB,OAAOz/H,EAAK42F,KAAK6oC,GAGnB,SAASmR,EAAYC,GACnB,OAAKA,EAAQn9I,OAC8B,mBAAhCm9I,EAAQA,EAAQn9I,OAAS,GAA0BsxB,EACvD6rH,EAAQ7rI,MAFaggB,EAgC9B3vB,EAAOT,QA3BP,WACE,IAAK,IAAI+lB,EAAO7mB,UAAUJ,OAAQm9I,EAAU,IAAIloI,MAAMgS,GAAO3N,EAAO,EAAGA,EAAO2N,EAAM3N,IAClF6jI,EAAQ7jI,GAAQlZ,UAAUkZ,GAG5B,IAOI5I,EAPAuG,EAAWimI,EAAYC,GAG3B,GAFIloI,MAAMC,QAAQioI,EAAQ,MAAKA,EAAUA,EAAQ,IAE7CA,EAAQn9I,OAAS,EACnB,MAAM,IAAI+8I,EAAiB,WAI7B,IAAIK,EAAWD,EAAQztI,KAAI,SAAUotF,EAAQh2F,GAC3C,IAAI8gH,EAAU9gH,EAAIq2I,EAAQn9I,OAAS,EAEnC,OAAOg9I,EAAUlgD,EAAQ8qB,EADX9gH,EAAI,GACyB,SAAUtC,GAC9CkM,IAAOA,EAAQlM,GAChBA,GAAK44I,EAASztI,QAAQlP,GACtBmnH,IACJw1B,EAASztI,QAAQlP,GACjBwW,EAASvG,UAGb,OAAOysI,EAAQ7tI,OAAO4zF,K,gBCrFxB,IAAIn/D,EAAWx/B,EAAQ,KACnB+lE,EAAO/lE,EAAQ,KACfwH,EAASxH,EAAQ,KAAewH,OAEhCilE,EAAI,CACN,WAAY,YAAY,YAAgB,WAGtC5K,EAAI,IAAInxD,MAAM,IAElB,SAASooI,IACP73I,KAAKE,OACLF,KAAK2nH,GAAK/mD,EAEVkE,EAAK7pE,KAAK+E,KAAM,GAAI,IAmBtB,SAAS83I,EAAQ98G,GACf,OAAQA,GAAO,GAAOA,IAAQ,EAGhC,SAAS+8G,EAAI/9G,EAAGryB,EAAGQ,EAAGkxB,GACpB,OAAU,IAANW,EAAiBryB,EAAIQ,GAAQR,EAAK0xB,EAC5B,IAANW,EAAiBryB,EAAIQ,EAAMR,EAAI0xB,EAAMlxB,EAAIkxB,EACtC1xB,EAAIQ,EAAIkxB,EAvBjBkF,EAASs5G,EAAK/yE,GAEd+yE,EAAI98I,UAAUmF,KAAO,WAOnB,OANAF,KAAKs2F,GAAK,WACVt2F,KAAKu2F,GAAK,WACVv2F,KAAKw2F,GAAK,WACVx2F,KAAKy2F,GAAK,UACVz2F,KAAK04F,GAAK,WAEH14F,MAiBT63I,EAAI98I,UAAUkiD,QAAU,SAAUhlB,GAShC,IARA,IAfc+C,EAeV4lC,EAAI5gE,KAAK2nH,GAETjgH,EAAc,EAAV1H,KAAKs2F,GACT3uF,EAAc,EAAV3H,KAAKu2F,GACTpuF,EAAc,EAAVnI,KAAKw2F,GACTn9D,EAAc,EAAVr5B,KAAKy2F,GACTzzF,EAAc,EAAVhD,KAAK04F,GAEJp3F,EAAI,EAAGA,EAAI,KAAMA,EAAGs/D,EAAEt/D,GAAK22B,EAAEnD,YAAgB,EAAJxzB,GAClD,KAAOA,EAAI,KAAMA,EAAGs/D,EAAEt/D,GAAKs/D,EAAEt/D,EAAI,GAAKs/D,EAAEt/D,EAAI,GAAKs/D,EAAEt/D,EAAI,IAAMs/D,EAAEt/D,EAAI,IAEnE,IAAK,IAAIE,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,IAAIw4B,KAAOx4B,EAAI,IACXsG,EAAoD,IA5B5CkzB,EA4BGtzB,IA3BF,EAAMszB,IAAQ,IA2BP+8G,EAAG/9G,EAAGryB,EAAGQ,EAAGkxB,GAAKr2B,EAAI49D,EAAEp/D,GAAKgqE,EAAExxC,GAElDh3B,EAAIq2B,EACJA,EAAIlxB,EACJA,EAAI2vI,EAAOnwI,GACXA,EAAID,EACJA,EAAII,EAGN9H,KAAKs2F,GAAM5uF,EAAI1H,KAAKs2F,GAAM,EAC1Bt2F,KAAKu2F,GAAM5uF,EAAI3H,KAAKu2F,GAAM,EAC1Bv2F,KAAKw2F,GAAMruF,EAAInI,KAAKw2F,GAAM,EAC1Bx2F,KAAKy2F,GAAMp9D,EAAIr5B,KAAKy2F,GAAM,EAC1Bz2F,KAAK04F,GAAM11F,EAAIhD,KAAK04F,GAAM,GAG5Bm/C,EAAI98I,UAAUi9B,MAAQ,WACpB,IAAII,EAAI7xB,EAAOS,YAAY,IAQ3B,OANAoxB,EAAEnC,aAAuB,EAAVj2B,KAAKs2F,GAAQ,GAC5Bl+D,EAAEnC,aAAuB,EAAVj2B,KAAKu2F,GAAQ,GAC5Bn+D,EAAEnC,aAAuB,EAAVj2B,KAAKw2F,GAAQ,GAC5Bp+D,EAAEnC,aAAuB,EAAVj2B,KAAKy2F,GAAQ,IAC5Br+D,EAAEnC,aAAuB,EAAVj2B,KAAK04F,GAAQ,IAErBtgE,GAGTj8B,EAAOT,QAAUm8I,G,gBCpFjB,IAAIt5G,EAAWx/B,EAAQ,KACnB+lE,EAAO/lE,EAAQ,KACfwH,EAASxH,EAAQ,KAAewH,OAEhCilE,EAAI,CACN,WAAY,YAAY,YAAgB,WAGtC5K,EAAI,IAAInxD,MAAM,IAElB,SAASuoI,IACPh4I,KAAKE,OACLF,KAAK2nH,GAAK/mD,EAEVkE,EAAK7pE,KAAK+E,KAAM,GAAI,IAmBtB,SAASi4I,EAAOj9G,GACd,OAAQA,GAAO,EAAMA,IAAQ,GAG/B,SAAS88G,EAAQ98G,GACf,OAAQA,GAAO,GAAOA,IAAQ,EAGhC,SAAS+8G,EAAI/9G,EAAGryB,EAAGQ,EAAGkxB,GACpB,OAAU,IAANW,EAAiBryB,EAAIQ,GAAQR,EAAK0xB,EAC5B,IAANW,EAAiBryB,EAAIQ,EAAMR,EAAI0xB,EAAMlxB,EAAIkxB,EACtC1xB,EAAIQ,EAAIkxB,EA3BjBkF,EAASy5G,EAAMlzE,GAEfkzE,EAAKj9I,UAAUmF,KAAO,WAOpB,OANAF,KAAKs2F,GAAK,WACVt2F,KAAKu2F,GAAK,WACVv2F,KAAKw2F,GAAK,WACVx2F,KAAKy2F,GAAK,UACVz2F,KAAK04F,GAAK,WAEH14F,MAqBTg4I,EAAKj9I,UAAUkiD,QAAU,SAAUhlB,GASjC,IARA,IAnBc+C,EAmBV4lC,EAAI5gE,KAAK2nH,GAETjgH,EAAc,EAAV1H,KAAKs2F,GACT3uF,EAAc,EAAV3H,KAAKu2F,GACTpuF,EAAc,EAAVnI,KAAKw2F,GACTn9D,EAAc,EAAVr5B,KAAKy2F,GACTzzF,EAAc,EAAVhD,KAAK04F,GAEJp3F,EAAI,EAAGA,EAAI,KAAMA,EAAGs/D,EAAEt/D,GAAK22B,EAAEnD,YAAgB,EAAJxzB,GAClD,KAAOA,EAAI,KAAMA,EAAGs/D,EAAEt/D,IA5BR05B,EA4BmB4lC,EAAEt/D,EAAI,GAAKs/D,EAAEt/D,EAAI,GAAKs/D,EAAEt/D,EAAI,IAAMs/D,EAAEt/D,EAAI,MA3B1D,EAAM05B,IAAQ,GA6B7B,IAAK,IAAIx5B,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,IAAIw4B,KAAOx4B,EAAI,IACXsG,EAAKmwI,EAAMvwI,GAAKqwI,EAAG/9G,EAAGryB,EAAGQ,EAAGkxB,GAAKr2B,EAAI49D,EAAEp/D,GAAKgqE,EAAExxC,GAAM,EAExDh3B,EAAIq2B,EACJA,EAAIlxB,EACJA,EAAI2vI,EAAOnwI,GACXA,EAAID,EACJA,EAAII,EAGN9H,KAAKs2F,GAAM5uF,EAAI1H,KAAKs2F,GAAM,EAC1Bt2F,KAAKu2F,GAAM5uF,EAAI3H,KAAKu2F,GAAM,EAC1Bv2F,KAAKw2F,GAAMruF,EAAInI,KAAKw2F,GAAM,EAC1Bx2F,KAAKy2F,GAAMp9D,EAAIr5B,KAAKy2F,GAAM,EAC1Bz2F,KAAK04F,GAAM11F,EAAIhD,KAAK04F,GAAM,GAG5Bs/C,EAAKj9I,UAAUi9B,MAAQ,WACrB,IAAII,EAAI7xB,EAAOS,YAAY,IAQ3B,OANAoxB,EAAEnC,aAAuB,EAAVj2B,KAAKs2F,GAAQ,GAC5Bl+D,EAAEnC,aAAuB,EAAVj2B,KAAKu2F,GAAQ,GAC5Bn+D,EAAEnC,aAAuB,EAAVj2B,KAAKw2F,GAAQ,GAC5Bp+D,EAAEnC,aAAuB,EAAVj2B,KAAKy2F,GAAQ,IAC5Br+D,EAAEnC,aAAuB,EAAVj2B,KAAK04F,GAAQ,IAErBtgE,GAGTj8B,EAAOT,QAAUs8I,G,gBC1FjB,IAAIz5G,EAAWx/B,EAAQ,KACnB2oH,EAAS3oH,EAAQ,MACjB+lE,EAAO/lE,EAAQ,KACfwH,EAASxH,EAAQ,KAAewH,OAEhCq6D,EAAI,IAAInxD,MAAM,IAElB,SAASyoI,IACPl4I,KAAKE,OAELF,KAAK2nH,GAAK/mD,EAEVkE,EAAK7pE,KAAK+E,KAAM,GAAI,IAGtBu+B,EAAS25G,EAAQxwB,GAEjBwwB,EAAOn9I,UAAUmF,KAAO,WAUtB,OATAF,KAAKs2F,GAAK,WACVt2F,KAAKu2F,GAAK,UACVv2F,KAAKw2F,GAAK,UACVx2F,KAAKy2F,GAAK,WACVz2F,KAAK04F,GAAK,WACV14F,KAAK6nH,GAAK,WACV7nH,KAAK8nH,GAAK,WACV9nH,KAAK+nH,GAAK,WAEH/nH,MAGTk4I,EAAOn9I,UAAUi9B,MAAQ,WACvB,IAAII,EAAI7xB,EAAOS,YAAY,IAU3B,OARAoxB,EAAEnC,aAAaj2B,KAAKs2F,GAAI,GACxBl+D,EAAEnC,aAAaj2B,KAAKu2F,GAAI,GACxBn+D,EAAEnC,aAAaj2B,KAAKw2F,GAAI,GACxBp+D,EAAEnC,aAAaj2B,KAAKy2F,GAAI,IACxBr+D,EAAEnC,aAAaj2B,KAAK04F,GAAI,IACxBtgE,EAAEnC,aAAaj2B,KAAK6nH,GAAI,IACxBzvF,EAAEnC,aAAaj2B,KAAK8nH,GAAI,IAEjB1vF,GAGTj8B,EAAOT,QAAUw8I,G,gBCpDjB,IAAI35G,EAAWx/B,EAAQ,KACnBw7E,EAASx7E,EAAQ,MACjB+lE,EAAO/lE,EAAQ,KACfwH,EAASxH,EAAQ,KAAewH,OAEhCq6D,EAAI,IAAInxD,MAAM,KAElB,SAAS0oI,IACPn4I,KAAKE,OACLF,KAAK2nH,GAAK/mD,EAEVkE,EAAK7pE,KAAK+E,KAAM,IAAK,KAGvBu+B,EAAS45G,EAAQ59D,GAEjB49D,EAAOp9I,UAAUmF,KAAO,WAmBtB,OAlBAF,KAAK0oH,IAAM,WACX1oH,KAAK2oH,IAAM,WACX3oH,KAAK4oH,IAAM,WACX5oH,KAAK6oH,IAAM,UACX7oH,KAAK8oH,IAAM,WACX9oH,KAAK+oH,IAAM,WACX/oH,KAAKgpH,IAAM,WACXhpH,KAAKipH,IAAM,WAEXjpH,KAAKkpH,IAAM,WACXlpH,KAAKmpH,IAAM,UACXnpH,KAAKopH,IAAM,UACXppH,KAAKqpH,IAAM,WACXrpH,KAAKspH,IAAM,WACXtpH,KAAKupH,IAAM,WACXvpH,KAAKwpH,IAAM,WACXxpH,KAAKquG,IAAM,WAEJruG,MAGTm4I,EAAOp9I,UAAUi9B,MAAQ,WACvB,IAAII,EAAI7xB,EAAOS,YAAY,IAE3B,SAAS2iH,EAAcr6E,EAAG5sB,EAAGpe,GAC3B8zB,EAAEnC,aAAaqZ,EAAGhrC,GAClB8zB,EAAEnC,aAAavT,EAAGpe,EAAS,GAU7B,OAPAqlH,EAAa3pH,KAAK0oH,IAAK1oH,KAAKkpH,IAAK,GACjCS,EAAa3pH,KAAK2oH,IAAK3oH,KAAKmpH,IAAK,GACjCQ,EAAa3pH,KAAK4oH,IAAK5oH,KAAKopH,IAAK,IACjCO,EAAa3pH,KAAK6oH,IAAK7oH,KAAKqpH,IAAK,IACjCM,EAAa3pH,KAAK8oH,IAAK9oH,KAAKspH,IAAK,IACjCK,EAAa3pH,KAAK+oH,IAAK/oH,KAAKupH,IAAK,IAE1BnxF,GAGTj8B,EAAOT,QAAUy8I,G,gBCnCjBh8I,EAAOT,QAAUk+F,EAEjB,IAAIw+C,EAAKr5I,EAAQ,KAAU2gD,aAkB3B,SAASk6C,IACPw+C,EAAGn9I,KAAK+E,MAlBKjB,EAAQ,IAEvBw/B,CAASq7D,EAAQw+C,GACjBx+C,EAAO75B,SAAWhhE,EAAQ,KAC1B66F,EAAO55B,SAAWjhE,EAAQ,MAC1B66F,EAAO/5B,OAAS9gE,EAAQ,MACxB66F,EAAOx9C,UAAYr9C,EAAQ,MAC3B66F,EAAOC,YAAc96F,EAAQ,MAG7B66F,EAAOA,OAASA,EAWhBA,EAAO7+F,UAAU2iG,KAAO,SAASj6D,EAAM3nC,GACrC,IAAI6b,EAAS3X,KAEb,SAASslH,EAAOroB,GACVx5D,EAAKt9B,WACH,IAAUs9B,EAAKvV,MAAM+uE,IAAUtlF,EAAO8tG,OACxC9tG,EAAO8tG,QAOb,SAASJ,IACH1tG,EAAOuoD,UAAYvoD,EAAOusG,QAC5BvsG,EAAOusG,SAJXvsG,EAAOsK,GAAG,OAAQqjG,GAQlB7hF,EAAKxhB,GAAG,QAASojG,GAIZ5hF,EAAK40G,UAAcv8I,IAA2B,IAAhBA,EAAQ4iB,MACzC/G,EAAOsK,GAAG,MAAOm+C,GACjBzoD,EAAOsK,GAAG,QAAS81E,IAGrB,IAAIugD,GAAW,EACf,SAASl4E,IACHk4E,IACJA,GAAW,EAEX70G,EAAK/kB,OAIP,SAASq5E,IACHugD,IACJA,GAAW,EAEiB,mBAAjB70G,EAAKs5D,SAAwBt5D,EAAKs5D,WAI/C,SAASjF,EAAQ55B,GAEf,GADA8pE,IACwC,IAApCoQ,EAAGx6E,cAAc59D,KAAM,SACzB,MAAMk+D,EAQV,SAAS8pE,IACPrwH,EAAO4U,eAAe,OAAQ+4F,GAC9B7hF,EAAKlX,eAAe,QAAS84F,GAE7B1tG,EAAO4U,eAAe,MAAO6zC,GAC7BzoD,EAAO4U,eAAe,QAASwrE,GAE/BpgF,EAAO4U,eAAe,QAASurE,GAC/Br0D,EAAKlX,eAAe,QAASurE,GAE7BngF,EAAO4U,eAAe,MAAOy7G,GAC7BrwH,EAAO4U,eAAe,QAASy7G,GAE/BvkG,EAAKlX,eAAe,QAASy7G,GAW/B,OA5BArwH,EAAOsK,GAAG,QAAS61E,GACnBr0D,EAAKxhB,GAAG,QAAS61E,GAmBjBngF,EAAOsK,GAAG,MAAO+lH,GACjBrwH,EAAOsK,GAAG,QAAS+lH,GAEnBvkG,EAAKxhB,GAAG,QAAS+lH,GAEjBvkG,EAAKhX,KAAK,OAAQ9U,GAGX8rB,I,8BCzHT,IAAIl9B,EAASxH,EAAQ,KAAewH,OAChCu5D,EAAO/gE,EAAQ,MAMnB5C,EAAOT,QAAU,WACf,SAAS6lH,KAVX,SAAyBlhH,EAAU09B,GAAe,KAAM19B,aAAoB09B,GAAgB,MAAM,IAAItjC,UAAU,qCAW5GqmB,CAAgB9gB,KAAMuhH,GAEtBvhH,KAAK2jH,KAAO,KACZ3jH,KAAKgqH,KAAO,KACZhqH,KAAKxF,OAAS,EAqDhB,OAlDA+mH,EAAWxmH,UAAU6G,KAAO,SAAc2M,GACxC,IAAIwrF,EAAQ,CAAEt2F,KAAM8K,EAAGwnC,KAAM,MACzB/1C,KAAKxF,OAAS,EAAGwF,KAAKgqH,KAAKj0E,KAAOgkD,EAAW/5F,KAAK2jH,KAAO5pB,EAC7D/5F,KAAKgqH,KAAOjwB,IACV/5F,KAAKxF,QAGT+mH,EAAWxmH,UAAUiiE,QAAU,SAAiBzuD,GAC9C,IAAIwrF,EAAQ,CAAEt2F,KAAM8K,EAAGwnC,KAAM/1C,KAAK2jH,MACd,IAAhB3jH,KAAKxF,SAAcwF,KAAKgqH,KAAOjwB,GACnC/5F,KAAK2jH,KAAO5pB,IACV/5F,KAAKxF,QAGT+mH,EAAWxmH,UAAUq1C,MAAQ,WAC3B,GAAoB,IAAhBpwC,KAAKxF,OAAT,CACA,IAAIyvB,EAAMjqB,KAAK2jH,KAAKlgH,KAGpB,OAFoB,IAAhBzD,KAAKxF,OAAcwF,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,KAAUhqH,KAAK2jH,KAAO3jH,KAAK2jH,KAAK5tE,OAC7E/1C,KAAKxF,OACAyvB,IAGTs3F,EAAWxmH,UAAU6oH,MAAQ,WAC3B5jH,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,KACxBhqH,KAAKxF,OAAS,GAGhB+mH,EAAWxmH,UAAUkH,KAAO,SAAc+3B,GACxC,GAAoB,IAAhBh6B,KAAKxF,OAAc,MAAO,GAG9B,IAFA,IAAIokC,EAAI5+B,KAAK2jH,KACT15F,EAAM,GAAK2U,EAAEn7B,KACVm7B,EAAIA,EAAEmX,MACX9rB,GAAO+P,EAAI4E,EAAEn7B,KACd,OAAOwmB,GAGVs3F,EAAWxmH,UAAUgG,OAAS,SAAgB4hB,GAC5C,GAAoB,IAAhB3iB,KAAKxF,OAAc,OAAO+L,EAAOQ,MAAM,GAC3C,GAAoB,IAAhB/G,KAAKxF,OAAc,OAAOwF,KAAK2jH,KAAKlgH,KAIxC,IAHA,IApDgBgD,EAAKoZ,EAAQvb,EAoDzB2lB,EAAM1jB,EAAOS,YAAY2b,IAAM,GAC/Bic,EAAI5+B,KAAK2jH,KACTriH,EAAI,EACDs9B,GAvDSn4B,EAwDHm4B,EAAEn7B,KAxDMoc,EAwDAoK,EAxDQ3lB,EAwDHhD,EAvD5BmF,EAAI6nB,KAAKzO,EAAQvb,GAwDbhD,GAAKs9B,EAAEn7B,KAAKjJ,OACZokC,EAAIA,EAAEmX,KAER,OAAO9rB,GAGFs3F,EA3DQ,GA8DbzhD,GAAQA,EAAKrtC,SAAWqtC,EAAKrtC,QAAQ+4G,SACvCrvI,EAAOT,QAAQX,UAAU+kE,EAAKrtC,QAAQ+4G,QAAU,WAC9C,IAAIhsI,EAAMsgE,EAAKrtC,QAAQ,CAAEj4B,OAAQwF,KAAKxF,SACtC,OAAOwF,KAAKiG,YAAY6C,KAAO,IAAMtJ,K,8BCjDzCrD,EAAOT,QAAUm+F,EAEjB,IAAIz9C,EAAYr9C,EAAQ,MAGpB+gE,EAAOhlE,OAAOwE,OAAOP,EAAQ,MAMjC,SAAS86F,EAAY/9F,GACnB,KAAMkE,gBAAgB65F,GAAc,OAAO,IAAIA,EAAY/9F,GAE3DsgD,EAAUnhD,KAAK+E,KAAMlE,GARvBgkE,EAAKvhC,SAAWx/B,EAAQ,KAGxB+gE,EAAKvhC,SAASs7D,EAAaz9C,GAQ3By9C,EAAY9+F,UAAUwiD,WAAa,SAAU0/C,EAAO71F,EAAUoU,GAC5DA,EAAG,KAAMyhF,K,gBC7CX9gG,EAAOT,QAAUqD,EAAQ,M,gBCAzB5C,EAAOT,QAAUqD,EAAQ,M,gBCAzB5C,EAAOT,QAAUqD,EAAQ,KAAcq9C,W,gBCAvCjgD,EAAOT,QAAUqD,EAAQ,KAAc86F,a,6BCCvC,IAAIt7D,EAAWx/B,EAAQ,KACnBwH,EAASxH,EAAQ,KAAewH,OAEhC1G,EAAOd,EAAQ,KAEfwrH,EAAQhkH,EAAOQ,MAAM,KAGzB,SAASyjH,EAAMv3C,EAAKx1E,GAClBoC,EAAK5E,KAAK+E,KAAM,UACG,iBAARvC,IACTA,EAAM8I,EAAOO,KAAKrJ,IAGpBuC,KAAK0qH,KAAOz3C,EACZjzE,KAAK8T,KAAOrW,EAERA,EAAIjD,OAXM,GAYZiD,EAAMw1E,EAAIx1E,GACDA,EAAIjD,OAbD,KAcZiD,EAAM8I,EAAOxF,OAAO,CAACtD,EAAK8sH,GAdd,KAoBd,IAHA,IAAII,EAAO3qH,KAAK4qH,MAAQrkH,EAAOS,YAjBjB,IAkBV6jH,EAAO7qH,KAAK8qH,MAAQvkH,EAAOS,YAlBjB,IAoBL1F,EAAI,EAAGA,EApBF,GAoBiBA,IAC7BqpH,EAAKrpH,GAAc,GAAT7D,EAAI6D,GACdupH,EAAKvpH,GAAc,GAAT7D,EAAI6D,GAGhBtB,KAAKg4B,MAAQ,CAAC2yF,GAGhBpsF,EAASisF,EAAM3qH,GAEf2qH,EAAKzvH,UAAUkiD,QAAU,SAAUx5C,GACjCzD,KAAKg4B,MAAMp2B,KAAK6B,IAGlB+mH,EAAKzvH,UAAU2hD,OAAS,WACtB,IAAIpN,EAAItvC,KAAK0qH,KAAKnkH,EAAOxF,OAAOf,KAAKg4B,QACrC,OAAOh4B,KAAK0qH,KAAKnkH,EAAOxF,OAAO,CAACf,KAAK8qH,MAAOx7E,MAE9CnzC,EAAOT,QAAU8uH,G,gBC7CjBruH,EAAOT,QAAUqD,EAAQ,O,iBCAzB,gBAOIw5I,EAkCAxsH,EAzCAxlB,EAASxH,EAAQ,KAAewH,OAEhC0kH,EAAkBlsH,EAAQ,MAC1B08F,EAAkB18F,EAAQ,MAC1B68F,EAAO78F,EAAQ,MACf0lC,EAAW1lC,EAAQ,MAGnBy5I,EAAS15I,EAAOL,QAAUK,EAAOL,OAAO+5I,OACxCC,EAAY,CACdzlE,IAAK,QACL,QAAS,QACTumB,KAAM,QACNE,OAAQ,UACR,UAAW,UACXC,OAAQ,UACR,UAAW,UACX,UAAW,UACXC,OAAQ,WAEN++C,EAAS,GAsBb,SAASC,IACP,OAAI5sH,IAIFA,EADEjtB,EAAOiV,SAAWjV,EAAOiV,QAAQgY,SACxBjtB,EAAOiV,QAAQgY,SACjBjtB,EAAO85I,eACL95I,EAAO85I,eACT95I,EAAOu7F,aACLv7F,EAAOu7F,aAEPv7F,EAAOwd,YAItB,SAASu8H,EAAe9hI,EAAUT,EAAMwgB,EAAYt8B,EAAQ8K,GAC1D,OAAOkzI,EAAOM,UACZ,MAAO/hI,EAAU,CAAEjO,KAAM,WAAY,EAAO,CAAC,eAC7CuC,MAAK,SAAU5N,GACf,OAAO+6I,EAAOO,WAAW,CACvBjwI,KAAM,SACNwN,KAAMA,EACNwgB,WAAYA,EACZgD,KAAM,CACJhxB,KAAMxD,IAEP7H,EAAKjD,GAAU,MACjB6Q,MAAK,SAAU2R,GAChB,OAAOzW,EAAOO,KAAKkW,MAevB7gB,EAAOT,QAAU,SAAUqb,EAAUT,EAAMwgB,EAAY42D,EAAQpoB,EAAQ7zD,GAC/C,mBAAX6zD,IACT7zD,EAAW6zD,EACXA,OAAS9mE,GAIX,IAAI8G,EAAOmzI,GADXnzE,EAASA,GAAU,QACSt1D,eAE5B,GAAK1K,GAAkC,mBAAnBxG,EAAOorB,QAA3B,CAgBA,GAHA+gG,EAAgBn0F,EAAY42D,GAC5B32E,EAAW0tB,EAAS1tB,EAAU0kF,EAAiB,YAC/CnlF,EAAOmuB,EAASnuB,EAAMmlF,EAAiB,QACf,mBAAbhqF,EAAyB,MAAM,IAAInW,MAAM,mCApCtD,SAAyBgQ,EAASmG,GAChCnG,EAAQD,MAAK,SAAU6nB,GACrBylH,KAAc,WACZlnI,EAAS,KAAMyhB,SAEhB,SAAUlwB,GACX21I,KAAc,WACZlnI,EAASzO,SA+Bbg2I,CA3FF,SAAsB1zI,GACpB,GAAIxG,EAAOiV,UAAYjV,EAAOiV,QAAQkY,QACpC,OAAO/B,QAAQ1e,SAAQ,GAEzB,IAAKgtI,IAAWA,EAAOM,YAAcN,EAAOO,WAC1C,OAAO7uH,QAAQ1e,SAAQ,GAEzB,QAAqBhN,IAAjBk6I,EAAOpzI,GACT,OAAOozI,EAAOpzI,GAGhB,IAAIoN,EAAOmmI,EADXN,EAAWA,GAAYhyI,EAAOQ,MAAM,GACDwxI,EAAU,GAAI,IAAKjzI,GACnD+F,MAAK,WACJ,OAAO,KACN8zH,OAAM,WACP,OAAO,KAGX,OADAuZ,EAAOpzI,GAAQoN,EACRA,EAyEQumI,CAAY3zI,GAAM+F,MAAK,SAAU6tI,GAC9C,OAAIA,EAAaL,EAAc9hI,EAAUT,EAAMwgB,EAAY42D,EAAQpoF,GAE5Ds2F,EAAK7kF,EAAUT,EAAMwgB,EAAY42D,EAAQpoB,MAC9C7zD,QArBFknI,KAAc,WACZ,IAAIzlH,EACJ,IACEA,EAAM0oE,EAAK7kF,EAAUT,EAAMwgB,EAAY42D,EAAQpoB,GAC/C,MAAOtiE,GACP,OAAOyO,EAASzO,GAElByO,EAAS,KAAMyhB,S,mCCtGrB,IAAIi+E,EAAMpyG,EAAQ,MACdkvH,EAAMlvH,EAAQ,KACdo6I,EAAWp6I,EAAQ,KACnBq6I,EAAWr6I,EAAQ,MACnBs6I,EAAOt6I,EAAQ,KAsCnB,SAASwgG,EAAgB+5C,EAAO77I,EAAKiX,GAEnC,GADA4kI,EAAQA,EAAMtpI,cACVmpI,EAASG,GAAQ,OAAOrrB,EAAI1uB,eAAe+5C,EAAO77I,EAAKiX,GAC3D,GAAI0kI,EAASE,GAAQ,OAAO,IAAInoC,EAAI,CAAE1zG,IAAKA,EAAKiX,GAAIA,EAAID,KAAM6kI,IAE9D,MAAM,IAAI7+I,UAAU,sBAGtB,SAASmzF,EAAkB0rD,EAAO77I,EAAKiX,GAErC,GADA4kI,EAAQA,EAAMtpI,cACVmpI,EAASG,GAAQ,OAAOrrB,EAAIrgC,iBAAiB0rD,EAAO77I,EAAKiX,GAC7D,GAAI0kI,EAASE,GAAQ,OAAO,IAAInoC,EAAI,CAAE1zG,IAAKA,EAAKiX,GAAIA,EAAID,KAAM6kI,EAAOhlI,SAAS,IAE9E,MAAM,IAAI7Z,UAAU,sBAOtBiB,EAAQ4jG,aAAe5jG,EAAQoX,OAxD/B,SAAuBwmI,EAAOviI,GAG5B,IAAI4xE,EAAQD,EACZ,GAHA4wD,EAAQA,EAAMtpI,cAGVmpI,EAASG,GACX3wD,EAASwwD,EAASG,GAAO77I,IACzBirF,EAAQywD,EAASG,GAAO5kI,OACnB,KAAI0kI,EAASE,GAIlB,MAAM,IAAI7+I,UAAU,sBAHpBkuF,EAA+B,EAAtBywD,EAASE,GAAO77I,IACzBirF,EAAQ0wD,EAASE,GAAO5kI,GAK1B,IAAI8D,EAAO6gI,EAAKtiI,GAAU,EAAO4xE,EAAQD,GACzC,OAAO6W,EAAe+5C,EAAO9gI,EAAK/a,IAAK+a,EAAK9D,KA0C9ChZ,EAAQ6jG,eAAiB7jG,EAAQ8jG,SAAWD,EAC5C7jG,EAAQ+jG,eAAiB/jG,EAAQgkG,SAxCjC,SAAyB45C,EAAOviI,GAG9B,IAAI4xE,EAAQD,EACZ,GAHA4wD,EAAQA,EAAMtpI,cAGVmpI,EAASG,GACX3wD,EAASwwD,EAASG,GAAO77I,IACzBirF,EAAQywD,EAASG,GAAO5kI,OACnB,KAAI0kI,EAASE,GAIlB,MAAM,IAAI7+I,UAAU,sBAHpBkuF,EAA+B,EAAtBywD,EAASE,GAAO77I,IACzBirF,EAAQ0wD,EAASE,GAAO5kI,GAK1B,IAAI8D,EAAO6gI,EAAKtiI,GAAU,EAAO4xE,EAAQD,GACzC,OAAOkF,EAAiB0rD,EAAO9gI,EAAK/a,IAAK+a,EAAK9D,KA0BhDhZ,EAAQkyF,iBAAmBlyF,EAAQikG,WAAa/R,EAChDlyF,EAAQkkG,YAAclkG,EAAQmkG,WAR9B,WACE,OAAO/kG,OAAO0d,KAAK4gI,GAAUr4I,OAAOktH,EAAIpuB,gB,gBC3D1C,IAAIvjD,EAAav9C,EAAQ,KACrBw6I,EAAMx6I,EAAQ,MACdw/B,EAAWx/B,EAAQ,KACnBwH,EAASxH,EAAQ,KAAewH,OAEhC84F,EAAQ,CACV,eAAgBk6C,EAAItmI,IAAIumI,YAAYD,EAAIE,KACxC,WAAYF,EAAIE,IAChB,cAAeF,EAAItmI,IAAIumI,YAAYD,EAAIE,KACvC,UAAWF,EAAIE,IACf,UAAWF,EAAItmI,IAAIumI,YAAYD,EAAIpoC,KACnC,UAAWooC,EAAIpoC,KAMjB,SAASA,EAAKxsF,GACZ23B,EAAWrhD,KAAK+E,MAChB,IAEIkJ,EAFAwwI,EAAW/0H,EAAKlQ,KAAKzE,cACrByE,EAAO4qF,EAAMq6C,GAGfxwI,EADEyb,EAAKrQ,QACA,UAEA,UAET,IAAI7W,EAAMknB,EAAKlnB,IACV8I,EAAO6nB,SAAS3wB,KACnBA,EAAM8I,EAAOO,KAAKrJ,IAEH,YAAbi8I,GAAuC,gBAAbA,IAC5Bj8I,EAAM8I,EAAOxF,OAAO,CAACtD,EAAKA,EAAIS,MAAM,EAAG,MAEzC,IAAIwW,EAAKiQ,EAAKjQ,GACTnO,EAAO6nB,SAAS1Z,KACnBA,EAAKnO,EAAOO,KAAK4N,IAEnB1U,KAAK25I,KAAOllI,EAAKnV,OAAO,CACtB7B,IAAKA,EACLiX,GAAIA,EACJxL,KAAMA,IA5BVm2F,EAAMk6C,IAAMl6C,EAAM,WAClBA,EAAMu6C,KAAOv6C,EAAM,gBACnBljG,EAAOT,QAAUy1G,EACjB5yE,EAAS4yE,EAAK70D,GA4Bd60D,EAAIp2G,UAAUkiD,QAAU,SAAUx5C,GAChC,OAAO8C,EAAOO,KAAK9G,KAAK25I,KAAK90I,OAAOpB,KAEtC0tG,EAAIp2G,UAAU2hD,OAAS,WACrB,OAAOn2C,EAAOO,KAAK9G,KAAK25I,KAAKl9F,W,6BC9C/B/gD,EAAQ++B,MAAQ17B,EAAQ,MACxBrD,EAAQoX,OAAS/T,EAAQ,KACzBrD,EAAQy1G,IAAMpyG,EAAQ,MACtBrD,EAAQuX,IAAMlU,EAAQ,MACtBrD,EAAQ+9I,IAAM16I,EAAQ,O,6BCJtB,IAAIs7B,EAASt7B,EAAQ,KACjBw/B,EAAWx/B,EAAQ,KAEnBuP,EAAQ,GAEZ,SAASurI,EAASnlI,GAChB2lB,EAAOE,MAAM7lB,EAAGla,OAAQ,EAAG,qBAE3BwF,KAAK0U,GAAK,IAAIjF,MAAM,GACpB,IAAK,IAAInO,EAAI,EAAGA,EAAItB,KAAK0U,GAAGla,OAAQ8G,IAClCtB,KAAK0U,GAAGpT,GAAKoT,EAAGpT,GAuBpB5F,EAAQ89I,YApBR,SAAqB35I,GACnB,SAASoT,EAAInX,GACX+D,EAAK5E,KAAK+E,KAAMlE,GAChBkE,KAAK85I,WAEPv7G,EAAStrB,EAAKpT,GAGd,IADA,IAAI2Y,EAAO1d,OAAO0d,KAAKlK,GACdhN,EAAI,EAAGA,EAAIkX,EAAKhe,OAAQ8G,IAAK,CACpC,IAAI7D,EAAM+a,EAAKlX,GACf2R,EAAIlY,UAAU0C,GAAO6Q,EAAM7Q,GAO7B,OAJAwV,EAAI3T,OAAS,SAAgBxD,GAC3B,OAAO,IAAImX,EAAInX,IAGVmX,GAKT3E,EAAMwrI,SAAW,WACf,IAAI9xI,EAAQ,IAAI6xI,EAAS75I,KAAKlE,QAAQ4Y,IACtC1U,KAAK+5I,UAAY/xI,GAGnBsG,EAAM2uC,QAAU,SAAiBkwE,EAAKC,EAAOl6F,EAAKm6F,GAChD,IAAIrlH,EAAQhI,KAAK+5I,UACbC,EAAah6I,KAAKiG,YAAYD,OAAOjL,UAErC2Z,EAAK1M,EAAM0M,GACf,GAAkB,YAAd1U,KAAKkJ,KAAoB,CAC3B,IAAK,IAAI5H,EAAI,EAAGA,EAAItB,KAAK+D,UAAWzC,IAClCoT,EAAGpT,IAAM6rH,EAAIC,EAAQ9rH,GAEvB04I,EAAW/8F,QAAQhiD,KAAK+E,KAAM0U,EAAI,EAAGwe,EAAKm6F,GAE1C,IAAS/rH,EAAI,EAAGA,EAAItB,KAAK+D,UAAWzC,IAClCoT,EAAGpT,GAAK4xB,EAAIm6F,EAAS/rH,OAClB,CACL04I,EAAW/8F,QAAQhiD,KAAK+E,KAAMmtH,EAAKC,EAAOl6F,EAAKm6F,GAE/C,IAAS/rH,EAAI,EAAGA,EAAItB,KAAK+D,UAAWzC,IAClC4xB,EAAIm6F,EAAS/rH,IAAMoT,EAAGpT,GAExB,IAASA,EAAI,EAAGA,EAAItB,KAAK+D,UAAWzC,IAClCoT,EAAGpT,GAAK6rH,EAAIC,EAAQ9rH,M,6BC5D1B,IAAI+4B,EAASt7B,EAAQ,KACjBw/B,EAAWx/B,EAAQ,KAEnB+T,EAAS/T,EAAQ,KACjBoyG,EAAMpyG,EAAQ,MAElB,SAASk7I,EAAS/wI,EAAMzL,GACtB48B,EAAOE,MAAM98B,EAAIjD,OAAQ,GAAI,sBAE7B,IAAIqhC,EAAKp+B,EAAIS,MAAM,EAAG,GAClB49B,EAAKr+B,EAAIS,MAAM,EAAG,IAClBg8I,EAAKz8I,EAAIS,MAAM,GAAI,IAGrB8B,KAAKqsF,QADM,YAATnjF,EACa,CACbioG,EAAI7xG,OAAO,CAAE4J,KAAM,UAAWzL,IAAKo+B,IACnCs1E,EAAI7xG,OAAO,CAAE4J,KAAM,UAAWzL,IAAKq+B,IACnCq1E,EAAI7xG,OAAO,CAAE4J,KAAM,UAAWzL,IAAKy8I,KAGtB,CACb/oC,EAAI7xG,OAAO,CAAE4J,KAAM,UAAWzL,IAAKy8I,IACnC/oC,EAAI7xG,OAAO,CAAE4J,KAAM,UAAWzL,IAAKq+B,IACnCq1E,EAAI7xG,OAAO,CAAE4J,KAAM,UAAWzL,IAAKo+B,KAKzC,SAAS49G,EAAI39I,GACXgX,EAAO7X,KAAK+E,KAAMlE,GAElB,IAAIkM,EAAQ,IAAIiyI,EAASj6I,KAAKkJ,KAAMlJ,KAAKlE,QAAQ2B,KACjDuC,KAAKm6I,UAAYnyI,EAEnBu2B,EAASk7G,EAAK3mI,GAEd3W,EAAOT,QAAU+9I,EAEjBA,EAAIn6I,OAAS,SAAgBxD,GAC3B,OAAO,IAAI29I,EAAI39I,IAGjB29I,EAAI1+I,UAAUkiD,QAAU,SAAiBkwE,EAAKC,EAAOl6F,EAAKm6F,GACxD,IAAIrlH,EAAQhI,KAAKm6I,UAEjBnyI,EAAMqkF,QAAQ,GAAGpvC,QAAQkwE,EAAKC,EAAOl6F,EAAKm6F,GAC1CrlH,EAAMqkF,QAAQ,GAAGpvC,QAAQ/pB,EAAKm6F,EAAQn6F,EAAKm6F,GAC3CrlH,EAAMqkF,QAAQ,GAAGpvC,QAAQ/pB,EAAKm6F,EAAQn6F,EAAKm6F,IAG7CosB,EAAI1+I,UAAUu5E,KAAO68B,EAAIp2G,UAAUu5E,KACnCmlE,EAAI1+I,UAAUokG,OAASgS,EAAIp2G,UAAUokG,Q,gBCrDrC,IAAIi7C,EAAQr7I,EAAQ,KAChBs7I,EAAat7I,EAAQ,MACrBwH,EAASxH,EAAQ,KAAewH,OAChCiO,EAAezV,EAAQ,MACvBq9C,EAAYr9C,EAAQ,KACpBkvH,EAAMlvH,EAAQ,KACds6I,EAAOt6I,EAAQ,KAGnB,SAAS+T,EAAQ2B,EAAMhX,EAAKiX,GAC1B0nC,EAAUnhD,KAAK+E,MAEfA,KAAKguH,OAAS,IAAIssB,EAClBt6I,KAAK6U,QAAU,IAAIo5G,EAAItmC,IAAIlqF,GAC3BuC,KAAK8tH,MAAQvnH,EAAOO,KAAK4N,GACzB1U,KAAK+V,MAAQtB,EACbzU,KAAKu6I,cAAe,EATPx7I,EAAQ,IAYvBw/B,CAASzrB,EAAQspC,GAEjBtpC,EAAO/X,UAAUkiD,QAAU,SAAUx5C,GAEnC,IAAIw5F,EACAv4B,EAFJ1kE,KAAKguH,OAAOlnF,IAAIrjC,GAKhB,IAFA,IAAIyvB,EAAM,GAEF+pE,EAAQj9F,KAAKguH,OAAOxhH,OAC1Bk4D,EAAQ1kE,KAAK+V,MAAM1B,QAAQrU,KAAMi9F,GACjC/pE,EAAItxB,KAAK8iE,GAGX,OAAOn+D,EAAOxF,OAAOmyB,IAGvB,IAAIsnH,EAAUj0I,EAAOQ,MAAM,GAAI,IAqB/B,SAASuzI,IACPt6I,KAAK+lI,MAAQx/H,EAAOS,YAAY,GA4BlC,SAASu4F,EAAgB+5C,EAAOviI,EAAUrC,GACxC,IAAIuiF,EAASmjD,EAAMd,EAAMtpI,eACzB,IAAKinF,EAAQ,MAAM,IAAIx8F,UAAU,sBAGjC,GADwB,iBAAbsc,IAAuBA,EAAWxQ,EAAOO,KAAKiQ,IACrDA,EAASvc,SAAWy8F,EAAOx5F,IAAM,EAAG,MAAM,IAAIhD,UAAU,sBAAwBsc,EAASvc,QAG7F,GADkB,iBAAPka,IAAiBA,EAAKnO,EAAOO,KAAK4N,IACzB,QAAhBuiF,EAAOxiF,MAAkBC,EAAGla,SAAWy8F,EAAOviF,GAAI,MAAM,IAAIja,UAAU,qBAAuBia,EAAGla,QAEpG,MAAoB,WAAhBy8F,EAAO/tF,KACF,IAAIsL,EAAayiF,EAAO96F,OAAQ4a,EAAUrC,GACxB,SAAhBuiF,EAAO/tF,KACT,IAAImxI,EAAWpjD,EAAO96F,OAAQ4a,EAAUrC,GAG1C,IAAI5B,EAAOmkF,EAAO96F,OAAQ4a,EAAUrC,GAhE7C5B,EAAO/X,UAAU2hD,OAAS,WACxB,IAAIugD,EAAQj9F,KAAKguH,OAAOxG,QACxB,GAAIxnH,KAAKu6I,aAGP,OAFAt9C,EAAQj9F,KAAK+V,MAAM1B,QAAQrU,KAAMi9F,GACjCj9F,KAAK6U,QAAQ2zE,QACNyU,EAGT,IAAKA,EAAMzqE,OAAOgoH,GAEhB,MADAx6I,KAAK6U,QAAQ2zE,QACP,IAAIltF,MAAM,sCAIpBwX,EAAO/X,UAAUoiD,eAAiB,SAAUs9F,GAE1C,OADAz6I,KAAKu6I,eAAiBE,EACfz6I,MAOTs6I,EAASv/I,UAAU+rC,IAAM,SAAUrjC,GACjCzD,KAAK+lI,MAAQx/H,EAAOxF,OAAO,CAACf,KAAK+lI,MAAOtiI,KAG1C62I,EAASv/I,UAAUyR,IAAM,WACvB,GAAIxM,KAAK+lI,MAAMvrI,OAAS,GAAI,CAC1B,IAAI04B,EAAMlzB,KAAK+lI,MAAM7nI,MAAM,EAAG,IAE9B,OADA8B,KAAK+lI,MAAQ/lI,KAAK+lI,MAAM7nI,MAAM,IACvBg1B,EAET,OAAO,MAGTonH,EAASv/I,UAAUysH,MAAQ,WAKzB,IAJA,IAAI/7F,EAAM,GAAKzrB,KAAK+lI,MAAMvrI,OACtBkgJ,EAAUn0I,EAAOS,YAAYykB,GAE7BnqB,GAAK,IACAA,EAAImqB,GACXivH,EAAQrlH,WAAW5J,EAAKnqB,GAG1B,OAAOiF,EAAOxF,OAAO,CAACf,KAAK+lI,MAAO2U,KA8BpCh/I,EAAQ6jG,eAAiBA,EACzB7jG,EAAQ4jG,aATR,SAAuBg6C,EAAOviI,GAC5B,IAAIkgF,EAASmjD,EAAMd,EAAMtpI,eACzB,IAAKinF,EAAQ,MAAM,IAAIx8F,UAAU,sBAEjC,IAAI+d,EAAO6gI,EAAKtiI,GAAU,EAAOkgF,EAAOx5F,IAAKw5F,EAAOviF,IACpD,OAAO6qF,EAAe+5C,EAAO9gI,EAAK/a,IAAK+a,EAAK9D,M,cC7G9ChZ,EAAQ2Y,QAAU,SAAU1V,EAAMqW,GAChC,OAAOrW,EAAKkW,QAAQM,aAAaH,IAGnCtZ,EAAQ4Y,QAAU,SAAU3V,EAAMqW,GAChC,OAAOrW,EAAKkW,QAAQQ,aAAaL,K,gBCLnC,IAAIqxB,EAAMtnC,EAAQ,KAElBrD,EAAQ2Y,QAAU,SAAU1V,EAAMqW,GAChC,IAAIvR,EAAO4iC,EAAIrxB,EAAOrW,EAAKmvH,OAG3B,OADAnvH,EAAKmvH,MAAQnvH,EAAKkW,QAAQM,aAAa1R,GAChC9E,EAAKmvH,OAGdpyH,EAAQ4Y,QAAU,SAAU3V,EAAMqW,GAChC,IAAIM,EAAM3W,EAAKmvH,MAEfnvH,EAAKmvH,MAAQ94G,EACb,IAAIke,EAAMv0B,EAAKkW,QAAQQ,aAAaL,GAEpC,OAAOqxB,EAAInT,EAAK5d,K,gBCflB,IAAI/O,EAASxH,EAAQ,KAAewH,OAChC8/B,EAAMtnC,EAAQ,KAElB,SAAS47I,EAAch8I,EAAM8E,EAAM6Q,GACjC,IAAImX,EAAMhoB,EAAKjJ,OACX04B,EAAMmT,EAAI5iC,EAAM9E,EAAKqvH,QAGzB,OAFArvH,EAAKqvH,OAASrvH,EAAKqvH,OAAO9vH,MAAMutB,GAChC9sB,EAAKmvH,MAAQvnH,EAAOxF,OAAO,CAACpC,EAAKmvH,MAAOx5G,EAAU7Q,EAAOyvB,IAClDA,EAGTx3B,EAAQ2Y,QAAU,SAAU1V,EAAM8E,EAAM6Q,GAItC,IAHA,IACImX,EADAyH,EAAM3sB,EAAOS,YAAY,GAGtBvD,EAAKjJ,QAAQ,CAMlB,GAL2B,IAAvBmE,EAAKqvH,OAAOxzH,SACdmE,EAAKqvH,OAASrvH,EAAKkW,QAAQM,aAAaxW,EAAKmvH,OAC7CnvH,EAAKmvH,MAAQvnH,EAAOS,YAAY,MAG9BrI,EAAKqvH,OAAOxzH,QAAUiJ,EAAKjJ,QAIxB,CACL04B,EAAM3sB,EAAOxF,OAAO,CAACmyB,EAAKynH,EAAah8I,EAAM8E,EAAM6Q,KACnD,MALAmX,EAAM9sB,EAAKqvH,OAAOxzH,OAClB04B,EAAM3sB,EAAOxF,OAAO,CAACmyB,EAAKynH,EAAah8I,EAAM8E,EAAKvF,MAAM,EAAGutB,GAAMnX,KACjE7Q,EAAOA,EAAKvF,MAAMutB,GAOtB,OAAOyH,I,gBC/BT,IAAI3sB,EAASxH,EAAQ,KAAewH,OAEpC,SAASq0I,EAAaj8I,EAAMk8I,EAAWvmI,GACrC,IACI4e,EADMv0B,EAAKkW,QAAQM,aAAaxW,EAAKmvH,OAC3B,GAAK+sB,EAOnB,OALAl8I,EAAKmvH,MAAQvnH,EAAOxF,OAAO,CACzBpC,EAAKmvH,MAAM5vH,MAAM,GACjBqI,EAAOO,KAAK,CAACwN,EAAUumI,EAAY3nH,MAG9BA,EAGTx3B,EAAQ2Y,QAAU,SAAU1V,EAAMs+F,EAAO3oF,GAKvC,IAJA,IAAImX,EAAMwxE,EAAMziG,OACZ04B,EAAM3sB,EAAOS,YAAYykB,GACzBnqB,GAAK,IAEAA,EAAImqB,GACXyH,EAAI5xB,GAAKs5I,EAAYj8I,EAAMs+F,EAAM37F,GAAIgT,GAGvC,OAAO4e,I,gBCvBT,IAAI3sB,EAASxH,EAAQ,KAAewH,OAEpC,SAASq0I,EAAaj8I,EAAMk8I,EAAWvmI,GAMrC,IALA,IAIIoyB,EAAK/qC,EAHL2F,GAAK,EAEL4xB,EAAM,IAED5xB,EAHC,GAKRolC,EAAOm0G,EAAa,GAAM,EAAIv5I,EAAO,IAAO,EAE5C4xB,IAAiB,KADjBv3B,EAFMgD,EAAKkW,QAAQM,aAAaxW,EAAKmvH,OAEzB,GAAKpnF,KACUplC,EAAI,EAC/B3C,EAAKmvH,MAAQgtB,EAAQn8I,EAAKmvH,MAAOx5G,EAAUoyB,EAAM/qC,GAEnD,OAAOu3B,EAGT,SAAS4nH,EAASx0I,EAAQ3K,GACxB,IAAI8vB,EAAMnlB,EAAO9L,OACb8G,GAAK,EACL4xB,EAAM3sB,EAAOS,YAAYV,EAAO9L,QAGpC,IAFA8L,EAASC,EAAOxF,OAAO,CAACuF,EAAQC,EAAOO,KAAK,CAACnL,QAEpC2F,EAAImqB,GACXyH,EAAI5xB,GAAKgF,EAAOhF,IAAM,EAAIgF,EAAOhF,EAAI,IAAO,EAG9C,OAAO4xB,EAGTx3B,EAAQ2Y,QAAU,SAAU1V,EAAMs+F,EAAO3oF,GAKvC,IAJA,IAAImX,EAAMwxE,EAAMziG,OACZ04B,EAAM3sB,EAAOS,YAAYykB,GACzBnqB,GAAK,IAEAA,EAAImqB,GACXyH,EAAI5xB,GAAKs5I,EAAYj8I,EAAMs+F,EAAM37F,GAAIgT,GAGvC,OAAO4e,I,iBCxCT,gBAAImT,EAAMtnC,EAAQ,KAElB,SAAS8uH,EAAUlvH,GAEjB,OADAA,EAAKmvH,MAAQnvH,EAAKkW,QAAQM,aAAaxW,EAAKmvH,OACrCnvH,EAAKmvH,MAGdpyH,EAAQ2Y,QAAU,SAAU1V,EAAMs+F,GAChC,KAAOt+F,EAAKqvH,OAAOxzH,OAASyiG,EAAMziG,QAChCmE,EAAKqvH,OAASznH,EAAOxF,OAAO,CAACpC,EAAKqvH,OAAQH,EAASlvH,KAGrD,IAAI2W,EAAM3W,EAAKqvH,OAAO9vH,MAAM,EAAG++F,EAAMziG,QAErC,OADAmE,EAAKqvH,OAASrvH,EAAKqvH,OAAO9vH,MAAM++F,EAAMziG,QAC/B6rC,EAAI42D,EAAO3nF,M,0CCdpB,IAAI/O,EAASxH,EAAQ,KAAewH,OAChCw0I,EAASx0I,EAAOQ,MAAM,GAAI,GAW9B,SAASi0I,EAAW9nH,GAClB,IAAI7rB,EAAMd,EAAOS,YAAY,IAK7B,OAJAK,EAAIouB,cAAcvC,EAAI,KAAO,EAAG,GAChC7rB,EAAIouB,cAAcvC,EAAI,KAAO,EAAG,GAChC7rB,EAAIouB,cAAcvC,EAAI,KAAO,EAAG,GAChC7rB,EAAIouB,cAAcvC,EAAI,KAAO,EAAG,IACzB7rB,EAGT,SAAS6mH,EAAOzwH,GACduC,KAAKsvC,EAAI7xC,EACTuC,KAAKgI,MAAQzB,EAAOQ,MAAM,GAAI,GAC9B/G,KAAK+lI,MAAQx/H,EAAOS,YAAY,GAKlCknH,EAAMnzH,UAAUuzH,MAAQ,SAAUt5G,GAEhC,IADA,IAAI1T,GAAK,IACAA,EAAI0T,EAAMxa,QACjBwF,KAAKgI,MAAM1G,IAAM0T,EAAM1T,GAEzBtB,KAAKi7I,aAGP/sB,EAAMnzH,UAAUkgJ,UAAY,WAK1B,IAJA,IAnCgB5zI,EAqCZ7F,EAAO05I,EAFPC,EAlCG,EADS9zI,EAmCCrH,KAAKsvC,GAjChB/a,aAAa,GACjBltB,EAAIktB,aAAa,GACjBltB,EAAIktB,aAAa,GACjBltB,EAAIktB,aAAa,KA+Bf6mH,EAAK,CAAC,EAAG,EAAG,EAAG,GAEf95I,GAAK,IACAA,EAAI,KAAK,CAchB,IAbwD,IAAlDtB,KAAKgI,SAAS1G,EAAI,IAAO,GAAM,EAAKA,EAAI,KAG5C85I,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,IAIdD,EAAwB,IAAP,EAARC,EAAG,IAGP35I,EAAI,EAAGA,EAAI,EAAGA,IACjB25I,EAAG35I,GAAM25I,EAAG35I,KAAO,GAAmB,EAAZ25I,EAAG35I,EAAI,KAAW,GAE9C25I,EAAG,GAAKA,EAAG,KAAO,EAGdD,IACFC,EAAG,GAAKA,EAAG,GAAM,KAAQ,IAG7Bn7I,KAAKgI,MAAQgzI,EAAUI,IAGzBltB,EAAMnzH,UAAU8J,OAAS,SAAUwC,GAEjC,IAAI41F,EACJ,IAFAj9F,KAAK+lI,MAAQx/H,EAAOxF,OAAO,CAACf,KAAK+lI,MAAO1+H,IAEjCrH,KAAK+lI,MAAMvrI,QAAU,IAC1ByiG,EAAQj9F,KAAK+lI,MAAM7nI,MAAM,EAAG,IAC5B8B,KAAK+lI,MAAQ/lI,KAAK+lI,MAAM7nI,MAAM,IAC9B8B,KAAKsuH,MAAMrxB,IAIfixB,EAAMnzH,UAAU0hD,MAAQ,SAAU4+F,EAAKz7G,GAMrC,OALI5/B,KAAK+lI,MAAMvrI,QACbwF,KAAKsuH,MAAM/nH,EAAOxF,OAAO,CAACf,KAAK+lI,MAAOgV,GAAS,KAGjD/6I,KAAKsuH,MAAM0sB,EAAU,CAAC,EAAGK,EAAK,EAAGz7G,KAC1B5/B,KAAKgI,OAGd7L,EAAOT,QAAUwyH,G,gBCxFjB,IAAImsB,EAAat7I,EAAQ,MACrBwH,EAASxH,EAAQ,KAAewH,OAChC6zI,EAAQr7I,EAAQ,KAChByV,EAAezV,EAAQ,MACvBq9C,EAAYr9C,EAAQ,KACpBkvH,EAAMlvH,EAAQ,KACds6I,EAAOt6I,EAAQ,KAGnB,SAAS2gG,EAAUjrF,EAAMhX,EAAKiX,GAC5B0nC,EAAUnhD,KAAK+E,MAEfA,KAAKguH,OAAS,IAAIssB,EAClBt6I,KAAKs7I,WAAQ,EACbt7I,KAAK6U,QAAU,IAAIo5G,EAAItmC,IAAIlqF,GAC3BuC,KAAK8tH,MAAQvnH,EAAOO,KAAK4N,GACzB1U,KAAK+V,MAAQtB,EACbzU,KAAKu6I,cAAe,EA+BtB,SAASD,IACPt6I,KAAK+lI,MAAQx/H,EAAOS,YAAY,GA8ClC,SAAS4mF,EAAkB0rD,EAAOviI,EAAUrC,GAC1C,IAAIuiF,EAASmjD,EAAMd,EAAMtpI,eACzB,IAAKinF,EAAQ,MAAM,IAAIx8F,UAAU,sBAGjC,GADkB,iBAAPia,IAAiBA,EAAKnO,EAAOO,KAAK4N,IACzB,QAAhBuiF,EAAOxiF,MAAkBC,EAAGla,SAAWy8F,EAAOviF,GAAI,MAAM,IAAIja,UAAU,qBAAuBia,EAAGla,QAGpG,GADwB,iBAAbuc,IAAuBA,EAAWxQ,EAAOO,KAAKiQ,IACrDA,EAASvc,SAAWy8F,EAAOx5F,IAAM,EAAG,MAAM,IAAIhD,UAAU,sBAAwBsc,EAASvc,QAE7F,MAAoB,WAAhBy8F,EAAO/tF,KACF,IAAIsL,EAAayiF,EAAO96F,OAAQ4a,EAAUrC,GAAI,GAC5B,SAAhBuiF,EAAO/tF,KACT,IAAImxI,EAAWpjD,EAAO96F,OAAQ4a,EAAUrC,GAAI,GAG9C,IAAIgrF,EAASzI,EAAO96F,OAAQ4a,EAAUrC,GAxGhC3V,EAAQ,IAavBw/B,CAASmhE,EAAUtjD,GAEnBsjD,EAAS3kG,UAAUkiD,QAAU,SAAUx5C,GAErC,IAAIw5F,EACAv4B,EAFJ1kE,KAAKguH,OAAOlnF,IAAIrjC,GAIhB,IADA,IAAIyvB,EAAM,GACF+pE,EAAQj9F,KAAKguH,OAAOxhH,IAAIxM,KAAKu6I,eACnC71E,EAAQ1kE,KAAK+V,MAAMzB,QAAQtU,KAAMi9F,GACjC/pE,EAAItxB,KAAK8iE,GAEX,OAAOn+D,EAAOxF,OAAOmyB,IAGvBwsE,EAAS3kG,UAAU2hD,OAAS,WAC1B,IAAIugD,EAAQj9F,KAAKguH,OAAOxG,QACxB,GAAIxnH,KAAKu6I,aACP,OA0CJ,SAAgBt8C,GACd,IAAIs9C,EAASt9C,EAAK,IAClB,GAAIs9C,EAAS,GAAKA,EAAS,GACzB,MAAM,IAAIjgJ,MAAM,0BAElB,IAAIgG,GAAK,EACT,OAASA,EAAIi6I,GACX,GAAIt9C,EAAM38F,GAAK,GAAKi6I,MAAcA,EAChC,MAAM,IAAIjgJ,MAAM,0BAGpB,GAAe,KAAXigJ,EAAe,OAEnB,OAAOt9C,EAAK//F,MAAM,EAAG,GAAKq9I,GAvDjB3lI,CAAM5V,KAAK+V,MAAMzB,QAAQtU,KAAMi9F,IACjC,GAAIA,EACT,MAAM,IAAI3hG,MAAM,sCAIpBokG,EAAS3kG,UAAUoiD,eAAiB,SAAUs9F,GAE5C,OADAz6I,KAAKu6I,eAAiBE,EACfz6I,MAOTs6I,EAASv/I,UAAU+rC,IAAM,SAAUrjC,GACjCzD,KAAK+lI,MAAQx/H,EAAOxF,OAAO,CAACf,KAAK+lI,MAAOtiI,KAG1C62I,EAASv/I,UAAUyR,IAAM,SAAUgvI,GACjC,IAAItoH,EACJ,GAAIsoH,GACF,GAAIx7I,KAAK+lI,MAAMvrI,OAAS,GAGtB,OAFA04B,EAAMlzB,KAAK+lI,MAAM7nI,MAAM,EAAG,IAC1B8B,KAAK+lI,MAAQ/lI,KAAK+lI,MAAM7nI,MAAM,IACvBg1B,OAGT,GAAIlzB,KAAK+lI,MAAMvrI,QAAU,GAGvB,OAFA04B,EAAMlzB,KAAK+lI,MAAM7nI,MAAM,EAAG,IAC1B8B,KAAK+lI,MAAQ/lI,KAAK+lI,MAAM7nI,MAAM,IACvBg1B,EAIX,OAAO,MAGTonH,EAASv/I,UAAUysH,MAAQ,WACzB,GAAIxnH,KAAK+lI,MAAMvrI,OAAQ,OAAOwF,KAAK+lI,OA8CrCrqI,EAAQ+jG,eARR,SAAyB65C,EAAOviI,GAC9B,IAAIkgF,EAASmjD,EAAMd,EAAMtpI,eACzB,IAAKinF,EAAQ,MAAM,IAAIx8F,UAAU,sBAEjC,IAAI+d,EAAO6gI,EAAKtiI,GAAU,EAAOkgF,EAAOx5F,IAAKw5F,EAAOviF,IACpD,OAAOk5E,EAAiB0rD,EAAO9gI,EAAK/a,IAAK+a,EAAK9D,KAIhDhZ,EAAQkyF,iBAAmBA,G,cC3H3BlyF,EAAQ,WAAa,CACnB+B,IAAK,EACLiX,GAAI,GAENhZ,EAAQ,WAAaA,EAAQ69I,IAAM,CACjC97I,IAAK,EACLiX,GAAI,GAENhZ,EAAQ,gBAAkBA,EAAQk+I,KAAO,CACvCn8I,IAAK,GACLiX,GAAI,GAENhZ,EAAQ,YAAc,CACpB+B,IAAK,GACLiX,GAAI,GAENhZ,EAAQ,eAAiB,CACvB+B,IAAK,GACLiX,GAAI,GAENhZ,EAAQ,WAAa,CACnB+B,IAAK,GACLiX,GAAI,I,iBCtBN,gBAAI+mI,EAAgB18I,EAAQ,MACxBu1C,EAASv1C,EAAQ,MAEjB28I,EAAK38I,EAAQ,MASjB,IAAI48I,EAAY,CACd,QAAU,EAAM,KAAO,EAAM,QAAU,GA2BzCjgJ,EAAQw5I,mBAAqBx5I,EAAQy5I,yBAA2Bz5I,EAAQ05I,iBAnCxE,SAA2B75G,GACzB,IAAI0Z,EAAQ,IAAI1uC,EAAO+tC,EAAO/Y,GAAK0Z,MAAO,OACtC46E,EAAM,IAAItpH,EAAO+tC,EAAO/Y,GAAKs0F,IAAK,OAEtC,OAAO,IAAI6rB,EAAGzmG,EAAO46E,IAgCvBn0H,EAAQ25I,oBAAsB35I,EAAQ45I,cAzBtC,SAASD,EAAqBpgG,EAAOnzC,EAAK0lI,EAAWoU,GACnD,OAAIr1I,EAAO6nB,SAAStsB,SAA2BtD,IAAnBm9I,EAAU75I,GAC7BuzI,EAAoBpgG,EAAO,SAAUnzC,EAAK0lI,IAGnD1lI,EAAMA,GAAO,SACb85I,EAAOA,GAAQ,SACfpU,EAAYA,GAAa,IAAIjhI,EAAO,CAAC,IAEhCA,EAAO6nB,SAASo5G,KACnBA,EAAY,IAAIjhI,EAAOihI,EAAWoU,IAGf,iBAAV3mG,EACF,IAAIymG,EAAGD,EAAcxmG,EAAOuyF,GAAYA,GAAW,IAGvDjhI,EAAO6nB,SAAS6mB,KACnBA,EAAQ,IAAI1uC,EAAO0uC,EAAOnzC,IAGrB,IAAI45I,EAAGzmG,EAAOuyF,GAAW,Q,8RCrClC,SAAWrrI,EAAQT,GACjB,aAGA,SAAS2+B,EAAQ9L,EAAK+L,GACpB,IAAK/L,EAAK,MAAM,IAAIjzB,MAAMg/B,GAAO,oBAKnC,SAASiE,EAAUz4B,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIM,EAAW,aACfA,EAAStL,UAAYgL,EAAUhL,UAC/B+K,EAAK/K,UAAY,IAAIsL,EACrBP,EAAK/K,UAAUkL,YAAcH,EAK/B,SAAS40B,EAAIh1B,EAAQ0M,EAAM0sB,GACzB,GAAIpE,EAAGyH,KAAKz8B,GACV,OAAOA,EAGT1F,KAAKoiC,SAAW,EAChBpiC,KAAKU,MAAQ,KACbV,KAAKxF,OAAS,EAGdwF,KAAKqiC,IAAM,KAEI,OAAX38B,IACW,OAAT0M,GAA0B,OAATA,IACnB0sB,EAAS1sB,EACTA,EAAO,IAGTpS,KAAKsiC,MAAM58B,GAAU,EAAG0M,GAAQ,GAAI0sB,GAAU,OAYlD,IAAIv4B,EATkB,WAAlB,EAAOpK,GACTA,EAAOT,QAAUg/B,EAEjBh/B,EAAQg/B,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAG6H,SAAW,GAGd,IAEIh8B,EADoB,oBAAX7H,aAAmD,IAAlBA,OAAO6H,OACxC7H,OAAO6H,OAEPxH,EAAQ,MAAUwH,OAE7B,MAAOvD,IAgIT,SAASw/B,EAAe1lC,EAAQkN,GAC9B,IAAI7B,EAAIrL,EAAO8F,WAAWoH,GAE1B,OAAI7B,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASs6B,EAAc3lC,EAAQ4lC,EAAY14B,GACzC,IAAIwwB,EAAIgI,EAAc1lC,EAAQkN,GAI9B,OAHIA,EAAQ,GAAK04B,IACflI,GAAKgI,EAAc1lC,EAAQkN,EAAQ,IAAM,GAEpCwwB,EA8CT,SAASmI,EAAW/pB,EAAKiG,EAAOH,EAAKwV,GAGnC,IAFA,IAAIsG,EAAI,EACJ/O,EAAMltB,KAAK8F,IAAIuU,EAAIpe,OAAQkkB,GACtBpd,EAAIud,EAAOvd,EAAImqB,EAAKnqB,IAAK,CAChC,IAAI6G,EAAIyQ,EAAIhW,WAAWtB,GAAK,GAE5Bk5B,GAAKtG,EAIHsG,GADEryB,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAOqyB,EAnNTE,EAAGyH,KAAO,SAAenH,GACvB,OAAIA,aAAeN,GAIJ,OAARM,GAA+B,WAAf,EAAOA,IAC5BA,EAAI/0B,YAAYs8B,WAAa7H,EAAG6H,UAAY9yB,MAAMC,QAAQsrB,EAAIt6B,QAGlEg6B,EAAGx2B,IAAM,SAAc0+B,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTnI,EAAGr2B,IAAM,SAAcu+B,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTnI,EAAG3/B,UAAUunC,MAAQ,SAAe58B,EAAQ0M,EAAM0sB,GAChD,GAAsB,iBAAXp5B,EACT,OAAO1F,KAAK+iC,YAAYr9B,EAAQ0M,EAAM0sB,GAGxC,GAAsB,WAAlB,EAAOp5B,GACT,OAAO1F,KAAKgjC,WAAWt9B,EAAQ0M,EAAM0sB,GAG1B,QAAT1sB,IACFA,EAAO,IAETioB,EAAOjoB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIyM,EAAQ,EACM,OAFlBnZ,EAASA,EAAO1K,WAAW+U,QAAQ,OAAQ,KAEhC,KACT8O,IACA7e,KAAKoiC,SAAW,GAGdvjB,EAAQnZ,EAAOlL,SACJ,KAAT4X,EACFpS,KAAKijC,UAAUv9B,EAAQmZ,EAAOigB,IAE9B9+B,KAAKkjC,WAAWx9B,EAAQ0M,EAAMyM,GACf,OAAXigB,GACF9+B,KAAKgjC,WAAWhjC,KAAKsK,UAAW8H,EAAM0sB,MAM9CpE,EAAG3/B,UAAUgoC,YAAc,SAAsBr9B,EAAQ0M,EAAM0sB,GACzDp5B,EAAS,IACX1F,KAAKoiC,SAAW,EAChB18B,GAAUA,GAERA,EAAS,UACX1F,KAAKU,MAAQ,CAAW,SAATgF,GACf1F,KAAKxF,OAAS,GACLkL,EAAS,kBAClB1F,KAAKU,MAAQ,CACF,SAATgF,EACCA,EAAS,SAAa,UAEzB1F,KAAKxF,OAAS,IAEd6/B,EAAO30B,EAAS,kBAChB1F,KAAKU,MAAQ,CACF,SAATgF,EACCA,EAAS,SAAa,SACvB,GAEF1F,KAAKxF,OAAS,GAGD,OAAXskC,GAGJ9+B,KAAKgjC,WAAWhjC,KAAKsK,UAAW8H,EAAM0sB,IAGxCpE,EAAG3/B,UAAUioC,WAAa,SAAqBt9B,EAAQ0M,EAAM0sB,GAG3D,GADAzE,EAAgC,iBAAlB30B,EAAOlL,QACjBkL,EAAOlL,QAAU,EAGnB,OAFAwF,KAAKU,MAAQ,CAAE,GACfV,KAAKxF,OAAS,EACPwF,KAGTA,KAAKxF,OAAS+D,KAAKkD,KAAKiE,EAAOlL,OAAS,GACxCwF,KAAKU,MAAQ,IAAI+O,MAAMzP,KAAKxF,QAC5B,IAAK,IAAI8G,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC/BtB,KAAKU,MAAMY,GAAK,EAGlB,IAAIE,EAAGy5B,EACH9Y,EAAM,EACV,GAAe,OAAX2c,EACF,IAAKx9B,EAAIoE,EAAOlL,OAAS,EAAGgH,EAAI,EAAGF,GAAK,EAAGA,GAAK,EAC9C25B,EAAIv1B,EAAOpE,GAAMoE,EAAOpE,EAAI,IAAM,EAAMoE,EAAOpE,EAAI,IAAM,GACzDtB,KAAKU,MAAMc,IAAOy5B,GAAK9Y,EAAO,SAC9BniB,KAAKU,MAAMc,EAAI,GAAMy5B,IAAO,GAAK9Y,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP3gB,UAGC,GAAe,OAAXs9B,EACT,IAAKx9B,EAAI,EAAGE,EAAI,EAAGF,EAAIoE,EAAOlL,OAAQ8G,GAAK,EACzC25B,EAAIv1B,EAAOpE,GAAMoE,EAAOpE,EAAI,IAAM,EAAMoE,EAAOpE,EAAI,IAAM,GACzDtB,KAAKU,MAAMc,IAAOy5B,GAAK9Y,EAAO,SAC9BniB,KAAKU,MAAMc,EAAI,GAAMy5B,IAAO,GAAK9Y,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP3gB,KAIN,OAAOxB,KAAKmjC,SAyBdzI,EAAG3/B,UAAUkoC,UAAY,SAAoBv9B,EAAQmZ,EAAOigB,GAE1D9+B,KAAKxF,OAAS+D,KAAKkD,MAAMiE,EAAOlL,OAASqkB,GAAS,GAClD7e,KAAKU,MAAQ,IAAI+O,MAAMzP,KAAKxF,QAC5B,IAAK,IAAI8G,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC/BtB,KAAKU,MAAMY,GAAK,EAIlB,IAGI25B,EAHA9Y,EAAM,EACN3gB,EAAI,EAGR,GAAe,OAAXs9B,EACF,IAAKx9B,EAAIoE,EAAOlL,OAAS,EAAG8G,GAAKud,EAAOvd,GAAK,EAC3C25B,EAAIwH,EAAa/8B,EAAQmZ,EAAOvd,IAAM6gB,EACtCniB,KAAKU,MAAMc,IAAU,SAAJy5B,EACb9Y,GAAO,IACTA,GAAO,GACP3gB,GAAK,EACLxB,KAAKU,MAAMc,IAAMy5B,IAAM,IAEvB9Y,GAAO,OAKX,IAAK7gB,GADaoE,EAAOlL,OAASqkB,GACX,GAAM,EAAIA,EAAQ,EAAIA,EAAOvd,EAAIoE,EAAOlL,OAAQ8G,GAAK,EAC1E25B,EAAIwH,EAAa/8B,EAAQmZ,EAAOvd,IAAM6gB,EACtCniB,KAAKU,MAAMc,IAAU,SAAJy5B,EACb9Y,GAAO,IACTA,GAAO,GACP3gB,GAAK,EACLxB,KAAKU,MAAMc,IAAMy5B,IAAM,IAEvB9Y,GAAO,EAKbniB,KAAKmjC,SA2BPzI,EAAG3/B,UAAUmoC,WAAa,SAAqBx9B,EAAQ0M,EAAMyM,GAE3D7e,KAAKU,MAAQ,CAAE,GACfV,KAAKxF,OAAS,EAGd,IAAK,IAAI4oC,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWjxB,EAClEgxB,IAEFA,IACAC,EAAWA,EAAUjxB,EAAQ,EAO7B,IALA,IAAIkxB,EAAQ59B,EAAOlL,OAASqkB,EACxB0c,EAAM+H,EAAQF,EACd1kB,EAAMngB,KAAK8F,IAAIi/B,EAAOA,EAAQ/H,GAAO1c,EAErC6f,EAAO,EACFp9B,EAAIud,EAAOvd,EAAIod,EAAKpd,GAAK8hC,EAChC1E,EAAOiE,EAAUj9B,EAAQpE,EAAGA,EAAI8hC,EAAShxB,GAEzCpS,KAAKujC,MAAMF,GACPrjC,KAAKU,MAAM,GAAKg+B,EAAO,SACzB1+B,KAAKU,MAAM,IAAMg+B,EAEjB1+B,KAAKwjC,OAAO9E,GAIhB,GAAY,IAARnD,EAAW,CACb,IAAI9G,EAAM,EAGV,IAFAiK,EAAOiE,EAAUj9B,EAAQpE,EAAGoE,EAAOlL,OAAQ4X,GAEtC9Q,EAAI,EAAGA,EAAIi6B,EAAKj6B,IACnBmzB,GAAOriB,EAGTpS,KAAKujC,MAAM9O,GACPz0B,KAAKU,MAAM,GAAKg+B,EAAO,SACzB1+B,KAAKU,MAAM,IAAMg+B,EAEjB1+B,KAAKwjC,OAAO9E,GAIhB1+B,KAAKmjC,SAGPzI,EAAG3/B,UAAUuzB,KAAO,SAAemV,GACjCA,EAAK/iC,MAAQ,IAAI+O,MAAMzP,KAAKxF,QAC5B,IAAK,IAAI8G,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC/BmiC,EAAK/iC,MAAMY,GAAKtB,KAAKU,MAAMY,GAE7BmiC,EAAKjpC,OAASwF,KAAKxF,OACnBipC,EAAKrB,SAAWpiC,KAAKoiC,SACrBqB,EAAKpB,IAAMriC,KAAKqiC,KAGlB3H,EAAG3/B,UAAUyF,MAAQ,WACnB,IAAIg6B,EAAI,IAAIE,EAAG,MAEf,OADA16B,KAAKsuB,KAAKkM,GACHA,GAGTE,EAAG3/B,UAAU2oC,QAAU,SAAkBx8B,GACvC,KAAOlH,KAAKxF,OAAS0M,GACnBlH,KAAKU,MAAMV,KAAKxF,UAAY,EAE9B,OAAOwF,MAIT06B,EAAG3/B,UAAUooC,MAAQ,WACnB,KAAOnjC,KAAKxF,OAAS,GAAqC,IAAhCwF,KAAKU,MAAMV,KAAKxF,OAAS,IACjDwF,KAAKxF,SAEP,OAAOwF,KAAK2jC,aAGdjJ,EAAG3/B,UAAU4oC,UAAY,WAKvB,OAHoB,IAAhB3jC,KAAKxF,QAAkC,IAAlBwF,KAAKU,MAAM,KAClCV,KAAKoiC,SAAW,GAEXpiC,MAGT06B,EAAG3/B,UAAU03B,QAAU,WACrB,OAAQzyB,KAAKqiC,IAAM,UAAY,SAAWriC,KAAKhF,SAAS,IAAM,KAiChE,IAAI4oC,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYplC,EAAMq8B,EAAK9H,GAC9BA,EAAIkP,SAAWpH,EAAIoH,SAAWzjC,EAAKyjC,SACnC,IAAI3W,EAAO9sB,EAAKnE,OAASwgC,EAAIxgC,OAAU,EACvC04B,EAAI14B,OAASixB,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAI/jB,EAAoB,EAAhB/I,EAAK+B,MAAM,GACfiH,EAAmB,EAAfqzB,EAAIt6B,MAAM,GACd85B,EAAI9yB,EAAIC,EAERmpB,EAAS,SAAJ0J,EACL0F,EAAS1F,EAAI,SAAa,EAC9BtH,EAAIxyB,MAAM,GAAKowB,EAEf,IAAK,IAAItJ,EAAI,EAAGA,EAAIiE,EAAKjE,IAAK,CAM5B,IAHA,IAAIwc,EAAS9D,IAAU,GACnB+D,EAAgB,SAAR/D,EACRgE,EAAO3lC,KAAK8F,IAAImjB,EAAGwT,EAAIxgC,OAAS,GAC3BgH,EAAIjD,KAAK2F,IAAI,EAAGsjB,EAAI7oB,EAAKnE,OAAS,GAAIgH,GAAK0iC,EAAM1iC,IAAK,CAC7D,IAAIF,EAAKkmB,EAAIhmB,EAAK,EAIlBwiC,IADAxJ,GAFA9yB,EAAoB,EAAhB/I,EAAK+B,MAAMY,KACfqG,EAAmB,EAAfqzB,EAAIt6B,MAAMc,IACFyiC,GACG,SAAa,EAC5BA,EAAY,SAAJzJ,EAEVtH,EAAIxyB,MAAM8mB,GAAa,EAARyc,EACf/D,EAAiB,EAAT8D,EAQV,OANc,IAAV9D,EACFhN,EAAIxyB,MAAM8mB,GAAa,EAAR0Y,EAEfhN,EAAI14B,SAGC04B,EAAIiQ,QAzlBbzI,EAAG3/B,UAAUC,SAAW,SAAmBoX,EAAMuD,GAI/C,IAAIud,EACJ,GAHAvd,EAAoB,EAAVA,GAAe,EAGZ,MAJbvD,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC8gB,EAAM,GAGN,IAFA,IAAI/Q,EAAM,EACN+d,EAAQ,EACH5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CACpC,IAAI25B,EAAIj7B,KAAKU,MAAMY,GACfo9B,GAA+B,UAArBzD,GAAK9Y,EAAO+d,IAAmBllC,SAAS,IAGpDk4B,EADY,KADdgN,EAASjF,IAAO,GAAK9Y,EAAQ,WACV7gB,IAAMtB,KAAKxF,OAAS,EAC/BopC,EAAM,EAAIlF,EAAKlkC,QAAUkkC,EAAOxL,EAEhCwL,EAAOxL,GAEf/Q,GAAO,IACI,KACTA,GAAO,GACP7gB,KAMJ,IAHc,IAAV4+B,IACFhN,EAAMgN,EAAMllC,SAAS,IAAMk4B,GAEtBA,EAAI14B,OAASmb,GAAY,GAC9Bud,EAAM,IAAMA,EAKd,OAHsB,IAAlBlzB,KAAKoiC,WACPlP,EAAM,IAAMA,GAEPA,EAGT,GAAI9gB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI+xB,EAAYN,EAAWzxB,GAEvBgyB,EAAYN,EAAW1xB,GAC3B8gB,EAAM,GACN,IAAI/qB,EAAInI,KAAKQ,QAEb,IADA2H,EAAEi6B,SAAW,GACLj6B,EAAEk8B,UAAU,CAClB,IAAI7J,EAAIryB,EAAEm8B,KAAKF,GAAWppC,SAASoX,GAMjC8gB,GALF/qB,EAAIA,EAAEo8B,MAAMH,IAELC,SAGC7J,EAAItH,EAFJ0Q,EAAMO,EAAY3J,EAAEhgC,QAAUggC,EAAItH,EAQ5C,IAHIlzB,KAAKqkC,WACPnR,EAAM,IAAMA,GAEPA,EAAI14B,OAASmb,GAAY,GAC9Bud,EAAM,IAAMA,EAKd,OAHsB,IAAlBlzB,KAAKoiC,WACPlP,EAAM,IAAMA,GAEPA,EAGTmH,GAAO,EAAO,oCAGhBK,EAAG3/B,UAAUypC,SAAW,WACtB,IAAIva,EAAMjqB,KAAKU,MAAM,GASrB,OARoB,IAAhBV,KAAKxF,OACPyvB,GAAuB,SAAhBjqB,KAAKU,MAAM,GACO,IAAhBV,KAAKxF,QAAkC,IAAlBwF,KAAKU,MAAM,GAEzCupB,GAAO,iBAAoC,SAAhBjqB,KAAKU,MAAM,GAC7BV,KAAKxF,OAAS,GACvB6/B,GAAO,EAAO,8CAEU,IAAlBr6B,KAAKoiC,UAAmBnY,EAAMA,GAGxCyQ,EAAG3/B,UAAUi4B,OAAS,WACpB,OAAOhzB,KAAKhF,SAAS,KAGvB0/B,EAAG3/B,UAAU0pC,SAAW,SAAmB3F,EAAQtkC,GAEjD,OADA6/B,OAAyB,IAAX9zB,GACPvG,KAAK0kC,YAAYn+B,EAAQu4B,EAAQtkC,IAG1CkgC,EAAG3/B,UAAUuP,QAAU,SAAkBw0B,EAAQtkC,GAC/C,OAAOwF,KAAK0kC,YAAYj1B,MAAOqvB,EAAQtkC,IAGzCkgC,EAAG3/B,UAAU2pC,YAAc,SAAsBC,EAAW7F,EAAQtkC,GAClE,IAAIqzB,EAAa7tB,KAAK6tB,aAClB+W,EAAYpqC,GAAU+D,KAAK2F,IAAI,EAAG2pB,GACtCwM,EAAOxM,GAAc+W,EAAW,yCAChCvK,EAAOuK,EAAY,EAAG,+BAEtB5kC,KAAKmjC,QACL,IAGIx7B,EAAGrG,EAHHmyB,EAA0B,OAAXqL,EACf9hB,EAAM,IAAI2nB,EAAUC,GAGpBC,EAAI7kC,KAAKQ,QACb,GAAKizB,EAYE,CACL,IAAKnyB,EAAI,GAAIujC,EAAER,SAAU/iC,IACvBqG,EAAIk9B,EAAErJ,MAAM,KACZqJ,EAAElJ,OAAO,GAET3e,EAAI1b,GAAKqG,EAGX,KAAOrG,EAAIsjC,EAAWtjC,IACpB0b,EAAI1b,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAIsjC,EAAY/W,EAAYvsB,IACtC0b,EAAI1b,GAAK,EAGX,IAAKA,EAAI,GAAIujC,EAAER,SAAU/iC,IACvBqG,EAAIk9B,EAAErJ,MAAM,KACZqJ,EAAElJ,OAAO,GAET3e,EAAI4nB,EAAYtjC,EAAI,GAAKqG,EAe7B,OAAOqV,GAGLze,KAAKumC,MACPpK,EAAG3/B,UAAUgqC,WAAa,SAAqB9J,GAC7C,OAAO,GAAK18B,KAAKumC,MAAM7J,IAGzBP,EAAG3/B,UAAUgqC,WAAa,SAAqB9J,GAC7C,IAAInzB,EAAImzB,EACJT,EAAI,EAiBR,OAhBI1yB,GAAK,OACP0yB,GAAK,GACL1yB,KAAO,IAELA,GAAK,KACP0yB,GAAK,EACL1yB,KAAO,GAELA,GAAK,IACP0yB,GAAK,EACL1yB,KAAO,GAELA,GAAK,IACP0yB,GAAK,EACL1yB,KAAO,GAEF0yB,EAAI1yB,GAIf4yB,EAAG3/B,UAAUiqC,UAAY,SAAoB/J,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAInzB,EAAImzB,EACJT,EAAI,EAoBR,OAnBqB,IAAZ,KAAJ1yB,KACH0yB,GAAK,GACL1yB,KAAO,IAEU,IAAV,IAAJA,KACH0yB,GAAK,EACL1yB,KAAO,GAES,IAAT,GAAJA,KACH0yB,GAAK,EACL1yB,KAAO,GAES,IAAT,EAAJA,KACH0yB,GAAK,EACL1yB,KAAO,GAES,IAAT,EAAJA,IACH0yB,IAEKA,GAITE,EAAG3/B,UAAUqgC,UAAY,WACvB,IAAIH,EAAIj7B,KAAKU,MAAMV,KAAKxF,OAAS,GAC7Bq2B,EAAK7wB,KAAK+kC,WAAW9J,GACzB,OAA2B,IAAnBj7B,KAAKxF,OAAS,GAAUq2B,GAiBlC6J,EAAG3/B,UAAUkqC,SAAW,WACtB,GAAIjlC,KAAKqkC,SAAU,OAAO,EAG1B,IADA,IAAI7J,EAAI,EACCl5B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CACpC,IAAIqG,EAAI3H,KAAKglC,UAAUhlC,KAAKU,MAAMY,IAElC,GADAk5B,GAAK7yB,EACK,KAANA,EAAU,MAEhB,OAAO6yB,GAGTE,EAAG3/B,UAAU8yB,WAAa,WACxB,OAAOtvB,KAAKkD,KAAKzB,KAAKo7B,YAAc,IAGtCV,EAAG3/B,UAAUmqC,OAAS,SAAiBnpC,GACrC,OAAsB,IAAlBiE,KAAKoiC,SACApiC,KAAK83B,MAAMqN,MAAMppC,GAAOqpC,MAAM,GAEhCplC,KAAKQ,SAGdk6B,EAAG3/B,UAAUsqC,SAAW,SAAmBtpC,GACzC,OAAIiE,KAAKslC,MAAMvpC,EAAQ,GACdiE,KAAKulC,KAAKxpC,GAAOqpC,MAAM,GAAGI,OAE5BxlC,KAAKQ,SAGdk6B,EAAG3/B,UAAU0qC,MAAQ,WACnB,OAAyB,IAAlBzlC,KAAKoiC,UAId1H,EAAG3/B,UAAU2qC,IAAM,WACjB,OAAO1lC,KAAKQ,QAAQglC,QAGtB9K,EAAG3/B,UAAUyqC,KAAO,WAKlB,OAJKxlC,KAAKqkC,WACRrkC,KAAKoiC,UAAY,GAGZpiC,MAIT06B,EAAG3/B,UAAU4qC,KAAO,SAAe3K,GACjC,KAAOh7B,KAAKxF,OAASwgC,EAAIxgC,QACvBwF,KAAKU,MAAMV,KAAKxF,UAAY,EAG9B,IAAK,IAAI8G,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAC9BtB,KAAKU,MAAMY,GAAKtB,KAAKU,MAAMY,GAAK05B,EAAIt6B,MAAMY,GAG5C,OAAOtB,KAAKmjC,SAGdzI,EAAG3/B,UAAU6qC,IAAM,SAAc5K,GAE/B,OADAX,EAA0C,IAAlCr6B,KAAKoiC,SAAWpH,EAAIoH,WACrBpiC,KAAK2lC,KAAK3K,IAInBN,EAAG3/B,UAAU8qC,GAAK,SAAa7K,GAC7B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQolC,IAAI5K,GAC/CA,EAAIx6B,QAAQolC,IAAI5lC,OAGzB06B,EAAG3/B,UAAU+qC,IAAM,SAAc9K,GAC/B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQmlC,KAAK3K,GAChDA,EAAIx6B,QAAQmlC,KAAK3lC,OAI1B06B,EAAG3/B,UAAUgrC,MAAQ,SAAgB/K,GAEnC,IAAIrzB,EAEFA,EADE3H,KAAKxF,OAASwgC,EAAIxgC,OAChBwgC,EAEAh7B,KAGN,IAAK,IAAIsB,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAC5BtB,KAAKU,MAAMY,GAAKtB,KAAKU,MAAMY,GAAK05B,EAAIt6B,MAAMY,GAK5C,OAFAtB,KAAKxF,OAASmN,EAAEnN,OAETwF,KAAKmjC,SAGdzI,EAAG3/B,UAAUirC,KAAO,SAAehL,GAEjC,OADAX,EAA0C,IAAlCr6B,KAAKoiC,SAAWpH,EAAIoH,WACrBpiC,KAAK+lC,MAAM/K,IAIpBN,EAAG3/B,UAAUkrC,IAAM,SAAcjL,GAC/B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQwlC,KAAKhL,GAChDA,EAAIx6B,QAAQwlC,KAAKhmC,OAG1B06B,EAAG3/B,UAAUmrC,KAAO,SAAelL,GACjC,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQulC,MAAM/K,GACjDA,EAAIx6B,QAAQulC,MAAM/lC,OAI3B06B,EAAG3/B,UAAUorC,MAAQ,SAAgBnL,GAEnC,IAAItzB,EACAC,EACA3H,KAAKxF,OAASwgC,EAAIxgC,QACpBkN,EAAI1H,KACJ2H,EAAIqzB,IAEJtzB,EAAIszB,EACJrzB,EAAI3H,MAGN,IAAK,IAAIsB,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAC5BtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAAKqG,EAAEjH,MAAMY,GAGvC,GAAItB,OAAS0H,EACX,KAAOpG,EAAIoG,EAAElN,OAAQ8G,IACnBtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAM5B,OAFAtB,KAAKxF,OAASkN,EAAElN,OAETwF,KAAKmjC,SAGdzI,EAAG3/B,UAAUqrC,KAAO,SAAepL,GAEjC,OADAX,EAA0C,IAAlCr6B,KAAKoiC,SAAWpH,EAAIoH,WACrBpiC,KAAKmmC,MAAMnL,IAIpBN,EAAG3/B,UAAUsrC,IAAM,SAAcrL,GAC/B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQ4lC,KAAKpL,GAChDA,EAAIx6B,QAAQ4lC,KAAKpmC,OAG1B06B,EAAG3/B,UAAUurC,KAAO,SAAetL,GACjC,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQ2lC,MAAMnL,GACjDA,EAAIx6B,QAAQ2lC,MAAMnmC,OAI3B06B,EAAG3/B,UAAUoqC,MAAQ,SAAgBppC,GACnCs+B,EAAwB,iBAAVt+B,GAAsBA,GAAS,GAE7C,IAAIwqC,EAAsC,EAAxBhoC,KAAKkD,KAAK1F,EAAQ,IAChCyqC,EAAWzqC,EAAQ,GAGvBiE,KAAK0jC,QAAQ6C,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIjlC,EAAI,EAAGA,EAAIilC,EAAajlC,IAC/BtB,KAAKU,MAAMY,GAAsB,UAAhBtB,KAAKU,MAAMY,GAS9B,OALIklC,EAAW,IACbxmC,KAAKU,MAAMY,IAAMtB,KAAKU,MAAMY,GAAM,UAAc,GAAKklC,GAIhDxmC,KAAKmjC,SAGdzI,EAAG3/B,UAAUwqC,KAAO,SAAexpC,GACjC,OAAOiE,KAAKQ,QAAQ2kC,MAAMppC,IAI5B2+B,EAAG3/B,UAAU0rC,KAAO,SAAeC,EAAKnY,GACtC8L,EAAsB,iBAARqM,GAAoBA,GAAO,GAEzC,IAAIvkB,EAAOukB,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARA1mC,KAAK0jC,QAAQvhB,EAAM,GAGjBniB,KAAKU,MAAMyhB,GADToM,EACgBvuB,KAAKU,MAAMyhB,GAAQ,GAAKwkB,EAExB3mC,KAAKU,MAAMyhB,KAAS,GAAKwkB,GAGtC3mC,KAAKmjC,SAIdzI,EAAG3/B,UAAU6rC,KAAO,SAAe5L,GACjC,IAAIR,EAkBA9yB,EAAGC,EAfP,GAAsB,IAAlB3H,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAI7B,OAHApiC,KAAKoiC,SAAW,EAChB5H,EAAIx6B,KAAK6mC,KAAK7L,GACdh7B,KAAKoiC,UAAY,EACVpiC,KAAK2jC,YAGP,GAAsB,IAAlB3jC,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAIpC,OAHApH,EAAIoH,SAAW,EACf5H,EAAIx6B,KAAK6mC,KAAK7L,GACdA,EAAIoH,SAAW,EACR5H,EAAEmJ,YAKP3jC,KAAKxF,OAASwgC,EAAIxgC,QACpBkN,EAAI1H,KACJ2H,EAAIqzB,IAEJtzB,EAAIszB,EACJrzB,EAAI3H,MAIN,IADA,IAAIkgC,EAAQ,EACH5+B,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAC5Bk5B,GAAkB,EAAb9yB,EAAEhH,MAAMY,KAAwB,EAAbqG,EAAEjH,MAAMY,IAAU4+B,EAC1ClgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAChB0F,EAAQ1F,IAAM,GAEhB,KAAiB,IAAV0F,GAAe5+B,EAAIoG,EAAElN,OAAQ8G,IAClCk5B,GAAkB,EAAb9yB,EAAEhH,MAAMY,IAAU4+B,EACvBlgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAChB0F,EAAQ1F,IAAM,GAIhB,GADAx6B,KAAKxF,OAASkN,EAAElN,OACF,IAAV0lC,EACFlgC,KAAKU,MAAMV,KAAKxF,QAAU0lC,EAC1BlgC,KAAKxF,cAEA,GAAIkN,IAAM1H,KACf,KAAOsB,EAAIoG,EAAElN,OAAQ8G,IACnBtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAI5B,OAAOtB,MAIT06B,EAAG3/B,UAAU+rC,IAAM,SAAc9L,GAC/B,IAAIhe,EACJ,OAAqB,IAAjBge,EAAIoH,UAAoC,IAAlBpiC,KAAKoiC,UAC7BpH,EAAIoH,SAAW,EACfplB,EAAMhd,KAAKsb,IAAI0f,GACfA,EAAIoH,UAAY,EACTplB,GACmB,IAAjBge,EAAIoH,UAAoC,IAAlBpiC,KAAKoiC,UACpCpiC,KAAKoiC,SAAW,EAChBplB,EAAMge,EAAI1f,IAAItb,MACdA,KAAKoiC,SAAW,EACTplB,GAGLhd,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQomC,KAAK5L,GAEhDA,EAAIx6B,QAAQomC,KAAK5mC,OAI1B06B,EAAG3/B,UAAU8rC,KAAO,SAAe7L,GAEjC,GAAqB,IAAjBA,EAAIoH,SAAgB,CACtBpH,EAAIoH,SAAW,EACf,IAAI5H,EAAIx6B,KAAK4mC,KAAK5L,GAElB,OADAA,EAAIoH,SAAW,EACR5H,EAAEmJ,YAGJ,GAAsB,IAAlB3jC,KAAKoiC,SAId,OAHApiC,KAAKoiC,SAAW,EAChBpiC,KAAK4mC,KAAK5L,GACVh7B,KAAKoiC,SAAW,EACTpiC,KAAK2jC,YAId,IAWIj8B,EAAGC,EAXHm7B,EAAM9iC,KAAK8iC,IAAI9H,GAGnB,GAAY,IAAR8H,EAIF,OAHA9iC,KAAKoiC,SAAW,EAChBpiC,KAAKxF,OAAS,EACdwF,KAAKU,MAAM,GAAK,EACTV,KAKL8iC,EAAM,GACRp7B,EAAI1H,KACJ2H,EAAIqzB,IAEJtzB,EAAIszB,EACJrzB,EAAI3H,MAIN,IADA,IAAIkgC,EAAQ,EACH5+B,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAE5B4+B,GADA1F,GAAkB,EAAb9yB,EAAEhH,MAAMY,KAAwB,EAAbqG,EAAEjH,MAAMY,IAAU4+B,IAC7B,GACblgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAElB,KAAiB,IAAV0F,GAAe5+B,EAAIoG,EAAElN,OAAQ8G,IAElC4+B,GADA1F,GAAkB,EAAb9yB,EAAEhH,MAAMY,IAAU4+B,IACV,GACblgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAIlB,GAAc,IAAV0F,GAAe5+B,EAAIoG,EAAElN,QAAUkN,IAAM1H,KACvC,KAAOsB,EAAIoG,EAAElN,OAAQ8G,IACnBtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAU5B,OANAtB,KAAKxF,OAAS+D,KAAK2F,IAAIlE,KAAKxF,OAAQ8G,GAEhCoG,IAAM1H,OACRA,KAAKoiC,SAAW,GAGXpiC,KAAKmjC,SAIdzI,EAAG3/B,UAAUugB,IAAM,SAAc0f,GAC/B,OAAOh7B,KAAKQ,QAAQqmC,KAAK7L,IA+C3B,IAAI+L,EAAc,SAAsBpoC,EAAMq8B,EAAK9H,GACjD,IAIIpC,EACAkW,EACAnW,EANAnpB,EAAI/I,EAAK+B,MACTiH,EAAIqzB,EAAIt6B,MACRogC,EAAI5N,EAAIxyB,MACRyH,EAAI,EAIJ8+B,EAAY,EAAPv/B,EAAE,GACPw/B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1/B,EAAE,GACP2/B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7/B,EAAE,GACP8/B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhgC,EAAE,GACPigC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPngC,EAAE,GACPogC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtgC,EAAE,GACPugC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzgC,EAAE,GACP0gC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5gC,EAAE,GACP6gC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/gC,EAAE,GACPghC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlhC,EAAE,GACPmhC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPphC,EAAE,GACPqhC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvhC,EAAE,GACPwhC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1hC,EAAE,GACP2hC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7hC,EAAE,GACP8hC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhiC,EAAE,GACPiiC,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPniC,EAAE,GACPoiC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPtiC,EAAE,GACPuiC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPziC,EAAE,GACP0iC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5iC,EAAE,GACP6iC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/iC,EAAE,GACPgjC,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBxX,EAAIkP,SAAWzjC,EAAKyjC,SAAWpH,EAAIoH,SACnClP,EAAI14B,OAAS,GAMb,IAAIqwC,IAAQ1iC,GAJZ2oB,EAAKvyB,KAAKusC,KAAK5D,EAAK8B,IAIE,KAAa,MAFnChC,GADAA,EAAMzoC,KAAKusC,KAAK5D,EAAK+B,IACR1qC,KAAKusC,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrD7gC,IAFA0oB,EAAKtyB,KAAKusC,KAAK3D,EAAK8B,KAEPjC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAEN/Z,EAAKvyB,KAAKusC,KAAKzD,EAAK2B,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKzD,EAAK4B,IACR1qC,KAAKusC,KAAKxD,EAAK0B,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQ5iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKkC,GAAQ,GACvB7qC,KAAKusC,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDhhC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKiC,GAAQ,IAErBpC,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENja,EAAKvyB,KAAKusC,KAAKtD,EAAKwB,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKtD,EAAKyB,IACR1qC,KAAKusC,KAAKrD,EAAKuB,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKrD,EAAKwB,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAK8B,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAK+B,GAAQ,GACvB7qC,KAAKusC,KAAKxD,EAAK6B,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQ7iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKqC,GAAQ,GACvBhrC,KAAKusC,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrDnhC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKoC,GAAQ,IAErBvC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENla,EAAKvyB,KAAKusC,KAAKnD,EAAKqB,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKnD,EAAKsB,IACR1qC,KAAKusC,KAAKlD,EAAKoB,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKlD,EAAKqB,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK2B,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK4B,GAAQ,GACvB7qC,KAAKusC,KAAKrD,EAAK0B,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK2B,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKiC,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKkC,GAAQ,GACvBhrC,KAAKusC,KAAKxD,EAAKgC,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQ9iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKwC,GAAQ,GACvBnrC,KAAKusC,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrDthC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKuC,GAAQ,IAErB1C,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENna,EAAKvyB,KAAKusC,KAAKhD,EAAKkB,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKhD,EAAKmB,IACR1qC,KAAKusC,KAAK/C,EAAKiB,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAK/C,EAAKkB,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKwB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKyB,GAAQ,GACvB7qC,KAAKusC,KAAKlD,EAAKuB,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKwB,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK8B,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK+B,GAAQ,GACvBhrC,KAAKusC,KAAKrD,EAAK6B,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK8B,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKoC,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKqC,GAAQ,GACvBnrC,KAAKusC,KAAKxD,EAAKmC,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQ/iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAK2C,IAAQ,GACvBtrC,KAAKusC,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDzhC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAK0C,IAAQ,IAErB7C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENpa,EAAKvyB,KAAKusC,KAAK7C,EAAKe,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAK7C,EAAKgB,IACR1qC,KAAKusC,KAAK5C,EAAKc,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAK5C,EAAKe,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKqB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKsB,GAAQ,GACvB7qC,KAAKusC,KAAK/C,EAAKoB,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKqB,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK2B,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK4B,GAAQ,GACvBhrC,KAAKusC,KAAKlD,EAAK0B,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK2B,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKiC,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKkC,GAAQ,GACvBnrC,KAAKusC,KAAKrD,EAAKgC,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKiC,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKuC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKwC,IAAQ,GACvBtrC,KAAKusC,KAAKxD,EAAKsC,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQhjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAK8C,IAAQ,GACvBzrC,KAAKusC,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrD5hC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAK6C,IAAQ,IAErBhD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENra,EAAKvyB,KAAKusC,KAAK1C,EAAKY,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAK1C,EAAKa,IACR1qC,KAAKusC,KAAKzC,EAAKW,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKzC,EAAKY,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKkB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKmB,GAAQ,GACvB7qC,KAAKusC,KAAK5C,EAAKiB,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKkB,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKwB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKyB,GAAQ,GACvBhrC,KAAKusC,KAAK/C,EAAKuB,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKwB,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK8B,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK+B,GAAQ,GACvBnrC,KAAKusC,KAAKlD,EAAK6B,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK8B,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKoC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKqC,IAAQ,GACvBtrC,KAAKusC,KAAKrD,EAAKmC,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKoC,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAK0C,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAK2C,IAAQ,GACvBzrC,KAAKusC,KAAKxD,EAAKyC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQjjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKiD,IAAQ,GACvB5rC,KAAKusC,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrD/hC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKgD,IAAQ,IAErBnD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENta,EAAKvyB,KAAKusC,KAAKvC,EAAKS,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKvC,EAAKU,IACR1qC,KAAKusC,KAAKtC,EAAKQ,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKtC,EAAKS,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKe,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKgB,GAAQ,GACvB7qC,KAAKusC,KAAKzC,EAAKc,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKe,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKqB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKsB,GAAQ,GACvBhrC,KAAKusC,KAAK5C,EAAKoB,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKqB,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK2B,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK4B,GAAQ,GACvBnrC,KAAKusC,KAAK/C,EAAK0B,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK2B,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKiC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKkC,IAAQ,GACvBtrC,KAAKusC,KAAKlD,EAAKgC,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKiC,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKuC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKwC,IAAQ,GACvBzrC,KAAKusC,KAAKrD,EAAKsC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKuC,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAK6C,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAK8C,IAAQ,GACvB5rC,KAAKusC,KAAKxD,EAAK4C,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQljC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKoD,IAAQ,GACvB/rC,KAAKusC,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrDliC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKmD,IAAQ,IAErBtD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENva,EAAKvyB,KAAKusC,KAAKpC,EAAKM,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKpC,EAAKO,IACR1qC,KAAKusC,KAAKnC,EAAKK,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKnC,EAAKM,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKY,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKa,GAAQ,GACvB7qC,KAAKusC,KAAKtC,EAAKW,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKY,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKkB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKmB,GAAQ,GACvBhrC,KAAKusC,KAAKzC,EAAKiB,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKkB,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKwB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKyB,GAAQ,GACvBnrC,KAAKusC,KAAK5C,EAAKuB,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKwB,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK8B,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK+B,IAAQ,GACvBtrC,KAAKusC,KAAK/C,EAAK6B,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK8B,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKoC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKqC,IAAQ,GACvBzrC,KAAKusC,KAAKlD,EAAKmC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKoC,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK0C,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK2C,IAAQ,GACvB5rC,KAAKusC,KAAKrD,EAAKyC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK0C,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKgD,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKiD,IAAQ,GACvB/rC,KAAKusC,KAAKxD,EAAK+C,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQnjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKuD,IAAQ,GACvBlsC,KAAKusC,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrDriC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKsD,IAAQ,IAErBzD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENxa,EAAKvyB,KAAKusC,KAAKjC,EAAKG,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKI,IACR1qC,KAAKusC,KAAKhC,EAAKE,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKhC,EAAKG,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKS,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKU,GAAQ,GACvB7qC,KAAKusC,KAAKnC,EAAKQ,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKS,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKe,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKgB,GAAQ,GACvBhrC,KAAKusC,KAAKtC,EAAKc,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKe,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKqB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKsB,GAAQ,GACvBnrC,KAAKusC,KAAKzC,EAAKoB,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKqB,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAK2B,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAK4B,IAAQ,GACvBtrC,KAAKusC,KAAK5C,EAAK0B,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAK2B,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKiC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKkC,IAAQ,GACvBzrC,KAAKusC,KAAK/C,EAAKgC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKiC,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKuC,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKwC,IAAQ,GACvB5rC,KAAKusC,KAAKlD,EAAKsC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKuC,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK6C,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK8C,IAAQ,GACvB/rC,KAAKusC,KAAKrD,EAAK4C,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK6C,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKmD,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKoD,IAAQ,GACvBlsC,KAAKusC,KAAKxD,EAAKkD,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQpjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAK0D,IAAQ,GACvBrsC,KAAKusC,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKyD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAENza,EAAKvyB,KAAKusC,KAAKjC,EAAKM,GAEpBnC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKO,IACR7qC,KAAKusC,KAAKhC,EAAKK,GAAQ,EACpCtY,EAAKtyB,KAAKusC,KAAKhC,EAAKM,GACpBtY,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKY,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKa,GAAQ,GACvBhrC,KAAKusC,KAAKnC,EAAKW,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKY,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKkB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKmB,GAAQ,GACvBnrC,KAAKusC,KAAKtC,EAAKiB,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKkB,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKwB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKyB,IAAQ,GACvBtrC,KAAKusC,KAAKzC,EAAKuB,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKwB,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAK8B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAK+B,IAAQ,GACvBzrC,KAAKusC,KAAK5C,EAAK6B,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAK8B,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKoC,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKqC,IAAQ,GACvB5rC,KAAKusC,KAAK/C,EAAKmC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKoC,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK0C,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK2C,IAAQ,GACvB/rC,KAAKusC,KAAKlD,EAAKyC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK0C,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKgD,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKiD,IAAQ,GACvBlsC,KAAKusC,KAAKrD,EAAK+C,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAASrjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKuD,IAAQ,GACvBrsC,KAAKusC,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKsD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP1a,EAAKvyB,KAAKusC,KAAKjC,EAAKS,GAEpBtC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKU,IACRhrC,KAAKusC,KAAKhC,EAAKQ,GAAQ,EACpCzY,EAAKtyB,KAAKusC,KAAKhC,EAAKS,GACpBzY,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKe,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKgB,GAAQ,GACvBnrC,KAAKusC,KAAKnC,EAAKc,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKe,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKqB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKsB,IAAQ,GACvBtrC,KAAKusC,KAAKtC,EAAKoB,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKqB,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAK2B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAK4B,IAAQ,GACvBzrC,KAAKusC,KAAKzC,EAAK0B,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAK2B,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKiC,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKkC,IAAQ,GACvB5rC,KAAKusC,KAAK5C,EAAKgC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKiC,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKuC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKwC,IAAQ,GACvB/rC,KAAKusC,KAAK/C,EAAKsC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKuC,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK6C,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK8C,IAAQ,GACvBlsC,KAAKusC,KAAKlD,EAAK4C,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAStjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKoD,IAAQ,GACvBrsC,KAAKusC,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKmD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP3a,EAAKvyB,KAAKusC,KAAKjC,EAAKY,GAEpBzC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKa,IACRnrC,KAAKusC,KAAKhC,EAAKW,GAAQ,EACpC5Y,EAAKtyB,KAAKusC,KAAKhC,EAAKY,GACpB5Y,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKkB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKmB,IAAQ,GACvBtrC,KAAKusC,KAAKnC,EAAKiB,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKkB,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKwB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKyB,IAAQ,GACvBzrC,KAAKusC,KAAKtC,EAAKuB,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKwB,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAK8B,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAK+B,IAAQ,GACvB5rC,KAAKusC,KAAKzC,EAAK6B,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAK8B,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKoC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKqC,IAAQ,GACvB/rC,KAAKusC,KAAK5C,EAAKmC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKoC,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK0C,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK2C,IAAQ,GACvBlsC,KAAKusC,KAAK/C,EAAKyC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAASvjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKiD,IAAQ,GACvBrsC,KAAKusC,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKgD,IAAQ,IAErB5D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP5a,EAAKvyB,KAAKusC,KAAKjC,EAAKe,GAEpB5C,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKgB,KACRtrC,KAAKusC,KAAKhC,EAAKc,GAAQ,EACpC/Y,EAAKtyB,KAAKusC,KAAKhC,EAAKe,IACpB/Y,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKqB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKsB,IAAQ,GACvBzrC,KAAKusC,KAAKnC,EAAKoB,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKqB,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAK2B,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAK4B,IAAQ,GACvB5rC,KAAKusC,KAAKtC,EAAK0B,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAK2B,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKiC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKkC,IAAQ,GACvB/rC,KAAKusC,KAAKzC,EAAKgC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKiC,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKuC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKwC,IAAQ,GACvBlsC,KAAKusC,KAAK5C,EAAKsC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASxjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK8C,IAAQ,GACvBrsC,KAAKusC,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK6C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP7a,EAAKvyB,KAAKusC,KAAKjC,EAAKkB,IAEpB/C,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKmB,KACRzrC,KAAKusC,KAAKhC,EAAKiB,IAAQ,EACpClZ,EAAKtyB,KAAKusC,KAAKhC,EAAKkB,IACpBlZ,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKwB,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKyB,IAAQ,GACvB5rC,KAAKusC,KAAKnC,EAAKuB,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKwB,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAK8B,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAK+B,IAAQ,GACvB/rC,KAAKusC,KAAKtC,EAAK6B,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAK8B,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKoC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKqC,IAAQ,GACvBlsC,KAAKusC,KAAKzC,EAAKmC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASzjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAK2C,IAAQ,GACvBrsC,KAAKusC,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAK0C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP9a,EAAKvyB,KAAKusC,KAAKjC,EAAKqB,IAEpBlD,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKsB,KACR5rC,KAAKusC,KAAKhC,EAAKoB,IAAQ,EACpCrZ,EAAKtyB,KAAKusC,KAAKhC,EAAKqB,IACpBrZ,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAK2B,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAK4B,IAAQ,GACvB/rC,KAAKusC,KAAKnC,EAAK0B,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAK2B,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKiC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKkC,IAAQ,GACvBlsC,KAAKusC,KAAKtC,EAAKgC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAAS1jC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKwC,IAAQ,GACvBrsC,KAAKusC,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKuC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEP/a,EAAKvyB,KAAKusC,KAAKjC,EAAKwB,IAEpBrD,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKyB,KACR/rC,KAAKusC,KAAKhC,EAAKuB,IAAQ,EACpCxZ,EAAKtyB,KAAKusC,KAAKhC,EAAKwB,IACpBxZ,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAK8B,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAK+B,IAAQ,GACvBlsC,KAAKusC,KAAKnC,EAAK6B,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAAS3jC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKqC,IAAQ,GACvBrsC,KAAKusC,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKoC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPhb,EAAKvyB,KAAKusC,KAAKjC,EAAK2B,IAEpBxD,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAK4B,KACRlsC,KAAKusC,KAAKhC,EAAK0B,IAAQ,EACpC3Z,EAAKtyB,KAAKusC,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAAS5jC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKkC,IAAQ,GACvBrsC,KAAKusC,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKiC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAS7jC,GAJb2oB,EAAKvyB,KAAKusC,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC3D,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAK+B,KACRrsC,KAAKusC,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAxiC,IAFA0oB,EAAKtyB,KAAKusC,KAAKhC,EAAK8B,MAEP5D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SACPlL,EAAE,GAAK+J,GACP/J,EAAE,GAAKiK,GACPjK,EAAE,GAAKkK,GACPlK,EAAE,GAAKmK,GACPnK,EAAE,GAAKoK,GACPpK,EAAE,GAAKqK,GACPrK,EAAE,GAAKsK,GACPtK,EAAE,GAAKuK,GACPvK,EAAE,GAAKwK,GACPxK,EAAE,GAAKyK,GACPzK,EAAE,IAAM0K,GACR1K,EAAE,IAAM2K,GACR3K,EAAE,IAAM4K,GACR5K,EAAE,IAAM6K,GACR7K,EAAE,IAAM8K,GACR9K,EAAE,IAAM+K,GACR/K,EAAE,IAAMgL,GACRhL,EAAE,IAAMiL,GACRjL,EAAE,IAAMkL,GACE,IAAN7jC,IACF24B,EAAE,IAAM34B,EACR+qB,EAAI14B,UAEC04B,GAiDT,SAAS+Y,EAAYttC,EAAMq8B,EAAK9H,GAE9B,OADW,IAAIgZ,GACHC,KAAKxtC,EAAMq8B,EAAK9H,GAsB9B,SAASgZ,EAAM/Z,EAAGC,GAChBpyB,KAAKmyB,EAAIA,EACTnyB,KAAKoyB,EAAIA,EAvEN7zB,KAAKusC,OACR/D,EAAchD,GAiDhBrJ,EAAG3/B,UAAUqxC,MAAQ,SAAgBpR,EAAK9H,GACxC,IACIzH,EAAMzrB,KAAKxF,OAASwgC,EAAIxgC,OAW5B,OAVoB,KAAhBwF,KAAKxF,QAAgC,KAAfwgC,EAAIxgC,OACtBusC,EAAY/mC,KAAMg7B,EAAK9H,GACpBzH,EAAM,GACTsY,EAAW/jC,KAAMg7B,EAAK9H,GACnBzH,EAAM,KArDnB,SAAmB9sB,EAAMq8B,EAAK9H,GAC5BA,EAAIkP,SAAWpH,EAAIoH,SAAWzjC,EAAKyjC,SACnClP,EAAI14B,OAASmE,EAAKnE,OAASwgC,EAAIxgC,OAI/B,IAFA,IAAI0lC,EAAQ,EACRmM,EAAU,EACL7kB,EAAI,EAAGA,EAAI0L,EAAI14B,OAAS,EAAGgtB,IAAK,CAGvC,IAAIwc,EAASqI,EACbA,EAAU,EAGV,IAFA,IAAIpI,EAAgB,SAAR/D,EACRgE,EAAO3lC,KAAK8F,IAAImjB,EAAGwT,EAAIxgC,OAAS,GAC3BgH,EAAIjD,KAAK2F,IAAI,EAAGsjB,EAAI7oB,EAAKnE,OAAS,GAAIgH,GAAK0iC,EAAM1iC,IAAK,CAC7D,IAAIF,EAAIkmB,EAAIhmB,EAGRg5B,GAFoB,EAAhB77B,EAAK+B,MAAMY,KACI,EAAf05B,EAAIt6B,MAAMc,IAGdsvB,EAAS,SAAJ0J,EAGTyJ,EAAa,UADbnT,EAAMA,EAAKmT,EAAS,GAIpBoI,IAFArI,GAHAA,EAAUA,GAAWxJ,EAAI,SAAa,GAAM,IAGxB1J,IAAO,IAAO,KAEZ,GACtBkT,GAAU,SAEZ9Q,EAAIxyB,MAAM8mB,GAAKyc,EACf/D,EAAQ8D,EACRA,EAASqI,EAQX,OANc,IAAVnM,EACFhN,EAAIxyB,MAAM8mB,GAAK0Y,EAEfhN,EAAI14B,SAGC04B,EAAIiQ,QAgBHmJ,CAAStsC,KAAMg7B,EAAK9H,GAEpB+Y,EAAWjsC,KAAMg7B,EAAK9H,IAchCgZ,EAAKnxC,UAAUwxC,QAAU,SAAkBC,GAGzC,IAFA,IAAI1kC,EAAI,IAAI2H,MAAM+8B,GACd9pB,EAAIgY,EAAG3/B,UAAUgqC,WAAWyH,GAAK,EAC5BlrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IACrBwG,EAAExG,GAAKtB,KAAKysC,OAAOnrC,EAAGohB,EAAG8pB,GAG3B,OAAO1kC,GAITokC,EAAKnxC,UAAU0xC,OAAS,SAAiBta,EAAGzP,EAAG8pB,GAC7C,GAAU,IAANra,GAAWA,IAAMqa,EAAI,EAAG,OAAOra,EAGnC,IADA,IAAIua,EAAK,EACAprC,EAAI,EAAGA,EAAIohB,EAAGphB,IACrBorC,IAAW,EAAJva,IAAWzP,EAAIphB,EAAI,EAC1B6wB,IAAM,EAGR,OAAOua,GAKTR,EAAKnxC,UAAU4xC,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAIlrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IACrByrC,EAAKzrC,GAAKurC,EAAID,EAAItrC,IAClB0rC,EAAK1rC,GAAKwrC,EAAIF,EAAItrC,KAItB4qC,EAAKnxC,UAAUkyC,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtE5sC,KAAK2sC,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIxS,EAAI,EAAGA,EAAIwS,EAAGxS,IAAM,EAM3B,IALA,IAAItX,EAAIsX,GAAK,EAETkT,EAAQ3uC,KAAK4uC,IAAI,EAAI5uC,KAAK6uC,GAAK1qB,GAC/B2qB,EAAQ9uC,KAAKw5B,IAAI,EAAIx5B,KAAK6uC,GAAK1qB,GAE1Bkc,EAAI,EAAGA,EAAI4N,EAAG5N,GAAKlc,EAI1B,IAHA,IAAI4qB,EAASJ,EACTK,EAASF,EAEJ7rC,EAAI,EAAGA,EAAIw4B,EAAGx4B,IAAK,CAC1B,IAAIgsC,EAAKT,EAAKnO,EAAIp9B,GACdisC,EAAKT,EAAKpO,EAAIp9B,GAEdksC,EAAKX,EAAKnO,EAAIp9B,EAAIw4B,GAClB2T,EAAKX,EAAKpO,EAAIp9B,EAAIw4B,GAElB4T,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELb,EAAKnO,EAAIp9B,GAAKgsC,EAAKE,EACnBV,EAAKpO,EAAIp9B,GAAKisC,EAAKE,EAEnBZ,EAAKnO,EAAIp9B,EAAIw4B,GAAKwT,EAAKE,EACvBV,EAAKpO,EAAIp9B,EAAIw4B,GAAKyT,EAAKE,EAGnBnsC,IAAMkhB,IACRkrB,EAAKV,EAAQI,EAASD,EAAQE,EAE9BA,EAASL,EAAQK,EAASF,EAAQC,EAClCA,EAASM,KAOnB1B,EAAKnxC,UAAU8yC,YAAc,SAAsBlrB,EAAGtD,GACpD,IAAImtB,EAAqB,EAAjBjuC,KAAK2F,IAAImb,EAAGsD,GAChBmrB,EAAU,EAAJtB,EACNlrC,EAAI,EACR,IAAKkrC,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/BlrC,IAGF,OAAO,GAAKA,EAAI,EAAIwsC,GAGtB5B,EAAKnxC,UAAUgzC,UAAY,SAAoBlB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIlrC,EAAI,EAAGA,EAAIkrC,EAAI,EAAGlrC,IAAK,CAC9B,IAAIwG,EAAI+kC,EAAIvrC,GAEZurC,EAAIvrC,GAAKurC,EAAIL,EAAIlrC,EAAI,GACrBurC,EAAIL,EAAIlrC,EAAI,GAAKwG,EAEjBA,EAAIglC,EAAIxrC,GAERwrC,EAAIxrC,IAAMwrC,EAAIN,EAAIlrC,EAAI,GACtBwrC,EAAIN,EAAIlrC,EAAI,IAAMwG,IAItBokC,EAAKnxC,UAAUizC,aAAe,SAAuB3S,EAAImR,GAEvD,IADA,IAAItM,EAAQ,EACH5+B,EAAI,EAAGA,EAAIkrC,EAAI,EAAGlrC,IAAK,CAC9B,IAAI25B,EAAoC,KAAhC18B,KAAKojC,MAAMtG,EAAG,EAAI/5B,EAAI,GAAKkrC,GACjCjuC,KAAKojC,MAAMtG,EAAG,EAAI/5B,GAAKkrC,GACvBtM,EAEF7E,EAAG/5B,GAAS,SAAJ25B,EAGNiF,EADEjF,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT6Q,EAAKnxC,UAAUkzC,WAAa,SAAqB5S,EAAI5P,EAAKohB,EAAKL,GAE7D,IADA,IAAItM,EAAQ,EACH5+B,EAAI,EAAGA,EAAImqB,EAAKnqB,IACvB4+B,GAAyB,EAAR7E,EAAG/5B,GAEpBurC,EAAI,EAAIvrC,GAAa,KAAR4+B,EAAgBA,KAAkB,GAC/C2M,EAAI,EAAIvrC,EAAI,GAAa,KAAR4+B,EAAgBA,KAAkB,GAIrD,IAAK5+B,EAAI,EAAImqB,EAAKnqB,EAAIkrC,IAAKlrC,EACzBurC,EAAIvrC,GAAK,EAGX+4B,EAAiB,IAAV6F,GACP7F,EAA6B,KAAb,KAAR6F,KAGVgM,EAAKnxC,UAAUmzC,KAAO,SAAe1B,GAEnC,IADA,IAAI2B,EAAK,IAAI1+B,MAAM+8B,GACVlrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IACrB6sC,EAAG7sC,GAAK,EAGV,OAAO6sC,GAGTjC,EAAKnxC,UAAUoxC,KAAO,SAAeha,EAAGC,EAAGc,GACzC,IAAIsZ,EAAI,EAAIxsC,KAAK6tC,YAAY1b,EAAE33B,OAAQ43B,EAAE53B,QAErCoyC,EAAM5sC,KAAKusC,QAAQC,GAEnB4B,EAAIpuC,KAAKkuC,KAAK1B,GAEdK,EAAM,IAAIp9B,MAAM+8B,GAChB6B,EAAO,IAAI5+B,MAAM+8B,GACjB8B,EAAO,IAAI7+B,MAAM+8B,GAEjB+B,EAAO,IAAI9+B,MAAM+8B,GACjBgC,EAAQ,IAAI/+B,MAAM+8B,GAClBiC,EAAQ,IAAIh/B,MAAM+8B,GAElBkC,EAAOxb,EAAIxyB,MACfguC,EAAKl0C,OAASgyC,EAEdxsC,KAAKiuC,WAAW9b,EAAEzxB,MAAOyxB,EAAE33B,OAAQqyC,EAAKL,GACxCxsC,KAAKiuC,WAAW7b,EAAE1xB,MAAO0xB,EAAE53B,OAAQ+zC,EAAM/B,GAEzCxsC,KAAKitC,UAAUJ,EAAKuB,EAAGC,EAAMC,EAAM9B,EAAGI,GACtC5sC,KAAKitC,UAAUsB,EAAMH,EAAGI,EAAOC,EAAOjC,EAAGI,GAEzC,IAAK,IAAItrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IAAK,CAC1B,IAAIssC,EAAKS,EAAK/sC,GAAKktC,EAAMltC,GAAKgtC,EAAKhtC,GAAKmtC,EAAMntC,GAC9CgtC,EAAKhtC,GAAK+sC,EAAK/sC,GAAKmtC,EAAMntC,GAAKgtC,EAAKhtC,GAAKktC,EAAMltC,GAC/C+sC,EAAK/sC,GAAKssC,EAUZ,OAPA5tC,KAAK+tC,UAAUM,EAAMC,EAAM9B,GAC3BxsC,KAAKitC,UAAUoB,EAAMC,EAAMI,EAAMN,EAAG5B,EAAGI,GACvC5sC,KAAK+tC,UAAUW,EAAMN,EAAG5B,GACxBxsC,KAAKguC,aAAaU,EAAMlC,GAExBtZ,EAAIkP,SAAWjQ,EAAEiQ,SAAWhQ,EAAEgQ,SAC9BlP,EAAI14B,OAAS23B,EAAE33B,OAAS43B,EAAE53B,OACnB04B,EAAIiQ,SAIbzI,EAAG3/B,UAAUm5B,IAAM,SAAc8G,GAC/B,IAAI9H,EAAM,IAAIwH,EAAG,MAEjB,OADAxH,EAAIxyB,MAAQ,IAAI+O,MAAMzP,KAAKxF,OAASwgC,EAAIxgC,QACjCwF,KAAKosC,MAAMpR,EAAK9H,IAIzBwH,EAAG3/B,UAAU4zC,KAAO,SAAe3T,GACjC,IAAI9H,EAAM,IAAIwH,EAAG,MAEjB,OADAxH,EAAIxyB,MAAQ,IAAI+O,MAAMzP,KAAKxF,OAASwgC,EAAIxgC,QACjCyxC,EAAWjsC,KAAMg7B,EAAK9H,IAI/BwH,EAAG3/B,UAAU+vC,KAAO,SAAe9P,GACjC,OAAOh7B,KAAKQ,QAAQ4rC,MAAMpR,EAAKh7B,OAGjC06B,EAAG3/B,UAAUwoC,MAAQ,SAAgBvI,GACnCX,EAAsB,iBAARW,GACdX,EAAOW,EAAM,UAIb,IADA,IAAIkF,EAAQ,EACH5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CACpC,IAAI25B,GAAqB,EAAhBj7B,KAAKU,MAAMY,IAAU05B,EAC1BlK,GAAU,SAAJmK,IAA0B,SAARiF,GAC5BA,IAAU,GACVA,GAAUjF,EAAI,SAAa,EAE3BiF,GAASpP,IAAO,GAChB9wB,KAAKU,MAAMY,GAAU,SAALwvB,EAQlB,OALc,IAAVoP,IACFlgC,KAAKU,MAAMY,GAAK4+B,EAChBlgC,KAAKxF,UAGAwF,MAGT06B,EAAG3/B,UAAU6zC,KAAO,SAAe5T,GACjC,OAAOh7B,KAAKQ,QAAQ+iC,MAAMvI,IAI5BN,EAAG3/B,UAAU8zC,IAAM,WACjB,OAAO7uC,KAAKk0B,IAAIl0B,OAIlB06B,EAAG3/B,UAAU+zC,KAAO,WAClB,OAAO9uC,KAAK8qC,KAAK9qC,KAAKQ,UAIxBk6B,EAAG3/B,UAAU05B,IAAM,SAAcuG,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIxrB,MAAMurB,EAAII,aAEbsL,EAAM,EAAGA,EAAMzL,EAAEzgC,OAAQksC,IAAO,CACvC,IAAIvkB,EAAOukB,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBzL,EAAEyL,IAAQ1L,EAAIt6B,MAAMyhB,GAAQ,GAAKwkB,KAAWA,EAG9C,OAAO1L,EA8wCC8T,CAAW/T,GACnB,GAAiB,IAAbC,EAAEzgC,OAAc,OAAO,IAAIkgC,EAAG,GAIlC,IADA,IAAI1d,EAAMhd,KACDsB,EAAI,EAAGA,EAAI25B,EAAEzgC,QACP,IAATygC,EAAE35B,GADsBA,IAAK0b,EAAMA,EAAI6xB,OAI7C,KAAMvtC,EAAI25B,EAAEzgC,OACV,IAAK,IAAIqqC,EAAI7nB,EAAI6xB,MAAOvtC,EAAI25B,EAAEzgC,OAAQ8G,IAAKujC,EAAIA,EAAEgK,MAClC,IAAT5T,EAAE35B,KAEN0b,EAAMA,EAAIkX,IAAI2Q,IAIlB,OAAO7nB,GAIT0d,EAAG3/B,UAAUi0C,OAAS,SAAiB9T,GACrCb,EAAuB,iBAATa,GAAqBA,GAAQ,GAC3C,IAGI55B,EAHAk5B,EAAIU,EAAO,GACXlB,GAAKkB,EAAOV,GAAK,GACjByU,EAAa,WAAe,GAAKzU,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAI0F,EAAQ,EAEZ,IAAK5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CAChC,IAAI4tC,EAAWlvC,KAAKU,MAAMY,GAAK2tC,EAC3B9mC,GAAsB,EAAhBnI,KAAKU,MAAMY,IAAU4tC,GAAa1U,EAC5Cx6B,KAAKU,MAAMY,GAAK6G,EAAI+3B,EACpBA,EAAQgP,IAAc,GAAK1U,EAGzB0F,IACFlgC,KAAKU,MAAMY,GAAK4+B,EAChBlgC,KAAKxF,UAIT,GAAU,IAANw/B,EAAS,CACX,IAAK14B,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IAChCtB,KAAKU,MAAMY,EAAI04B,GAAKh6B,KAAKU,MAAMY,GAGjC,IAAKA,EAAI,EAAGA,EAAI04B,EAAG14B,IACjBtB,KAAKU,MAAMY,GAAK,EAGlBtB,KAAKxF,QAAUw/B,EAGjB,OAAOh6B,KAAKmjC,SAGdzI,EAAG3/B,UAAUo0C,MAAQ,SAAgBjU,GAGnC,OADAb,EAAyB,IAAlBr6B,KAAKoiC,UACLpiC,KAAKgvC,OAAO9T,IAMrBR,EAAG3/B,UAAU4gC,OAAS,SAAiBT,EAAMkU,EAAMC,GAEjD,IAAIC,EADJjV,EAAuB,iBAATa,GAAqBA,GAAQ,GAGzCoU,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI5U,EAAIU,EAAO,GACXlB,EAAIz7B,KAAK8F,KAAK62B,EAAOV,GAAK,GAAIx6B,KAAKxF,QACnC+0C,EAAO,SAAc,WAAc/U,GAAMA,EACzCgV,EAAcH,EAMlB,GAJAC,GAAKtV,EACLsV,EAAI/wC,KAAK2F,IAAI,EAAGorC,GAGZE,EAAa,CACf,IAAK,IAAIluC,EAAI,EAAGA,EAAI04B,EAAG14B,IACrBkuC,EAAY9uC,MAAMY,GAAKtB,KAAKU,MAAMY,GAEpCkuC,EAAYh1C,OAASw/B,EAGvB,GAAU,IAANA,QAEG,GAAIh6B,KAAKxF,OAASw/B,EAEvB,IADAh6B,KAAKxF,QAAUw/B,EACV14B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC3BtB,KAAKU,MAAMY,GAAKtB,KAAKU,MAAMY,EAAI04B,QAGjCh6B,KAAKU,MAAM,GAAK,EAChBV,KAAKxF,OAAS,EAGhB,IAAI0lC,EAAQ,EACZ,IAAK5+B,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,IAAgB,IAAV4+B,GAAe5+B,GAAKguC,GAAIhuC,IAAK,CAChE,IAAIo9B,EAAuB,EAAhB1+B,KAAKU,MAAMY,GACtBtB,KAAKU,MAAMY,GAAM4+B,GAAU,GAAK1F,EAAOkE,IAASlE,EAChD0F,EAAQxB,EAAO6Q,EAajB,OATIC,GAAyB,IAAVtP,IACjBsP,EAAY9uC,MAAM8uC,EAAYh1C,UAAY0lC,GAGxB,IAAhBlgC,KAAKxF,SACPwF,KAAKU,MAAM,GAAK,EAChBV,KAAKxF,OAAS,GAGTwF,KAAKmjC,SAGdzI,EAAG3/B,UAAU00C,MAAQ,SAAgBvU,EAAMkU,EAAMC,GAG/C,OADAhV,EAAyB,IAAlBr6B,KAAKoiC,UACLpiC,KAAK27B,OAAOT,EAAMkU,EAAMC,IAIjC3U,EAAG3/B,UAAU20C,KAAO,SAAexU,GACjC,OAAOl7B,KAAKQ,QAAQ2uC,MAAMjU,IAG5BR,EAAG3/B,UAAU40C,MAAQ,SAAgBzU,GACnC,OAAOl7B,KAAKQ,QAAQwuC,OAAO9T,IAI7BR,EAAG3/B,UAAU60C,KAAO,SAAe1U,GACjC,OAAOl7B,KAAKQ,QAAQivC,MAAMvU,IAG5BR,EAAG3/B,UAAU80C,MAAQ,SAAgB3U,GACnC,OAAOl7B,KAAKQ,QAAQm7B,OAAOT,IAI7BR,EAAG3/B,UAAUuqC,MAAQ,SAAgBoB,GACnCrM,EAAsB,iBAARqM,GAAoBA,GAAO,GACzC,IAAIlM,EAAIkM,EAAM,GACV1M,GAAK0M,EAAMlM,GAAK,GAChBqK,EAAI,GAAKrK,EAGb,QAAIx6B,KAAKxF,QAAUw/B,OAGXh6B,KAAKU,MAAMs5B,GAEL6K,IAIhBnK,EAAG3/B,UAAU+0C,OAAS,SAAiB5U,GACrCb,EAAuB,iBAATa,GAAqBA,GAAQ,GAC3C,IAAIV,EAAIU,EAAO,GACXlB,GAAKkB,EAAOV,GAAK,GAIrB,GAFAH,EAAyB,IAAlBr6B,KAAKoiC,SAAgB,2CAExBpiC,KAAKxF,QAAUw/B,EACjB,OAAOh6B,KAQT,GALU,IAANw6B,GACFR,IAEFh6B,KAAKxF,OAAS+D,KAAK8F,IAAI21B,EAAGh6B,KAAKxF,QAErB,IAANggC,EAAS,CACX,IAAI+U,EAAO,SAAc,WAAc/U,GAAMA,EAC7Cx6B,KAAKU,MAAMV,KAAKxF,OAAS,IAAM+0C,EAGjC,OAAOvvC,KAAKmjC,SAIdzI,EAAG3/B,UAAUg1C,MAAQ,SAAgB7U,GACnC,OAAOl7B,KAAKQ,QAAQsvC,OAAO5U,IAI7BR,EAAG3/B,UAAUqqC,MAAQ,SAAgBpK,GAGnC,OAFAX,EAAsB,iBAARW,GACdX,EAAOW,EAAM,UACTA,EAAM,EAAUh7B,KAAK07B,OAAOV,GAGV,IAAlBh7B,KAAKoiC,SACa,IAAhBpiC,KAAKxF,SAAiC,EAAhBwF,KAAKU,MAAM,IAAUs6B,GAC7Ch7B,KAAKU,MAAM,GAAKs6B,GAAuB,EAAhBh7B,KAAKU,MAAM,IAClCV,KAAKoiC,SAAW,EACTpiC,OAGTA,KAAKoiC,SAAW,EAChBpiC,KAAK07B,MAAMV,GACXh7B,KAAKoiC,SAAW,EACTpiC,MAIFA,KAAKwjC,OAAOxI,IAGrBN,EAAG3/B,UAAUyoC,OAAS,SAAiBxI,GACrCh7B,KAAKU,MAAM,IAAMs6B,EAGjB,IAAK,IAAI15B,EAAI,EAAGA,EAAItB,KAAKxF,QAAUwF,KAAKU,MAAMY,IAAM,SAAWA,IAC7DtB,KAAKU,MAAMY,IAAM,SACbA,IAAMtB,KAAKxF,OAAS,EACtBwF,KAAKU,MAAMY,EAAI,GAAK,EAEpBtB,KAAKU,MAAMY,EAAI,KAKnB,OAFAtB,KAAKxF,OAAS+D,KAAK2F,IAAIlE,KAAKxF,OAAQ8G,EAAI,GAEjCtB,MAIT06B,EAAG3/B,UAAU2gC,MAAQ,SAAgBV,GAGnC,GAFAX,EAAsB,iBAARW,GACdX,EAAOW,EAAM,UACTA,EAAM,EAAG,OAAOh7B,KAAKolC,OAAOpK,GAEhC,GAAsB,IAAlBh7B,KAAKoiC,SAIP,OAHApiC,KAAKoiC,SAAW,EAChBpiC,KAAKolC,MAAMpK,GACXh7B,KAAKoiC,SAAW,EACTpiC,KAKT,GAFAA,KAAKU,MAAM,IAAMs6B,EAEG,IAAhBh7B,KAAKxF,QAAgBwF,KAAKU,MAAM,GAAK,EACvCV,KAAKU,MAAM,IAAMV,KAAKU,MAAM,GAC5BV,KAAKoiC,SAAW,OAGhB,IAAK,IAAI9gC,EAAI,EAAGA,EAAItB,KAAKxF,QAAUwF,KAAKU,MAAMY,GAAK,EAAGA,IACpDtB,KAAKU,MAAMY,IAAM,SACjBtB,KAAKU,MAAMY,EAAI,IAAM,EAIzB,OAAOtB,KAAKmjC,SAGdzI,EAAG3/B,UAAUi1C,KAAO,SAAehV,GACjC,OAAOh7B,KAAKQ,QAAQ4kC,MAAMpK,IAG5BN,EAAG3/B,UAAUk1C,KAAO,SAAejV,GACjC,OAAOh7B,KAAKQ,QAAQk7B,MAAMV,IAG5BN,EAAG3/B,UAAUm1C,KAAO,WAGlB,OAFAlwC,KAAKoiC,SAAW,EAETpiC,MAGT06B,EAAG3/B,UAAU+8B,IAAM,WACjB,OAAO93B,KAAKQ,QAAQ0vC,QAGtBxV,EAAG3/B,UAAUo1C,aAAe,SAAuBnV,EAAK9G,EAAKkc,GAC3D,IACI9uC,EAIA25B,EALAxP,EAAMuP,EAAIxgC,OAAS41C,EAGvBpwC,KAAK0jC,QAAQjY,GAGb,IAAIyU,EAAQ,EACZ,IAAK5+B,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAAK,CAC/B25B,GAA6B,EAAxBj7B,KAAKU,MAAMY,EAAI8uC,IAAclQ,EAClC,IAAI2C,GAAwB,EAAf7H,EAAIt6B,MAAMY,IAAU4yB,EAEjCgM,IADAjF,GAAa,SAAR4H,IACS,KAAQA,EAAQ,SAAa,GAC3C7iC,KAAKU,MAAMY,EAAI8uC,GAAa,SAAJnV,EAE1B,KAAO35B,EAAItB,KAAKxF,OAAS41C,EAAO9uC,IAE9B4+B,GADAjF,GAA6B,EAAxBj7B,KAAKU,MAAMY,EAAI8uC,IAAclQ,IACrB,GACblgC,KAAKU,MAAMY,EAAI8uC,GAAa,SAAJnV,EAG1B,GAAc,IAAViF,EAAa,OAAOlgC,KAAKmjC,QAK7B,IAFA9I,GAAkB,IAAX6F,GACPA,EAAQ,EACH5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAE3B4+B,GADAjF,IAAsB,EAAhBj7B,KAAKU,MAAMY,IAAU4+B,IACd,GACblgC,KAAKU,MAAMY,GAAS,SAAJ25B,EAIlB,OAFAj7B,KAAKoiC,SAAW,EAETpiC,KAAKmjC,SAGdzI,EAAG3/B,UAAUs1C,SAAW,SAAmBrV,EAAKvmB,GAC9C,IAAI27B,GAAQpwC,KAAKxF,OAASwgC,EAAIxgC,QAE1BkN,EAAI1H,KAAKQ,QACTmH,EAAIqzB,EAGJsV,EAA8B,EAAxB3oC,EAAEjH,MAAMiH,EAAEnN,OAAS,GAGf,KADd41C,EAAQ,GADMpwC,KAAK+kC,WAAWuL,MAG5B3oC,EAAIA,EAAEgoC,MAAMS,GACZ1oC,EAAEsnC,OAAOoB,GACTE,EAA8B,EAAxB3oC,EAAEjH,MAAMiH,EAAEnN,OAAS,IAI3B,IACIqqC,EADAxlB,EAAI3X,EAAElN,OAASmN,EAAEnN,OAGrB,GAAa,QAATia,EAAgB,EAClBowB,EAAI,IAAInK,EAAG,OACTlgC,OAAS6kB,EAAI,EACfwlB,EAAEnkC,MAAQ,IAAI+O,MAAMo1B,EAAErqC,QACtB,IAAK,IAAI8G,EAAI,EAAGA,EAAIujC,EAAErqC,OAAQ8G,IAC5BujC,EAAEnkC,MAAMY,GAAK,EAIjB,IAAI67B,EAAOz1B,EAAElH,QAAQ2vC,aAAaxoC,EAAG,EAAG0X,GAClB,IAAlB8d,EAAKiF,WACP16B,EAAIy1B,EACA0H,IACFA,EAAEnkC,MAAM2e,GAAK,IAIjB,IAAK,IAAI7d,EAAI6d,EAAI,EAAG7d,GAAK,EAAGA,IAAK,CAC/B,IAAI+uC,EAAmC,UAAL,EAAxB7oC,EAAEhH,MAAMiH,EAAEnN,OAASgH,KACE,EAA5BkG,EAAEhH,MAAMiH,EAAEnN,OAASgH,EAAI,IAO1B,IAHA+uC,EAAKhyC,KAAK8F,IAAKksC,EAAKD,EAAO,EAAG,UAE9B5oC,EAAEyoC,aAAaxoC,EAAG4oC,EAAI/uC,GACA,IAAfkG,EAAE06B,UACPmO,IACA7oC,EAAE06B,SAAW,EACb16B,EAAEyoC,aAAaxoC,EAAG,EAAGnG,GAChBkG,EAAE28B,WACL38B,EAAE06B,UAAY,GAGdyC,IACFA,EAAEnkC,MAAMc,GAAK+uC,GAajB,OAVI1L,GACFA,EAAE1B,QAEJz7B,EAAEy7B,QAGW,QAAT1uB,GAA4B,IAAV27B,GACpB1oC,EAAEi0B,OAAOyU,GAGJ,CACLI,IAAK3L,GAAK,KACVtJ,IAAK7zB,IAQTgzB,EAAG3/B,UAAU01C,OAAS,SAAiBzV,EAAKvmB,EAAMi8B,GAGhD,OAFArW,GAAQW,EAAIqJ,UAERrkC,KAAKqkC,SACA,CACLmM,IAAK,IAAI9V,EAAG,GACZa,IAAK,IAAIb,EAAG,IAKM,IAAlB16B,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,UAC7BplB,EAAMhd,KAAK0lC,MAAM+K,OAAOzV,EAAKvmB,GAEhB,QAATA,IACF+7B,EAAMxzB,EAAIwzB,IAAI9K,OAGH,QAATjxB,IACF8mB,EAAMve,EAAIue,IAAImK,MACVgL,GAA6B,IAAjBnV,EAAI6G,UAClB7G,EAAIqL,KAAK5L,IAIN,CACLwV,IAAKA,EACLjV,IAAKA,IAIa,IAAlBv7B,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,UAC7BplB,EAAMhd,KAAKywC,OAAOzV,EAAI0K,MAAOjxB,GAEhB,QAATA,IACF+7B,EAAMxzB,EAAIwzB,IAAI9K,OAGT,CACL8K,IAAKA,EACLjV,IAAKve,EAAIue,MAI0B,IAAlCv7B,KAAKoiC,SAAWpH,EAAIoH,WACvBplB,EAAMhd,KAAK0lC,MAAM+K,OAAOzV,EAAI0K,MAAOjxB,GAEtB,QAATA,IACF8mB,EAAMve,EAAIue,IAAImK,MACVgL,GAA6B,IAAjBnV,EAAI6G,UAClB7G,EAAIsL,KAAK7L,IAIN,CACLwV,IAAKxzB,EAAIwzB,IACTjV,IAAKA,IAOLP,EAAIxgC,OAASwF,KAAKxF,QAAUwF,KAAK8iC,IAAI9H,GAAO,EACvC,CACLwV,IAAK,IAAI9V,EAAG,GACZa,IAAKv7B,MAKU,IAAfg7B,EAAIxgC,OACO,QAATia,EACK,CACL+7B,IAAKxwC,KAAK2wC,KAAK3V,EAAIt6B,MAAM,IACzB66B,IAAK,MAII,QAAT9mB,EACK,CACL+7B,IAAK,KACLjV,IAAK,IAAIb,EAAG16B,KAAKskC,KAAKtJ,EAAIt6B,MAAM,MAI7B,CACL8vC,IAAKxwC,KAAK2wC,KAAK3V,EAAIt6B,MAAM,IACzB66B,IAAK,IAAIb,EAAG16B,KAAKskC,KAAKtJ,EAAIt6B,MAAM,MAI7BV,KAAKqwC,SAASrV,EAAKvmB,GAlF1B,IAAI+7B,EAAKjV,EAAKve,GAsFhB0d,EAAG3/B,UAAUy1C,IAAM,SAAcxV,GAC/B,OAAOh7B,KAAKywC,OAAOzV,EAAK,OAAO,GAAOwV,KAIxC9V,EAAG3/B,UAAUwgC,IAAM,SAAcP,GAC/B,OAAOh7B,KAAKywC,OAAOzV,EAAK,OAAO,GAAOO,KAGxCb,EAAG3/B,UAAU61C,KAAO,SAAe5V,GACjC,OAAOh7B,KAAKywC,OAAOzV,EAAK,OAAO,GAAMO,KAIvCb,EAAG3/B,UAAU81C,SAAW,SAAmB7V,GACzC,IAAI8V,EAAK9wC,KAAKywC,OAAOzV,GAGrB,GAAI8V,EAAGvV,IAAI8I,SAAU,OAAOyM,EAAGN,IAE/B,IAAIjV,EAA0B,IAApBuV,EAAGN,IAAIpO,SAAiB0O,EAAGvV,IAAIsL,KAAK7L,GAAO8V,EAAGvV,IAEpDwV,EAAO/V,EAAI6U,MAAM,GACjBmB,EAAKhW,EAAIQ,MAAM,GACfsH,EAAMvH,EAAIuH,IAAIiO,GAGlB,OAAIjO,EAAM,GAAY,IAAPkO,GAAoB,IAARlO,EAAkBgO,EAAGN,IAGrB,IAApBM,EAAGN,IAAIpO,SAAiB0O,EAAGN,IAAI9U,MAAM,GAAKoV,EAAGN,IAAIpL,MAAM,IAGhE1K,EAAG3/B,UAAUupC,KAAO,SAAetJ,GACjCX,EAAOW,GAAO,UAId,IAHA,IAAI4D,GAAK,GAAK,IAAM5D,EAEhBjxB,EAAM,EACDzI,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IACpCyI,GAAO60B,EAAI70B,GAAuB,EAAhB/J,KAAKU,MAAMY,KAAW05B,EAG1C,OAAOjxB,GAIT2wB,EAAG3/B,UAAUwpC,MAAQ,SAAgBvJ,GACnCX,EAAOW,GAAO,UAGd,IADA,IAAIkF,EAAQ,EACH5+B,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CACzC,IAAI25B,GAAqB,EAAhBj7B,KAAKU,MAAMY,IAAkB,SAAR4+B,EAC9BlgC,KAAKU,MAAMY,GAAM25B,EAAID,EAAO,EAC5BkF,EAAQjF,EAAID,EAGd,OAAOh7B,KAAKmjC,SAGdzI,EAAG3/B,UAAU41C,KAAO,SAAe3V,GACjC,OAAOh7B,KAAKQ,QAAQ+jC,MAAMvJ,IAG5BN,EAAG3/B,UAAUk2C,KAAO,SAAerS,GACjCvE,EAAsB,IAAfuE,EAAEwD,UACT/H,GAAQuE,EAAEyF,UAEV,IAAIlS,EAAInyB,KACJoyB,EAAIwM,EAAEp+B,QAGR2xB,EADiB,IAAfA,EAAEiQ,SACAjQ,EAAEye,KAAKhS,GAEPzM,EAAE3xB,QAaR,IATA,IAAI0wC,EAAI,IAAIxW,EAAG,GACXyW,EAAI,IAAIzW,EAAG,GAGXh7B,EAAI,IAAIg7B,EAAG,GACX0W,EAAI,IAAI1W,EAAG,GAEX2W,EAAI,EAEDlf,EAAEmf,UAAYlf,EAAEkf,UACrBnf,EAAEwJ,OAAO,GACTvJ,EAAEuJ,OAAO,KACP0V,EAMJ,IAHA,IAAIE,EAAKnf,EAAE5xB,QACPgxC,EAAKrf,EAAE3xB,SAEH2xB,EAAEkS,UAAU,CAClB,IAAK,IAAI/iC,EAAI,EAAGmwC,EAAK,EAAyB,IAArBtf,EAAEzxB,MAAM,GAAK+wC,IAAanwC,EAAI,KAAMA,EAAGmwC,IAAO,GACvE,GAAInwC,EAAI,EAEN,IADA6wB,EAAEwJ,OAAOr6B,GACFA,KAAM,IACP4vC,EAAEzV,SAAW0V,EAAE1V,WACjByV,EAAEtK,KAAK2K,GACPJ,EAAEtK,KAAK2K,IAGTN,EAAEvV,OAAO,GACTwV,EAAExV,OAAO,GAIb,IAAK,IAAIn6B,EAAI,EAAGkwC,EAAK,EAAyB,IAArBtf,EAAE1xB,MAAM,GAAKgxC,IAAalwC,EAAI,KAAMA,EAAGkwC,IAAO,GACvE,GAAIlwC,EAAI,EAEN,IADA4wB,EAAEuJ,OAAOn6B,GACFA,KAAM,IACP9B,EAAE+7B,SAAW2V,EAAE3V,WACjB/7B,EAAEknC,KAAK2K,GACPH,EAAEvK,KAAK2K,IAGT9xC,EAAEi8B,OAAO,GACTyV,EAAEzV,OAAO,GAITxJ,EAAE2Q,IAAI1Q,IAAM,GACdD,EAAE0U,KAAKzU,GACP8e,EAAErK,KAAKnnC,GACPyxC,EAAEtK,KAAKuK,KAEPhf,EAAEyU,KAAK1U,GACPzyB,EAAEmnC,KAAKqK,GACPE,EAAEvK,KAAKsK,IAIX,MAAO,CACLzpC,EAAGhI,EACHiI,EAAGypC,EACHO,IAAKvf,EAAE4c,OAAOqC,KAOlB3W,EAAG3/B,UAAU62C,OAAS,SAAiBhT,GACrCvE,EAAsB,IAAfuE,EAAEwD,UACT/H,GAAQuE,EAAEyF,UAEV,IAAI38B,EAAI1H,KACJ2H,EAAIi3B,EAAEp+B,QAGRkH,EADiB,IAAfA,EAAE06B,SACA16B,EAAEkpC,KAAKhS,GAEPl3B,EAAElH,QAQR,IALA,IAuCIwc,EAvCA60B,EAAK,IAAInX,EAAG,GACZoX,EAAK,IAAIpX,EAAG,GAEZqX,EAAQpqC,EAAEnH,QAEPkH,EAAEy0B,KAAK,GAAK,GAAKx0B,EAAEw0B,KAAK,GAAK,GAAG,CACrC,IAAK,IAAI76B,EAAI,EAAGmwC,EAAK,EAAyB,IAArB/pC,EAAEhH,MAAM,GAAK+wC,IAAanwC,EAAI,KAAMA,EAAGmwC,IAAO,GACvE,GAAInwC,EAAI,EAEN,IADAoG,EAAEi0B,OAAOr6B,GACFA,KAAM,GACPuwC,EAAGpW,SACLoW,EAAGjL,KAAKmL,GAGVF,EAAGlW,OAAO,GAId,IAAK,IAAIn6B,EAAI,EAAGkwC,EAAK,EAAyB,IAArB/pC,EAAEjH,MAAM,GAAKgxC,IAAalwC,EAAI,KAAMA,EAAGkwC,IAAO,GACvE,GAAIlwC,EAAI,EAEN,IADAmG,EAAEg0B,OAAOn6B,GACFA,KAAM,GACPswC,EAAGrW,SACLqW,EAAGlL,KAAKmL,GAGVD,EAAGnW,OAAO,GAIVj0B,EAAEo7B,IAAIn7B,IAAM,GACdD,EAAEm/B,KAAKl/B,GACPkqC,EAAGhL,KAAKiL,KAERnqC,EAAEk/B,KAAKn/B,GACPoqC,EAAGjL,KAAKgL,IAeZ,OATE70B,EADgB,IAAdtV,EAAEy0B,KAAK,GACH0V,EAEAC,GAGA3V,KAAK,GAAK,GAChBnf,EAAI4pB,KAAKhI,GAGJ5hB,GAGT0d,EAAG3/B,UAAU42C,IAAM,SAAc3W,GAC/B,GAAIh7B,KAAKqkC,SAAU,OAAOrJ,EAAIlD,MAC9B,GAAIkD,EAAIqJ,SAAU,OAAOrkC,KAAK83B,MAE9B,IAAIpwB,EAAI1H,KAAKQ,QACTmH,EAAIqzB,EAAIx6B,QACZkH,EAAE06B,SAAW,EACbz6B,EAAEy6B,SAAW,EAGb,IAAK,IAAIgO,EAAQ,EAAG1oC,EAAE4pC,UAAY3pC,EAAE2pC,SAAUlB,IAC5C1oC,EAAEi0B,OAAO,GACTh0B,EAAEg0B,OAAO,GAGX,OAAG,CACD,KAAOj0B,EAAE4pC,UACP5pC,EAAEi0B,OAAO,GAEX,KAAOh0B,EAAE2pC,UACP3pC,EAAEg0B,OAAO,GAGX,IAAInB,EAAI9yB,EAAEo7B,IAAIn7B,GACd,GAAI6yB,EAAI,EAAG,CAET,IAAI1yB,EAAIJ,EACRA,EAAIC,EACJA,EAAIG,OACC,GAAU,IAAN0yB,GAAyB,IAAd7yB,EAAEw0B,KAAK,GAC3B,MAGFz0B,EAAEm/B,KAAKl/B,GAGT,OAAOA,EAAEqnC,OAAOoB,IAIlB1V,EAAG3/B,UAAUi3C,KAAO,SAAehX,GACjC,OAAOh7B,KAAKixC,KAAKjW,GAAKtzB,EAAEkpC,KAAK5V,IAG/BN,EAAG3/B,UAAUu2C,OAAS,WACpB,OAA+B,IAAP,EAAhBtxC,KAAKU,MAAM,KAGrBg6B,EAAG3/B,UAAU0gC,MAAQ,WACnB,OAA+B,IAAP,EAAhBz7B,KAAKU,MAAM,KAIrBg6B,EAAG3/B,UAAUygC,MAAQ,SAAgBR,GACnC,OAAOh7B,KAAKU,MAAM,GAAKs6B,GAIzBN,EAAG3/B,UAAUk3C,MAAQ,SAAgBvL,GACnCrM,EAAsB,iBAARqM,GACd,IAAIlM,EAAIkM,EAAM,GACV1M,GAAK0M,EAAMlM,GAAK,GAChBqK,EAAI,GAAKrK,EAGb,GAAIx6B,KAAKxF,QAAUw/B,EAGjB,OAFAh6B,KAAK0jC,QAAQ1J,EAAI,GACjBh6B,KAAKU,MAAMs5B,IAAM6K,EACV7kC,KAKT,IADA,IAAIkgC,EAAQ2E,EACHvjC,EAAI04B,EAAa,IAAVkG,GAAe5+B,EAAItB,KAAKxF,OAAQ8G,IAAK,CACnD,IAAI25B,EAAoB,EAAhBj7B,KAAKU,MAAMY,GAEnB4+B,GADAjF,GAAKiF,KACS,GACdjF,GAAK,SACLj7B,KAAKU,MAAMY,GAAK25B,EAMlB,OAJc,IAAViF,IACFlgC,KAAKU,MAAMY,GAAK4+B,EAChBlgC,KAAKxF,UAEAwF,MAGT06B,EAAG3/B,UAAUspC,OAAS,WACpB,OAAuB,IAAhBrkC,KAAKxF,QAAkC,IAAlBwF,KAAKU,MAAM,IAGzCg6B,EAAG3/B,UAAUohC,KAAO,SAAenB,GACjC,IAOIhe,EAPAolB,EAAWpH,EAAM,EAErB,GAAsB,IAAlBh7B,KAAKoiC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBpiC,KAAKoiC,UAAkBA,EAAU,OAAO,EAK5C,GAHApiC,KAAKmjC,QAGDnjC,KAAKxF,OAAS,EAChBwiB,EAAM,MACD,CACDolB,IACFpH,GAAOA,GAGTX,EAAOW,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhBj7B,KAAKU,MAAM,GACnBsc,EAAMie,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBh7B,KAAKoiC,SAA8B,GAANplB,EAC1BA,GAOT0d,EAAG3/B,UAAU+nC,IAAM,SAAc9H,GAC/B,GAAsB,IAAlBh7B,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAAgB,OAAQ,EACvD,GAAsB,IAAlBpiC,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAAgB,OAAO,EAEtD,IAAIplB,EAAMhd,KAAKkyC,KAAKlX,GACpB,OAAsB,IAAlBh7B,KAAKoiC,SAA8B,GAANplB,EAC1BA,GAIT0d,EAAG3/B,UAAUm3C,KAAO,SAAelX,GAEjC,GAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAQ,OAAO,EACrC,GAAIwF,KAAKxF,OAASwgC,EAAIxgC,OAAQ,OAAQ,EAGtC,IADA,IAAIwiB,EAAM,EACD1b,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CACzC,IAAIoG,EAAoB,EAAhB1H,KAAKU,MAAMY,GACfqG,EAAmB,EAAfqzB,EAAIt6B,MAAMY,GAElB,GAAIoG,IAAMC,EAAV,CACID,EAAIC,EACNqV,GAAO,EACEtV,EAAIC,IACbqV,EAAM,GAER,OAEF,OAAOA,GAGT0d,EAAG3/B,UAAUo3C,IAAM,SAAcnX,GAC/B,OAA0B,IAAnBh7B,KAAKm8B,KAAKnB,IAGnBN,EAAG3/B,UAAUq3C,GAAK,SAAapX,GAC7B,OAAyB,IAAlBh7B,KAAK8iC,IAAI9H,IAGlBN,EAAG3/B,UAAUs3C,KAAO,SAAerX,GACjC,OAAOh7B,KAAKm8B,KAAKnB,IAAQ,GAG3BN,EAAG3/B,UAAUu3C,IAAM,SAActX,GAC/B,OAAOh7B,KAAK8iC,IAAI9H,IAAQ,GAG1BN,EAAG3/B,UAAUw3C,IAAM,SAAcvX,GAC/B,OAA2B,IAApBh7B,KAAKm8B,KAAKnB,IAGnBN,EAAG3/B,UAAUy3C,GAAK,SAAaxX,GAC7B,OAA0B,IAAnBh7B,KAAK8iC,IAAI9H,IAGlBN,EAAG3/B,UAAU03C,KAAO,SAAezX,GACjC,OAAOh7B,KAAKm8B,KAAKnB,IAAQ,GAG3BN,EAAG3/B,UAAU23C,IAAM,SAAc1X,GAC/B,OAAOh7B,KAAK8iC,IAAI9H,IAAQ,GAG1BN,EAAG3/B,UAAU43C,IAAM,SAAc3X,GAC/B,OAA0B,IAAnBh7B,KAAKm8B,KAAKnB,IAGnBN,EAAG3/B,UAAU63C,GAAK,SAAa5X,GAC7B,OAAyB,IAAlBh7B,KAAK8iC,IAAI9H,IAOlBN,EAAG2H,IAAM,SAAcrH,GACrB,OAAO,IAAI6X,EAAI7X,IAGjBN,EAAG3/B,UAAU+3C,MAAQ,SAAgBC,GAGnC,OAFA1Y,GAAQr6B,KAAKqiC,IAAK,yCAClBhI,EAAyB,IAAlBr6B,KAAKoiC,SAAgB,iCACrB2Q,EAAIC,UAAUhzC,MAAMizC,UAAUF,IAGvCrY,EAAG3/B,UAAUm4C,QAAU,WAErB,OADA7Y,EAAOr6B,KAAKqiC,IAAK,wDACVriC,KAAKqiC,IAAI8Q,YAAYnzC,OAG9B06B,EAAG3/B,UAAUk4C,UAAY,SAAoBF,GAE3C,OADA/yC,KAAKqiC,IAAM0Q,EACJ/yC,MAGT06B,EAAG3/B,UAAUq4C,SAAW,SAAmBL,GAEzC,OADA1Y,GAAQr6B,KAAKqiC,IAAK,yCACXriC,KAAKizC,UAAUF,IAGxBrY,EAAG3/B,UAAUs4C,OAAS,SAAiBrY,GAErC,OADAX,EAAOr6B,KAAKqiC,IAAK,sCACVriC,KAAKqiC,IAAIyE,IAAI9mC,KAAMg7B,IAG5BN,EAAG3/B,UAAUu4C,QAAU,SAAkBtY,GAEvC,OADAX,EAAOr6B,KAAKqiC,IAAK,uCACVriC,KAAKqiC,IAAIuE,KAAK5mC,KAAMg7B,IAG7BN,EAAG3/B,UAAUw4C,OAAS,SAAiBvY,GAErC,OADAX,EAAOr6B,KAAKqiC,IAAK,sCACVriC,KAAKqiC,IAAI/mB,IAAItb,KAAMg7B,IAG5BN,EAAG3/B,UAAUy4C,QAAU,SAAkBxY,GAEvC,OADAX,EAAOr6B,KAAKqiC,IAAK,uCACVriC,KAAKqiC,IAAIwE,KAAK7mC,KAAMg7B,IAG7BN,EAAG3/B,UAAU04C,OAAS,SAAiBzY,GAErC,OADAX,EAAOr6B,KAAKqiC,IAAK,sCACVriC,KAAKqiC,IAAIqR,IAAI1zC,KAAMg7B,IAG5BN,EAAG3/B,UAAU44C,OAAS,SAAiB3Y,GAGrC,OAFAX,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAIuR,SAAS5zC,KAAMg7B,GACjBh7B,KAAKqiC,IAAInO,IAAIl0B,KAAMg7B,IAG5BN,EAAG3/B,UAAU84C,QAAU,SAAkB7Y,GAGvC,OAFAX,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAIuR,SAAS5zC,KAAMg7B,GACjBh7B,KAAKqiC,IAAIyI,KAAK9qC,KAAMg7B,IAG7BN,EAAG3/B,UAAU+4C,OAAS,WAGpB,OAFAzZ,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAIwM,IAAI7uC,OAGtB06B,EAAG3/B,UAAUi5C,QAAU,WAGrB,OAFA3Z,EAAOr6B,KAAKqiC,IAAK,uCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAIyM,KAAK9uC,OAIvB06B,EAAG3/B,UAAUk5C,QAAU,WAGrB,OAFA5Z,EAAOr6B,KAAKqiC,IAAK,uCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAI6R,KAAKl0C,OAGvB06B,EAAG3/B,UAAUo5C,QAAU,WAGrB,OAFA9Z,EAAOr6B,KAAKqiC,IAAK,uCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAI2P,KAAKhyC,OAIvB06B,EAAG3/B,UAAUq5C,OAAS,WAGpB,OAFA/Z,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAIqD,IAAI1lC,OAGtB06B,EAAG3/B,UAAUs5C,OAAS,SAAiBrZ,GAGrC,OAFAX,EAAOr6B,KAAKqiC,MAAQrH,EAAIqH,IAAK,qBAC7BriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAI5N,IAAIz0B,KAAMg7B,IAI5B,IAAIsZ,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQ7rC,EAAM81B,GAErB5+B,KAAK8I,KAAOA,EACZ9I,KAAK4+B,EAAI,IAAIlE,EAAGkE,EAAG,IACnB5+B,KAAK2iB,EAAI3iB,KAAK4+B,EAAExD,YAChBp7B,KAAKwnB,EAAI,IAAIkT,EAAG,GAAGsU,OAAOhvC,KAAK2iB,GAAGkkB,KAAK7mC,KAAK4+B,GAE5C5+B,KAAK+lB,IAAM/lB,KAAK40C,OAiDlB,SAASC,IACPF,EAAO15C,KACL+E,KACA,OACA,2EA+DJ,SAAS80C,IACPH,EAAO15C,KACL+E,KACA,OACA,kEAIJ,SAAS+0C,IACPJ,EAAO15C,KACL+E,KACA,OACA,yDAIJ,SAASg1C,IAEPL,EAAO15C,KACL+E,KACA,QACA,uEA8CJ,SAAS6yC,EAAKxzB,GACZ,GAAiB,iBAANA,EAAgB,CACzB,IAAI41B,EAAQva,EAAGwa,OAAO71B,GACtBrf,KAAKqf,EAAI41B,EAAMrW,EACf5+B,KAAKi1C,MAAQA,OAEb5a,EAAOhb,EAAE8yB,IAAI,GAAI,kCACjBnyC,KAAKqf,EAAIA,EACTrf,KAAKi1C,MAAQ,KAkOjB,SAASE,EAAM91B,GACbwzB,EAAI53C,KAAK+E,KAAMqf,GAEfrf,KAAKowC,MAAQpwC,KAAKqf,EAAE+b,YAChBp7B,KAAKowC,MAAQ,IAAO,IACtBpwC,KAAKowC,OAAS,GAAMpwC,KAAKowC,MAAQ,IAGnCpwC,KAAKw6B,EAAI,IAAIE,EAAG,GAAGsU,OAAOhvC,KAAKowC,OAC/BpwC,KAAKgxC,GAAKhxC,KAAKo1C,KAAKp1C,KAAKw6B,EAAEqU,OAC3B7uC,KAAKq1C,KAAOr1C,KAAKw6B,EAAEoX,OAAO5xC,KAAKqf,GAE/Brf,KAAKs1C,KAAOt1C,KAAKq1C,KAAKnhB,IAAIl0B,KAAKw6B,GAAGkB,MAAM,GAAG8U,IAAIxwC,KAAKqf,GACpDrf,KAAKs1C,KAAOt1C,KAAKs1C,KAAK1E,KAAK5wC,KAAKw6B,GAChCx6B,KAAKs1C,KAAOt1C,KAAKw6B,EAAElf,IAAItb,KAAKs1C,MA5a9BX,EAAO55C,UAAU65C,KAAO,WACtB,IAAI7uB,EAAM,IAAI2U,EAAG,MAEjB,OADA3U,EAAIrlB,MAAQ,IAAI+O,MAAMlR,KAAKkD,KAAKzB,KAAK2iB,EAAI,KAClCoD,GAGT4uB,EAAO55C,UAAUw6C,QAAU,SAAkBva,GAG3C,IACIwa,EADAhb,EAAIQ,EAGR,GACEh7B,KAAK6d,MAAM2c,EAAGx6B,KAAK+lB,KAGnByvB,GADAhb,GADAA,EAAIx6B,KAAKy1C,MAAMjb,IACToM,KAAK5mC,KAAK+lB,MACPqV,kBACFoa,EAAOx1C,KAAK2iB,GAErB,IAAImgB,EAAM0S,EAAOx1C,KAAK2iB,GAAK,EAAI6X,EAAE0X,KAAKlyC,KAAK4+B,GAgB3C,OAfY,IAARkE,GACFtI,EAAE95B,MAAM,GAAK,EACb85B,EAAEhgC,OAAS,GACFsoC,EAAM,EACftI,EAAEqM,KAAK7mC,KAAK4+B,QAEIpgC,IAAZg8B,EAAE2I,MAEJ3I,EAAE2I,QAGF3I,EAAEkb,SAIClb,GAGTma,EAAO55C,UAAU8iB,MAAQ,SAAgB83B,EAAOziB,GAC9CyiB,EAAMha,OAAO37B,KAAK2iB,EAAG,EAAGuQ,IAG1ByhB,EAAO55C,UAAU06C,MAAQ,SAAgBza,GACvC,OAAOA,EAAI8P,KAAK9qC,KAAKwnB,IASvB+W,EAASsW,EAAMF,GAEfE,EAAK95C,UAAU8iB,MAAQ,SAAgB83B,EAAOC,GAK5C,IAHA,IAEIC,EAASt3C,KAAK8F,IAAIsxC,EAAMn7C,OAAQ,GAC3B8G,EAAI,EAAGA,EAAIu0C,EAAQv0C,IAC1Bs0C,EAAOl1C,MAAMY,GAAKq0C,EAAMj1C,MAAMY,GAIhC,GAFAs0C,EAAOp7C,OAASq7C,EAEZF,EAAMn7C,QAAU,EAGlB,OAFAm7C,EAAMj1C,MAAM,GAAK,OACjBi1C,EAAMn7C,OAAS,GAKjB,IAAIs7C,EAAOH,EAAMj1C,MAAM,GAGvB,IAFAk1C,EAAOl1C,MAAMk1C,EAAOp7C,UAhBT,QAgBqBs7C,EAE3Bx0C,EAAI,GAAIA,EAAIq0C,EAAMn7C,OAAQ8G,IAAK,CAClC,IAAIy0C,EAAwB,EAAjBJ,EAAMj1C,MAAMY,GACvBq0C,EAAMj1C,MAAMY,EAAI,KApBP,QAoBey0C,IAAgB,EAAMD,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMj1C,MAAMY,EAAI,IAAMw0C,EACT,IAATA,GAAcH,EAAMn7C,OAAS,GAC/Bm7C,EAAMn7C,QAAU,GAEhBm7C,EAAMn7C,QAAU,GAIpBq6C,EAAK95C,UAAU06C,MAAQ,SAAgBza,GAErCA,EAAIt6B,MAAMs6B,EAAIxgC,QAAU,EACxBwgC,EAAIt6B,MAAMs6B,EAAIxgC,OAAS,GAAK,EAC5BwgC,EAAIxgC,QAAU,EAId,IADA,IAAIs2B,EAAK,EACAxvB,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAAK,CACnC,IAAI25B,EAAmB,EAAfD,EAAIt6B,MAAMY,GAClBwvB,GAAU,IAAJmK,EACND,EAAIt6B,MAAMY,GAAU,SAALwvB,EACfA,EAAS,GAAJmK,GAAanK,EAAK,SAAa,GAUtC,OANkC,IAA9BkK,EAAIt6B,MAAMs6B,EAAIxgC,OAAS,KACzBwgC,EAAIxgC,SAC8B,IAA9BwgC,EAAIt6B,MAAMs6B,EAAIxgC,OAAS,IACzBwgC,EAAIxgC,UAGDwgC,GASTuD,EAASuW,EAAMH,GAQfpW,EAASwW,EAAMJ,GASfpW,EAASyW,EAAQL,GAEjBK,EAAOj6C,UAAU06C,MAAQ,SAAgBza,GAGvC,IADA,IAAIkF,EAAQ,EACH5+B,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAAK,CACnC,IAAIuvB,EAA0B,IAAL,EAAfmK,EAAIt6B,MAAMY,IAAiB4+B,EACjCpP,EAAU,SAALD,EACTA,KAAQ,GAERmK,EAAIt6B,MAAMY,GAAKwvB,EACfoP,EAAQrP,EAKV,OAHc,IAAVqP,IACFlF,EAAIt6B,MAAMs6B,EAAIxgC,UAAY0lC,GAErBlF,GAITN,EAAGwa,OAAS,SAAgBpsC,GAE1B,GAAIwrC,EAAOxrC,GAAO,OAAOwrC,EAAOxrC,GAEhC,IAAImsC,EACJ,GAAa,SAATnsC,EACFmsC,EAAQ,IAAIJ,OACP,GAAa,SAAT/rC,EACTmsC,EAAQ,IAAIH,OACP,GAAa,SAAThsC,EACTmsC,EAAQ,IAAIF,MACP,IAAa,WAATjsC,EAGT,MAAM,IAAIxN,MAAM,iBAAmBwN,GAFnCmsC,EAAQ,IAAID,EAMd,OAFAV,EAAOxrC,GAAQmsC,EAERA,GAkBTpC,EAAI93C,UAAUg5C,SAAW,SAAmBrsC,GAC1C2yB,EAAsB,IAAf3yB,EAAE06B,SAAgB,iCACzB/H,EAAO3yB,EAAE26B,IAAK,oCAGhBwQ,EAAI93C,UAAU64C,SAAW,SAAmBlsC,EAAGC,GAC7C0yB,EAAqC,IAA7B3yB,EAAE06B,SAAWz6B,EAAEy6B,UAAiB,iCACxC/H,EAAO3yB,EAAE26B,KAAO36B,EAAE26B,MAAQ16B,EAAE06B,IAC1B,oCAGJwQ,EAAI93C,UAAUq6C,KAAO,SAAe1tC,GAClC,OAAI1H,KAAKi1C,MAAcj1C,KAAKi1C,MAAMM,QAAQ7tC,GAAGurC,UAAUjzC,MAChD0H,EAAEkpC,KAAK5wC,KAAKqf,GAAG4zB,UAAUjzC,OAGlC6yC,EAAI93C,UAAU2qC,IAAM,SAAch+B,GAChC,OAAIA,EAAE28B,SACG38B,EAAElH,QAGJR,KAAKqf,EAAE/D,IAAI5T,GAAGurC,UAAUjzC,OAGjC6yC,EAAI93C,UAAU+rC,IAAM,SAAcp/B,EAAGC,GACnC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAEo/B,IAAIn/B,GAIhB,OAHIqV,EAAI8lB,IAAI9iC,KAAKqf,IAAM,GACrBrC,EAAI6pB,KAAK7mC,KAAKqf,GAETrC,EAAIi2B,UAAUjzC,OAGvB6yC,EAAI93C,UAAU6rC,KAAO,SAAel/B,EAAGC,GACrC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAEk/B,KAAKj/B,GAIjB,OAHIqV,EAAI8lB,IAAI9iC,KAAKqf,IAAM,GACrBrC,EAAI6pB,KAAK7mC,KAAKqf,GAETrC,GAGT61B,EAAI93C,UAAUugB,IAAM,SAAc5T,EAAGC,GACnC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAE4T,IAAI3T,GAIhB,OAHIqV,EAAImf,KAAK,GAAK,GAChBnf,EAAI4pB,KAAK5mC,KAAKqf,GAETrC,EAAIi2B,UAAUjzC,OAGvB6yC,EAAI93C,UAAU8rC,KAAO,SAAen/B,EAAGC,GACrC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAEm/B,KAAKl/B,GAIjB,OAHIqV,EAAImf,KAAK,GAAK,GAChBnf,EAAI4pB,KAAK5mC,KAAKqf,GAETrC,GAGT61B,EAAI93C,UAAU24C,IAAM,SAAchsC,EAAGszB,GAEnC,OADAh7B,KAAK+zC,SAASrsC,GACP1H,KAAKo1C,KAAK1tC,EAAEioC,MAAM3U,KAG3B6X,EAAI93C,UAAU+vC,KAAO,SAAepjC,EAAGC,GAErC,OADA3H,KAAK4zC,SAASlsC,EAAGC,GACV3H,KAAKo1C,KAAK1tC,EAAEojC,KAAKnjC,KAG1BkrC,EAAI93C,UAAUm5B,IAAM,SAAcxsB,EAAGC,GAEnC,OADA3H,KAAK4zC,SAASlsC,EAAGC,GACV3H,KAAKo1C,KAAK1tC,EAAEwsB,IAAIvsB,KAGzBkrC,EAAI93C,UAAU+zC,KAAO,SAAepnC,GAClC,OAAO1H,KAAK8qC,KAAKpjC,EAAGA,EAAElH,UAGxBqyC,EAAI93C,UAAU8zC,IAAM,SAAcnnC,GAChC,OAAO1H,KAAKk0B,IAAIxsB,EAAGA,IAGrBmrC,EAAI93C,UAAUm5C,KAAO,SAAexsC,GAClC,GAAIA,EAAE28B,SAAU,OAAO38B,EAAElH,QAEzB,IAAIw1C,EAAOh2C,KAAKqf,EAAEmc,MAAM,GAIxB,GAHAnB,EAAO2b,EAAO,GAAM,GAGP,IAATA,EAAY,CACd,IAAIvhB,EAAMz0B,KAAKqf,EAAEynB,IAAI,IAAIpM,EAAG,IAAIiB,OAAO,GACvC,OAAO37B,KAAKy0B,IAAI/sB,EAAG+sB,GAQrB,IAFA,IAAIoQ,EAAI7kC,KAAKqf,EAAE4wB,KAAK,GAChBjW,EAAI,GACA6K,EAAER,UAA2B,IAAfQ,EAAErJ,MAAM,IAC5BxB,IACA6K,EAAElJ,OAAO,GAEXtB,GAAQwK,EAAER,UAEV,IAAI4R,EAAM,IAAIvb,EAAG,GAAGoY,MAAM9yC,MACtBk2C,EAAOD,EAAI7B,SAIX+B,EAAOn2C,KAAKqf,EAAE4wB,KAAK,GAAGtU,OAAO,GAC7BL,EAAIt7B,KAAKqf,EAAE+b,YAGf,IAFAE,EAAI,IAAIZ,EAAG,EAAIY,EAAIA,GAAGwX,MAAM9yC,MAEW,IAAhCA,KAAKy0B,IAAI6G,EAAG6a,GAAMrT,IAAIoT,IAC3B5a,EAAEgY,QAAQ4C,GAOZ,IAJA,IAAI/tC,EAAInI,KAAKy0B,IAAI6G,EAAGuJ,GAChBrK,EAAIx6B,KAAKy0B,IAAI/sB,EAAGm9B,EAAEmL,KAAK,GAAGrU,OAAO,IACjC7zB,EAAI9H,KAAKy0B,IAAI/sB,EAAGm9B,GAChBxlB,EAAI2a,EACc,IAAflyB,EAAEg7B,IAAImT,IAAY,CAEvB,IADA,IAAIlwB,EAAMje,EACDxG,EAAI,EAAoB,IAAjBykB,EAAI+c,IAAImT,GAAY30C,IAClCykB,EAAMA,EAAI+tB,SAEZzZ,EAAO/4B,EAAI+d,GACX,IAAI1X,EAAI3H,KAAKy0B,IAAItsB,EAAG,IAAIuyB,EAAG,GAAGsU,OAAO3vB,EAAI/d,EAAI,IAE7Ck5B,EAAIA,EAAEmZ,OAAOhsC,GACbQ,EAAIR,EAAEmsC,SACNhsC,EAAIA,EAAE6rC,OAAOxrC,GACbkX,EAAI/d,EAGN,OAAOk5B,GAGTqY,EAAI93C,UAAUi3C,KAAO,SAAetqC,GAClC,IAAI0uC,EAAM1uC,EAAEkqC,OAAO5xC,KAAKqf,GACxB,OAAqB,IAAjB+2B,EAAIhU,UACNgU,EAAIhU,SAAW,EACRpiC,KAAKo1C,KAAKgB,GAAKhC,UAEfp0C,KAAKo1C,KAAKgB,IAIrBvD,EAAI93C,UAAU05B,IAAM,SAAc/sB,EAAGszB,GACnC,GAAIA,EAAIqJ,SAAU,OAAO,IAAI3J,EAAG,GAAGoY,MAAM9yC,MACzC,GAAoB,IAAhBg7B,EAAImB,KAAK,GAAU,OAAOz0B,EAAElH,QAEhC,IACI61C,EAAM,IAAI5mC,MAAM,IACpB4mC,EAAI,GAAK,IAAI3b,EAAG,GAAGoY,MAAM9yC,MACzBq2C,EAAI,GAAK3uC,EACT,IAAK,IAAIpG,EAAI,EAAGA,EAAI+0C,EAAI77C,OAAQ8G,IAC9B+0C,EAAI/0C,GAAKtB,KAAKk0B,IAAImiB,EAAI/0C,EAAI,GAAIoG,GAGhC,IAAIsV,EAAMq5B,EAAI,GACV5tC,EAAU,EACV6tC,EAAa,EACbz3B,EAAQmc,EAAII,YAAc,GAK9B,IAJc,IAAVvc,IACFA,EAAQ,IAGLvd,EAAI05B,EAAIxgC,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIo9B,EAAO1D,EAAIt6B,MAAMY,GACZE,EAAIqd,EAAQ,EAAGrd,GAAK,EAAGA,IAAK,CACnC,IAAIklC,EAAOhI,GAAQl9B,EAAK,EACpBwb,IAAQq5B,EAAI,KACdr5B,EAAMhd,KAAK6uC,IAAI7xB,IAGL,IAAR0pB,GAAyB,IAAZj+B,GAKjBA,IAAY,EACZA,GAAWi+B,GA9BE,MA+Bb4P,GACwC,IAANh1C,GAAiB,IAANE,KAE7Cwb,EAAMhd,KAAKk0B,IAAIlX,EAAKq5B,EAAI5tC,IACxB6tC,EAAa,EACb7tC,EAAU,IAXR6tC,EAAa,EAajBz3B,EAAQ,GAGV,OAAO7B,GAGT61B,EAAI93C,UAAUi4C,UAAY,SAAoBhY,GAC5C,IAAIR,EAAIQ,EAAI4V,KAAK5wC,KAAKqf,GAEtB,OAAOmb,IAAMQ,EAAMR,EAAEh6B,QAAUg6B,GAGjCqY,EAAI93C,UAAUo4C,YAAc,SAAsBnY,GAChD,IAAIhe,EAAMge,EAAIx6B,QAEd,OADAwc,EAAIqlB,IAAM,KACHrlB,GAOT0d,EAAG6b,KAAO,SAAevb,GACvB,OAAO,IAAIma,EAAKna,IAmBlBuD,EAAS4W,EAAMtC,GAEfsC,EAAKp6C,UAAUi4C,UAAY,SAAoBhY,GAC7C,OAAOh7B,KAAKo1C,KAAKpa,EAAI2U,MAAM3vC,KAAKowC,SAGlC+E,EAAKp6C,UAAUo4C,YAAc,SAAsBnY,GACjD,IAAIR,EAAIx6B,KAAKo1C,KAAKpa,EAAI9G,IAAIl0B,KAAKq1C,OAE/B,OADA7a,EAAE6H,IAAM,KACD7H,GAGT2a,EAAKp6C,UAAU+vC,KAAO,SAAepjC,EAAGC,GACtC,GAAID,EAAE28B,UAAY18B,EAAE08B,SAGlB,OAFA38B,EAAEhH,MAAM,GAAK,EACbgH,EAAElN,OAAS,EACJkN,EAGT,IAAII,EAAIJ,EAAEojC,KAAKnjC,GACXQ,EAAIL,EAAEioC,MAAM/vC,KAAKowC,OAAOlc,IAAIl0B,KAAKs1C,MAAMxF,OAAO9vC,KAAKowC,OAAOlc,IAAIl0B,KAAKqf,GACnEm3B,EAAI1uC,EAAE++B,KAAK1+B,GAAGwzB,OAAO37B,KAAKowC,OAC1BpzB,EAAMw5B,EAQV,OANIA,EAAE1T,IAAI9iC,KAAKqf,IAAM,EACnBrC,EAAMw5B,EAAE3P,KAAK7mC,KAAKqf,GACTm3B,EAAEra,KAAK,GAAK,IACrBnf,EAAMw5B,EAAE5P,KAAK5mC,KAAKqf,IAGbrC,EAAIi2B,UAAUjzC,OAGvBm1C,EAAKp6C,UAAUm5B,IAAM,SAAcxsB,EAAGC,GACpC,GAAID,EAAE28B,UAAY18B,EAAE08B,SAAU,OAAO,IAAI3J,EAAG,GAAGuY,UAAUjzC,MAEzD,IAAI8H,EAAIJ,EAAEwsB,IAAIvsB,GACVQ,EAAIL,EAAEioC,MAAM/vC,KAAKowC,OAAOlc,IAAIl0B,KAAKs1C,MAAMxF,OAAO9vC,KAAKowC,OAAOlc,IAAIl0B,KAAKqf,GACnEm3B,EAAI1uC,EAAE++B,KAAK1+B,GAAGwzB,OAAO37B,KAAKowC,OAC1BpzB,EAAMw5B,EAOV,OANIA,EAAE1T,IAAI9iC,KAAKqf,IAAM,EACnBrC,EAAMw5B,EAAE3P,KAAK7mC,KAAKqf,GACTm3B,EAAEra,KAAK,GAAK,IACrBnf,EAAMw5B,EAAE5P,KAAK5mC,KAAKqf,IAGbrC,EAAIi2B,UAAUjzC,OAGvBm1C,EAAKp6C,UAAUi3C,KAAO,SAAetqC,GAGnC,OADU1H,KAAKo1C,KAAK1tC,EAAEkqC,OAAO5xC,KAAKqf,GAAG6U,IAAIl0B,KAAKgxC,KACnCiC,UAAUjzC,OAn3GzB,CAq3GoC7D,EAAQ6D,Q,q5NCr3G5C,gBAAI06B,EAAK37B,EAAQ,MAEbqwH,EAAc,IADArwH,EAAQ,OAEtBowH,EAAa,IAAIz0F,EAAG,IACpBg1F,EAAS,IAAIh1F,EAAG,IAChB80F,EAAM,IAAI90F,EAAG,IACb+0F,EAAQ,IAAI/0F,EAAG,GACfmhH,EAAQ,IAAInhH,EAAG,GACf4Z,EAASv1C,EAAQ,MACjBK,EAAcL,EAAQ,KAG1B,SAAS+8I,EAAaC,EAAKj6I,GAMzB,OALAA,EAAMA,GAAO,OACRyE,EAAO6nB,SAAS2tH,KACnBA,EAAM,IAAIx1I,EAAOw1I,EAAKj6I,IAExB9B,KAAKg8I,KAAO,IAAIthH,EAAGqhH,GACZ/7I,KAGT,SAASi8I,EAAcp7C,EAAM/+F,GAM3B,OALAA,EAAMA,GAAO,OACRyE,EAAO6nB,SAASyyE,KACnBA,EAAO,IAAIt6F,EAAOs6F,EAAM/+F,IAE1B9B,KAAKk8I,MAAQ,IAAIxhH,EAAGmmE,GACb7gG,KAjBT7D,EAAOT,QAAUggJ,EAoBjB,IAAIS,EAAa,GAsDjB,SAAST,EAAGzmG,EAAOuyF,EAAW4U,GAC5Bp8I,KAAKq8I,aAAa7U,GAClBxnI,KAAKs8I,QAAU,IAAI5hH,EAAGua,GACtBj1C,KAAKk1C,OAASxa,EAAG6b,KAAKv2C,KAAKs8I,SAC3Bt8I,KAAKu8I,UAAYtnG,EAAMz6C,OACvBwF,KAAKg8I,UAAOx9I,EACZwB,KAAKk8I,WAAQ19I,EACbwB,KAAKw8I,gBAAah+I,EACd49I,GACFp8I,KAAK87I,aAAeA,EACpB97I,KAAKi8I,cAAgBA,GAErBj8I,KAAKw8I,WAAa,EA4DtB,SAASC,EAAkB1sB,EAAIjuH,GAC7B,IAAIuF,EAAM,IAAId,EAAOwpH,EAAGzlH,WACxB,OAAKxI,EAGIuF,EAAIrM,SAAS8G,GAFbuF,EA5DXvM,OAAOW,eAAeigJ,EAAG3gJ,UAAW,cAAe,CACjDmL,YAAY,EACZsG,IAAK,WAIH,MAH+B,iBAApBxM,KAAKw8I,aACdx8I,KAAKw8I,WAxEX,SAAoBvnG,EAAOuyF,GACzB,IAAI3X,EAAM2X,EAAUxsI,SAAS,OACzB0pI,EAAM,CAAC7U,EAAK56E,EAAMj6C,SAAS,KAAKiH,KAAK,KACzC,GAAIyiI,KAAOyX,EACT,OAAOA,EAAWzX,GAEpB,IAyBIn/D,EAzBAr6D,EAAQ,EAEZ,GAAI+pC,EAAM3D,WACPgD,EAAO26E,cACP36E,EAAO46E,WAAWj6E,KAClBm6E,EAAYxxH,KAAKq3C,GAclB,OAZA/pC,GAAS,EAKPA,GAHU,OAAR2kH,GAAwB,OAARA,EAGT,EAIA,EAEXssB,EAAWzX,GAAOx5H,EACXA,EAOT,OALKkkH,EAAYxxH,KAAKq3C,EAAMrF,KAAK,MAE/B1kC,GAAS,GAGH2kH,GACN,IAAK,KACC56E,EAAM1Z,IAAI4zF,GAAYrsF,IAAI4sF,KAE5BxkH,GAAS,GAEX,MACF,IAAK,MACHq6D,EAAMtwB,EAAM1Z,IAAIi0F,IACR1sF,IAAI2sF,IAAUlqD,EAAIziC,IAAI+4G,KAE5B3wI,GAAS,GAEX,MACF,QACEA,GAAS,EAGb,OADAixI,EAAWzX,GAAOx5H,EACXA,EAsBewxI,CAAW18I,KAAKs8I,QAASt8I,KAAK28I,QAE3C38I,KAAKw8I,cAGhBd,EAAG3gJ,UAAU6hJ,aAAe,WAK1B,OAJK58I,KAAKk8I,QACRl8I,KAAKk8I,MAAQ,IAAIxhH,EAAGt7B,EAAYY,KAAKu8I,aAEvCv8I,KAAKg8I,KAAOh8I,KAAK68I,KAAK/pG,MAAM9yC,KAAKk1C,QAAQb,OAAOr0C,KAAKk8I,OAAOhpG,UACrDlzC,KAAK88I,gBAGdpB,EAAG3gJ,UAAUgiJ,cAAgB,SAAUpvF,GAGrC,IAAIqvF,GADJrvF,GADAA,EAAQ,IAAIjzB,EAAGizB,IACD7a,MAAM9yC,KAAKk1C,SACNb,OAAOr0C,KAAKk8I,OAAOhpG,UAClChgB,EAAM,IAAI3sB,EAAOy2I,EAAO1yI,WACxB2qC,EAAQj1C,KAAKi9I,WACjB,GAAI/pH,EAAI14B,OAASy6C,EAAMz6C,OAAQ,CAC7B,IAAI0iJ,EAAQ,IAAI32I,EAAO0uC,EAAMz6C,OAAS04B,EAAI14B,QAC1C0iJ,EAAM/1I,KAAK,GACX+rB,EAAM3sB,EAAOxF,OAAO,CAACm8I,EAAOhqH,IAE9B,OAAOA,GAGTwoH,EAAG3gJ,UAAU+hJ,aAAe,SAAsBh7I,GAChD,OAAO26I,EAAkBz8I,KAAKg8I,KAAMl6I,IAGtC45I,EAAG3gJ,UAAUoiJ,cAAgB,SAAuBr7I,GAClD,OAAO26I,EAAkBz8I,KAAKk8I,MAAOp6I,IAGvC45I,EAAG3gJ,UAAUkiJ,SAAW,SAAUn7I,GAChC,OAAO26I,EAAkBz8I,KAAKs8I,QAASx6I,IAGzC45I,EAAG3gJ,UAAUqiJ,aAAe,SAAUt7I,GACpC,OAAO26I,EAAkBz8I,KAAK68I,KAAM/6I,IAGtC45I,EAAG3gJ,UAAUshJ,aAAe,SAAUxsB,EAAK/tH,GAOzC,OANAA,EAAMA,GAAO,OACRyE,EAAO6nB,SAASyhG,KACnBA,EAAM,IAAItpH,EAAOspH,EAAK/tH,IAExB9B,KAAK28I,MAAQ9sB,EACb7vH,KAAK68I,KAAO,IAAIniH,EAAGm1F,GACZ7vH,Q,0CCzJT,IAAIuG,EAASxH,EAAQ,KAAewH,OAChCgvH,EAAax2H,EAAQ,KACrBu4F,EAASv4F,EAAQ,MACjBw/B,EAAWx/B,EAAQ,KACnB+iE,EAAO/iE,EAAQ,MACfs+I,EAASt+I,EAAQ,MAEjBu+I,EAAav+I,EAAQ,MAMzB,SAASy2I,EAAM7+H,GACb2gF,EAAOt3B,SAAS/kE,KAAK+E,MAErB,IAAIyD,EAAO65I,EAAW3mI,GACtB,IAAKlT,EAAM,MAAM,IAAInI,MAAM,0BAE3B0E,KAAKu9I,UAAY95I,EAAKq2B,KACtB95B,KAAKg4B,MAAQu9F,EAAW9xH,EAAKq2B,MAC7B95B,KAAKw9I,KAAO/5I,EAAKuwH,GACjBh0H,KAAKy9I,UAAYh6I,EAAKq+D,KAwBxB,SAAS4zE,EAAQ/+H,GACf2gF,EAAOt3B,SAAS/kE,KAAK+E,MAErB,IAAIyD,EAAO65I,EAAW3mI,GACtB,IAAKlT,EAAM,MAAM,IAAInI,MAAM,0BAE3B0E,KAAKg4B,MAAQu9F,EAAW9xH,EAAKq2B,MAC7B95B,KAAKw9I,KAAO/5I,EAAKuwH,GACjBh0H,KAAKy9I,UAAYh6I,EAAKq+D,KAwBxB,SAASyzE,EAAY5+H,GACnB,OAAO,IAAI6+H,EAAK7+H,GAGlB,SAAS8+H,EAAc9+H,GACrB,OAAO,IAAI++H,EAAO/+H,GA3EpB7b,OAAO0d,KAAK8kI,GAAYnzI,SAAQ,SAAU1M,GACxC6/I,EAAW7/I,GAAKu2H,GAAKztH,EAAOO,KAAKw2I,EAAW7/I,GAAKu2H,GAAI,OACrDspB,EAAW7/I,EAAIuS,eAAiBstI,EAAW7/I,MAc7C8gC,EAASi3G,EAAMl+C,EAAOt3B,UAEtBw1E,EAAKz6I,UAAU6hG,OAAS,SAAiBn5F,EAAM2qC,EAAGnyB,GAChDjc,KAAKg4B,MAAMnzB,OAAOpB,GAClBwY,KAGFu5H,EAAKz6I,UAAU8J,OAAS,SAAiBpB,EAAM3B,GAI7C,MAHoB,iBAAT2B,IAAmBA,EAAO8C,EAAOO,KAAKrD,EAAM3B,IAEvD9B,KAAKg4B,MAAMnzB,OAAOpB,GACXzD,MAGTw1I,EAAKz6I,UAAU+mE,KAAO,SAAqBrkE,EAAKqE,GAC9C9B,KAAK0e,MACL,IAAIob,EAAO95B,KAAKg4B,MAAMstC,SAClBo4E,EAAM57E,EAAKhoC,EAAMr8B,EAAKuC,KAAKu9I,UAAWv9I,KAAKy9I,UAAWz9I,KAAKw9I,MAE/D,OAAO17I,EAAM47I,EAAI1iJ,SAAS8G,GAAO47I,GAanCn/G,EAASm3G,EAAQp+C,EAAOt3B,UAExB01E,EAAO36I,UAAU6hG,OAAS,SAAiBn5F,EAAM2qC,EAAGnyB,GAClDjc,KAAKg4B,MAAMnzB,OAAOpB,GAClBwY,KAGFy5H,EAAO36I,UAAU8J,OAAS,SAAiBpB,EAAM3B,GAI/C,MAHoB,iBAAT2B,IAAmBA,EAAO8C,EAAOO,KAAKrD,EAAM3B,IAEvD9B,KAAKg4B,MAAMnzB,OAAOpB,GACXzD,MAGT01I,EAAO36I,UAAUsiJ,OAAS,SAAuB5/I,EAAKigJ,EAAK57I,GACtC,iBAAR47I,IAAkBA,EAAMn3I,EAAOO,KAAK42I,EAAK57I,IAEpD9B,KAAK0e,MACL,IAAIob,EAAO95B,KAAKg4B,MAAMstC,SACtB,OAAO+3E,EAAOK,EAAK5jH,EAAMr8B,EAAKuC,KAAKy9I,UAAWz9I,KAAKw9I,OAWrDrhJ,EAAOT,QAAU,CACf85I,KAAMD,EACNG,OAAQD,EACRF,WAAYA,EACZE,aAAcA,I,iBC1FhB/5I,EAAUS,EAAOT,QAAUqD,EAAQ,OAC3B66F,OAASl+F,EACjBA,EAAQqkE,SAAWrkE,EACnBA,EAAQskE,SAAWjhE,EAAQ,MAC3BrD,EAAQmkE,OAAS9gE,EAAQ,KACzBrD,EAAQ0gD,UAAYr9C,EAAQ,MAC5BrD,EAAQm+F,YAAc96F,EAAQ,MAC9BrD,EAAQi8F,SAAW54F,EAAQ,KAC3BrD,EAAQ06I,SAAWr3I,EAAQ,O,8BCN3B,SAASugB,EAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAI9U,SAASsH,EAAgBtgB,EAAK/B,EAAK9B,GAAiK,OAApJ8B,KAAO+B,EAAO1E,OAAOW,eAAe+D,EAAK/B,EAAK,CAAE9B,MAAOA,EAAOuK,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkB3G,EAAI/B,GAAO9B,EAAgB6D,EAI3M,SAASw+B,EAAkBne,EAAQrY,GAAS,IAAK,IAAIlG,EAAI,EAAGA,EAAIkG,EAAMhN,OAAQ8G,IAAK,CAAE,IAAI28B,EAAaz2B,EAAMlG,GAAI28B,EAAW/3B,WAAa+3B,EAAW/3B,aAAc,EAAO+3B,EAAW73B,cAAe,EAAU,UAAW63B,IAAYA,EAAW93B,UAAW,GAAMrL,OAAOW,eAAeokB,EAAQoe,EAAWxgC,IAAKwgC,IAI7S,IACI13B,EADWxH,EAAQ,KACDwH,OAGlBksB,EADY1zB,EAAQ,MACA0zB,QAEpB+4G,EAAS/4G,GAAWA,EAAQ+4G,QAAU,UAM1CrvI,EAAOT,QAEP,WACE,SAAS6lH,KArBX,SAAyBlhH,EAAU09B,GAAe,KAAM19B,aAAoB09B,GAAgB,MAAM,IAAItjC,UAAU,qCAsB5GqmB,CAAgB9gB,KAAMuhH,GAEtBvhH,KAAK2jH,KAAO,KACZ3jH,KAAKgqH,KAAO,KACZhqH,KAAKxF,OAAS,EAtBlB,IAAsBujC,EAAaG,EAAYC,EAoM7C,OApMoBJ,EAyBPwjF,GAzBoBrjF,EAyBR,CAAC,CACxBzgC,IAAK,OACL9B,MAAO,SAAc4S,GACnB,IAAIwrF,EAAQ,CACVt2F,KAAM8K,EACNwnC,KAAM,MAEJ/1C,KAAKxF,OAAS,EAAGwF,KAAKgqH,KAAKj0E,KAAOgkD,EAAW/5F,KAAK2jH,KAAO5pB,EAC7D/5F,KAAKgqH,KAAOjwB,IACV/5F,KAAKxF,SAER,CACDiD,IAAK,UACL9B,MAAO,SAAiB4S,GACtB,IAAIwrF,EAAQ,CACVt2F,KAAM8K,EACNwnC,KAAM/1C,KAAK2jH,MAEO,IAAhB3jH,KAAKxF,SAAcwF,KAAKgqH,KAAOjwB,GACnC/5F,KAAK2jH,KAAO5pB,IACV/5F,KAAKxF,SAER,CACDiD,IAAK,QACL9B,MAAO,WACL,GAAoB,IAAhBqE,KAAKxF,OAAT,CACA,IAAIyvB,EAAMjqB,KAAK2jH,KAAKlgH,KAGpB,OAFoB,IAAhBzD,KAAKxF,OAAcwF,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,KAAUhqH,KAAK2jH,KAAO3jH,KAAK2jH,KAAK5tE,OAC7E/1C,KAAKxF,OACAyvB,KAER,CACDxsB,IAAK,QACL9B,MAAO,WACLqE,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,KACxBhqH,KAAKxF,OAAS,IAEf,CACDiD,IAAK,OACL9B,MAAO,SAAcq+B,GACnB,GAAoB,IAAhBh6B,KAAKxF,OAAc,MAAO,GAI9B,IAHA,IAAIokC,EAAI5+B,KAAK2jH,KACT15F,EAAM,GAAK2U,EAAEn7B,KAEVm7B,EAAIA,EAAEmX,MACX9rB,GAAO+P,EAAI4E,EAAEn7B,KAGf,OAAOwmB,IAER,CACDxsB,IAAK,SACL9B,MAAO,SAAgBgnB,GACrB,GAAoB,IAAhB3iB,KAAKxF,OAAc,OAAO+L,EAAOQ,MAAM,GAK3C,IAJA,IArEcN,EAAKoZ,EAAQvb,EAqEvB2lB,EAAM1jB,EAAOS,YAAY2b,IAAM,GAC/Bic,EAAI5+B,KAAK2jH,KACTriH,EAAI,EAEDs9B,GAzEOn4B,EA0EDm4B,EAAEn7B,KA1EIoc,EA0EEoK,EA1EM3lB,EA0EDhD,EAzE9BiF,EAAOxL,UAAUuzB,KAAKrzB,KAAKwL,EAAKoZ,EAAQvb,GA0ElChD,GAAKs9B,EAAEn7B,KAAKjJ,OACZokC,EAAIA,EAAEmX,KAGR,OAAO9rB,IAGR,CACDxsB,IAAK,UACL9B,MAAO,SAAiBgnB,EAAGonG,GACzB,IAAI9/F,EAcJ,OAZItH,EAAI3iB,KAAK2jH,KAAKlgH,KAAKjJ,QAErByvB,EAAMjqB,KAAK2jH,KAAKlgH,KAAKvF,MAAM,EAAGykB,GAC9B3iB,KAAK2jH,KAAKlgH,KAAOzD,KAAK2jH,KAAKlgH,KAAKvF,MAAMykB,IAGtCsH,EAFStH,IAAM3iB,KAAK2jH,KAAKlgH,KAAKjJ,OAExBwF,KAAKowC,QAGL25E,EAAa/pH,KAAKq2I,WAAW1zH,GAAK3iB,KAAKs2I,WAAW3zH,GAGnDsH,IAER,CACDxsB,IAAK,QACL9B,MAAO,WACL,OAAOqE,KAAK2jH,KAAKlgH,OAGlB,CACDhG,IAAK,aACL9B,MAAO,SAAoBgnB,GACzB,IAAIic,EAAI5+B,KAAK2jH,KACTx7G,EAAI,EACJ8hB,EAAM2U,EAAEn7B,KAGZ,IAFAkf,GAAKsH,EAAIzvB,OAEFokC,EAAIA,EAAEmX,MAAM,CACjB,IAAIn9B,EAAMgmB,EAAEn7B,KACRklD,EAAKhmC,EAAI/J,EAAIpe,OAASoe,EAAIpe,OAASmoB,EAIvC,GAHIgmC,IAAO/vC,EAAIpe,OAAQyvB,GAAOrR,EAASqR,GAAOrR,EAAI1a,MAAM,EAAGykB,GAGjD,IAFVA,GAAKgmC,GAEQ,CACPA,IAAO/vC,EAAIpe,UACX2N,EACEy2B,EAAEmX,KAAM/1C,KAAK2jH,KAAO/kF,EAAEmX,KAAU/1C,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,OAE5DhqH,KAAK2jH,KAAO/kF,EACZA,EAAEn7B,KAAOmV,EAAI1a,MAAMyqD,IAGrB,QAGAxgD,EAIJ,OADAnI,KAAKxF,QAAU2N,EACR8hB,IAGR,CACDxsB,IAAK,aACL9B,MAAO,SAAoBgnB,GACzB,IAAIsH,EAAM1jB,EAAOS,YAAY2b,GACzBic,EAAI5+B,KAAK2jH,KACTx7G,EAAI,EAIR,IAHAy2B,EAAEn7B,KAAK6qB,KAAKrE,GACZtH,GAAKic,EAAEn7B,KAAKjJ,OAELokC,EAAIA,EAAEmX,MAAM,CACjB,IAAI1uC,EAAMu3B,EAAEn7B,KACRklD,EAAKhmC,EAAItb,EAAI7M,OAAS6M,EAAI7M,OAASmoB,EAIvC,GAHAtb,EAAIinB,KAAKrE,EAAKA,EAAIzvB,OAASmoB,EAAG,EAAGgmC,GAGvB,IAFVhmC,GAAKgmC,GAEQ,CACPA,IAAOthD,EAAI7M,UACX2N,EACEy2B,EAAEmX,KAAM/1C,KAAK2jH,KAAO/kF,EAAEmX,KAAU/1C,KAAK2jH,KAAO3jH,KAAKgqH,KAAO,OAE5DhqH,KAAK2jH,KAAO/kF,EACZA,EAAEn7B,KAAO4D,EAAInJ,MAAMyqD,IAGrB,QAGAxgD,EAIJ,OADAnI,KAAKxF,QAAU2N,EACR8hB,IAGR,CACDxsB,IAAK+tI,EACL7vI,MAAO,SAAeyyC,EAAGtyC,GACvB,OAAO22B,EAAQzyB,KAnMrB,SAAuB6f,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,EAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,EAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,EAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EAmMlfD,CAAc,GAAI9jB,EAAS,CAE9CwtI,MAAO,EAEPI,eAAe,UA/LuD1rG,EAAkBD,EAAYhjC,UAAWmjC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAoM3KojF,EApLT,I,+BC5BA,YAEA,IAAIg1B,EAEJ,SAASz2H,EAAgBtgB,EAAK/B,EAAK9B,GAAiK,OAApJ8B,KAAO+B,EAAO1E,OAAOW,eAAe+D,EAAK/B,EAAK,CAAE9B,MAAOA,EAAOuK,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkB3G,EAAI/B,GAAO9B,EAAgB6D,EAE3M,IAAIm4F,EAAW54F,EAAQ,KAEnBy3I,EAAeptI,OAAO,eACtBqtI,EAAcrtI,OAAO,cACrBstI,EAASttI,OAAO,SAChButI,EAASvtI,OAAO,SAChBwtI,EAAextI,OAAO,eACtBytI,EAAiBztI,OAAO,iBACxB0tI,EAAU1tI,OAAO,UAErB,SAAS2tI,EAAiBp7I,EAAOsgB,GAC/B,MAAO,CACLtgB,MAAOA,EACPsgB,KAAMA,GAIV,SAAS+6H,EAAe54F,GACtB,IAAI5yC,EAAU4yC,EAAKo4F,GAEnB,GAAgB,OAAZhrI,EAAkB,CACpB,IAAI/H,EAAO26C,EAAK04F,GAASlnH,OAIZ,OAATnsB,IACF26C,EAAKw4F,GAAgB,KACrBx4F,EAAKo4F,GAAgB,KACrBp4F,EAAKq4F,GAAe,KACpBjrI,EAAQurI,EAAiBtzI,GAAM,MAKrC,SAASwzI,EAAW74F,GAGlBrqC,EAAQgY,SAASirH,EAAgB54F,GAgBnC,IAAI84F,EAAyBp8I,OAAOkmC,gBAAe,eAC/Cm2G,EAAuCr8I,OAAOimC,gBA4D/CjhB,EA5D+Dy2H,EAAwB,CACxF,aACE,OAAOv2I,KAAK82I,IAGd/gG,KAAM,WACJ,IAAI5oC,EAAQnN,KAIRkL,EAAQlL,KAAK02I,GAEjB,GAAc,OAAVxrI,EACF,OAAOgf,QAAQi2B,OAAOj1C,GAGxB,GAAIlL,KAAK22I,GACP,OAAOzsH,QAAQ1e,QAAQurI,OAAiBv4I,GAAW,IAGrD,GAAIwB,KAAK82I,GAASp2E,UAKhB,OAAO,IAAIx2C,SAAQ,SAAU1e,EAAS20C,GACpCpsC,EAAQgY,UAAS,WACX5e,EAAMupI,GACRv2F,EAAOhzC,EAAMupI,IAEblrI,EAAQurI,OAAiBv4I,GAAW,UAU5C,IACI8M,EADA8rI,EAAcp3I,KAAK42I,GAGvB,GAAIQ,EACF9rI,EAAU,IAAI4e,QA1DpB,SAAqBktH,EAAah5F,GAChC,OAAO,SAAU5yC,EAAS20C,GACxBi3F,EAAY/rI,MAAK,WACX+yC,EAAKu4F,GACPnrI,EAAQurI,OAAiBv4I,GAAW,IAItC4/C,EAAKy4F,GAAgBrrI,EAAS20C,KAC7BA,IAiDqBk3F,CAAYD,EAAap3I,WAC1C,CAGL,IAAIyD,EAAOzD,KAAK82I,GAASlnH,OAEzB,GAAa,OAATnsB,EACF,OAAOymB,QAAQ1e,QAAQurI,EAAiBtzI,GAAM,IAGhD6H,EAAU,IAAI4e,QAAQlqB,KAAK62I,IAI7B,OADA72I,KAAK42I,GAAgBtrI,EACdA,IAE+BlC,OAAOw8G,eAAe,WAC9D,OAAO5lH,QACL8f,EAAgBy2H,EAAuB,UAAU,WACnD,IAAIrxF,EAASllD,KAKb,OAAO,IAAIkqB,SAAQ,SAAU1e,EAAS20C,GACpC+E,EAAO4xF,GAAS/5C,QAAQ,MAAM,SAAU/9F,GAClCA,EACFmhD,EAAOnhD,GAITwM,EAAQurI,OAAiBv4I,GAAW,aAGtC+3I,GAAwBW,GAoE5B/6I,EAAOT,QAlEiC,SAA2C47F,GACjF,IAAIggD,EAEA55F,EAAW5iD,OAAOwE,OAAO63I,GAA4Dr3H,EAArBw3H,EAAiB,GAAoCR,EAAS,CAChIn7I,MAAO27F,EACPnxF,UAAU,IACR2Z,EAAgBw3H,EAAgBd,EAAc,CAChD76I,MAAO,KACPwK,UAAU,IACR2Z,EAAgBw3H,EAAgBb,EAAa,CAC/C96I,MAAO,KACPwK,UAAU,IACR2Z,EAAgBw3H,EAAgBZ,EAAQ,CAC1C/6I,MAAO,KACPwK,UAAU,IACR2Z,EAAgBw3H,EAAgBX,EAAQ,CAC1Ch7I,MAAO27F,EAAO72B,eAAeo3B,WAC7B1xF,UAAU,IACR2Z,EAAgBw3H,EAAgBT,EAAgB,CAClDl7I,MAAO,SAAe6P,EAAS20C,GAC7B,IAAI18C,EAAOi6C,EAASo5F,GAASlnH,OAEzBnsB,GACFi6C,EAASk5F,GAAgB,KACzBl5F,EAAS84F,GAAgB,KACzB94F,EAAS+4F,GAAe,KACxBjrI,EAAQurI,EAAiBtzI,GAAM,MAE/Bi6C,EAAS84F,GAAgBhrI,EACzBkyC,EAAS+4F,GAAet2F,IAG5Bh6C,UAAU,IACRmxI,IA8BJ,OA7BA55F,EAASk5F,GAAgB,KACzBj/C,EAASL,GAAQ,SAAUt4F,GACzB,GAAIA,GAAoB,+BAAbA,EAAIga,KAAuC,CACpD,IAAImnC,EAASzC,EAAS+4F,GAWtB,OARe,OAAXt2F,IACFzC,EAASk5F,GAAgB,KACzBl5F,EAAS84F,GAAgB,KACzB94F,EAAS+4F,GAAe,KACxBt2F,EAAOnhD,SAGT0+C,EAASg5F,GAAU13I,GAIrB,IAAIwM,EAAUkyC,EAAS84F,GAEP,OAAZhrI,IACFkyC,EAASk5F,GAAgB,KACzBl5F,EAAS84F,GAAgB,KACzB94F,EAAS+4F,GAAe,KACxBjrI,EAAQurI,OAAiBv4I,GAAW,KAGtCk/C,EAASi5F,IAAU,KAErBr/C,EAAOr1E,GAAG,WAAYg1H,EAAWhlI,KAAK,KAAMyrC,IACrCA,K,iCC3MTvhD,EAAOT,QAAU,WACf,MAAM,IAAIJ,MAAM,mD,6BCwBlBa,EAAOT,QAAUm+F,EAEjB,IAAIz9C,EAAYr9C,EAAQ,MAIxB,SAAS86F,EAAY/9F,GACnB,KAAMkE,gBAAgB65F,GAAc,OAAO,IAAIA,EAAY/9F,GAC3DsgD,EAAUnhD,KAAK+E,KAAMlE,GAJvBiD,EAAQ,IAARA,CAAoB86F,EAAaz9C,GAOjCy9C,EAAY9+F,UAAUwiD,WAAa,SAAU0/C,EAAO71F,EAAUoU,GAC5DA,EAAG,KAAMyhF,K,6BCjCX,IAAI5F,EAWJ,IAAIoqB,EAAiB1iH,EAAQ,KAAmB2qD,MAC5C6tF,EAAmB91B,EAAe81B,iBAClC7wB,EAAuBjF,EAAeiF,qBAE1C,SAAS56F,EAAK9sB,GAEZ,GAAIA,EAAK,MAAMA,EAOjB,SAASw4I,EAAUlgD,EAAQ8qB,EAAS1mB,EAASjqF,GAC3CA,EAvBF,SAAcA,GACZ,IAAI8lF,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACT9lF,EAASrR,WAAM,EAAQxF,aAkBd0xB,CAAK7a,GAChB,IAAIgmI,GAAS,EACbngD,EAAOr1E,GAAG,SAAS,WACjBw1H,GAAS,UAECj5I,IAAR64F,IAAmBA,EAAMt4F,EAAQ,MACrCs4F,EAAIC,EAAQ,CACVp3B,SAAUkiD,EACVj8G,SAAUu1F,IACT,SAAU18F,GACX,GAAIA,EAAK,OAAOyS,EAASzS,GACzBy4I,GAAS,EACThmI,OAEF,IAAIivD,GAAY,EAChB,OAAO,SAAU1hE,GACf,IAAIy4I,IACA/2E,EAGJ,OAFAA,GAAY,EAvBhB,SAAmB42B,GACjB,OAAOA,EAAOY,WAAqC,mBAAjBZ,EAAOa,MAwBnCC,CAAUd,GAAgBA,EAAOa,QACP,mBAAnBb,EAAOyF,QAA+BzF,EAAOyF,eACxDtrF,EAASzS,GAAO,IAAI0nH,EAAqB,UAI7C,SAASzrH,EAAKsO,GACZA,IAGF,SAASm0F,EAAK52F,EAAMy/H,GAClB,OAAOz/H,EAAK42F,KAAK6oC,GAGnB,SAASmR,EAAYC,GACnB,OAAKA,EAAQn9I,OAC8B,mBAAhCm9I,EAAQA,EAAQn9I,OAAS,GAA0BsxB,EACvD6rH,EAAQ7rI,MAFaggB,EAgC9B3vB,EAAOT,QA3BP,WACE,IAAK,IAAI+lB,EAAO7mB,UAAUJ,OAAQm9I,EAAU,IAAIloI,MAAMgS,GAAO3N,EAAO,EAAGA,EAAO2N,EAAM3N,IAClF6jI,EAAQ7jI,GAAQlZ,UAAUkZ,GAG5B,IAOI5I,EAPAuG,EAAWimI,EAAYC,GAG3B,GAFIloI,MAAMC,QAAQioI,EAAQ,MAAKA,EAAUA,EAAQ,IAE7CA,EAAQn9I,OAAS,EACnB,MAAM,IAAI+8I,EAAiB,WAI7B,IAAIK,EAAWD,EAAQztI,KAAI,SAAUotF,EAAQh2F,GAC3C,IAAI8gH,EAAU9gH,EAAIq2I,EAAQn9I,OAAS,EAEnC,OAAOg9I,EAAUlgD,EAAQ8qB,EADX9gH,EAAI,GACyB,SAAUtC,GAC9CkM,IAAOA,EAAQlM,GAChBA,GAAK44I,EAASztI,QAAQlP,GACtBmnH,IACJw1B,EAASztI,QAAQlP,GACjBwW,EAASvG,UAGb,OAAOysI,EAAQ7tI,OAAO4zF,K,gBC5FxB,IAAIn3F,EAASxH,EAAQ,KAAewH,OAChCylI,EAAajtI,EAAQ,MACrBkiG,EAAMliG,EAAQ,KACd4+I,EAAK5+I,EAAQ,KAAYyjG,GACzB9nE,EAAK37B,EAAQ,KACbwtF,EAAYxtF,EAAQ,KACpBwjG,EAASxjG,EAAQ,MAyErB,SAAS6+I,EAAQzrH,EAAG0S,EAAG/K,EAAMx0B,GAE3B,IADA6sB,EAAI5rB,EAAOO,KAAKqrB,EAAE7nB,YACZ9P,OAASqqC,EAAEhX,aAAc,CAC7B,IAAI+V,EAAQr9B,EAAOQ,MAAM89B,EAAEhX,aAAesE,EAAE33B,QAC5C23B,EAAI5rB,EAAOxF,OAAO,CAAC6iC,EAAOzR,IAE5B,IAAI0rH,EAAO/jH,EAAKt/B,OACZsjJ,EAkBN,SAAsB5iH,EAAM2J,GAE1B3J,GADAA,EAAO6iH,EAAS7iH,EAAM2J,IACVtJ,IAAIsJ,GAChB,IAAI3R,EAAM3sB,EAAOO,KAAKo0B,EAAK5wB,WAC3B,GAAI4oB,EAAI14B,OAASqqC,EAAEhX,aAAc,CAC/B,IAAI+V,EAAQr9B,EAAOQ,MAAM89B,EAAEhX,aAAeqF,EAAI14B,QAC9C04B,EAAM3sB,EAAOxF,OAAO,CAAC6iC,EAAO1Q,IAE9B,OAAOA,EA1BK8qH,CAAYlkH,EAAM+K,GAC1Bt2B,EAAIhI,EAAOQ,MAAM82I,GACrBtvI,EAAEpH,KAAK,GACP,IAAIqgB,EAAIjhB,EAAOQ,MAAM82I,GAKrB,OAJAr2H,EAAIwkH,EAAW1mI,EAAMkiB,GAAG3iB,OAAO0J,GAAG1J,OAAO0B,EAAOO,KAAK,CAAC,KAAKjC,OAAOstB,GAAGttB,OAAOi5I,GAAOx4E,SACnF/2D,EAAIy9H,EAAW1mI,EAAMkiB,GAAG3iB,OAAO0J,GAAG+2D,SAG3B,CAAE99C,EAFTA,EAAIwkH,EAAW1mI,EAAMkiB,GAAG3iB,OAAO0J,GAAG1J,OAAO0B,EAAOO,KAAK,CAAC,KAAKjC,OAAOstB,GAAGttB,OAAOi5I,GAAOx4E,SAEpE/2D,EADfA,EAAIy9H,EAAW1mI,EAAMkiB,GAAG3iB,OAAO0J,GAAG+2D,UAIpC,SAASy4E,EAAUE,EAAOp5G,GACxB,IAAI3J,EAAO,IAAIR,EAAGujH,GACd7tG,GAAS6tG,EAAMzjJ,QAAU,GAAKqqC,EAAEzJ,YAEpC,OADIgV,EAAQ,GAAGlV,EAAKuU,MAAMW,GACnBlV,EAcT,SAASgjH,EAASr5G,EAAGs5G,EAAI74I,GACvB,IAAIwC,EACA0f,EAEJ,EAAG,CAGD,IAFA1f,EAAIvB,EAAOQ,MAAM,GAEC,EAAXe,EAAEtN,OAAaqqC,EAAEzJ,aACtB+iH,EAAG5vI,EAAIy9H,EAAW1mI,EAAM64I,EAAG32H,GAAG3iB,OAAOs5I,EAAG5vI,GAAG+2D,SAC3Cx9D,EAAIvB,EAAOxF,OAAO,CAAC+G,EAAGq2I,EAAG5vI,IAG3BiZ,EAAIu2H,EAASj2I,EAAG+8B,GAChBs5G,EAAG32H,EAAIwkH,EAAW1mI,EAAM64I,EAAG32H,GAAG3iB,OAAOs5I,EAAG5vI,GAAG1J,OAAO0B,EAAOO,KAAK,CAAC,KAAKw+D,SACpE64E,EAAG5vI,EAAIy9H,EAAW1mI,EAAM64I,EAAG32H,GAAG3iB,OAAOs5I,EAAG5vI,GAAG+2D,gBACtB,IAAd99C,EAAEsb,IAAI+B,IAEf,OAAOrd,EAGT,SAAS42H,EAAO/sG,EAAG7pB,EAAGoX,EAAGiG,GACvB,OAAOwM,EAAEyB,MAAMpY,EAAG6b,KAAK3X,IAAIyV,OAAO7sB,GAAG0rB,UAAU3X,IAAIsJ,GAGrD1oC,EAAOT,QAnIP,SAAeo+B,EAAMr8B,EAAK4gJ,EAAUC,EAAUvhI,GAC5C,IAAI8jF,EAAOtU,EAAU9uF,GACrB,GAAIojG,EAAKjX,MAAO,CAEd,GAAiB,UAAb00D,GAAqC,cAAbA,EAA0B,MAAM,IAAIhjJ,MAAM,0BACtE,OAmBJ,SAAiBw+B,EAAM+mE,GACrB,IAAI09C,EAAUh8C,EAAO1B,EAAKjX,MAAM3nF,KAAK,MACrC,IAAKs8I,EAAS,MAAM,IAAIjjJ,MAAM,iBAAmBulG,EAAKjX,MAAM3nF,KAAK,MAEjE,IAEIixB,EAFQ,IAAIyqH,EAAGY,GACHC,eAAe39C,EAAK7S,YACtBlsB,KAAKhoC,GAEnB,OAAOvzB,EAAOO,KAAKosB,EAAIurH,SA3BdC,CAAO5kH,EAAM+mE,GACf,GAAkB,QAAdA,EAAK33F,KAAgB,CAC9B,GAAiB,QAAbo1I,EAAoB,MAAM,IAAIhjJ,MAAM,0BACxC,OA2BJ,SAAkBw+B,EAAM+mE,EAAMv7F,GAC5B,IAKIkiB,EALA2K,EAAI0uE,EAAK1T,OAAOe,SAChBtvD,EAAIiiE,EAAK1T,OAAOvuD,EAChBiG,EAAIg8D,EAAK1T,OAAOtoD,EAChBwM,EAAIwvD,EAAK1T,OAAO97C,EAChB7W,EAAI,IAAIE,EAAG,GAEXtC,EAAI2lH,EAASjkH,EAAM+K,GAAGtJ,IAAIsJ,GAC1B7K,GAAI,EACJmkH,EAAKP,EAAOzrH,EAAG0S,EAAG/K,EAAMx0B,GAC5B,MAAa,IAAN00B,GACLxS,EAAI02H,EAAQr5G,EAAGs5G,EAAI74I,GACnBk1B,EAAI4jH,EAAM/sG,EAAG7pB,EAAGoX,EAAGiG,GAED,KADlB7K,EAAIxS,EAAEwqB,KAAKnN,GAAGiG,KAAK1S,EAAE0O,IAAI3U,EAAE+B,IAAIsG,KAAKe,IAAIsJ,IAClC1I,KAAK,KACTnC,GAAI,EACJQ,EAAI,IAAIE,EAAG,IAGf,OAGF,SAAgBF,EAAGR,GACjBQ,EAAIA,EAAElwB,UACN0vB,EAAIA,EAAE1vB,UAGK,IAAPkwB,EAAE,KAAWA,EAAI,CAAC,GAAGz5B,OAAOy5B,IACrB,IAAPR,EAAE,KAAWA,EAAI,CAAC,GAAGj5B,OAAOi5B,IAEhC,IACIhd,EAAM,CAAC,GADCwd,EAAEhgC,OAASw/B,EAAEx/B,OAAS,EACV,EAAMggC,EAAEhgC,QAEhC,OADAwiB,EAAMA,EAAIjc,OAAOy5B,EAAG,CAAC,EAAMR,EAAEx/B,QAASw/B,GAC/BzzB,EAAOO,KAAKkW,GAdZyhI,CAAMjkH,EAAGR,GA9CP2kH,CAAQ7kH,EAAM+mE,EAAMw9C,GAE3B,GAAiB,QAAbC,GAAmC,cAAbA,EAA0B,MAAM,IAAIhjJ,MAAM,0BAEtEw+B,EAAOvzB,EAAOxF,OAAO,CAACgc,EAAK+c,IAG3B,IAFA,IAAIrO,EAAMo1E,EAAKC,QAAQjzE,aACnBvY,EAAM,CAAC,EAAG,GACPwkB,EAAKt/B,OAAS8a,EAAI9a,OAAS,EAAIixB,GAAKnW,EAAI1T,KAAK,KACpD0T,EAAI1T,KAAK,GAET,IADA,IAAIN,GAAK,IACAA,EAAIw4B,EAAKt/B,QAAQ8a,EAAI1T,KAAKk4B,EAAKx4B,IAGxC,OADU2/F,EAAI3rF,EAAKurF,IAgHrB1kG,EAAOT,QAAQkiJ,OAASA,EACxBzhJ,EAAOT,QAAQwiJ,QAAUA,G,w3DC5IzB,IAAIzjH,EAAQ17B,EAAQ,KAChB27B,EAAK37B,EAAQ,KACbw/B,EAAWx/B,EAAQ,KACnBc,EAAOd,EAAQ,KAEfs7B,EAASI,EAAMJ,OAEnB,SAASukH,EAAW51D,GAClBnpF,EAAK5E,KAAK+E,KAAM,QAASgpF,GAEzBhpF,KAAK0H,EAAI,IAAIgzB,EAAGsuD,EAAKthF,EAAG,IAAIorC,MAAM9yC,KAAKqiC,KACvCriC,KAAK2H,EAAI,IAAI+yB,EAAGsuD,EAAKrhF,EAAG,IAAImrC,MAAM9yC,KAAKqiC,KACvCriC,KAAK6+I,KAAO7+I,KAAKwtD,IAAIrZ,UAErBn0C,KAAK8+I,MAAqC,IAA7B9+I,KAAK0H,EAAEwrC,UAAU/W,KAAK,GACnCn8B,KAAK++I,OAAmD,IAA1C/+I,KAAK0H,EAAEwrC,UAAU53B,IAAItb,KAAK4+B,GAAGzC,MAAM,GAGjDn8B,KAAKg/I,KAAOh/I,KAAKi/I,iBAAiBj2D,GAClChpF,KAAKk/I,YAAc,IAAIzvI,MAAM,GAC7BzP,KAAKm/I,YAAc,IAAI1vI,MAAM,GAoO/B,SAAS2vI,EAAMx1D,EAAOz3D,EAAGC,EAAGitH,GAC1Bx/I,EAAK8pF,UAAU1uF,KAAK+E,KAAM4pF,EAAO,UACvB,OAANz3D,GAAoB,OAANC,GAChBpyB,KAAKmyB,EAAI,KACTnyB,KAAKoyB,EAAI,KACTpyB,KAAKs/I,KAAM,IAEXt/I,KAAKmyB,EAAI,IAAIuI,EAAGvI,EAAG,IACnBnyB,KAAKoyB,EAAI,IAAIsI,EAAGtI,EAAG,IAEfitH,IACFr/I,KAAKmyB,EAAEihB,SAASpzC,KAAK4pF,MAAMvnD,KAC3BriC,KAAKoyB,EAAEghB,SAASpzC,KAAK4pF,MAAMvnD,MAExBriC,KAAKmyB,EAAEkQ,MACVriC,KAAKmyB,EAAInyB,KAAKmyB,EAAE2gB,MAAM9yC,KAAK4pF,MAAMvnD,MAC9BriC,KAAKoyB,EAAEiQ,MACVriC,KAAKoyB,EAAIpyB,KAAKoyB,EAAE0gB,MAAM9yC,KAAK4pF,MAAMvnD,MACnCriC,KAAKs/I,KAAM,GA6Nf,SAASC,EAAO31D,EAAOz3D,EAAGC,EAAGkJ,GAC3Bz7B,EAAK8pF,UAAU1uF,KAAK+E,KAAM4pF,EAAO,YACvB,OAANz3D,GAAoB,OAANC,GAAoB,OAANkJ,GAC9Bt7B,KAAKmyB,EAAInyB,KAAK4pF,MAAM3zC,IACpBj2C,KAAKoyB,EAAIpyB,KAAK4pF,MAAM3zC,IACpBj2C,KAAKs7B,EAAI,IAAIZ,EAAG,KAEhB16B,KAAKmyB,EAAI,IAAIuI,EAAGvI,EAAG,IACnBnyB,KAAKoyB,EAAI,IAAIsI,EAAGtI,EAAG,IACnBpyB,KAAKs7B,EAAI,IAAIZ,EAAGY,EAAG,KAEhBt7B,KAAKmyB,EAAEkQ,MACVriC,KAAKmyB,EAAInyB,KAAKmyB,EAAE2gB,MAAM9yC,KAAK4pF,MAAMvnD,MAC9BriC,KAAKoyB,EAAEiQ,MACVriC,KAAKoyB,EAAIpyB,KAAKoyB,EAAE0gB,MAAM9yC,KAAK4pF,MAAMvnD,MAC9BriC,KAAKs7B,EAAE+G,MACVriC,KAAKs7B,EAAIt7B,KAAKs7B,EAAEwX,MAAM9yC,KAAK4pF,MAAMvnD,MAEnCriC,KAAKw/I,KAAOx/I,KAAKs7B,IAAMt7B,KAAK4pF,MAAM3zC,IAnepC1X,EAASqgH,EAAY/+I,GACrB1D,EAAOT,QAAUkjJ,EAEjBA,EAAW7jJ,UAAUkkJ,iBAAmB,SAA0Bj2D,GAEhE,GAAKhpF,KAAK8+I,OAAU9+I,KAAKqxC,GAAMrxC,KAAK2iB,GAAwB,IAAnB3iB,KAAK4+B,EAAE0F,KAAK,GAArD,CAIA,IAAIwnD,EACAiX,EACJ,GAAI/Z,EAAK8C,KACPA,EAAO,IAAIpxD,EAAGsuD,EAAK8C,KAAM,IAAIh5C,MAAM9yC,KAAKqiC,SACnC,CACL,IAAIo9G,EAAQz/I,KAAK0/I,cAAc1/I,KAAK4+B,GAGpCktD,GADAA,EAAO2zD,EAAM,GAAG38G,IAAI28G,EAAM,IAAM,EAAIA,EAAM,GAAKA,EAAM,IACzC3sG,MAAM9yC,KAAKqiC,KAEzB,GAAI2mD,EAAK+Z,OACPA,EAAS,IAAIroE,EAAGsuD,EAAK+Z,OAAQ,QACxB,CAEL,IAAI48C,EAAU3/I,KAAK0/I,cAAc1/I,KAAK2iB,GACsB,IAAxD3iB,KAAKqxC,EAAEnd,IAAIyrH,EAAQ,IAAIxtH,EAAE2Q,IAAI9iC,KAAKqxC,EAAElf,EAAEwhB,OAAOm4C,IAC/CiX,EAAS48C,EAAQ,IAEjB58C,EAAS48C,EAAQ,GACjBtlH,EAA2D,IAApDr6B,KAAKqxC,EAAEnd,IAAI6uE,GAAQ5wE,EAAE2Q,IAAI9iC,KAAKqxC,EAAElf,EAAEwhB,OAAOm4C,MAiBpD,MAAO,CACLA,KAAMA,EACNiX,OAAQA,EACRC,MAdEha,EAAKga,MACCha,EAAKga,MAAM94F,KAAI,SAAS01I,GAC9B,MAAO,CACLl4I,EAAG,IAAIgzB,EAAGklH,EAAIl4I,EAAG,IACjBC,EAAG,IAAI+yB,EAAGklH,EAAIj4I,EAAG,QAIb3H,KAAK6/I,cAAc98C,MAU/B67C,EAAW7jJ,UAAU2kJ,cAAgB,SAAuB1kH,GAI1D,IAAIqH,EAAMrH,IAAQh7B,KAAK4+B,EAAI5+B,KAAKqiC,IAAM3H,EAAG6b,KAAKvb,GAC1C6jH,EAAO,IAAInkH,EAAG,GAAGoY,MAAMzQ,GAAK8R,UAC5B2rG,EAAQjB,EAAKzqG,SAEbpa,EAAI,IAAIU,EAAG,GAAGoY,MAAMzQ,GAAK+R,SAASH,UAAUN,OAAOkrG,GAIvD,MAAO,CAFEiB,EAAMzsG,OAAOrZ,GAAGkZ,UAChB4sG,EAAMvsG,OAAOvZ,GAAGkZ,YAI3B0rG,EAAW7jJ,UAAU8kJ,cAAgB,SAAuB98C,GA2B1D,IAzBA,IAYI97D,EACA8B,EAEA3B,EACA8B,EAEA3B,EACA8B,EAEA02G,EAEAvlH,EACArI,EAxBA6tH,EAAWhgJ,KAAK2iB,EAAEktB,MAAMtxC,KAAKsH,MAAM7F,KAAK2iB,EAAEyY,YAAc,IAIxDob,EAAIusD,EACJx0F,EAAIvO,KAAK2iB,EAAEniB,QACXqxC,EAAK,IAAInX,EAAG,GACZulH,EAAK,IAAIvlH,EAAG,GACZoX,EAAK,IAAIpX,EAAG,GACZwlH,EAAK,IAAIxlH,EAAG,GAaZp5B,EAAI,EAGa,IAAdk1C,EAAEra,KAAK,IAAU,CACtB,IAAI0I,EAAIt2B,EAAEiiC,IAAIgG,GACdhc,EAAIjsB,EAAE+M,IAAIupB,EAAE3Q,IAAIsiB,IAChBrkB,EAAI2f,EAAGx2B,IAAIupB,EAAE3Q,IAAI2d,IACjB,IAAIzf,EAAI8tH,EAAG5kI,IAAIupB,EAAE3Q,IAAI+rH,IAErB,IAAK74G,GAAM5M,EAAEsI,IAAIk9G,GAAY,EAC3B/4G,EAAK84G,EAAMr6G,MACXqD,EAAK8I,EACLzK,EAAK5M,EAAEkL,MACPwD,EAAK/W,OACA,GAAIiV,GAAc,KAAN9lC,EACjB,MAEFy+I,EAAQvlH,EAERjsB,EAAIioC,EACJA,EAAIhc,EACJsX,EAAKD,EACLA,EAAK1f,EACL+tH,EAAKD,EACLA,EAAK7tH,EAEPmV,EAAK/M,EAAEkL,MACP2D,EAAKlX,EAEL,IAAIguH,EAAO/4G,EAAGyH,MAAM/H,IAAIoC,EAAG2F,OAiB3B,OAhBWtH,EAAGsH,MAAM/H,IAAIuC,EAAGwF,OAClB/L,IAAIq9G,IAAS,IACpB54G,EAAKN,EACLoC,EAAKN,GAIH3B,EAAGhF,WACLgF,EAAKA,EAAG1B,MACRwD,EAAKA,EAAGxD,OAEN6B,EAAGnF,WACLmF,EAAKA,EAAG7B,MACR2D,EAAKA,EAAG3D,OAGH,CACL,CAAEh+B,EAAG0/B,EAAIz/B,EAAGuhC,GACZ,CAAExhC,EAAG6/B,EAAI5/B,EAAG0hC,KAIhBu1G,EAAW7jJ,UAAUqlJ,WAAa,SAAoB54H,GACpD,IAAIw7E,EAAQhjG,KAAKg/I,KAAKh8C,MAClBq9C,EAAKr9C,EAAM,GACXs9C,EAAKt9C,EAAM,GAEXxB,EAAK8+C,EAAG34I,EAAEusB,IAAI1M,GAAGqpB,SAAS7wC,KAAK2iB,GAC/B8+E,EAAK4+C,EAAG14I,EAAE+9B,MAAMxR,IAAI1M,GAAGqpB,SAAS7wC,KAAK2iB,GAErC49H,EAAK/+C,EAAGttE,IAAImsH,EAAG34I,GACf84I,EAAK/+C,EAAGvtE,IAAIosH,EAAG54I,GACf+4I,EAAKj/C,EAAGttE,IAAImsH,EAAG14I,GACf+4I,EAAKj/C,EAAGvtE,IAAIosH,EAAG34I,GAKnB,MAAO,CAAEk0B,GAFArU,EAAElM,IAAIilI,GAAIjlI,IAAIklI,GAEN1kH,GADR2kH,EAAG35G,IAAI45G,GAAIh7G,QAItBk5G,EAAW7jJ,UAAUuwF,WAAa,SAAoBn5D,EAAG2b,IACvD3b,EAAI,IAAIuI,EAAGvI,EAAG,KACPkQ,MACLlQ,EAAIA,EAAE2gB,MAAM9yC,KAAKqiC,MAEnB,IAAI69G,EAAK/tH,EAAE2hB,SAASH,OAAOxhB,GAAGmhB,QAAQnhB,EAAEwhB,OAAO3zC,KAAK0H,IAAI4rC,QAAQtzC,KAAK2H,GACjEyqB,EAAI8tH,EAAGjsG,UACX,GAA6C,IAAzC7hB,EAAE0hB,SAASP,OAAO2sG,GAAIp9G,IAAI9iC,KAAKutD,MACjC,MAAM,IAAIjyD,MAAM,iBAIlB,IAAImgC,EAAQrJ,EAAE8gB,UAAUzX,QAIxB,OAHIqS,IAAQrS,IAAUqS,GAAOrS,KAC3BrJ,EAAIA,EAAEgiB,UAEDp0C,KAAK8pF,MAAM33D,EAAGC,IAGvBwsH,EAAW7jJ,UAAU+7E,SAAW,SAAkBgT,GAChD,GAAIA,EAAMw1D,IACR,OAAO,EAET,IAAIntH,EAAI23D,EAAM33D,EACVC,EAAI03D,EAAM13D,EAEVuuH,EAAK3gJ,KAAK0H,EAAEisC,OAAOxhB,GACnByuH,EAAMzuH,EAAE2hB,SAASH,OAAOxhB,GAAGmhB,QAAQqtG,GAAIrtG,QAAQtzC,KAAK2H,GACxD,OAA2C,IAApCyqB,EAAE0hB,SAASN,QAAQotG,GAAKzkH,KAAK,IAGtCyiH,EAAW7jJ,UAAU8lJ,gBACjB,SAAyBv2D,EAAQQ,EAAQC,GAGvC,IAFA,IAAI+1D,EAAU9gJ,KAAKk/I,YACf6B,EAAU/gJ,KAAKm/I,YACV79I,EAAI,EAAGA,EAAIgpF,EAAO9vF,OAAQ8G,IAAK,CACtC,IAAIuc,EAAQ7d,KAAKogJ,WAAWt1D,EAAOxpF,IAC/Bs9B,EAAI0rD,EAAOhpF,GACXwqF,EAAOltD,EAAEmtD,WAETluE,EAAMge,GAAGuG,WACXvkB,EAAMge,GAAG2J,OACT5G,EAAIA,EAAE8G,KAAI,IAER7nB,EAAMie,GAAGsG,WACXvkB,EAAMie,GAAG0J,OACTsmD,EAAOA,EAAKpmD,KAAI,IAGlBo7G,EAAY,EAAJx/I,GAASs9B,EACjBkiH,EAAY,EAAJx/I,EAAQ,GAAKwqF,EACrBi1D,EAAY,EAAJz/I,GAASuc,EAAMge,GACvBklH,EAAY,EAAJz/I,EAAQ,GAAKuc,EAAMie,GAK7B,IAHA,IAAI9e,EAAMhd,KAAK4qF,YAAY,EAAGk2D,EAASC,EAAa,EAAJz/I,EAAOypF,GAG9CvpF,EAAI,EAAGA,EAAQ,EAAJF,EAAOE,IACzBs/I,EAAQt/I,GAAK,KACbu/I,EAAQv/I,GAAK,KAEf,OAAOwb,GAwBbuhB,EAAS6gH,EAAOv/I,EAAK8pF,WAErBi1D,EAAW7jJ,UAAU+uF,MAAQ,SAAe33D,EAAGC,EAAGitH,GAChD,OAAO,IAAID,EAAMp/I,KAAMmyB,EAAGC,EAAGitH,IAG/BT,EAAW7jJ,UAAUkuF,cAAgB,SAAuBzpF,EAAK6iC,GAC/D,OAAO+8G,EAAM4B,SAAShhJ,KAAMR,EAAK6iC,IAGnC+8G,EAAMrkJ,UAAUgxF,SAAW,WACzB,GAAK/rF,KAAK4pF,MAAMo1D,KAAhB,CAGA,IAAIt8C,EAAM1iG,KAAK6pF,YACf,GAAI6Y,GAAOA,EAAI5W,KACb,OAAO4W,EAAI5W,KAEb,IAAIA,EAAO9rF,KAAK4pF,MAAME,MAAM9pF,KAAKmyB,EAAEwhB,OAAO3zC,KAAK4pF,MAAMo1D,KAAKlzD,MAAO9rF,KAAKoyB,GACtE,GAAIswE,EAAK,CACP,IAAI9Y,EAAQ5pF,KAAK4pF,MACbq3D,EAAU,SAASriH,GACrB,OAAOgrD,EAAME,MAAMlrD,EAAEzM,EAAEwhB,OAAOi2C,EAAMo1D,KAAKlzD,MAAOltD,EAAExM,IAEpDswE,EAAI5W,KAAOA,EACXA,EAAKjC,YAAc,CACjBiC,KAAM,KACN3wD,IAAKunE,EAAIvnE,KAAO,CACdkb,IAAKqsD,EAAIvnE,IAAIkb,IACbi0C,OAAQoY,EAAIvnE,IAAImvD,OAAOpgF,IAAI+2I,IAE7Bj3D,QAAS0Y,EAAI1Y,SAAW,CACtB/Y,KAAMyxB,EAAI1Y,QAAQ/Y,KAClBqZ,OAAQoY,EAAI1Y,QAAQM,OAAOpgF,IAAI+2I,KAIrC,OAAOn1D,IAGTszD,EAAMrkJ,UAAUi4B,OAAS,WACvB,OAAKhzB,KAAK6pF,YAGH,CAAE7pF,KAAKmyB,EAAGnyB,KAAKoyB,EAAGpyB,KAAK6pF,aAAe,CAC3CG,QAAShqF,KAAK6pF,YAAYG,SAAW,CACnC/Y,KAAMjxE,KAAK6pF,YAAYG,QAAQ/Y,KAC/BqZ,OAAQtqF,KAAK6pF,YAAYG,QAAQM,OAAOpsF,MAAM,IAEhDi9B,IAAKn7B,KAAK6pF,YAAY1uD,KAAO,CAC3Bkb,IAAKr2C,KAAK6pF,YAAY1uD,IAAIkb,IAC1Bi0C,OAAQtqF,KAAK6pF,YAAY1uD,IAAImvD,OAAOpsF,MAAM,MATrC,CAAE8B,KAAKmyB,EAAGnyB,KAAKoyB,IAc1BgtH,EAAM4B,SAAW,SAAkBp3D,EAAOpqF,EAAK6iC,GAC1B,iBAAR7iC,IACTA,EAAMkyD,KAAKxvD,MAAM1C,IACnB,IAAIwd,EAAM4sE,EAAME,MAAMtqF,EAAI,GAAIA,EAAI,GAAI6iC,GACtC,IAAK7iC,EAAI,GACP,OAAOwd,EAET,SAASkkI,EAAU1hJ,GACjB,OAAOoqF,EAAME,MAAMtqF,EAAI,GAAIA,EAAI,GAAI6iC,GAGrC,IAAIqgE,EAAMljG,EAAI,GAYd,OAXAwd,EAAI6sE,YAAc,CAChBiC,KAAM,KACN9B,QAAS0Y,EAAI1Y,SAAW,CACtB/Y,KAAMyxB,EAAI1Y,QAAQ/Y,KAClBqZ,OAAQ,CAAEttE,GAAMjc,OAAO2hG,EAAI1Y,QAAQM,OAAOpgF,IAAIg3I,KAEhD/lH,IAAKunE,EAAIvnE,KAAO,CACdkb,IAAKqsD,EAAIvnE,IAAIkb,IACbi0C,OAAQ,CAAEttE,GAAMjc,OAAO2hG,EAAIvnE,IAAImvD,OAAOpgF,IAAIg3I,MAGvClkI,GAGToiI,EAAMrkJ,UAAU03B,QAAU,WACxB,OAAIzyB,KAAK6iG,aACA,sBACF,gBAAkB7iG,KAAKmyB,EAAE+gB,UAAUl4C,SAAS,GAAI,GACnD,OAASgF,KAAKoyB,EAAE8gB,UAAUl4C,SAAS,GAAI,GAAK,KAGlDokJ,EAAMrkJ,UAAU8nG,WAAa,WAC3B,OAAO7iG,KAAKs/I,KAGdF,EAAMrkJ,UAAU+rC,IAAM,SAAalI,GAEjC,GAAI5+B,KAAKs/I,IACP,OAAO1gH,EAGT,GAAIA,EAAE0gH,IACJ,OAAOt/I,KAGT,GAAIA,KAAK4yC,GAAGhU,GACV,OAAO5+B,KAAKisF,MAGd,GAAIjsF,KAAK0lC,MAAMkN,GAAGhU,GAChB,OAAO5+B,KAAK4pF,MAAME,MAAM,KAAM,MAGhC,GAAwB,IAApB9pF,KAAKmyB,EAAE2Q,IAAIlE,EAAEzM,GACf,OAAOnyB,KAAK4pF,MAAME,MAAM,KAAM,MAEhC,IAAI3hF,EAAInI,KAAKoyB,EAAEmhB,OAAO3U,EAAExM,GACN,IAAdjqB,EAAEg0B,KAAK,KACTh0B,EAAIA,EAAEwrC,OAAO3zC,KAAKmyB,EAAEohB,OAAO3U,EAAEzM,GAAGgiB,YAClC,IAAIgtG,EAAKh5I,EAAE2rC,SAASN,QAAQxzC,KAAKmyB,GAAGqhB,QAAQ5U,EAAEzM,GAC1CivH,EAAKj5I,EAAEwrC,OAAO3zC,KAAKmyB,EAAEohB,OAAO4tG,IAAK3tG,QAAQxzC,KAAKoyB,GAClD,OAAOpyB,KAAK4pF,MAAME,MAAMq3D,EAAIC,IAG9BhC,EAAMrkJ,UAAUkxF,IAAM,WACpB,GAAIjsF,KAAKs/I,IACP,OAAOt/I,KAGT,IAAIqhJ,EAAMrhJ,KAAKoyB,EAAEihB,OAAOrzC,KAAKoyB,GAC7B,GAAoB,IAAhBivH,EAAIllH,KAAK,GACX,OAAOn8B,KAAK4pF,MAAME,MAAM,KAAM,MAEhC,IAAIpiF,EAAI1H,KAAK4pF,MAAMliF,EAEfoqC,EAAK9xC,KAAKmyB,EAAE2hB,SACZwtG,EAAQD,EAAIltG,UACZhsC,EAAI2pC,EAAGuB,OAAOvB,GAAIwB,QAAQxB,GAAIwB,QAAQ5rC,GAAGisC,OAAO2tG,GAEhDH,EAAKh5I,EAAE2rC,SAASN,QAAQxzC,KAAKmyB,EAAEkhB,OAAOrzC,KAAKmyB,IAC3CivH,EAAKj5I,EAAEwrC,OAAO3zC,KAAKmyB,EAAEohB,OAAO4tG,IAAK3tG,QAAQxzC,KAAKoyB,GAClD,OAAOpyB,KAAK4pF,MAAME,MAAMq3D,EAAIC,IAG9BhC,EAAMrkJ,UAAU2wF,KAAO,WACrB,OAAO1rF,KAAKmyB,EAAE+gB,WAGhBksG,EAAMrkJ,UAAU4wF,KAAO,WACrB,OAAO3rF,KAAKoyB,EAAE8gB,WAGhBksG,EAAMrkJ,UAAUm5B,IAAM,SAAa1M,GAEjC,OADAA,EAAI,IAAIkT,EAAGlT,EAAG,IACVxnB,KAAK6iG,aACA7iG,KACAA,KAAKgsF,YAAYxkE,GACjBxnB,KAAK4pF,MAAMG,aAAa/pF,KAAMwnB,GAC9BxnB,KAAK4pF,MAAMo1D,KACXh/I,KAAK4pF,MAAMi3D,gBAAgB,CAAE7gJ,MAAQ,CAAEwnB,IAEvCxnB,KAAK4pF,MAAMY,SAASxqF,KAAMwnB,IAGrC43H,EAAMrkJ,UAAUwmJ,OAAS,SAAgB1lH,EAAI2kH,EAAI1kH,GAC/C,IAAIwuD,EAAS,CAAEtqF,KAAMwgJ,GACjB11D,EAAS,CAAEjvD,EAAIC,GACnB,OAAI97B,KAAK4pF,MAAMo1D,KACNh/I,KAAK4pF,MAAMi3D,gBAAgBv2D,EAAQQ,GAEnC9qF,KAAK4pF,MAAMgB,YAAY,EAAGN,EAAQQ,EAAQ,IAGrDs0D,EAAMrkJ,UAAUymJ,QAAU,SAAiB3lH,EAAI2kH,EAAI1kH,GACjD,IAAIwuD,EAAS,CAAEtqF,KAAMwgJ,GACjB11D,EAAS,CAAEjvD,EAAIC,GACnB,OAAI97B,KAAK4pF,MAAMo1D,KACNh/I,KAAK4pF,MAAMi3D,gBAAgBv2D,EAAQQ,GAAQ,GAE3C9qF,KAAK4pF,MAAMgB,YAAY,EAAGN,EAAQQ,EAAQ,GAAG,IAGxDs0D,EAAMrkJ,UAAU63C,GAAK,SAAYhU,GAC/B,OAAO5+B,OAAS4+B,GACT5+B,KAAKs/I,MAAQ1gH,EAAE0gH,MACVt/I,KAAKs/I,KAA2B,IAApBt/I,KAAKmyB,EAAE2Q,IAAIlE,EAAEzM,IAAgC,IAApBnyB,KAAKoyB,EAAE0Q,IAAIlE,EAAExM,KAGhEgtH,EAAMrkJ,UAAU2qC,IAAM,SAAa+7G,GACjC,GAAIzhJ,KAAKs/I,IACP,OAAOt/I,KAET,IAAIgd,EAAMhd,KAAK4pF,MAAME,MAAM9pF,KAAKmyB,EAAGnyB,KAAKoyB,EAAEgiB,UAC1C,GAAIqtG,GAAezhJ,KAAK6pF,YAAa,CACnC,IAAI6Y,EAAM1iG,KAAK6pF,YACX63D,EAAS,SAAS9iH,GACpB,OAAOA,EAAE8G,OAEX1oB,EAAI6sE,YAAc,CAChB1uD,IAAKunE,EAAIvnE,KAAO,CACdkb,IAAKqsD,EAAIvnE,IAAIkb,IACbi0C,OAAQoY,EAAIvnE,IAAImvD,OAAOpgF,IAAIw3I,IAE7B13D,QAAS0Y,EAAI1Y,SAAW,CACtB/Y,KAAMyxB,EAAI1Y,QAAQ/Y,KAClBqZ,OAAQoY,EAAI1Y,QAAQM,OAAOpgF,IAAIw3I,KAIrC,OAAO1kI,GAGToiI,EAAMrkJ,UAAUmwF,IAAM,WACpB,OAAIlrF,KAAKs/I,IACAt/I,KAAK4pF,MAAMQ,OAAO,KAAM,KAAM,MAE7BpqF,KAAK4pF,MAAMQ,OAAOpqF,KAAKmyB,EAAGnyB,KAAKoyB,EAAGpyB,KAAK4pF,MAAM3zC,MAwBzD1X,EAASghH,EAAQ1/I,EAAK8pF,WAEtBi1D,EAAW7jJ,UAAUqvF,OAAS,SAAgBj4D,EAAGC,EAAGkJ,GAClD,OAAO,IAAIikH,EAAOv/I,KAAMmyB,EAAGC,EAAGkJ,IAGhCikH,EAAOxkJ,UAAUwvF,IAAM,WACrB,GAAIvqF,KAAK6iG,aACP,OAAO7iG,KAAK4pF,MAAME,MAAM,KAAM,MAEhC,IAAI63D,EAAO3hJ,KAAKs7B,EAAE6Y,UACdytG,EAAQD,EAAK7tG,SACb6sG,EAAK3gJ,KAAKmyB,EAAEwhB,OAAOiuG,GACnBC,EAAK7hJ,KAAKoyB,EAAEuhB,OAAOiuG,GAAOjuG,OAAOguG,GAErC,OAAO3hJ,KAAK4pF,MAAME,MAAM62D,EAAIkB,IAG9BtC,EAAOxkJ,UAAU2qC,IAAM,WACrB,OAAO1lC,KAAK4pF,MAAMQ,OAAOpqF,KAAKmyB,EAAGnyB,KAAKoyB,EAAEgiB,SAAUp0C,KAAKs7B,IAGzDikH,EAAOxkJ,UAAU+rC,IAAM,SAAalI,GAElC,GAAI5+B,KAAK6iG,aACP,OAAOjkE,EAGT,GAAIA,EAAEikE,aACJ,OAAO7iG,KAGT,IAAI8hJ,EAAMljH,EAAEtD,EAAEwY,SACViuG,EAAK/hJ,KAAKs7B,EAAEwY,SACZ1X,EAAKp8B,KAAKmyB,EAAEwhB,OAAOmuG,GACnBzlH,EAAKuC,EAAEzM,EAAEwhB,OAAOouG,GAChB/6D,EAAKhnF,KAAKoyB,EAAEuhB,OAAOmuG,EAAInuG,OAAO/U,EAAEtD,IAChC2rD,EAAKroD,EAAExM,EAAEuhB,OAAOouG,EAAGpuG,OAAO3zC,KAAKs7B,IAE/BgU,EAAIlT,EAAGmX,OAAOlX,GACd7B,EAAIwsD,EAAGzzC,OAAO0zC,GAClB,GAAkB,IAAd33C,EAAEnT,KAAK,GACT,OAAkB,IAAd3B,EAAE2B,KAAK,GACFn8B,KAAK4pF,MAAMQ,OAAO,KAAM,KAAM,MAE9BpqF,KAAKisF,MAGhB,IAAIw3C,EAAKn0F,EAAEwE,SACP4vF,EAAKD,EAAG9vF,OAAOrE,GACf/gC,EAAI6tB,EAAGuX,OAAO8vF,GAEd0d,EAAK3mH,EAAEsZ,SAASR,QAAQowF,GAAIlwF,QAAQjlC,GAAGilC,QAAQjlC,GAC/C6yI,EAAK5mH,EAAEmZ,OAAOplC,EAAEilC,QAAQ2tG,IAAK3tG,QAAQwzC,EAAGrzC,OAAO+vF,IAC/Cse,EAAKhiJ,KAAKs7B,EAAEqY,OAAO/U,EAAEtD,GAAGqY,OAAOrE,GAEnC,OAAOtvC,KAAK4pF,MAAMQ,OAAO+2D,EAAIC,EAAIY,IAGnCzC,EAAOxkJ,UAAUsvF,SAAW,SAAkBzrD,GAE5C,GAAI5+B,KAAK6iG,aACP,OAAOjkE,EAAEssD,MAGX,GAAItsD,EAAEikE,aACJ,OAAO7iG,KAGT,IAAI+hJ,EAAK/hJ,KAAKs7B,EAAEwY,SACZ1X,EAAKp8B,KAAKmyB,EACVkK,EAAKuC,EAAEzM,EAAEwhB,OAAOouG,GAChB/6D,EAAKhnF,KAAKoyB,EACV60D,EAAKroD,EAAExM,EAAEuhB,OAAOouG,GAAIpuG,OAAO3zC,KAAKs7B,GAEhCgU,EAAIlT,EAAGmX,OAAOlX,GACd7B,EAAIwsD,EAAGzzC,OAAO0zC,GAClB,GAAkB,IAAd33C,EAAEnT,KAAK,GACT,OAAkB,IAAd3B,EAAE2B,KAAK,GACFn8B,KAAK4pF,MAAMQ,OAAO,KAAM,KAAM,MAE9BpqF,KAAKisF,MAGhB,IAAIw3C,EAAKn0F,EAAEwE,SACP4vF,EAAKD,EAAG9vF,OAAOrE,GACf/gC,EAAI6tB,EAAGuX,OAAO8vF,GAEd0d,EAAK3mH,EAAEsZ,SAASR,QAAQowF,GAAIlwF,QAAQjlC,GAAGilC,QAAQjlC,GAC/C6yI,EAAK5mH,EAAEmZ,OAAOplC,EAAEilC,QAAQ2tG,IAAK3tG,QAAQwzC,EAAGrzC,OAAO+vF,IAC/Cse,EAAKhiJ,KAAKs7B,EAAEqY,OAAOrE,GAEvB,OAAOtvC,KAAK4pF,MAAMQ,OAAO+2D,EAAIC,EAAIY,IAGnCzC,EAAOxkJ,UAAU4vF,KAAO,SAAcl2D,GACpC,GAAY,IAARA,EACF,OAAOz0B,KACT,GAAIA,KAAK6iG,aACP,OAAO7iG,KACT,IAAKy0B,EACH,OAAOz0B,KAAKisF,MAEd,IAAI3qF,EACJ,GAAItB,KAAK4pF,MAAMk1D,OAAS9+I,KAAK4pF,MAAMm1D,OAAQ,CACzC,IAAIvkH,EAAIx6B,KACR,IAAKsB,EAAI,EAAGA,EAAImzB,EAAKnzB,IACnBk5B,EAAIA,EAAEyxD,MACR,OAAOzxD,EAKT,IAAI9yB,EAAI1H,KAAK4pF,MAAMliF,EACfm3I,EAAO7+I,KAAK4pF,MAAMi1D,KAElBoD,EAAKjiJ,KAAKmyB,EACV+vH,EAAKliJ,KAAKoyB,EACV+vH,EAAKniJ,KAAKs7B,EACV8mH,EAAMD,EAAGruG,SAASA,SAGlBuuG,EAAMH,EAAG7uG,OAAO6uG,GACpB,IAAK5gJ,EAAI,EAAGA,EAAImzB,EAAKnzB,IAAK,CACxB,IAAIghJ,EAAML,EAAGnuG,SACTyuG,EAAOF,EAAIvuG,SACX0uG,EAAOD,EAAKzuG,SACZ3rC,EAAIm6I,EAAIjvG,OAAOivG,GAAKhvG,QAAQgvG,GAAKhvG,QAAQ5rC,EAAEisC,OAAOyuG,IAElDloE,EAAK+nE,EAAGtuG,OAAO4uG,GACfpB,EAAKh5I,EAAE2rC,SAASN,QAAQ0mC,EAAG7mC,OAAO6mC,IAClCuM,EAAKvM,EAAG1mC,QAAQ2tG,GAChBsB,EAAMt6I,EAAEwrC,OAAO8yC,GACnBg8D,EAAMA,EAAInvG,QAAQmvG,GAAKjvG,QAAQgvG,GAC/B,IAAIR,EAAKK,EAAI1uG,OAAOwuG,GAChB7gJ,EAAI,EAAImzB,IACV2tH,EAAMA,EAAIzuG,OAAO6uG,IAEnBP,EAAKd,EACLgB,EAAKH,EACLK,EAAMI,EAGR,OAAOziJ,KAAK4pF,MAAMQ,OAAO63D,EAAII,EAAI1uG,OAAOkrG,GAAOsD,IAGjD5C,EAAOxkJ,UAAUkxF,IAAM,WACrB,OAAIjsF,KAAK6iG,aACA7iG,KAELA,KAAK4pF,MAAMk1D,MACN9+I,KAAK0iJ,WACL1iJ,KAAK4pF,MAAMm1D,OACX/+I,KAAK2iJ,YAEL3iJ,KAAK4iJ,QAGhBrD,EAAOxkJ,UAAU2nJ,SAAW,WAC1B,IAAIvB,EACAC,EACAY,EAEJ,GAAIhiJ,KAAKw/I,KAAM,CAMb,IAAIqD,EAAK7iJ,KAAKmyB,EAAE2hB,SAEZgvG,EAAK9iJ,KAAKoyB,EAAE0hB,SAEZivG,EAAOD,EAAGhvG,SAEV9Z,EAAIh6B,KAAKmyB,EAAEkhB,OAAOyvG,GAAIhvG,SAASN,QAAQqvG,GAAIrvG,QAAQuvG,GACvD/oH,EAAIA,EAAEsZ,QAAQtZ,GAEd,IAAI3a,EAAIwjI,EAAGxvG,OAAOwvG,GAAIvvG,QAAQuvG,GAE1B/6I,EAAIuX,EAAEy0B,SAASN,QAAQxZ,GAAGwZ,QAAQxZ,GAGlCgpH,EAAQD,EAAKzvG,QAAQyvG,GAEzBC,GADAA,EAAQA,EAAM1vG,QAAQ0vG,IACR1vG,QAAQ0vG,GAGtB7B,EAAKr5I,EAELs5I,EAAK/hI,EAAEs0B,OAAO3Z,EAAEwZ,QAAQ1rC,IAAI0rC,QAAQwvG,GAEpChB,EAAKhiJ,KAAKoyB,EAAEihB,OAAOrzC,KAAKoyB,OACnB,CAML,IAAI1qB,EAAI1H,KAAKmyB,EAAE2hB,SAEXnsC,EAAI3H,KAAKoyB,EAAE0hB,SAEX3rC,EAAIR,EAAEmsC,SAENza,EAAIr5B,KAAKmyB,EAAEkhB,OAAO1rC,GAAGmsC,SAASN,QAAQ9rC,GAAG8rC,QAAQrrC,GACrDkxB,EAAIA,EAAEia,QAAQja,GAEd,IAAIr2B,EAAI0E,EAAE2rC,OAAO3rC,GAAG4rC,QAAQ5rC,GAExBmV,EAAI7Z,EAAE8wC,SAGNmvG,EAAK96I,EAAEmrC,QAAQnrC,GAEnB86I,GADAA,EAAKA,EAAG3vG,QAAQ2vG,IACR3vG,QAAQ2vG,GAGhB9B,EAAKtkI,EAAE22B,QAAQna,GAAGma,QAAQna,GAE1B+nH,EAAKp+I,EAAE2wC,OAAOta,EAAEma,QAAQ2tG,IAAK3tG,QAAQyvG,GAGrCjB,GADAA,EAAKhiJ,KAAKoyB,EAAEuhB,OAAO3zC,KAAKs7B,IAChBgY,QAAQ0uG,GAGlB,OAAOhiJ,KAAK4pF,MAAMQ,OAAO+2D,EAAIC,EAAIY,IAGnCzC,EAAOxkJ,UAAU4nJ,UAAY,WAC3B,IAAIxB,EACAC,EACAY,EAEJ,GAAIhiJ,KAAKw/I,KAAM,CAMb,IAAIqD,EAAK7iJ,KAAKmyB,EAAE2hB,SAEZgvG,EAAK9iJ,KAAKoyB,EAAE0hB,SAEZivG,EAAOD,EAAGhvG,SAEV9Z,EAAIh6B,KAAKmyB,EAAEkhB,OAAOyvG,GAAIhvG,SAASN,QAAQqvG,GAAIrvG,QAAQuvG,GACvD/oH,EAAIA,EAAEsZ,QAAQtZ,GAEd,IAAI3a,EAAIwjI,EAAGxvG,OAAOwvG,GAAIvvG,QAAQuvG,GAAIvvG,QAAQtzC,KAAK4pF,MAAMliF,GAEjDI,EAAIuX,EAAEy0B,SAASN,QAAQxZ,GAAGwZ,QAAQxZ,GAEtCmnH,EAAKr5I,EAEL,IAAIk7I,EAAQD,EAAKzvG,QAAQyvG,GAEzBC,GADAA,EAAQA,EAAM1vG,QAAQ0vG,IACR1vG,QAAQ0vG,GACtB5B,EAAK/hI,EAAEs0B,OAAO3Z,EAAEwZ,QAAQ1rC,IAAI0rC,QAAQwvG,GAEpChB,EAAKhiJ,KAAKoyB,EAAEihB,OAAOrzC,KAAKoyB,OACnB,CAKL,IAAI2f,EAAQ/xC,KAAKs7B,EAAEwY,SAEfovG,EAAQljJ,KAAKoyB,EAAE0hB,SAEfg4C,EAAO9rF,KAAKmyB,EAAEwhB,OAAOuvG,GAErBC,EAAQnjJ,KAAKmyB,EAAEohB,OAAOxB,GAAO4B,OAAO3zC,KAAKmyB,EAAEkhB,OAAOtB,IACtDoxG,EAAQA,EAAM9vG,OAAO8vG,GAAO7vG,QAAQ6vG,GAEpC,IAAIC,EAAQt3D,EAAKx4C,QAAQw4C,GAErBu3D,GADJD,EAAQA,EAAM9vG,QAAQ8vG,IACJ/vG,OAAO+vG,GACzBjC,EAAKgC,EAAMrvG,SAASN,QAAQ6vG,GAE5BrB,EAAKhiJ,KAAKoyB,EAAEihB,OAAOrzC,KAAKs7B,GAAGwY,SAASN,QAAQ0vG,GAAO1vG,QAAQzB,GAE3D,IAAIuxG,EAAUJ,EAAMpvG,SAGpBwvG,GADAA,GADAA,EAAUA,EAAQhwG,QAAQgwG,IACRhwG,QAAQgwG,IACRhwG,QAAQgwG,GAC1BlC,EAAK+B,EAAMxvG,OAAOyvG,EAAM5vG,QAAQ2tG,IAAK3tG,QAAQ8vG,GAG/C,OAAOtjJ,KAAK4pF,MAAMQ,OAAO+2D,EAAIC,EAAIY,IAGnCzC,EAAOxkJ,UAAU6nJ,KAAO,WACtB,IAAIl7I,EAAI1H,KAAK4pF,MAAMliF,EAGfu6I,EAAKjiJ,KAAKmyB,EACV+vH,EAAKliJ,KAAKoyB,EACV+vH,EAAKniJ,KAAKs7B,EACV8mH,EAAMD,EAAGruG,SAASA,SAElBwuG,EAAML,EAAGnuG,SACTyvG,EAAMrB,EAAGpuG,SAET3rC,EAAIm6I,EAAIjvG,OAAOivG,GAAKhvG,QAAQgvG,GAAKhvG,QAAQ5rC,EAAEisC,OAAOyuG,IAElDoB,EAAOvB,EAAG5uG,OAAO4uG,GAEjB/nE,GADJspE,EAAOA,EAAKlwG,QAAQkwG,IACN7vG,OAAO4vG,GACjBpC,EAAKh5I,EAAE2rC,SAASN,QAAQ0mC,EAAG7mC,OAAO6mC,IAClCuM,EAAKvM,EAAG1mC,QAAQ2tG,GAEhBsC,EAAOF,EAAIzvG,SAGf2vG,GADAA,GADAA,EAAOA,EAAKnwG,QAAQmwG,IACRnwG,QAAQmwG,IACRnwG,QAAQmwG,GACpB,IAAIrC,EAAKj5I,EAAEwrC,OAAO8yC,GAAIjzC,QAAQiwG,GAC1BzB,EAAKE,EAAG7uG,OAAO6uG,GAAIvuG,OAAOwuG,GAE9B,OAAOniJ,KAAK4pF,MAAMQ,OAAO+2D,EAAIC,EAAIY,IAGnCzC,EAAOxkJ,UAAU2oJ,KAAO,WACtB,IAAK1jJ,KAAK4pF,MAAMk1D,MACd,OAAO9+I,KAAKisF,MAAMnlD,IAAI9mC,MAMxB,IAAI6iJ,EAAK7iJ,KAAKmyB,EAAE2hB,SAEZgvG,EAAK9iJ,KAAKoyB,EAAE0hB,SAEZ6vG,EAAK3jJ,KAAKs7B,EAAEwY,SAEZivG,EAAOD,EAAGhvG,SAEVz0B,EAAIwjI,EAAGxvG,OAAOwvG,GAAIvvG,QAAQuvG,GAE1Be,EAAKvkI,EAAEy0B,SAEP9wC,EAAIhD,KAAKmyB,EAAEkhB,OAAOyvG,GAAIhvG,SAASN,QAAQqvG,GAAIrvG,QAAQuvG,GAKnDc,GAFJ7gJ,GADAA,GADAA,EAAIA,EAAEswC,QAAQtwC,IACRqwC,OAAOrwC,GAAGswC,QAAQtwC,IAClBwwC,QAAQowG,IAEH9vG,SAEPhsC,EAAIi7I,EAAKzvG,QAAQyvG,GAGrBj7I,GADAA,GADAA,EAAIA,EAAEwrC,QAAQxrC,IACRwrC,QAAQxrC,IACRwrC,QAAQxrC,GAEd,IAAI0uC,EAAIn3B,EAAEi0B,QAAQtwC,GAAG8wC,SAASN,QAAQowG,GAAIpwG,QAAQqwG,GAAIrwG,QAAQ1rC,GAE1Dg8I,EAAOhB,EAAGnvG,OAAO6C,GAErBstG,GADAA,EAAOA,EAAKxwG,QAAQwwG,IACRxwG,QAAQwwG,GACpB,IAAI3C,EAAKnhJ,KAAKmyB,EAAEwhB,OAAOkwG,GAAIrwG,QAAQswG,GAEnC3C,GADAA,EAAKA,EAAG7tG,QAAQ6tG,IACR7tG,QAAQ6tG,GAEhB,IAAIC,EAAKphJ,KAAKoyB,EAAEuhB,OAAO6C,EAAE7C,OAAO7rC,EAAE0rC,QAAQgD,IAAIhD,QAAQxwC,EAAE2wC,OAAOkwG,KAG/DzC,GADAA,GADAA,EAAKA,EAAG9tG,QAAQ8tG,IACR9tG,QAAQ8tG,IACR9tG,QAAQ8tG,GAEhB,IAAIY,EAAKhiJ,KAAKs7B,EAAE+X,OAAOrwC,GAAG8wC,SAASN,QAAQmwG,GAAInwG,QAAQqwG,GAEvD,OAAO7jJ,KAAK4pF,MAAMQ,OAAO+2D,EAAIC,EAAIY,IAGnCzC,EAAOxkJ,UAAUm5B,IAAM,SAAa1M,EAAGu8H,GAGrC,OAFAv8H,EAAI,IAAIkT,EAAGlT,EAAGu8H,GAEP/jJ,KAAK4pF,MAAMY,SAASxqF,KAAMwnB,IAGnC+3H,EAAOxkJ,UAAU63C,GAAK,SAAYhU,GAChC,GAAe,WAAXA,EAAE11B,KACJ,OAAOlJ,KAAK4yC,GAAGhU,EAAEssD,OAEnB,GAAIlrF,OAAS4+B,EACX,OAAO,EAGT,IAAImjH,EAAK/hJ,KAAKs7B,EAAEwY,SACZguG,EAAMljH,EAAEtD,EAAEwY,SACd,GAA2D,IAAvD9zC,KAAKmyB,EAAEwhB,OAAOmuG,GAAKtuG,QAAQ5U,EAAEzM,EAAEwhB,OAAOouG,IAAK5lH,KAAK,GAClD,OAAO,EAGT,IAAI6nH,EAAKjC,EAAGpuG,OAAO3zC,KAAKs7B,GACpB2oH,EAAMnC,EAAInuG,OAAO/U,EAAEtD,GACvB,OAA8D,IAAvDt7B,KAAKoyB,EAAEuhB,OAAOswG,GAAKzwG,QAAQ5U,EAAExM,EAAEuhB,OAAOqwG,IAAK7nH,KAAK,IAGzDojH,EAAOxkJ,UAAUmpJ,OAAS,SAAgB/xH,GACxC,IAAIgyH,EAAKnkJ,KAAKs7B,EAAEwY,SACZlG,EAAKzb,EAAE2gB,MAAM9yC,KAAK4pF,MAAMvnD,KAAKsR,OAAOwwG,GACxC,GAAuB,IAAnBnkJ,KAAKmyB,EAAE2Q,IAAI8K,GACb,OAAO,EAIT,IAFA,IAAIw2G,EAAKjyH,EAAE3xB,QACPsH,EAAI9H,KAAK4pF,MAAMH,KAAK91C,OAAOwwG,KACtB,CAEP,GADAC,EAAGx9G,KAAK5mC,KAAK4pF,MAAMjnE,GACfyhI,EAAGthH,IAAI9iC,KAAK4pF,MAAMhrD,IAAM,EAC1B,OAAO,EAGT,GADAgP,EAAG0F,QAAQxrC,GACY,IAAnB9H,KAAKmyB,EAAE2Q,IAAI8K,GACb,OAAO,IAIb2xG,EAAOxkJ,UAAU03B,QAAU,WACzB,OAAIzyB,KAAK6iG,aACA,uBACF,iBAAmB7iG,KAAKmyB,EAAEn3B,SAAS,GAAI,GAC1C,OAASgF,KAAKoyB,EAAEp3B,SAAS,GAAI,GAC7B,OAASgF,KAAKs7B,EAAEtgC,SAAS,GAAI,GAAK,KAGxCukJ,EAAOxkJ,UAAU8nG,WAAa,WAE5B,OAA0B,IAAnB7iG,KAAKs7B,EAAEa,KAAK,K,6BCt6BrB,IAAIzB,EAAK37B,EAAQ,KACbw/B,EAAWx/B,EAAQ,KACnBc,EAAOd,EAAQ,KAEf07B,EAAQ17B,EAAQ,KAEpB,SAASslJ,EAAUr7D,GACjBnpF,EAAK5E,KAAK+E,KAAM,OAAQgpF,GAExBhpF,KAAK0H,EAAI,IAAIgzB,EAAGsuD,EAAKthF,EAAG,IAAIorC,MAAM9yC,KAAKqiC,KACvCriC,KAAK2H,EAAI,IAAI+yB,EAAGsuD,EAAKrhF,EAAG,IAAImrC,MAAM9yC,KAAKqiC,KACvCriC,KAAKskJ,GAAK,IAAI5pH,EAAG,GAAGoY,MAAM9yC,KAAKqiC,KAAK8R,UACpCn0C,KAAKwtD,IAAM,IAAI9yB,EAAG,GAAGoY,MAAM9yC,KAAKqiC,KAChCriC,KAAKukJ,IAAMvkJ,KAAKskJ,GAAG3wG,OAAO3zC,KAAK0H,EAAE2rC,OAAOrzC,KAAKwtD,MAc/C,SAAS4xF,EAAMx1D,EAAOz3D,EAAGmJ,GACvBz7B,EAAK8pF,UAAU1uF,KAAK+E,KAAM4pF,EAAO,cACvB,OAANz3D,GAAoB,OAANmJ,GAChBt7B,KAAKmyB,EAAInyB,KAAK4pF,MAAM3zC,IACpBj2C,KAAKs7B,EAAIt7B,KAAK4pF,MAAMr8B,OAEpBvtD,KAAKmyB,EAAI,IAAIuI,EAAGvI,EAAG,IACnBnyB,KAAKs7B,EAAI,IAAIZ,EAAGY,EAAG,IACdt7B,KAAKmyB,EAAEkQ,MACVriC,KAAKmyB,EAAInyB,KAAKmyB,EAAE2gB,MAAM9yC,KAAK4pF,MAAMvnD,MAC9BriC,KAAKs7B,EAAE+G,MACVriC,KAAKs7B,EAAIt7B,KAAKs7B,EAAEwX,MAAM9yC,KAAK4pF,MAAMvnD,OAvBvC9D,EAAS8lH,EAAWxkJ,GACpB1D,EAAOT,QAAU2oJ,EAEjBA,EAAUtpJ,UAAU+7E,SAAW,SAAkBgT,GAC/C,IAAI33D,EAAI23D,EAAM06D,YAAYryH,EACtB2f,EAAK3f,EAAE2hB,SACP8sG,EAAM9uG,EAAG6B,OAAOxhB,GAAGkhB,OAAOvB,EAAG6B,OAAO3zC,KAAK0H,IAAI2rC,OAAOlhB,GAGxD,OAA+B,IAFvByuH,EAAI3sG,UAEHH,SAAShR,IAAI89G,IAiBxBriH,EAAS6gH,EAAOv/I,EAAK8pF,WAErB06D,EAAUtpJ,UAAUswF,YAAc,SAAqBj4D,EAAOtxB,GAC5D,OAAO9B,KAAK8pF,MAAMrvD,EAAMnwB,QAAQ8oB,EAAOtxB,GAAM,IAG/CuiJ,EAAUtpJ,UAAU+uF,MAAQ,SAAe33D,EAAGmJ,GAC5C,OAAO,IAAI8jH,EAAMp/I,KAAMmyB,EAAGmJ,IAG5B+oH,EAAUtpJ,UAAUkuF,cAAgB,SAAuBzpF,GACzD,OAAO4/I,EAAM4B,SAAShhJ,KAAMR,IAG9B4/I,EAAMrkJ,UAAU6wF,WAAa,aAI7BwzD,EAAMrkJ,UAAUywF,QAAU,WACxB,OAAOxrF,KAAK0rF,OAAOphF,QAAQ,KAAMtK,KAAK4pF,MAAMhrD,EAAE/Q,eAGhDuxH,EAAM4B,SAAW,SAAkBp3D,EAAOpqF,GACxC,OAAO,IAAI4/I,EAAMx1D,EAAOpqF,EAAI,GAAIA,EAAI,IAAMoqF,EAAM3zC,MAGlDmpG,EAAMrkJ,UAAU03B,QAAU,WACxB,OAAIzyB,KAAK6iG,aACA,sBACF,gBAAkB7iG,KAAKmyB,EAAE+gB,UAAUl4C,SAAS,GAAI,GACnD,OAASgF,KAAKs7B,EAAE4X,UAAUl4C,SAAS,GAAI,GAAK,KAGlDokJ,EAAMrkJ,UAAU8nG,WAAa,WAE3B,OAA0B,IAAnB7iG,KAAKs7B,EAAEa,KAAK,IAGrBijH,EAAMrkJ,UAAUkxF,IAAM,WAKpB,IAEIw4D,EAFIzkJ,KAAKmyB,EAAEkhB,OAAOrzC,KAAKs7B,GAEhBwY,SAIP4wG,EAFI1kJ,KAAKmyB,EAAEohB,OAAOvzC,KAAKs7B,GAEhBwY,SAEP3rC,EAAIs8I,EAAGlxG,OAAOmxG,GAEdvD,EAAKsD,EAAG9wG,OAAO+wG,GAEf1C,EAAK75I,EAAEwrC,OAAO+wG,EAAGrxG,OAAOrzC,KAAK4pF,MAAM26D,IAAI5wG,OAAOxrC,KAClD,OAAOnI,KAAK4pF,MAAME,MAAMq3D,EAAIa,IAG9B5C,EAAMrkJ,UAAU+rC,IAAM,WACpB,MAAM,IAAIxrC,MAAM,sCAGlB8jJ,EAAMrkJ,UAAU4pJ,QAAU,SAAiB/lH,EAAGzB,GAK5C,IAAIz1B,EAAI1H,KAAKmyB,EAAEkhB,OAAOrzC,KAAKs7B,GAEvB3zB,EAAI3H,KAAKmyB,EAAEohB,OAAOvzC,KAAKs7B,GAEvBnzB,EAAIy2B,EAAEzM,EAAEkhB,OAAOzU,EAAEtD,GAIjBipG,EAFI3lG,EAAEzM,EAAEohB,OAAO3U,EAAEtD,GAEVqY,OAAOjsC,GAEd8T,EAAKrT,EAAEwrC,OAAOhsC,GAEdw5I,EAAKhkH,EAAK7B,EAAEqY,OAAO4wF,EAAGlxF,OAAO73B,GAAIs4B,UAEjCkuG,EAAK7kH,EAAKhL,EAAEwhB,OAAO4wF,EAAG/wF,QAAQh4B,GAAIs4B,UACtC,OAAO9zC,KAAK4pF,MAAME,MAAMq3D,EAAIa,IAG9B5C,EAAMrkJ,UAAUm5B,IAAM,SAAa1M,GAMjC,IALA,IAAI1f,EAAI0f,EAAEhnB,QACNkH,EAAI1H,KACJ2H,EAAI3H,KAAK4pF,MAAME,MAAM,KAAM,MAGtB5uD,EAAO,GAAkB,IAAdpzB,EAAEq0B,KAAK,GAAUr0B,EAAE6zB,OAAO,GAC5CT,EAAKt5B,KAAKkG,EAAE0zB,MAAM,IAEpB,IAAK,IAAIl6B,EAAI45B,EAAK1gC,OAAS,EAAG8G,GAAK,EAAGA,IACpB,IAAZ45B,EAAK55B,IAEPoG,EAAIA,EAAEi9I,QAAQh9I,EARV3H,MAUJ2H,EAAIA,EAAEskF,QAGNtkF,EAAID,EAAEi9I,QAAQh9I,EAbV3H,MAeJ0H,EAAIA,EAAEukF,OAGV,OAAOtkF,GAGTy3I,EAAMrkJ,UAAUwmJ,OAAS,WACvB,MAAM,IAAIjmJ,MAAM,sCAGlB8jJ,EAAMrkJ,UAAU6pJ,QAAU,WACxB,MAAM,IAAItpJ,MAAM,sCAGlB8jJ,EAAMrkJ,UAAU63C,GAAK,SAAY+a,GAC/B,OAAyC,IAAlC3tD,KAAK0rF,OAAO5oD,IAAI6qB,EAAM+9B,SAG/B0zD,EAAMrkJ,UAAUypJ,UAAY,WAG1B,OAFAxkJ,KAAKmyB,EAAInyB,KAAKmyB,EAAEwhB,OAAO3zC,KAAKs7B,EAAE6Y,WAC9Bn0C,KAAKs7B,EAAIt7B,KAAK4pF,MAAM3zC,IACbj2C,MAGTo/I,EAAMrkJ,UAAU2wF,KAAO,WAIrB,OAFA1rF,KAAKwkJ,YAEExkJ,KAAKmyB,EAAE+gB,Y,6BC9KhB,IAAIzY,EAAQ17B,EAAQ,KAChB27B,EAAK37B,EAAQ,KACbw/B,EAAWx/B,EAAQ,KACnBc,EAAOd,EAAQ,KAEfs7B,EAASI,EAAMJ,OAEnB,SAASwqH,EAAa77D,GAEpBhpF,KAAK8kJ,QAA2B,IAAP,EAAT97D,EAAKthF,GACrB1H,KAAK+kJ,MAAQ/kJ,KAAK8kJ,UAA6B,IAAR,EAAT97D,EAAKthF,GACnC1H,KAAKqvC,SAAWrvC,KAAK+kJ,MAErBllJ,EAAK5E,KAAK+E,KAAM,UAAWgpF,GAE3BhpF,KAAK0H,EAAI,IAAIgzB,EAAGsuD,EAAKthF,EAAG,IAAIkpC,KAAK5wC,KAAKqiC,IAAIhjB,GAC1Crf,KAAK0H,EAAI1H,KAAK0H,EAAEorC,MAAM9yC,KAAKqiC,KAC3BriC,KAAKmI,EAAI,IAAIuyB,EAAGsuD,EAAK7gF,EAAG,IAAI2qC,MAAM9yC,KAAKqiC,KACvCriC,KAAKyhG,GAAKzhG,KAAKmI,EAAE2rC,SACjB9zC,KAAKq5B,EAAI,IAAIqB,EAAGsuD,EAAK3vD,EAAG,IAAIyZ,MAAM9yC,KAAKqiC,KACvCriC,KAAKglJ,GAAKhlJ,KAAKq5B,EAAEga,OAAOrzC,KAAKq5B,GAE7BgB,GAAQr6B,KAAK8kJ,SAAwC,IAA7B9kJ,KAAKmI,EAAE+qC,UAAU/W,KAAK,IAC9Cn8B,KAAKilJ,KAAwB,IAAP,EAATj8D,EAAK7gF,GAwFpB,SAASi3I,EAAMx1D,EAAOz3D,EAAGC,EAAGkJ,EAAGxzB,GAC7BjI,EAAK8pF,UAAU1uF,KAAK+E,KAAM4pF,EAAO,cACvB,OAANz3D,GAAoB,OAANC,GAAoB,OAANkJ,GAC9Bt7B,KAAKmyB,EAAInyB,KAAK4pF,MAAMr8B,KACpBvtD,KAAKoyB,EAAIpyB,KAAK4pF,MAAM3zC,IACpBj2C,KAAKs7B,EAAIt7B,KAAK4pF,MAAM3zC,IACpBj2C,KAAK8H,EAAI9H,KAAK4pF,MAAMr8B,KACpBvtD,KAAKw/I,MAAO,IAEZx/I,KAAKmyB,EAAI,IAAIuI,EAAGvI,EAAG,IACnBnyB,KAAKoyB,EAAI,IAAIsI,EAAGtI,EAAG,IACnBpyB,KAAKs7B,EAAIA,EAAI,IAAIZ,EAAGY,EAAG,IAAMt7B,KAAK4pF,MAAM3zC,IACxCj2C,KAAK8H,EAAIA,GAAK,IAAI4yB,EAAG5yB,EAAG,IACnB9H,KAAKmyB,EAAEkQ,MACVriC,KAAKmyB,EAAInyB,KAAKmyB,EAAE2gB,MAAM9yC,KAAK4pF,MAAMvnD,MAC9BriC,KAAKoyB,EAAEiQ,MACVriC,KAAKoyB,EAAIpyB,KAAKoyB,EAAE0gB,MAAM9yC,KAAK4pF,MAAMvnD,MAC9BriC,KAAKs7B,EAAE+G,MACVriC,KAAKs7B,EAAIt7B,KAAKs7B,EAAEwX,MAAM9yC,KAAK4pF,MAAMvnD,MAC/BriC,KAAK8H,IAAM9H,KAAK8H,EAAEu6B,MACpBriC,KAAK8H,EAAI9H,KAAK8H,EAAEgrC,MAAM9yC,KAAK4pF,MAAMvnD,MACnCriC,KAAKw/I,KAAOx/I,KAAKs7B,IAAMt7B,KAAK4pF,MAAM3zC,IAG9Bj2C,KAAK4pF,MAAMv6C,WAAarvC,KAAK8H,IAC/B9H,KAAK8H,EAAI9H,KAAKmyB,EAAEwhB,OAAO3zC,KAAKoyB,GACvBpyB,KAAKw/I,OACRx/I,KAAK8H,EAAI9H,KAAK8H,EAAE6rC,OAAO3zC,KAAKs7B,EAAE6Y,cAjHtC5V,EAASsmH,EAAchlJ,GACvB1D,EAAOT,QAAUmpJ,EAEjBA,EAAa9pJ,UAAUmqJ,MAAQ,SAAelqH,GAC5C,OAAIh7B,KAAK+kJ,MACA/pH,EAAIoZ,SAEJp0C,KAAK0H,EAAEisC,OAAO3Y,IAGzB6pH,EAAa9pJ,UAAUoqJ,MAAQ,SAAenqH,GAC5C,OAAIh7B,KAAKilJ,KACAjqH,EAEAh7B,KAAKmI,EAAEwrC,OAAO3Y,IAIzB6pH,EAAa9pJ,UAAUqvF,OAAS,SAAgBj4D,EAAGC,EAAGkJ,EAAGxzB,GACvD,OAAO9H,KAAK8pF,MAAM33D,EAAGC,EAAGkJ,EAAGxzB,IAG7B+8I,EAAa9pJ,UAAUuwF,WAAa,SAAoBn5D,EAAG2b,IACzD3b,EAAI,IAAIuI,EAAGvI,EAAG,KACPkQ,MACLlQ,EAAIA,EAAE2gB,MAAM9yC,KAAKqiC,MAEnB,IAAIyP,EAAK3f,EAAE2hB,SACP8sG,EAAM5gJ,KAAKyhG,GAAGluD,OAAOvzC,KAAK0H,EAAEisC,OAAO7B,IACnCszG,EAAMplJ,KAAKi2C,IAAI1C,OAAOvzC,KAAKyhG,GAAG9tD,OAAO3zC,KAAKq5B,GAAGsa,OAAO7B,IAEpDouG,EAAKU,EAAIjtG,OAAOyxG,EAAIjxG,WACpB/hB,EAAI8tH,EAAGjsG,UACX,GAA6C,IAAzC7hB,EAAE0hB,SAASP,OAAO2sG,GAAIp9G,IAAI9iC,KAAKutD,MACjC,MAAM,IAAIjyD,MAAM,iBAElB,IAAImgC,EAAQrJ,EAAE8gB,UAAUzX,QAIxB,OAHIqS,IAAQrS,IAAUqS,GAAOrS,KAC3BrJ,EAAIA,EAAEgiB,UAEDp0C,KAAK8pF,MAAM33D,EAAGC,IAGvByyH,EAAa9pJ,UAAUsqJ,WAAa,SAAoBjzH,EAAG0b,IACzD1b,EAAI,IAAIsI,EAAGtI,EAAG,KACPiQ,MACLjQ,EAAIA,EAAE0gB,MAAM9yC,KAAKqiC,MAGnB,IAAI69G,EAAK9tH,EAAE0hB,SACPsxG,EAAMlF,EAAG3sG,OAAOvzC,KAAKyhG,IACrBm/C,EAAMV,EAAGvsG,OAAO3zC,KAAKq5B,GAAGsa,OAAO3zC,KAAKyhG,IAAIluD,OAAOvzC,KAAK0H,GACpDoqC,EAAKszG,EAAIzxG,OAAOitG,EAAIzsG,WAExB,GAA0B,IAAtBrC,EAAGhP,IAAI9iC,KAAKutD,MAAa,CAC3B,GAAIzf,EACF,MAAM,IAAIxyC,MAAM,iBAEhB,OAAO0E,KAAK8pF,MAAM9pF,KAAKutD,KAAMn7B,GAGjC,IAAID,EAAI2f,EAAGmC,UACX,GAA6C,IAAzC9hB,EAAE2hB,SAASP,OAAOzB,GAAIhP,IAAI9iC,KAAKutD,MACjC,MAAM,IAAIjyD,MAAM,iBAKlB,OAHI62B,EAAE+gB,UAAUzX,UAAYqS,IAC1B3b,EAAIA,EAAEiiB,UAEDp0C,KAAK8pF,MAAM33D,EAAGC,IAGvByyH,EAAa9pJ,UAAU+7E,SAAW,SAAkBgT,GAClD,GAAIA,EAAM+Y,aACR,OAAO,EAGT/Y,EAAM06D,YAEN,IAAI1yG,EAAKg4C,EAAM33D,EAAE2hB,SACbosG,EAAKp2D,EAAM13D,EAAE0hB,SACbsxG,EAAMtzG,EAAG6B,OAAO3zC,KAAK0H,GAAG2rC,OAAO6sG,GAC/BU,EAAM5gJ,KAAKyhG,GAAG9tD,OAAO3zC,KAAKi2C,IAAI5C,OAAOrzC,KAAKq5B,EAAEsa,OAAO7B,GAAI6B,OAAOusG,KAElE,OAAwB,IAAjBkF,EAAItiH,IAAI89G,IAkCjBriH,EAAS6gH,EAAOv/I,EAAK8pF,WAErBk7D,EAAa9pJ,UAAUkuF,cAAgB,SAAuBzpF,GAC5D,OAAO4/I,EAAM4B,SAAShhJ,KAAMR,IAG9BqlJ,EAAa9pJ,UAAU+uF,MAAQ,SAAe33D,EAAGC,EAAGkJ,EAAGxzB,GACrD,OAAO,IAAIs3I,EAAMp/I,KAAMmyB,EAAGC,EAAGkJ,EAAGxzB,IAGlCs3I,EAAM4B,SAAW,SAAkBp3D,EAAOpqF,GACxC,OAAO,IAAI4/I,EAAMx1D,EAAOpqF,EAAI,GAAIA,EAAI,GAAIA,EAAI,KAG9C4/I,EAAMrkJ,UAAU03B,QAAU,WACxB,OAAIzyB,KAAK6iG,aACA,sBACF,gBAAkB7iG,KAAKmyB,EAAE+gB,UAAUl4C,SAAS,GAAI,GACnD,OAASgF,KAAKoyB,EAAE8gB,UAAUl4C,SAAS,GAAI,GACvC,OAASgF,KAAKs7B,EAAE4X,UAAUl4C,SAAS,GAAI,GAAK,KAGlDokJ,EAAMrkJ,UAAU8nG,WAAa,WAE3B,OAA0B,IAAnB7iG,KAAKmyB,EAAEgK,KAAK,KACO,IAAvBn8B,KAAKoyB,EAAE0Q,IAAI9iC,KAAKs7B,IAChBt7B,KAAKw/I,MAAqC,IAA7Bx/I,KAAKoyB,EAAE0Q,IAAI9iC,KAAK4pF,MAAMzhF,KAGxCi3I,EAAMrkJ,UAAUuqJ,QAAU,WAMxB,IAAI59I,EAAI1H,KAAKmyB,EAAE2hB,SAEXnsC,EAAI3H,KAAKoyB,EAAE0hB,SAEX3rC,EAAInI,KAAKs7B,EAAEwY,SACf3rC,EAAIA,EAAEmrC,QAAQnrC,GAEd,IAAIkxB,EAAIr5B,KAAK4pF,MAAMs7D,MAAMx9I,GAErB1E,EAAIhD,KAAKmyB,EAAEkhB,OAAOrzC,KAAKoyB,GAAG0hB,SAASN,QAAQ9rC,GAAG8rC,QAAQ7rC,GAEtD0pC,EAAIhY,EAAEga,OAAO1rC,GAEbkV,EAAIw0B,EAAEkC,OAAOprC,GAEbmnC,EAAIjW,EAAEka,OAAO5rC,GAEbw5I,EAAKn+I,EAAE2wC,OAAO92B,GAEdukI,EAAK/vG,EAAEsC,OAAOrE,GAEdi2G,EAAKviJ,EAAE2wC,OAAOrE,GAEd0yG,EAAKnlI,EAAE82B,OAAOtC,GAClB,OAAOrxC,KAAK4pF,MAAME,MAAMq3D,EAAIC,EAAIY,EAAIuD,IAGtCnG,EAAMrkJ,UAAUyqJ,SAAW,WAQzB,IAMIrE,EACAC,EACAY,EACAh/I,EACAssC,EACA9tC,EAXAmG,EAAI3H,KAAKmyB,EAAEkhB,OAAOrzC,KAAKoyB,GAAG0hB,SAE1B3rC,EAAInI,KAAKmyB,EAAE2hB,SAEXza,EAAIr5B,KAAKoyB,EAAE0hB,SAQf,GAAI9zC,KAAK4pF,MAAMk7D,QAAS,CAItB,IAAIjoI,GAFJ7Z,EAAIhD,KAAK4pF,MAAMs7D,MAAM/8I,IAEXkrC,OAAOha,GACbr5B,KAAKw/I,MAEP2B,EAAKx5I,EAAE4rC,OAAOprC,GAAGorC,OAAOla,GAAGsa,OAAO92B,EAAE02B,OAAOvzC,KAAK4pF,MAAMp8B,MAEtD4zF,EAAKvkI,EAAE82B,OAAO3wC,EAAEuwC,OAAOla,IAEvB2oH,EAAKnlI,EAAEi3B,SAASP,OAAO12B,GAAG02B,OAAO12B,KAGjCyyB,EAAItvC,KAAKs7B,EAAEwY,SAEXtyC,EAAIqb,EAAE02B,OAAOjE,GAAGkE,QAAQlE,GAExB6xG,EAAKx5I,EAAE4rC,OAAOprC,GAAGqrC,QAAQna,GAAGsa,OAAOnyC,GAEnC4/I,EAAKvkI,EAAE82B,OAAO3wC,EAAEuwC,OAAOla,IAEvB2oH,EAAKnlI,EAAE82B,OAAOnyC,SAIhBwB,EAAImF,EAAEkrC,OAAOha,GAEbiW,EAAItvC,KAAK4pF,MAAMu7D,MAAMnlJ,KAAKs7B,GAAGwY,SAE7BtyC,EAAIwB,EAAEuwC,OAAOjE,GAAGiE,OAAOjE,GAEvB6xG,EAAKnhJ,KAAK4pF,MAAMu7D,MAAMx9I,EAAE6rC,QAAQxwC,IAAI2wC,OAAOnyC,GAE3C4/I,EAAKphJ,KAAK4pF,MAAMu7D,MAAMniJ,GAAG2wC,OAAOxrC,EAAEqrC,QAAQna,IAE1C2oH,EAAKh/I,EAAE2wC,OAAOnyC,GAEhB,OAAOxB,KAAK4pF,MAAME,MAAMq3D,EAAIC,EAAIY,IAGlC5C,EAAMrkJ,UAAUkxF,IAAM,WACpB,OAAIjsF,KAAK6iG,aACA7iG,KAGLA,KAAK4pF,MAAMv6C,SACNrvC,KAAKslJ,UAELtlJ,KAAKwlJ,YAGhBpG,EAAMrkJ,UAAU0qJ,QAAU,SAAiB7mH,GAMzC,IAAIl3B,EAAI1H,KAAKoyB,EAAEmhB,OAAOvzC,KAAKmyB,GAAGwhB,OAAO/U,EAAExM,EAAEmhB,OAAO3U,EAAEzM,IAE9CxqB,EAAI3H,KAAKoyB,EAAEihB,OAAOrzC,KAAKmyB,GAAGwhB,OAAO/U,EAAExM,EAAEihB,OAAOzU,EAAEzM,IAE9ChqB,EAAInI,KAAK8H,EAAE6rC,OAAO3zC,KAAK4pF,MAAMo7D,IAAIrxG,OAAO/U,EAAE92B,GAE1CuxB,EAAIr5B,KAAKs7B,EAAEqY,OAAO/U,EAAEtD,EAAE+X,OAAOzU,EAAEtD,IAE/Bt4B,EAAI2E,EAAE4rC,OAAO7rC,GAEbmV,EAAIwc,EAAEka,OAAOprC,GAEbkpC,EAAIhY,EAAEga,OAAOlrC,GAEbmnC,EAAI3nC,EAAE0rC,OAAO3rC,GAEby5I,EAAKn+I,EAAE2wC,OAAO92B,GAEdukI,EAAK/vG,EAAEsC,OAAOrE,GAEdi2G,EAAKviJ,EAAE2wC,OAAOrE,GAEd0yG,EAAKnlI,EAAE82B,OAAOtC,GAClB,OAAOrxC,KAAK4pF,MAAME,MAAMq3D,EAAIC,EAAIY,EAAIuD,IAGtCnG,EAAMrkJ,UAAU2qJ,SAAW,SAAkB9mH,GAO3C,IAgBIwiH,EACAY,EAjBAt6I,EAAI1H,KAAKs7B,EAAEqY,OAAO/U,EAAEtD,GAEpB3zB,EAAID,EAAEosC,SAEN3rC,EAAInI,KAAKmyB,EAAEwhB,OAAO/U,EAAEzM,GAEpBkH,EAAIr5B,KAAKoyB,EAAEuhB,OAAO/U,EAAExM,GAEpBpvB,EAAIhD,KAAK4pF,MAAMvwD,EAAEsa,OAAOxrC,GAAGwrC,OAAOta,GAElCxc,EAAIlV,EAAE4rC,OAAOvwC,GAEbquC,EAAI1pC,EAAE0rC,OAAOrwC,GAEb+iB,EAAM/lB,KAAKmyB,EAAEkhB,OAAOrzC,KAAKoyB,GAAGuhB,OAAO/U,EAAEzM,EAAEkhB,OAAOzU,EAAExM,IAAIohB,QAAQrrC,GAAGqrC,QAAQna,GACvE8nH,EAAKz5I,EAAEisC,OAAO92B,GAAG82B,OAAO5tB,GAc5B,OAXI/lB,KAAK4pF,MAAMk7D,SAEb1D,EAAK15I,EAAEisC,OAAOtC,GAAGsC,OAAOta,EAAEka,OAAOvzC,KAAK4pF,MAAMs7D,MAAM/8I,KAElD65I,EAAKnlI,EAAE82B,OAAOtC,KAGd+vG,EAAK15I,EAAEisC,OAAOtC,GAAGsC,OAAOta,EAAEka,OAAOprC,IAEjC65I,EAAKhiJ,KAAK4pF,MAAMu7D,MAAMtoI,GAAG82B,OAAOtC,IAE3BrxC,KAAK4pF,MAAME,MAAMq3D,EAAIC,EAAIY,IAGlC5C,EAAMrkJ,UAAU+rC,IAAM,SAAalI,GACjC,OAAI5+B,KAAK6iG,aACAjkE,EACLA,EAAEikE,aACG7iG,KAELA,KAAK4pF,MAAMv6C,SACNrvC,KAAKylJ,QAAQ7mH,GAEb5+B,KAAK0lJ,SAAS9mH,IAGzBwgH,EAAMrkJ,UAAUm5B,IAAM,SAAa1M,GACjC,OAAIxnB,KAAKgsF,YAAYxkE,GACZxnB,KAAK4pF,MAAMG,aAAa/pF,KAAMwnB,GAE9BxnB,KAAK4pF,MAAMY,SAASxqF,KAAMwnB,IAGrC43H,EAAMrkJ,UAAUwmJ,OAAS,SAAgB1lH,EAAI+C,EAAG9C,GAC9C,OAAO97B,KAAK4pF,MAAMgB,YAAY,EAAG,CAAE5qF,KAAM4+B,GAAK,CAAE/C,EAAIC,GAAM,GAAG,IAG/DsjH,EAAMrkJ,UAAUymJ,QAAU,SAAiB3lH,EAAI+C,EAAG9C,GAChD,OAAO97B,KAAK4pF,MAAMgB,YAAY,EAAG,CAAE5qF,KAAM4+B,GAAK,CAAE/C,EAAIC,GAAM,GAAG,IAG/DsjH,EAAMrkJ,UAAUypJ,UAAY,WAC1B,GAAIxkJ,KAAKw/I,KACP,OAAOx/I,KAGT,IAAI2lJ,EAAK3lJ,KAAKs7B,EAAE6Y,UAOhB,OANAn0C,KAAKmyB,EAAInyB,KAAKmyB,EAAEwhB,OAAOgyG,GACvB3lJ,KAAKoyB,EAAIpyB,KAAKoyB,EAAEuhB,OAAOgyG,GACnB3lJ,KAAK8H,IACP9H,KAAK8H,EAAI9H,KAAK8H,EAAE6rC,OAAOgyG,IACzB3lJ,KAAKs7B,EAAIt7B,KAAK4pF,MAAM3zC,IACpBj2C,KAAKw/I,MAAO,EACLx/I,MAGTo/I,EAAMrkJ,UAAU2qC,IAAM,WACpB,OAAO1lC,KAAK4pF,MAAME,MAAM9pF,KAAKmyB,EAAEiiB,SAC7Bp0C,KAAKoyB,EACLpyB,KAAKs7B,EACLt7B,KAAK8H,GAAK9H,KAAK8H,EAAEssC,WAGrBgrG,EAAMrkJ,UAAU2wF,KAAO,WAErB,OADA1rF,KAAKwkJ,YACExkJ,KAAKmyB,EAAE+gB,WAGhBksG,EAAMrkJ,UAAU4wF,KAAO,WAErB,OADA3rF,KAAKwkJ,YACExkJ,KAAKoyB,EAAE8gB,WAGhBksG,EAAMrkJ,UAAU63C,GAAK,SAAY+a,GAC/B,OAAO3tD,OAAS2tD,GACyB,IAAlC3tD,KAAK0rF,OAAO5oD,IAAI6qB,EAAM+9B,SACY,IAAlC1rF,KAAK2rF,OAAO7oD,IAAI6qB,EAAMg+B,SAG/ByzD,EAAMrkJ,UAAUmpJ,OAAS,SAAgB/xH,GACvC,IAAIyb,EAAKzb,EAAE2gB,MAAM9yC,KAAK4pF,MAAMvnD,KAAKsR,OAAO3zC,KAAKs7B,GAC7C,GAAuB,IAAnBt7B,KAAKmyB,EAAE2Q,IAAI8K,GACb,OAAO,EAIT,IAFA,IAAIw2G,EAAKjyH,EAAE3xB,QACPsH,EAAI9H,KAAK4pF,MAAMH,KAAK91C,OAAO3zC,KAAKs7B,KAC3B,CAEP,GADA8oH,EAAGx9G,KAAK5mC,KAAK4pF,MAAMjnE,GACfyhI,EAAGthH,IAAI9iC,KAAK4pF,MAAMhrD,IAAM,EAC1B,OAAO,EAGT,GADAgP,EAAG0F,QAAQxrC,GACY,IAAnB9H,KAAKmyB,EAAE2Q,IAAI8K,GACb,OAAO,IAKbwxG,EAAMrkJ,UAAUwvF,IAAM60D,EAAMrkJ,UAAUypJ,UACtCpF,EAAMrkJ,UAAUsvF,SAAW+0D,EAAMrkJ,UAAU+rC,K,6BChb3CprC,EAAQ69F,KAAOx6F,EAAQ,MACvBrD,EAAQ89F,OAASz6F,EAAQ,MACzBrD,EAAQ+9F,OAAS16F,EAAQ,MACzBrD,EAAQg+F,OAAS36F,EAAQ,MACzBrD,EAAQi+F,OAAS56F,EAAQ,O,6BCJzB,IAAI07B,EAAQ17B,EAAQ,KAChBkkG,EAASlkG,EAAQ,KACjBmyH,EAAYnyH,EAAQ,MAEpBmgC,EAASzE,EAAMyE,OACfC,EAAQ1E,EAAM0E,MACdG,EAAU7E,EAAM6E,QAChBuxF,EAAOK,EAAUL,KACjB98C,EAAYkvB,EAAOlvB,UAEnB6xE,EAAS,CACX,WAAY,WACZ,WAAY,YAGd,SAAS/kF,IACP,KAAM7gE,gBAAgB6gE,GACpB,OAAO,IAAIA,EAEbkT,EAAU94E,KAAK+E,MACfA,KAAKsvC,EAAI,CACP,WAAY,WAAY,WACxB,UAAY,YACdtvC,KAAK4gE,EAAI,IAAInxD,MAAM,IAGrBgrB,EAAM8D,SAASsiC,EAAMkT,GACrB53E,EAAOT,QAAUmlE,EAEjBA,EAAK98D,UAAY,IACjB88D,EAAKoT,QAAU,IACfpT,EAAKqT,aAAe,GACpBrT,EAAKsT,UAAY,GAEjBtT,EAAK9lE,UAAUkiD,QAAU,SAAiB3iB,EAAKzb,GAG7C,IAFA,IAAI+hD,EAAI5gE,KAAK4gE,EAEJt/D,EAAI,EAAGA,EAAI,GAAIA,IACtBs/D,EAAEt/D,GAAKg5B,EAAIzb,EAAQvd,GAErB,KAAMA,EAAIs/D,EAAEpmE,OAAQ8G,IAClBs/D,EAAEt/D,GAAK49B,EAAO0hC,EAAEt/D,EAAI,GAAKs/D,EAAEt/D,EAAI,GAAKs/D,EAAEt/D,EAAI,IAAMs/D,EAAEt/D,EAAI,IAAK,GAE7D,IAAIoG,EAAI1H,KAAKsvC,EAAE,GACX3nC,EAAI3H,KAAKsvC,EAAE,GACXnnC,EAAInI,KAAKsvC,EAAE,GACXjW,EAAIr5B,KAAKsvC,EAAE,GACXtsC,EAAIhD,KAAKsvC,EAAE,GAEf,IAAKhuC,EAAI,EAAGA,EAAIs/D,EAAEpmE,OAAQ8G,IAAK,CAC7B,IAAI04B,KAAO14B,EAAI,IACXwG,EAAIw3B,EAAQJ,EAAOx3B,EAAG,GAAImpH,EAAK72F,EAAGryB,EAAGQ,EAAGkxB,GAAIr2B,EAAG49D,EAAEt/D,GAAIskJ,EAAO5rH,IAChEh3B,EAAIq2B,EACJA,EAAIlxB,EACJA,EAAI+2B,EAAOv3B,EAAG,IACdA,EAAID,EACJA,EAAII,EAGN9H,KAAKsvC,EAAE,GAAKnQ,EAAMn/B,KAAKsvC,EAAE,GAAI5nC,GAC7B1H,KAAKsvC,EAAE,GAAKnQ,EAAMn/B,KAAKsvC,EAAE,GAAI3nC,GAC7B3H,KAAKsvC,EAAE,GAAKnQ,EAAMn/B,KAAKsvC,EAAE,GAAInnC,GAC7BnI,KAAKsvC,EAAE,GAAKnQ,EAAMn/B,KAAKsvC,EAAE,GAAIjW,GAC7Br5B,KAAKsvC,EAAE,GAAKnQ,EAAMn/B,KAAKsvC,EAAE,GAAItsC,IAG/B69D,EAAK9lE,UAAUw5E,QAAU,SAAgBzyE,GACvC,MAAY,QAARA,EACK24B,EAAMoE,QAAQ7+B,KAAKsvC,EAAG,OAEtB7U,EAAMuE,QAAQh/B,KAAKsvC,EAAG,S,6BCtEjC,IAAI7U,EAAQ17B,EAAQ,KAChB46E,EAAS56E,EAAQ,MAErB,SAASwsG,IACP,KAAMvrG,gBAAgBurG,GACpB,OAAO,IAAIA,EAEb5xB,EAAO1+E,KAAK+E,MACZA,KAAKsvC,EAAI,CACP,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,YAExC7U,EAAM8D,SAASgtE,EAAQ5xB,GACvBx9E,EAAOT,QAAU6vG,EAEjBA,EAAOxnG,UAAY,IACnBwnG,EAAOt3B,QAAU,IACjBs3B,EAAOr3B,aAAe,IACtBq3B,EAAOp3B,UAAY,GAEnBo3B,EAAOxwG,UAAUw5E,QAAU,SAAgBzyE,GAEzC,MAAY,QAARA,EACK24B,EAAMoE,QAAQ7+B,KAAKsvC,EAAEpxC,MAAM,EAAG,GAAI,OAElCu8B,EAAMuE,QAAQh/B,KAAKsvC,EAAEpxC,MAAM,EAAG,GAAI,S,6BCzB7C,IAAIu8B,EAAQ17B,EAAQ,KAEhBw7E,EAASx7E,EAAQ,MAErB,SAAS0sG,IACP,KAAMzrG,gBAAgByrG,GACpB,OAAO,IAAIA,EAEblxB,EAAOt/E,KAAK+E,MACZA,KAAKsvC,EAAI,CACP,WAAY,WACZ,WAAY,UACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,YAEhB7U,EAAM8D,SAASktE,EAAQlxB,GACvBp+E,EAAOT,QAAU+vG,EAEjBA,EAAO1nG,UAAY,KACnB0nG,EAAOx3B,QAAU,IACjBw3B,EAAOv3B,aAAe,IACtBu3B,EAAOt3B,UAAY,IAEnBs3B,EAAO1wG,UAAUw5E,QAAU,SAAgBzyE,GACzC,MAAY,QAARA,EACK24B,EAAMoE,QAAQ7+B,KAAKsvC,EAAEpxC,MAAM,EAAG,IAAK,OAEnCu8B,EAAMuE,QAAQh/B,KAAKsvC,EAAEpxC,MAAM,EAAG,IAAK,S,6BC/B9C,IAAIu8B,EAAQ17B,EAAQ,KAChBkkG,EAASlkG,EAAQ,KAEjBmgC,EAASzE,EAAMyE,OACfC,EAAQ1E,EAAM0E,MACdC,EAAU3E,EAAM2E,QAChBC,EAAU5E,EAAM4E,QAChB00C,EAAYkvB,EAAOlvB,UAEvB,SAAShB,IACP,KAAM/yE,gBAAgB+yE,GACpB,OAAO,IAAIA,EAEbgB,EAAU94E,KAAK+E,MAEfA,KAAKsvC,EAAI,CAAE,WAAY,WAAY,WAAY,UAAY,YAC3DtvC,KAAK8+B,OAAS,SA0DhB,SAASjiB,EAAErb,EAAG2wB,EAAGC,EAAGkJ,GAClB,OAAI95B,GAAK,GACA2wB,EAAIC,EAAIkJ,EACR95B,GAAK,GACJ2wB,EAAIC,GAAQD,EAAKmJ,EAClB95B,GAAK,IACJ2wB,GAAMC,GAAMkJ,EACb95B,GAAK,GACJ2wB,EAAImJ,EAAMlJ,GAAMkJ,EAEjBnJ,GAAKC,GAAMkJ,GAGtB,SAASkwC,EAAEhqE,GACT,OAAIA,GAAK,GACA,EACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,WAGX,SAASqkJ,EAAGrkJ,GACV,OAAIA,GAAK,GACA,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,EA5FXi5B,EAAM8D,SAASw0C,EAAWgB,GAC1Br4E,EAAQ0nG,UAAYrwB,EAEpBA,EAAUhvE,UAAY,IACtBgvE,EAAUkB,QAAU,IACpBlB,EAAUmB,aAAe,IACzBnB,EAAUoB,UAAY,GAEtBpB,EAAUh4E,UAAUkiD,QAAU,SAAgB3iB,EAAKzb,GAWjD,IAVA,IAAIqyB,EAAIlxC,KAAKsvC,EAAE,GACX6B,EAAInxC,KAAKsvC,EAAE,GACX5vC,EAAIM,KAAKsvC,EAAE,GACX8B,EAAIpxC,KAAKsvC,EAAE,GACX43B,EAAIlnE,KAAKsvC,EAAE,GACXw2G,EAAK50G,EACL60G,EAAK50G,EACLg3E,EAAKzoH,EACLsmJ,EAAK50G,EACL60G,EAAK/+E,EACA1lE,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAIq2B,EAAIsH,EACND,EACEG,EAAQ6R,EAAGr0B,EAAErb,EAAG2vC,EAAGzxC,EAAG0xC,GAAI9W,EAAIE,EAAEh5B,GAAKqd,GAAQ2sD,EAAEhqE,IAC/Cw4B,EAAEx4B,IACJ0lE,GACFh2B,EAAIg2B,EACJA,EAAI91B,EACJA,EAAIlS,EAAOx/B,EAAG,IACdA,EAAIyxC,EACJA,EAAItZ,EACJA,EAAIsH,EACFD,EACEG,EAAQymH,EAAIjpI,EAAE,GAAKrb,EAAGukJ,EAAI59B,EAAI69B,GAAK1rH,EAAI4rH,EAAG1kJ,GAAKqd,GAAQgnI,EAAGrkJ,IAC1D2kJ,EAAG3kJ,IACLykJ,GACFH,EAAKG,EACLA,EAAKD,EACLA,EAAK9mH,EAAOipF,EAAI,IAChBA,EAAK49B,EACLA,EAAKluH,EAEPA,EAAIuH,EAAQp/B,KAAKsvC,EAAE,GAAI5vC,EAAGsmJ,GAC1BhmJ,KAAKsvC,EAAE,GAAKlQ,EAAQp/B,KAAKsvC,EAAE,GAAI8B,EAAG60G,GAClCjmJ,KAAKsvC,EAAE,GAAKlQ,EAAQp/B,KAAKsvC,EAAE,GAAI43B,EAAG4+E,GAClC9lJ,KAAKsvC,EAAE,GAAKlQ,EAAQp/B,KAAKsvC,EAAE,GAAI4B,EAAG60G,GAClC/lJ,KAAKsvC,EAAE,GAAKlQ,EAAQp/B,KAAKsvC,EAAE,GAAI6B,EAAGg3E,GAClCnoH,KAAKsvC,EAAE,GAAKzX,GAGdk7C,EAAUh4E,UAAUw5E,QAAU,SAAgBzyE,GAC5C,MAAY,QAARA,EACK24B,EAAMoE,QAAQ7+B,KAAKsvC,EAAG,UAEtB7U,EAAMuE,QAAQh/B,KAAKsvC,EAAG,WA0CjC,IAAI9U,EAAI,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhD0rH,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDlsH,EAAI,CACN,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAGnDmsH,EAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,K,6BC9ItD,IAAI1rH,EAAQ17B,EAAQ,KAChBs7B,EAASt7B,EAAQ,KAErB,SAASyrH,EAAK1wF,EAAMr8B,EAAKqE,GACvB,KAAM9B,gBAAgBwqH,GACpB,OAAO,IAAIA,EAAK1wF,EAAMr8B,EAAKqE,GAC7B9B,KAAK8kE,KAAOhrC,EACZ95B,KAAK+D,UAAY+1B,EAAK/1B,UAAY,EAClC/D,KAAKi0E,QAAUn6C,EAAKm6C,QAAU,EAC9Bj0E,KAAKmlB,MAAQ,KACbnlB,KAAKomJ,MAAQ,KAEbpmJ,KAAKsiC,MAAM7H,EAAMnwB,QAAQ7M,EAAKqE,IAEhC3F,EAAOT,QAAU8uH,EAEjBA,EAAKzvH,UAAUunC,MAAQ,SAAc7kC,GAE/BA,EAAIjD,OAASwF,KAAK+D,YACpBtG,GAAM,IAAIuC,KAAK8kE,MAAOjgE,OAAOpH,GAAK6nE,UACpCjrC,EAAO58B,EAAIjD,QAAUwF,KAAK+D,WAG1B,IAAK,IAAIzC,EAAI7D,EAAIjD,OAAQ8G,EAAItB,KAAK+D,UAAWzC,IAC3C7D,EAAImE,KAAK,GAEX,IAAKN,EAAI,EAAGA,EAAI7D,EAAIjD,OAAQ8G,IAC1B7D,EAAI6D,IAAM,GAIZ,IAHAtB,KAAKmlB,OAAQ,IAAInlB,KAAK8kE,MAAOjgE,OAAOpH,GAG/B6D,EAAI,EAAGA,EAAI7D,EAAIjD,OAAQ8G,IAC1B7D,EAAI6D,IAAM,IACZtB,KAAKomJ,OAAQ,IAAIpmJ,KAAK8kE,MAAOjgE,OAAOpH,IAGtC+sH,EAAKzvH,UAAU8J,OAAS,SAAgBy1B,EAAKx4B,GAE3C,OADA9B,KAAKmlB,MAAMtgB,OAAOy1B,EAAKx4B,GAChB9B,MAGTwqH,EAAKzvH,UAAUuqE,OAAS,SAAgBxjE,GAEtC,OADA9B,KAAKomJ,MAAMvhJ,OAAO7E,KAAKmlB,MAAMmgD,UACtBtlE,KAAKomJ,MAAM9gF,OAAOxjE,K,cC7C3B3F,EAAOT,QAAU,CACfsuF,QAAS,CACP/Y,KAAM,EACNqZ,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINnvD,IAAK,CACHkb,IAAK,EACLi0C,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,wE,kQCrwBR,IAAI5vD,EAAK37B,EAAQ,KACbsnJ,EAAWtnJ,EAAQ,MACnB07B,EAAQ17B,EAAQ,KAChBwjG,EAASxjG,EAAQ,KACjBwhG,EAAOxhG,EAAQ,KACfs7B,EAASI,EAAMJ,OAEfisH,EAAUvnJ,EAAQ,MAClBwnJ,EAAYxnJ,EAAQ,MAExB,SAAS4+I,EAAG7hJ,GACV,KAAMkE,gBAAgB29I,GACpB,OAAO,IAAIA,EAAG7hJ,GAGO,iBAAZA,IACTu+B,EAAOv/B,OAAOC,UAAU+C,eAAe7C,KAAKsnG,EAAQzmG,GAClD,iBAAmBA,GAErBA,EAAUymG,EAAOzmG,IAIfA,aAAmBymG,EAAOI,cAC5B7mG,EAAU,CAAE8tF,MAAO9tF,IAErBkE,KAAK4pF,MAAQ9tF,EAAQ8tF,MAAMA,MAC3B5pF,KAAK2iB,EAAI3iB,KAAK4pF,MAAMjnE,EACpB3iB,KAAKwmJ,GAAKxmJ,KAAK2iB,EAAEktB,MAAM,GACvB7vC,KAAKqxC,EAAIrxC,KAAK4pF,MAAMv4C,EAGpBrxC,KAAKqxC,EAAIv1C,EAAQ8tF,MAAMv4C,EACvBrxC,KAAKqxC,EAAEu6C,WAAW9vF,EAAQ8tF,MAAMjnE,EAAEyY,YAAc,GAGhDp7B,KAAK85B,KAAOh+B,EAAQg+B,MAAQh+B,EAAQ8tF,MAAM9vD,KAE5C39B,EAAOT,QAAUiiJ,EAEjBA,EAAG5iJ,UAAU0rJ,QAAU,SAAiB3qJ,GACtC,OAAO,IAAIwqJ,EAAQtmJ,KAAMlE,IAG3B6hJ,EAAG5iJ,UAAUyjJ,eAAiB,SAAwB39C,EAAM/+F,GAC1D,OAAOwkJ,EAAQI,YAAY1mJ,KAAM6gG,EAAM/+F,IAGzC67I,EAAG5iJ,UAAU4rJ,cAAgB,SAAuB5K,EAAKj6I,GACvD,OAAOwkJ,EAAQM,WAAW5mJ,KAAM+7I,EAAKj6I,IAGvC67I,EAAG5iJ,UAAU8rJ,WAAa,SAAoB/qJ,GACvCA,IACHA,EAAU,IAcZ,IAXA,IAAIgrJ,EAAO,IAAIT,EAAS,CACtBvsH,KAAM95B,KAAK85B,KACXitH,KAAMjrJ,EAAQirJ,KACdC,QAASlrJ,EAAQkrJ,SAAW,OAC5BC,QAASnrJ,EAAQmrJ,SAAW1mD,EAAKvgG,KAAK85B,KAAKo6C,cAC3CgzE,WAAYprJ,EAAQmrJ,SAAWnrJ,EAAQorJ,YAAc,OACrDC,MAAOnnJ,KAAK2iB,EAAErY,YAGZ8oB,EAAQpzB,KAAK2iB,EAAEkL,aACfu5H,EAAMpnJ,KAAK2iB,EAAErH,IAAI,IAAIof,EAAG,MACnB,CACP,IAAImmE,EAAO,IAAInmE,EAAGosH,EAAKtmD,SAASptE,IAChC,KAAIytE,EAAK/9D,IAAIskH,GAAO,GAIpB,OADAvmD,EAAKz7D,MAAM,GACJplC,KAAKw+I,eAAe39C,KAI/B88C,EAAG5iJ,UAAUssJ,aAAe,SAAsB/sH,EAAKgtH,GACrD,IAAIv1G,EAA2B,EAAnBzX,EAAIzM,aAAmB7tB,KAAK2iB,EAAEyY,YAG1C,OAFI2W,EAAQ,IACVzX,EAAMA,EAAIuV,MAAMkC,KACbu1G,GAAahtH,EAAIwI,IAAI9iC,KAAK2iB,IAAM,EAC5B2X,EAAIhf,IAAItb,KAAK2iB,GAEb2X,GAGXqjH,EAAG5iJ,UAAU+mE,KAAO,SAAcxnC,EAAK78B,EAAKqE,EAAKhG,GAC5B,WAAf,EAAOgG,KACThG,EAAUgG,EACVA,EAAM,MAEHhG,IACHA,EAAU,IAEZ2B,EAAMuC,KAAKw+I,eAAe/gJ,EAAKqE,GAC/Bw4B,EAAMt6B,KAAKqnJ,aAAa,IAAI3sH,EAAGJ,EAAK,KAqBpC,IAlBA,IAAIlH,EAAQpzB,KAAK2iB,EAAEkL,aACf05H,EAAO9pJ,EAAI+pJ,aAAal9I,QAAQ,KAAM8oB,GAGtC+zH,EAAQ7sH,EAAIhwB,QAAQ,KAAM8oB,GAG1B0zH,EAAO,IAAIT,EAAS,CACtBvsH,KAAM95B,KAAK85B,KACXmtH,QAASM,EACTJ,MAAOA,EACPJ,KAAMjrJ,EAAQirJ,KACdC,QAASlrJ,EAAQkrJ,SAAW,SAI1BS,EAAMznJ,KAAK2iB,EAAErH,IAAI,IAAIof,EAAG,IAEnB0jB,EAAO,GAAKA,IAAQ,CAC3B,IAAI52B,EAAI1rB,EAAQ0rB,EACd1rB,EAAQ0rB,EAAE42B,GACV,IAAI1jB,EAAGosH,EAAKtmD,SAASxgG,KAAK2iB,EAAEkL,eAE9B,MADArG,EAAIxnB,KAAKqnJ,aAAa7/H,GAAG,IACnB2U,KAAK,IAAM,GAAK3U,EAAEsb,IAAI2kH,IAAQ,GAApC,CAGA,IAAIC,EAAK1nJ,KAAKqxC,EAAEnd,IAAI1M,GACpB,IAAIkgI,EAAG7kD,aAAP,CAGA,IAAI8kD,EAAMD,EAAGh8D,OACTlxD,EAAImtH,EAAI/2G,KAAK5wC,KAAK2iB,GACtB,GAAkB,IAAd6X,EAAE2B,KAAK,GAAX,CAGA,IAAInC,EAAIxS,EAAEwqB,KAAKhyC,KAAK2iB,GAAGuR,IAAIsG,EAAEtG,IAAIz2B,EAAI+pJ,cAAc5gH,KAAKtM,IAExD,GAAkB,KADlBN,EAAIA,EAAE4W,KAAK5wC,KAAK2iB,IACVwZ,KAAK,GAAX,CAGA,IAAIyrH,GAAiBF,EAAG/7D,OAAOlwD,QAAU,EAAI,IACT,IAAfksH,EAAI7kH,IAAItI,GAAW,EAAI,GAQ5C,OALI1+B,EAAQ+rJ,WAAa7tH,EAAE8I,IAAI9iC,KAAKwmJ,IAAM,IACxCxsH,EAAIh6B,KAAK2iB,EAAErH,IAAI0e,GACf4tH,GAAiB,GAGZ,IAAIrB,EAAU,CAAE/rH,EAAGA,EAAGR,EAAGA,EAAG4tH,cAAeA,UAItDjK,EAAG5iJ,UAAUsiJ,OAAS,SAAgB/iH,EAAK+zD,EAAW5wF,EAAKqE,GACzDw4B,EAAMt6B,KAAKqnJ,aAAa,IAAI3sH,EAAGJ,EAAK,KACpC78B,EAAMuC,KAAK2mJ,cAAclpJ,EAAKqE,GAI9B,IAAI04B,GAHJ6zD,EAAY,IAAIk4D,EAAUl4D,EAAW,QAGnB7zD,EACdR,EAAIq0D,EAAUr0D,EAClB,GAAIQ,EAAE2B,KAAK,GAAK,GAAK3B,EAAEsI,IAAI9iC,KAAK2iB,IAAM,EACpC,OAAO,EACT,GAAIqX,EAAEmC,KAAK,GAAK,GAAKnC,EAAE8I,IAAI9iC,KAAK2iB,IAAM,EACpC,OAAO,EAGT,IAGIic,EAHAkpH,EAAO9tH,EAAEgY,KAAKhyC,KAAK2iB,GACnByZ,EAAK0rH,EAAK5zH,IAAIoG,GAAKsW,KAAK5wC,KAAK2iB,GAC7B0Z,EAAKyrH,EAAK5zH,IAAIsG,GAAGoW,KAAK5wC,KAAK2iB,GAG/B,OAAK3iB,KAAK4pF,MAAMF,gBAWhB9qD,EAAI5+B,KAAKqxC,EAAEmwG,QAAQplH,EAAI3+B,EAAIsqJ,YAAa1rH,IAClCwmE,cAMCjkE,EAAEslH,OAAO1pH,KAjBdoE,EAAI5+B,KAAKqxC,EAAEkwG,OAAOnlH,EAAI3+B,EAAIsqJ,YAAa1rH,IACjCwmE,cAGkC,IAAjCjkE,EAAE8sD,OAAO96C,KAAK5wC,KAAK2iB,GAAGmgB,IAAItI,IAgBrCmjH,EAAG5iJ,UAAUitJ,cAAgB,SAAS1tH,EAAK+zD,EAAW7sF,EAAGM,GACvDu4B,GAAQ,EAAI74B,KAAOA,EAAG,4CACtB6sF,EAAY,IAAIk4D,EAAUl4D,EAAWvsF,GAErC,IAAI6gB,EAAI3iB,KAAK2iB,EACT3f,EAAI,IAAI03B,EAAGJ,GACXE,EAAI6zD,EAAU7zD,EACdR,EAAIq0D,EAAUr0D,EAGdiuH,EAAa,EAAJzmJ,EACT0mJ,EAAc1mJ,GAAK,EACvB,GAAIg5B,EAAEsI,IAAI9iC,KAAK4pF,MAAMhrD,EAAEgS,KAAK5wC,KAAK4pF,MAAMjnE,KAAO,GAAKulI,EACjD,MAAM,IAAI5sJ,MAAM,wCAIhBk/B,EADE0tH,EACEloJ,KAAK4pF,MAAM0B,WAAW9wD,EAAEsM,IAAI9mC,KAAK4pF,MAAMjnE,GAAIslI,GAE3CjoJ,KAAK4pF,MAAM0B,WAAW9wD,EAAGytH,GAE/B,IAAIE,EAAO95D,EAAU7zD,EAAEwX,KAAKrvB,GACxBqkE,EAAKrkE,EAAErH,IAAItY,GAAGkxB,IAAIi0H,GAAMv3G,KAAKjuB,GAC7BskE,EAAKjtD,EAAE9F,IAAIi0H,GAAMv3G,KAAKjuB,GAI1B,OAAO3iB,KAAKqxC,EAAEkwG,OAAOv6D,EAAIxsD,EAAGysD,IAG9B02D,EAAG5iJ,UAAUqtJ,oBAAsB,SAASplJ,EAAGqrF,EAAWhkB,EAAGvoE,GAE3D,GAAgC,QADhCusF,EAAY,IAAIk4D,EAAUl4D,EAAWvsF,IACvB8lJ,cACZ,OAAOv5D,EAAUu5D,cAEnB,IAAK,IAAItmJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI+mJ,EACJ,IACEA,EAASroJ,KAAKgoJ,cAAchlJ,EAAGqrF,EAAW/sF,GAC1C,MAAO0B,GACP,SAGF,GAAIqlJ,EAAOz1G,GAAGy3B,GACZ,OAAO/oE,EAEX,MAAM,IAAIhG,MAAM,0C,6BC/OlB,IAAIw+B,EAAO/6B,EAAQ,KACf07B,EAAQ17B,EAAQ,MAChBs7B,EAASt7B,EAAQ,KAErB,SAASsnJ,EAASvqJ,GAChB,KAAMkE,gBAAgBqmJ,GACpB,OAAO,IAAIA,EAASvqJ,GACtBkE,KAAK85B,KAAOh+B,EAAQg+B,KACpB95B,KAAKsoJ,aAAexsJ,EAAQwsJ,WAE5BtoJ,KAAK61C,OAAS71C,KAAK85B,KAAKm6C,QACxBj0E,KAAKuoJ,WAAazsJ,EAAQysJ,YAAcvoJ,KAAK85B,KAAKo6C,aAElDl0E,KAAKwoJ,QAAU,KACfxoJ,KAAKyoJ,eAAiB,KACtBzoJ,KAAKwrE,EAAI,KACTxrE,KAAK0oJ,EAAI,KAET,IAAIzB,EAAUxsH,EAAMnwB,QAAQxO,EAAQmrJ,QAASnrJ,EAAQorJ,YAAc,OAC/DC,EAAQ1sH,EAAMnwB,QAAQxO,EAAQqrJ,MAAOrrJ,EAAQ6sJ,UAAY,OACzD5B,EAAOtsH,EAAMnwB,QAAQxO,EAAQirJ,KAAMjrJ,EAAQkrJ,SAAW,OAC1D3sH,EAAO4sH,EAAQzsJ,QAAWwF,KAAKuoJ,WAAa,EACrC,mCAAqCvoJ,KAAKuoJ,WAAa,SAC9DvoJ,KAAKsiC,MAAM2kH,EAASE,EAAOJ,GAE7B5qJ,EAAOT,QAAU2qJ,EAEjBA,EAAStrJ,UAAUunC,MAAQ,SAAc2kH,EAASE,EAAOJ,GACvD,IAAItxB,EAAOwxB,EAAQlmJ,OAAOomJ,GAAOpmJ,OAAOgmJ,GAExC/mJ,KAAKwrE,EAAI,IAAI/7D,MAAMzP,KAAK61C,OAAS,GACjC71C,KAAK0oJ,EAAI,IAAIj5I,MAAMzP,KAAK61C,OAAS,GACjC,IAAK,IAAIv0C,EAAI,EAAGA,EAAItB,KAAK0oJ,EAAEluJ,OAAQ8G,IACjCtB,KAAKwrE,EAAElqE,GAAK,EACZtB,KAAK0oJ,EAAEpnJ,GAAK,EAGdtB,KAAKi9C,QAAQw4E,GACbz1H,KAAKwoJ,QAAU,EACfxoJ,KAAKyoJ,eAAiB,iBAGxBpC,EAAStrJ,UAAU6tJ,MAAQ,WACzB,OAAO,IAAI9uH,EAAKqpE,KAAKnjG,KAAK85B,KAAM95B,KAAKwrE,IAGvC66E,EAAStrJ,UAAUkiD,QAAU,SAAgBw4E,GAC3C,IAAIozB,EAAO7oJ,KAAK4oJ,QACA/jJ,OAAO7E,KAAK0oJ,GACZ7jJ,OAAO,CAAE,IACrB4wH,IACFozB,EAAOA,EAAKhkJ,OAAO4wH,IACrBz1H,KAAKwrE,EAAIq9E,EAAKvjF,SACdtlE,KAAK0oJ,EAAI1oJ,KAAK4oJ,QAAQ/jJ,OAAO7E,KAAK0oJ,GAAGpjF,SAChCmwD,IAGLz1H,KAAKwrE,EAAIxrE,KAAK4oJ,QACA/jJ,OAAO7E,KAAK0oJ,GACZ7jJ,OAAO,CAAE,IACTA,OAAO4wH,GACPnwD,SACdtlE,KAAK0oJ,EAAI1oJ,KAAK4oJ,QAAQ/jJ,OAAO7E,KAAK0oJ,GAAGpjF,WAGvC+gF,EAAStrJ,UAAU+tJ,OAAS,SAAgB7B,EAASC,EAAYpgH,EAAKiiH,GAE1C,iBAAf7B,IACT6B,EAASjiH,EACTA,EAAMogH,EACNA,EAAa,MAGfD,EAAUxsH,EAAMnwB,QAAQ28I,EAASC,GACjCpgH,EAAMrM,EAAMnwB,QAAQw8B,EAAKiiH,GAEzB1uH,EAAO4sH,EAAQzsJ,QAAWwF,KAAKuoJ,WAAa,EACrC,mCAAqCvoJ,KAAKuoJ,WAAa,SAE9DvoJ,KAAKi9C,QAAQgqG,EAAQlmJ,OAAO+lC,GAAO,KACnC9mC,KAAKwoJ,QAAU,GAGjBnC,EAAStrJ,UAAUylG,SAAW,SAAkB/0E,EAAK3pB,EAAKglC,EAAKiiH,GAC7D,GAAI/oJ,KAAKwoJ,QAAUxoJ,KAAKyoJ,eACtB,MAAM,IAAIntJ,MAAM,sBAGC,iBAARwG,IACTinJ,EAASjiH,EACTA,EAAMhlC,EACNA,EAAM,MAIJglC,IACFA,EAAMrM,EAAMnwB,QAAQw8B,EAAKiiH,GAAU,OACnC/oJ,KAAKi9C,QAAQnW,IAIf,IADA,IAAIsqB,EAAO,GACJA,EAAK52D,OAASixB,GACnBzrB,KAAK0oJ,EAAI1oJ,KAAK4oJ,QAAQ/jJ,OAAO7E,KAAK0oJ,GAAGpjF,SACrClU,EAAOA,EAAKrwD,OAAOf,KAAK0oJ,GAG1B,IAAI1rI,EAAMo0C,EAAKlzD,MAAM,EAAGutB,GAGxB,OAFAzrB,KAAKi9C,QAAQnW,GACb9mC,KAAKwoJ,UACE/tH,EAAMK,OAAO9d,EAAKlb,K,6BC7G3B,IAAI44B,EAAK37B,EAAQ,KAEbs7B,EADQt7B,EAAQ,KACDs7B,OAEnB,SAASisH,EAAQ9jD,EAAI1mG,GACnBkE,KAAKwiG,GAAKA,EACVxiG,KAAK6gG,KAAO,KACZ7gG,KAAK+7I,IAAM,KAGPjgJ,EAAQ+kG,MACV7gG,KAAKgpJ,eAAeltJ,EAAQ+kG,KAAM/kG,EAAQmtJ,SACxCntJ,EAAQigJ,KACV/7I,KAAKkpJ,cAAcptJ,EAAQigJ,IAAKjgJ,EAAQqtJ,QAE5ChtJ,EAAOT,QAAU4qJ,EAEjBA,EAAQM,WAAa,SAAoBpkD,EAAIu5C,EAAKj6I,GAChD,OAAIi6I,aAAeuK,EACVvK,EAEF,IAAIuK,EAAQ9jD,EAAI,CACrBu5C,IAAKA,EACLoN,OAAQrnJ,KAIZwkJ,EAAQI,YAAc,SAAqBlkD,EAAI3B,EAAM/+F,GACnD,OAAI++F,aAAgBylD,EACXzlD,EAEF,IAAIylD,EAAQ9jD,EAAI,CACrB3B,KAAMA,EACNooD,QAASnnJ,KAIbwkJ,EAAQvrJ,UAAU+7E,SAAW,WAC3B,IAAIilE,EAAM/7I,KAAK+nJ,YAEf,OAAIhM,EAAIl5C,aACC,CAAEplF,QAAQ,EAAO6hH,OAAQ,sBAC7Byc,EAAIjlE,WAEJilE,EAAI7nH,IAAIl0B,KAAKwiG,GAAG5Y,MAAMjnE,GAAGkgF,aAGvB,CAAEplF,QAAQ,EAAM6hH,OAAQ,MAFtB,CAAE7hH,QAAQ,EAAO6hH,OAAQ,uBAFzB,CAAE7hH,QAAQ,EAAO6hH,OAAQ,8BAOpCgnB,EAAQvrJ,UAAUgtJ,UAAY,SAAmBt8D,EAAS3pF,GAUxD,MARuB,iBAAZ2pF,IACT3pF,EAAM2pF,EACNA,EAAU,MAGPzrF,KAAK+7I,MACR/7I,KAAK+7I,IAAM/7I,KAAKwiG,GAAGnxD,EAAEnd,IAAIl0B,KAAK6gG,OAE3B/+F,EAGE9B,KAAK+7I,IAAIjhH,OAAOh5B,EAAK2pF,GAFnBzrF,KAAK+7I,KAKhBuK,EAAQvrJ,UAAUysJ,WAAa,SAAoB1lJ,GACjD,MAAY,QAARA,EACK9B,KAAK6gG,KAAK7lG,SAAS,GAAI,GAEvBgF,KAAK6gG,MAGhBylD,EAAQvrJ,UAAUiuJ,eAAiB,SAAwBvrJ,EAAKqE,GAC9D9B,KAAK6gG,KAAO,IAAInmE,EAAGj9B,EAAKqE,GAAO,IAI/B9B,KAAK6gG,KAAO7gG,KAAK6gG,KAAKjwD,KAAK5wC,KAAKwiG,GAAG5Y,MAAMjnE,IAG3C2jI,EAAQvrJ,UAAUmuJ,cAAgB,SAAuBzrJ,EAAKqE,GAC5D,GAAIrE,EAAI00B,GAAK10B,EAAI20B,EAWf,MAP2B,SAAvBpyB,KAAKwiG,GAAG5Y,MAAM1gF,KAChBmxB,EAAO58B,EAAI00B,EAAG,qBACkB,UAAvBnyB,KAAKwiG,GAAG5Y,MAAM1gF,MACS,YAAvBlJ,KAAKwiG,GAAG5Y,MAAM1gF,MACvBmxB,EAAO58B,EAAI00B,GAAK10B,EAAI20B,EAAG,qCAEzBpyB,KAAK+7I,IAAM/7I,KAAKwiG,GAAG5Y,MAAME,MAAMrsF,EAAI00B,EAAG10B,EAAI20B,IAG5CpyB,KAAK+7I,IAAM/7I,KAAKwiG,GAAG5Y,MAAMyB,YAAY5tF,EAAKqE,IAI5CwkJ,EAAQvrJ,UAAUquJ,OAAS,SAAgBrN,GAIzC,OAHIA,EAAIjlE,YACNz8C,EAAO0hH,EAAIjlE,WAAY,8BAElBilE,EAAI7nH,IAAIl0B,KAAK6gG,MAAMnV,QAI5B46D,EAAQvrJ,UAAU+mE,KAAO,SAAcxnC,EAAKx4B,EAAKhG,GAC/C,OAAOkE,KAAKwiG,GAAG1gC,KAAKxnC,EAAKt6B,KAAM8B,EAAKhG,IAGtCwqJ,EAAQvrJ,UAAUsiJ,OAAS,SAAgB/iH,EAAK+zD,GAC9C,OAAOruF,KAAKwiG,GAAG66C,OAAO/iH,EAAK+zD,EAAWruF,OAGxCsmJ,EAAQvrJ,UAAU03B,QAAU,WAC1B,MAAO,eAAiBzyB,KAAK6gG,MAAQ7gG,KAAK6gG,KAAK7lG,SAAS,GAAI,IACrD,UAAYgF,KAAK+7I,KAAO/7I,KAAK+7I,IAAItpH,WAAa,O,6BCrHvD,IAAIiI,EAAK37B,EAAQ,KAEb07B,EAAQ17B,EAAQ,KAChBs7B,EAASI,EAAMJ,OAEnB,SAASksH,EAAUzqJ,EAASgG,GAC1B,GAAIhG,aAAmByqJ,EACrB,OAAOzqJ,EAELkE,KAAKqpJ,WAAWvtJ,EAASgG,KAG7Bu4B,EAAOv+B,EAAQ0+B,GAAK1+B,EAAQk+B,EAAG,4BAC/Bh6B,KAAKw6B,EAAI,IAAIE,EAAG5+B,EAAQ0+B,EAAG,IAC3Bx6B,KAAKg6B,EAAI,IAAIU,EAAG5+B,EAAQk+B,EAAG,SACGx7B,IAA1B1C,EAAQ8rJ,cACV5nJ,KAAK4nJ,cAAgB,KAErB5nJ,KAAK4nJ,cAAgB9rJ,EAAQ8rJ,eAIjC,SAAS0B,IACPtpJ,KAAKupJ,MAAQ,EAGf,SAASC,EAAUniJ,EAAKu3B,GACtB,IAAI6qH,EAAUpiJ,EAAIu3B,EAAE2qH,SACpB,KAAgB,IAAVE,GACJ,OAAOA,EAET,IAAIC,EAAqB,GAAVD,EAGf,GAAiB,IAAbC,GAAkBA,EAAW,EAC/B,OAAO,EAIT,IADA,IAAIn7H,EAAM,EACDjtB,EAAI,EAAG6gB,EAAMyc,EAAE2qH,MAAOjoJ,EAAIooJ,EAAUpoJ,IAAK6gB,IAChDoM,IAAQ,EACRA,GAAOlnB,EAAI8a,GACXoM,KAAS,EAIX,QAAIA,GAAO,OAIXqQ,EAAE2qH,MAAQpnI,EACHoM,GAGT,SAASo7H,EAAUtiJ,GAGjB,IAFA,IAAI/F,EAAI,EACJmqB,EAAMpkB,EAAI7M,OAAS,GACf6M,EAAI/F,MAAqB,IAAb+F,EAAI/F,EAAI,KAAcA,EAAImqB,GAC5CnqB,IAEF,OAAU,IAANA,EACK+F,EAEFA,EAAInJ,MAAMoD,GA4DnB,SAASsoJ,EAAgBhsI,EAAK6N,GAC5B,GAAIA,EAAM,IACR7N,EAAIhc,KAAK6pB,OADX,CAIA,IAAIo+H,EAAS,GAAKtrJ,KAAKogD,IAAIlzB,GAAOltB,KAAKuyI,MAAQ,GAE/C,IADAlzH,EAAIhc,KAAc,IAATioJ,KACAA,GACPjsI,EAAIhc,KAAM6pB,KAASo+H,GAAU,GAAM,KAErCjsI,EAAIhc,KAAK6pB,IAjHXtvB,EAAOT,QAAU6qJ,EA8CjBA,EAAUxrJ,UAAUsuJ,WAAa,SAAoB5lJ,EAAM3B,GACzD2B,EAAOg3B,EAAMnwB,QAAQ7G,EAAM3B,GAC3B,IAAI88B,EAAI,IAAI0qH,EACZ,GAAwB,KAApB7lJ,EAAKm7B,EAAE2qH,SACT,OAAO,EAET,IAAI99H,EAAM+9H,EAAU/lJ,EAAMm7B,GAC1B,IAAY,IAARnT,EACF,OAAO,EAET,GAAKA,EAAMmT,EAAE2qH,QAAW9lJ,EAAKjJ,OAC3B,OAAO,EAET,GAAwB,IAApBiJ,EAAKm7B,EAAE2qH,SACT,OAAO,EAET,IAAI/zG,EAAOg0G,EAAU/lJ,EAAMm7B,GAC3B,IAAa,IAAT4W,EACF,OAAO,EAET,IAAIhb,EAAI/2B,EAAKvF,MAAM0gC,EAAE2qH,MAAO/zG,EAAO5W,EAAE2qH,OAErC,GADA3qH,EAAE2qH,OAAS/zG,EACa,IAApB/xC,EAAKm7B,EAAE2qH,SACT,OAAO,EAET,IAAIO,EAAON,EAAU/lJ,EAAMm7B,GAC3B,IAAa,IAATkrH,EACF,OAAO,EAET,GAAIrmJ,EAAKjJ,SAAWsvJ,EAAOlrH,EAAE2qH,MAC3B,OAAO,EAET,IAAIvvH,EAAIv2B,EAAKvF,MAAM0gC,EAAE2qH,MAAOO,EAAOlrH,EAAE2qH,OACrC,GAAa,IAAT/uH,EAAE,GAAU,CACd,KAAW,IAAPA,EAAE,IAIJ,OAAO,EAHPA,EAAIA,EAAEt8B,MAAM,GAMhB,GAAa,IAAT87B,EAAE,GAAU,CACd,KAAW,IAAPA,EAAE,IAIJ,OAAO,EAHPA,EAAIA,EAAE97B,MAAM,GAWhB,OAJA8B,KAAKw6B,EAAI,IAAIE,EAAGF,GAChBx6B,KAAKg6B,EAAI,IAAIU,EAAGV,GAChBh6B,KAAK4nJ,cAAgB,MAEd,GAgBTrB,EAAUxrJ,UAAU0jJ,MAAQ,SAAe38I,GACzC,IAAI04B,EAAIx6B,KAAKw6B,EAAElwB,UACX0vB,EAAIh6B,KAAKg6B,EAAE1vB,UAYf,IATW,IAAPkwB,EAAE,KACJA,EAAI,CAAE,GAAIz5B,OAAOy5B,IAER,IAAPR,EAAE,KACJA,EAAI,CAAE,GAAIj5B,OAAOi5B,IAEnBQ,EAAImvH,EAAUnvH,GACdR,EAAI2vH,EAAU3vH,KAENA,EAAE,IAAe,IAAPA,EAAE,KAClBA,EAAIA,EAAE97B,MAAM,GAEd,IAAI0f,EAAM,CAAE,GACZgsI,EAAgBhsI,EAAK4c,EAAEhgC,SACvBojB,EAAMA,EAAI7c,OAAOy5B,IACb54B,KAAK,GACTgoJ,EAAgBhsI,EAAKoc,EAAEx/B,QACvB,IAAIuvJ,EAAWnsI,EAAI7c,OAAOi5B,GACtBhd,EAAM,CAAE,IAGZ,OAFA4sI,EAAgB5sI,EAAK+sI,EAASvvJ,QAC9BwiB,EAAMA,EAAIjc,OAAOgpJ,GACVtvH,EAAMK,OAAO9d,EAAKlb,K,6BClK3B,IAAIg4B,EAAO/6B,EAAQ,KACfwjG,EAASxjG,EAAQ,KACjB07B,EAAQ17B,EAAQ,KAChBs7B,EAASI,EAAMJ,OACfqC,EAAajC,EAAMiC,WACnB4pH,EAAUvnJ,EAAQ,MAClBwnJ,EAAYxnJ,EAAQ,MAExB,SAASirJ,EAAMpgE,GAGb,GAFAvvD,EAAiB,YAAVuvD,EAAqB,qCAEtB5pF,gBAAgBgqJ,GACpB,OAAO,IAAIA,EAAMpgE,GAEnBA,EAAQ2Y,EAAO3Y,GAAOA,MACtB5pF,KAAK4pF,MAAQA,EACb5pF,KAAKqxC,EAAIu4C,EAAMv4C,EACfrxC,KAAKqxC,EAAEu6C,WAAWhC,EAAMjnE,EAAEyY,YAAc,GAExCp7B,KAAKiqJ,WAAargE,EAAME,QAAQ7jF,YAChCjG,KAAKkqJ,eAAiB3rJ,KAAKkD,KAAKmoF,EAAMjnE,EAAEyY,YAAc,GACtDp7B,KAAK85B,KAAOA,EAAK6/D,OAGnBx9F,EAAOT,QAAUsuJ,EAOjBA,EAAMjvJ,UAAU+mE,KAAO,SAAc38D,EAAS63I,GAC5C73I,EAAUu3B,EAAWv3B,GACrB,IAAI1H,EAAMuC,KAAKmqJ,cAAcnN,GACzBxiH,EAAIx6B,KAAKoqJ,QAAQ3sJ,EAAI4sJ,gBAAiBllJ,GACtCw2D,EAAI37D,KAAKqxC,EAAEnd,IAAIsG,GACf8vH,EAAWtqJ,KAAKuqJ,YAAY5uF,GAC5B6uF,EAAKxqJ,KAAKoqJ,QAAQE,EAAU7sJ,EAAIgtJ,WAAYtlJ,GAC7C+uB,IAAIz2B,EAAIojG,QACPl1B,EAAInxC,EAAEsM,IAAI0jH,GAAI55G,KAAK5wC,KAAK4pF,MAAMjnE,GAClC,OAAO3iB,KAAK0qJ,cAAc,CAAE/uF,EAAGA,EAAGgQ,EAAGA,EAAG2+E,SAAUA,KASpDN,EAAMjvJ,UAAUsiJ,OAAS,SAAgBl4I,EAASu4I,EAAK3B,GACrD52I,EAAUu3B,EAAWv3B,GACrBu4I,EAAM19I,KAAK0qJ,cAAchN,GACzB,IAAIjgJ,EAAMuC,KAAK2mJ,cAAc5K,GACzBzsG,EAAItvC,KAAKoqJ,QAAQ1M,EAAI4M,WAAY7sJ,EAAIgtJ,WAAYtlJ,GACjDwlJ,EAAK3qJ,KAAKqxC,EAAEnd,IAAIwpH,EAAI/xE,KAExB,OADc+xE,EAAI/hF,IAAI70B,IAAIrpC,EAAIs+I,MAAM7nH,IAAIob,IACzBsD,GAAG+3G,IAGpBX,EAAMjvJ,UAAUqvJ,QAAU,WAExB,IADA,IAAItwH,EAAO95B,KAAK85B,OACPx4B,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IACpCw4B,EAAKj1B,OAAOjK,UAAU0G,IACxB,OAAOm5B,EAAMkC,UAAU7C,EAAKwrC,UAAU10B,KAAK5wC,KAAK4pF,MAAMjnE,IAGxDqnI,EAAMjvJ,UAAU4rJ,cAAgB,SAAuB5K,GACrD,OAAOuK,EAAQM,WAAW5mJ,KAAM+7I,IAGlCiO,EAAMjvJ,UAAUovJ,cAAgB,SAAuBnN,GACrD,OAAOsJ,EAAQsE,WAAW5qJ,KAAMg9I,IAGlCgN,EAAMjvJ,UAAU2vJ,cAAgB,SAAuBhN,GACrD,OAAIA,aAAe6I,EACV7I,EACF,IAAI6I,EAAUvmJ,KAAM09I,IAW7BsM,EAAMjvJ,UAAUwvJ,YAAc,SAAqBzgE,GACjD,IAAIhoF,EAAMgoF,EAAM6B,OAAOrhF,QAAQ,KAAMtK,KAAKkqJ,gBAE1C,OADApoJ,EAAI9B,KAAKkqJ,eAAiB,IAAMpgE,EAAM4B,OAAOjwD,QAAU,IAAO,EACvD35B,GAGTkoJ,EAAMjvJ,UAAUswF,YAAc,SAAqBj4D,GAGjD,IAAIy3H,GAFJz3H,EAAQqH,EAAMiC,WAAWtJ,IAEN54B,OAAS,EACxBswJ,EAAS13H,EAAMl1B,MAAM,EAAG2sJ,GAAQ9pJ,QAAuB,IAAhBqyB,EAAMy3H,IAC7CE,EAAoC,IAAV,IAAhB33H,EAAMy3H,IAEhBz4H,EAAIqI,EAAMkC,UAAUmuH,GACxB,OAAO9qJ,KAAK4pF,MAAMy7D,WAAWjzH,EAAG24H,IAGlCf,EAAMjvJ,UAAUiwJ,UAAY,SAAmBhwH,GAC7C,OAAOA,EAAI1wB,QAAQ,KAAMtK,KAAKkqJ,iBAGhCF,EAAMjvJ,UAAUkwJ,UAAY,SAAmB73H,GAC7C,OAAOqH,EAAMkC,UAAUvJ,IAGzB42H,EAAMjvJ,UAAUmwJ,QAAU,SAAiB38H,GACzC,OAAOA,aAAevuB,KAAKiqJ,a,6BClH7B,IAAIxvH,EAAQ17B,EAAQ,KAChBs7B,EAASI,EAAMJ,OACfqC,EAAajC,EAAMiC,WACnBF,EAAiB/B,EAAM+B,eAW3B,SAAS8pH,EAAQ7jD,EAAOtV,GACtBntF,KAAKyiG,MAAQA,EACbziG,KAAKmrJ,QAAUzuH,EAAWywD,EAAO6vD,QAC7Bv6C,EAAMyoD,QAAQ/9D,EAAO4uD,KACvB/7I,KAAKg8I,KAAO7uD,EAAO4uD,IAEnB/7I,KAAKorJ,UAAY1uH,EAAWywD,EAAO4uD,KAGvCuK,EAAQM,WAAa,SAAoBnkD,EAAOs5C,GAC9C,OAAIA,aAAeuK,EACVvK,EACF,IAAIuK,EAAQ7jD,EAAO,CAAEs5C,IAAKA,KAGnCuK,EAAQsE,WAAa,SAAoBnoD,EAAOu6C,GAC9C,OAAIA,aAAkBsJ,EACbtJ,EACF,IAAIsJ,EAAQ7jD,EAAO,CAAEu6C,OAAQA,KAGtCsJ,EAAQvrJ,UAAUiiJ,OAAS,WACzB,OAAOh9I,KAAKmrJ,SAGd3uH,EAAe8pH,EAAS,YAAY,WAClC,OAAOtmJ,KAAKyiG,MAAM8nD,YAAYvqJ,KAAK+7I,UAGrCv/G,EAAe8pH,EAAS,OAAO,WAC7B,OAAItmJ,KAAKorJ,UACAprJ,KAAKyiG,MAAMpX,YAAYrrF,KAAKorJ,WAC9BprJ,KAAKyiG,MAAMpxD,EAAEnd,IAAIl0B,KAAK6gG,WAG/BrkE,EAAe8pH,EAAS,aAAa,WACnC,IAAI7jD,EAAQziG,KAAKyiG,MACb3oE,EAAO95B,KAAK85B,OACZ+wH,EAASpoD,EAAMynD,eAAiB,EAEhCxiJ,EAAIoyB,EAAK57B,MAAM,EAAGukG,EAAMynD,gBAK5B,OAJAxiJ,EAAE,IAAM,IACRA,EAAEmjJ,IAAW,IACbnjJ,EAAEmjJ,IAAW,GAENnjJ,KAGT80B,EAAe8pH,EAAS,QAAQ,WAC9B,OAAOtmJ,KAAKyiG,MAAMwoD,UAAUjrJ,KAAKqrJ,gBAGnC7uH,EAAe8pH,EAAS,QAAQ,WAC9B,OAAOtmJ,KAAKyiG,MAAM3oE,OAAOj1B,OAAO7E,KAAKg9I,UAAU13E,YAGjD9oC,EAAe8pH,EAAS,iBAAiB,WACvC,OAAOtmJ,KAAK85B,OAAO57B,MAAM8B,KAAKyiG,MAAMynD,mBAGtC5D,EAAQvrJ,UAAU+mE,KAAO,SAAc38D,GAErC,OADAk1B,EAAOr6B,KAAKmrJ,QAAS,2BACdnrJ,KAAKyiG,MAAM3gC,KAAK38D,EAASnF,OAGlCsmJ,EAAQvrJ,UAAUsiJ,OAAS,SAAgBl4I,EAASu4I,GAClD,OAAO19I,KAAKyiG,MAAM46C,OAAOl4I,EAASu4I,EAAK19I,OAGzCsmJ,EAAQvrJ,UAAUuwJ,UAAY,SAAmBxpJ,GAE/C,OADAu4B,EAAOr6B,KAAKmrJ,QAAS,0BACd1wH,EAAMK,OAAO96B,KAAKg9I,SAAUl7I,IAGrCwkJ,EAAQvrJ,UAAUgtJ,UAAY,SAAmBjmJ,GAC/C,OAAO24B,EAAMK,OAAO96B,KAAKyqJ,WAAY3oJ,IAGvC3F,EAAOT,QAAU4qJ,G,kQC5FjB,IAAI5rH,EAAK37B,EAAQ,KACb07B,EAAQ17B,EAAQ,KAChBs7B,EAASI,EAAMJ,OACfmC,EAAiB/B,EAAM+B,eACvBE,EAAajC,EAAMiC,WAUvB,SAAS6pH,EAAU9jD,EAAOi7C,GACxB19I,KAAKyiG,MAAQA,EAEM,WAAf,EAAOi7C,KACTA,EAAMhhH,EAAWghH,IAEfjuI,MAAMC,QAAQguI,KAChBA,EAAM,CACJ/hF,EAAG+hF,EAAIx/I,MAAM,EAAGukG,EAAMynD,gBACtBv+E,EAAG+xE,EAAIx/I,MAAMukG,EAAMynD,kBAIvB7vH,EAAOqjH,EAAI/hF,GAAK+hF,EAAI/xE,EAAG,4BAEnB82B,EAAMyoD,QAAQxN,EAAI/hF,KACpB37D,KAAKurJ,GAAK7N,EAAI/hF,GACZ+hF,EAAI/xE,aAAajxC,IACnB16B,KAAK2yG,GAAK+qC,EAAI/xE,GAEhB3rE,KAAKwrJ,UAAY/7I,MAAMC,QAAQguI,EAAI/hF,GAAK+hF,EAAI/hF,EAAI+hF,EAAI4M,SACpDtqJ,KAAKyrJ,UAAYh8I,MAAMC,QAAQguI,EAAI/xE,GAAK+xE,EAAI/xE,EAAI+xE,EAAIgO,SAGtDlvH,EAAe+pH,EAAW,KAAK,WAC7B,OAAOvmJ,KAAKyiG,MAAMwoD,UAAUjrJ,KAAK0rJ,eAGnClvH,EAAe+pH,EAAW,KAAK,WAC7B,OAAOvmJ,KAAKyiG,MAAMpX,YAAYrrF,KAAKsqJ,eAGrC9tH,EAAe+pH,EAAW,YAAY,WACpC,OAAOvmJ,KAAKyiG,MAAM8nD,YAAYvqJ,KAAK27D,QAGrCn/B,EAAe+pH,EAAW,YAAY,WACpC,OAAOvmJ,KAAKyiG,MAAMuoD,UAAUhrJ,KAAK2rE,QAGnC46E,EAAUxrJ,UAAU4wJ,QAAU,WAC5B,OAAO3rJ,KAAKsqJ,WAAWvpJ,OAAOf,KAAK0rJ,aAGrCnF,EAAUxrJ,UAAUo4B,MAAQ,WAC1B,OAAOsH,EAAMK,OAAO96B,KAAK2rJ,UAAW,OAAO9xI,eAG7C1d,EAAOT,QAAU6qJ,G,6BC5DjB,IAAIr6D,EAAOntF,EAAQ,MAEnBrD,EAAQixF,YAAc5tF,EAAQ,MAE9B,IAAIgvF,EAAgB7B,EAAK3mF,OAAO,iBAAiB,WAC/CvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,kBAAkBouJ,MAC3B7rJ,KAAKvC,IAAI,mBAAmBouJ,MAC5B7rJ,KAAKvC,IAAI,UAAUouJ,MACnB7rJ,KAAKvC,IAAI,UAAUouJ,MACnB7rJ,KAAKvC,IAAI,aAAaouJ,MACtB7rJ,KAAKvC,IAAI,aAAaouJ,MACtB7rJ,KAAKvC,IAAI,eAAeouJ,UAG5BnwJ,EAAQqyF,cAAgBA,EAExB,IAAIf,EAAed,EAAK3mF,OAAO,gBAAgB,WAC7CvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,kBAAkBouJ,UAG/BnwJ,EAAQsxF,aAAeA,EAEvB,IAAID,EAAYb,EAAK3mF,OAAO,wBAAwB,WAClDvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,aAAaq7D,IAAIgzF,GAC1B9rJ,KAAKvC,IAAI,oBAAoBsuJ,aAGjCrwJ,EAAQqxF,UAAYA,EAEpB,IAAI++D,EAAsB5/D,EAAK3mF,OAAO,uBAAuB,WAC3DvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,aAAa02H,QACtBn0H,KAAKvC,IAAI,QAAQuuJ,QAAQ/nD,WACzBjkG,KAAKvC,IAAI,SAAS02H,QAAQlwB,WAC1BjkG,KAAKvC,IAAI,UAAUmuJ,MAAMpsJ,IACvBQ,KAAKvC,IAAI,KAAKouJ,MACd7rJ,KAAKvC,IAAI,KAAKouJ,MACd7rJ,KAAKvC,IAAI,KAAKouJ,OACd5nD,eAIFgoD,EAAiB//D,EAAK3mF,OAAO,kBAAkB,WACjDvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,aAAaq7D,IAAIgzF,GAC1B9rJ,KAAKvC,IAAI,qBAAqByuJ,aAGlCxwJ,EAAQoyF,WAAam+D,EACrB,IAAIE,EAA0BjgE,EAAK3mF,OAAO,2BAA2B,WACnEvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,aAAamuJ,MAAMpsJ,IAC1BQ,KAAKvC,IAAI,MAAM02H,QACfn0H,KAAKvC,IAAI,WAAWmuJ,MAAMpsJ,IACxBQ,KAAKvC,IAAI,OAAOmuJ,MAAMpsJ,IACpBQ,KAAKvC,IAAI,MAAM02H,QACfn0H,KAAKvC,IAAI,aAAamuJ,MAAMpsJ,IAC1BQ,KAAKvC,IAAI,QAAQyuJ,SACjBlsJ,KAAKvC,IAAI,SAASouJ,QAGtB7rJ,KAAKvC,IAAI,UAAUmuJ,MAAMpsJ,IACvBQ,KAAKvC,IAAI,QAAQ02H,QACjBn0H,KAAKvC,IAAI,MAAMyuJ,YAIrBlsJ,KAAKvC,IAAI,qBAAqByuJ,aAIlCxwJ,EAAQmyF,oBAAsBs+D,EAE9B,IAAIh+D,EAAgBjC,EAAK3mF,OAAO,iBAAiB,WAC/CvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,KAAKouJ,MACd7rJ,KAAKvC,IAAI,KAAKouJ,MACd7rJ,KAAKvC,IAAI,KAAKouJ,MACd7rJ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,YAAYouJ,UAGzBnwJ,EAAQyyF,cAAgBA,EAExBzyF,EAAQ2xF,SAAWnB,EAAK3mF,OAAO,YAAY,WACzCvF,KAAK6rJ,SAGP,IAAI59D,EAAe/B,EAAK3mF,OAAO,gBAAgB,WAC7CvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,WAAWouJ,MACpB7rJ,KAAKvC,IAAI,cAAcyuJ,SACvBlsJ,KAAKvC,IAAI,cAAcwmG,WAAWE,SAAS,GAAGrrC,IAAIszF,GAClDpsJ,KAAKvC,IAAI,aAAawmG,WAAWE,SAAS,GAAG4nD,aAGjDrwJ,EAAQuyF,aAAeA,EAEvB,IAAIm+D,EAAelgE,EAAK3mF,OAAO,gBAAgB,WAC7CvF,KAAKgkG,OAAO,CACVqoD,WAAYrsJ,KAAKm0H,aAIrBz4H,EAAQ2yF,UAAYnC,EAAK3mF,OAAO,aAAa,WAC3CvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,KAAKouJ,MACd7rJ,KAAKvC,IAAI,KAAKouJ,W,8BCrHlB,IAAMx4B,EAAWt0H,EAAQ,MACnBq0H,EAAWr0H,EAAQ,MACnBw/B,EAAWx/B,EAAQ,KAQzB,SAASutJ,EAAOxjJ,EAAM07F,GACpBxkG,KAAK8I,KAAOA,EACZ9I,KAAKwkG,KAAOA,EAEZxkG,KAAKozH,SAAW,GAChBpzH,KAAKqzH,SAAW,GAXN33H,EAER6J,OAAS,SAAgBuD,EAAM07F,GACjC,OAAO,IAAI8nD,EAAOxjJ,EAAM07F,IAW1B8nD,EAAOvxJ,UAAUwxJ,aAAe,SAAqB1sJ,GACnD,IAAMiJ,EAAO9I,KAAK8I,KAElB,SAAS0jJ,EAAUzzI,GACjB/Y,KAAKysJ,WAAW1zI,EAAQjQ,GAO1B,OALAy1B,EAASiuH,EAAW3sJ,GACpB2sJ,EAAUzxJ,UAAU0xJ,WAAa,SAAoB1zI,EAAQjQ,GAC3DjJ,EAAK5E,KAAK+E,KAAM+Y,EAAQjQ,IAGnB,IAAI0jJ,EAAUxsJ,OAGvBssJ,EAAOvxJ,UAAUu6H,YAAc,SAAqBxzH,GAKlD,OAJAA,EAAMA,GAAO,MAER9B,KAAKozH,SAASt1H,eAAegE,KAChC9B,KAAKozH,SAAStxH,GAAO9B,KAAKusJ,aAAan5B,EAAStxH,KAC3C9B,KAAKozH,SAAStxH,IAGvBwqJ,EAAOvxJ,UAAU6xF,OAAS,SAAgBnpF,EAAM3B,EAAKhG,GACnD,OAAOkE,KAAKs1H,YAAYxzH,GAAK8qF,OAAOnpF,EAAM3H,IAG5CwwJ,EAAOvxJ,UAAUs5H,YAAc,SAAqBvyH,GAKlD,OAJAA,EAAMA,GAAO,MAER9B,KAAKqzH,SAASv1H,eAAegE,KAChC9B,KAAKqzH,SAASvxH,GAAO9B,KAAKusJ,aAAal5B,EAASvxH,KAC3C9B,KAAKqzH,SAASvxH,IAGvBwqJ,EAAOvxJ,UAAU+/B,OAAS,SAAgBr3B,EAAM3B,EAAoB6yE,GAClE,OAAO30E,KAAKq0H,YAAYvyH,GAAKg5B,OAAOr3B,EAAMkxE,K,6BCrD5C,IAAMp2C,EAAWx/B,EAAQ,KAEnBy0H,EAAaz0H,EAAQ,MAE3B,SAAS2tJ,EAAW3zI,GAClBy6G,EAAWv4H,KAAK+E,KAAM+Y,GACtB/Y,KAAK8B,IAAM,MAEby8B,EAASmuH,EAAYl5B,GACrBr3H,EAAOT,QAAUgxJ,EAEjBA,EAAW3xJ,UAAU+/B,OAAS,SAAgBr3B,EAAM3H,GAKlD,IAJA,IAEM8iC,EAFM40F,EAAWz4H,UAAU+/B,OAAO7/B,KAAK+E,KAAMyD,GAErCzI,SAAS,UACjBk4B,EAAM,CAAE,cAAgBp3B,EAAQ6wJ,MAAQ,SACrCrrJ,EAAI,EAAGA,EAAIs9B,EAAEpkC,OAAQ8G,GAAK,GACjC4xB,EAAItxB,KAAKg9B,EAAE1gC,MAAMoD,EAAGA,EAAI,KAE1B,OADA4xB,EAAItxB,KAAK,YAAc9F,EAAQ6wJ,MAAQ,SAChCz5H,EAAIjxB,KAAK,Q,6BCnBlB,IAAMs8B,EAAWx/B,EAAQ,KACnBwH,EAASxH,EAAQ,KAAgBwH,OAEjCiuH,EAAaz1H,EAAQ,MAE3B,SAAS6tJ,EAAW7zI,GAClBy7G,EAAWv5H,KAAK+E,KAAM+Y,GACtB/Y,KAAK8B,IAAM,MAEby8B,EAASquH,EAAYp4B,GACrBr4H,EAAOT,QAAUkxJ,EAEjBA,EAAW7xJ,UAAU6xF,OAAS,SAAgBnpF,EAAM3H,GAQlD,IAPA,IAAM+wJ,EAAQppJ,EAAKzI,WAAW6iB,MAAM,YAE9B8uI,EAAQ7wJ,EAAQ6wJ,MAAM9yI,cAEtB2zB,EAAK,kCACP3uB,GAAS,EACTH,GAAO,EACFpd,EAAI,EAAGA,EAAIurJ,EAAMryJ,OAAQ8G,IAAK,CACrC,IAAMnE,EAAQ0vJ,EAAMvrJ,GAAGnE,MAAMqwC,GAC7B,GAAc,OAAVrwC,GAGAA,EAAM,KAAOwvJ,EAAjB,CAGA,IAAe,IAAX9tI,EAIG,CACL,GAAiB,QAAb1hB,EAAM,GACR,MACFuhB,EAAMpd,EACN,MAPA,GAAiB,UAAbnE,EAAM,GACR,MACF0hB,EAAQvd,GAQZ,IAAe,IAAXud,IAAyB,IAATH,EAClB,MAAM,IAAIpjB,MAAM,8BAAgCqxJ,GAElD,IAAMz/H,EAAS2/H,EAAM3uJ,MAAM2gB,EAAQ,EAAGH,GAAKzc,KAAK,IAEhDirB,EAAOnd,QAAQ,kBAAmB,IAElC,IAAM4lC,EAAQpvC,EAAOO,KAAKomB,EAAQ,UAClC,OAAOsnG,EAAWz5H,UAAU6xF,OAAO3xF,KAAK+E,KAAM21C,EAAO75C,K,6BC/CvD,IAAMsW,EAAO1W,EAEb0W,EAAKoiE,SAAWz1E,EAAQ,KAAcy1E,SACtCpiE,EAAKqiE,cAAgB11E,EAAQ,KAAY01E,cACzCriE,EAAKsiE,cAAgB31E,EAAQ,KAAY21E,cACzCtiE,EAAKyxF,KAAO9kG,EAAQ,M,6BCLpB,IAAMykG,EAAY9nG,EAGlB8nG,EAAUspD,SAAW,SAAiB5iJ,GACpC,IAAM8S,EAAM,GAWZ,OATAliB,OAAO0d,KAAKtO,GAAKC,SAAQ,SAAS1M,IAErB,EAANA,IAAYA,IACfA,GAAY,GAEd,IAAM9B,EAAQuO,EAAIzM,GAClBuf,EAAIrhB,GAAS8B,KAGRuf,GAGTwmF,EAAU8vB,IAAMv0H,EAAQ,M,6BCfxB,IAAIguJ,EAAMhuJ,EAAQ,MAEdiuJ,EAAOD,EAAIxnJ,OAAO,QAAQ,WAC5BvF,KAAKgkG,OAAO,CACVipD,QAASjtJ,KAAKktJ,UACdC,YAAantJ,KAAKotJ,eAIlBC,EAAqBN,EAAIxnJ,OAAO,sBAAsB,WACxDvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,QAAQ02H,QACjBn0H,KAAKvC,IAAI,SAASg+D,UAIlBqwF,EAAsBiB,EAAIxnJ,OAAO,uBAAuB,WAC1DvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,aAAa02H,QACtBn0H,KAAKvC,IAAI,cAAcwmG,WACvBjkG,KAAKvC,IAAI,SAAS02H,QAAQlwB,eAI1BqpD,EAAuBP,EAAIxnJ,OAAO,wBAAwB,WAC5DvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,aAAaq7D,IAAIgzF,GAC1B9rJ,KAAKvC,IAAI,oBAAoBsuJ,aAI7BwB,EAA4BR,EAAIxnJ,OAAO,6BAA6B,WACtEvF,KAAKwtJ,MAAMH,MAGTI,EAAcV,EAAIxnJ,OAAO,eAAe,WAC1CvF,KAAK0tJ,MAAMH,MAGTI,EAAOZ,EAAIxnJ,OAAO,QAAQ,WAC5BvF,KAAKgkG,OAAO,CACV4pD,YAAa5tJ,KAAK84D,IAAI20F,QAItBI,EAAWd,EAAIxnJ,OAAO,YAAY,WACpCvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,aAAaq7D,IAAIk0F,GAC1BhtJ,KAAKvC,IAAI,YAAYq7D,IAAIk0F,OAIzBc,EAAYf,EAAIxnJ,OAAO,aAAa,WACtCvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,UAAU02H,QACnBn0H,KAAKvC,IAAI,YAAYwhD,OAAOylD,KAAI,GAChC1kG,KAAKvC,IAAI,aAAayuJ,aAItB6B,EAAiBhB,EAAIxnJ,OAAO,kBAAkB,WAChDvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,WAAW0mG,SAAS,GAAG0nD,MAAM5nD,WACtCjkG,KAAKvC,IAAI,gBAAgBouJ,MACzB7rJ,KAAKvC,IAAI,aAAaq7D,IAAIgzF,GAC1B9rJ,KAAKvC,IAAI,UAAUq7D,IAAI60F,GACvB3tJ,KAAKvC,IAAI,YAAYq7D,IAAI+0F,GACzB7tJ,KAAKvC,IAAI,WAAWq7D,IAAI60F,GACxB3tJ,KAAKvC,IAAI,wBAAwBq7D,IAAIw0F,GACrCttJ,KAAKvC,IAAI,kBAAkB2mG,SAAS,GAAG2nD,SAAS9nD,WAChDjkG,KAAKvC,IAAI,mBAAmB2mG,SAAS,GAAG2nD,SAAS9nD,WACjDjkG,KAAKvC,IAAI,cAAc0mG,SAAS,GAAGupD,MAAMI,GAAW7pD,eAIpD+pD,EAAkBjB,EAAIxnJ,OAAO,mBAAmB,WAClDvF,KAAK4rJ,MAAMpsJ,IACTQ,KAAKvC,IAAI,kBAAkBq7D,IAAIi1F,GAC/B/tJ,KAAKvC,IAAI,sBAAsBq7D,IAAIgzF,GACnC9rJ,KAAKvC,IAAI,kBAAkBsuJ,aAI/B5vJ,EAAOT,QAAUsyJ,G,mhBCvFjB,IAAIC,EAAW,wHACXC,EAAa,8CACbC,EAAY,iFACZC,EAAMrvJ,EAAQ,KACdstF,EAAUttF,EAAQ,KAClBwH,EAASxH,EAAQ,KAAewH,OACpCpK,EAAOT,QAAU,SAAU2yJ,EAAMt3I,GAC/B,IAEIu3I,EAFA7wJ,EAAM4wJ,EAAKrzJ,WACXmC,EAAQM,EAAIN,MAAM8wJ,GAEtB,GAAK9wJ,EAGE,CACL,IAAIm8I,EAAQ,MAAQn8I,EAAM,GACtBuX,EAAKnO,EAAOO,KAAK3J,EAAM,GAAI,OAC3BswF,EAAalnF,EAAOO,KAAK3J,EAAM,GAAG4S,QAAQ,UAAW,IAAK,UAC1Dw+I,EAAYH,EAAIr3I,EAAUrC,EAAGxW,MAAM,EAAG,GAAImE,SAASlF,EAAM,GAAI,KAAKM,IAClEy1B,EAAM,GACN9e,EAASi4E,EAAQuB,iBAAiB0rD,EAAOiV,EAAW75I,GACxDwe,EAAItxB,KAAKwS,EAAOvP,OAAO4oF,IACvBv6D,EAAItxB,KAAKwS,EAAOqoC,SAChB6xG,EAAY/nJ,EAAOxF,OAAOmyB,OAZhB,CACV,IAAIs7H,EAAS/wJ,EAAIN,MAAMgxJ,GACvBG,EAAY/nJ,EAAOO,KAAK0nJ,EAAO,GAAGz+I,QAAQ,UAAW,IAAK,UAa5D,MAAO,CACLgN,IAFQtf,EAAIN,MAAM+wJ,GAAY,GAG9BzqJ,KAAM6qJ,K,gBC3BV,IAAI/nJ,EAASxH,EAAQ,KAAewH,OAChCm0B,EAAK37B,EAAQ,KACb4+I,EAAK5+I,EAAQ,KAAYyjG,GACzBjW,EAAYxtF,EAAQ,KACpBwjG,EAASxjG,EAAQ,MAyErB,SAAS0vJ,EAAY9mJ,EAAGk9B,GACtB,GAAIl9B,EAAEw0B,KAAK,IAAM,EAAG,MAAM,IAAI7gC,MAAM,eACpC,GAAIqM,EAAEm7B,IAAI+B,IAAMA,EAAG,MAAM,IAAIvpC,MAAM,eAGrCa,EAAOT,QA5EP,SAAiBgiJ,EAAK5jH,EAAMr8B,EAAK6gJ,EAAUvhI,GACzC,IAAIg/H,EAAMxvD,EAAU9uF,GACpB,GAAiB,OAAbs+I,EAAI7yI,KAAe,CAErB,GAAiB,UAAbo1I,GAAqC,cAAbA,EAA0B,MAAM,IAAIhjJ,MAAM,yBACtE,OAmCJ,SAAmBoiJ,EAAK5jH,EAAMiiH,GAC5B,IAAIwC,EAAUh8C,EAAOw5C,EAAIt4I,KAAKkT,UAAUizE,MAAM3nF,KAAK,MACnD,IAAKs8I,EAAS,MAAM,IAAIjjJ,MAAM,iBAAmBygJ,EAAIt4I,KAAKkT,UAAUizE,MAAM3nF,KAAK,MAE/E,IAAI2nF,EAAQ,IAAI+zD,EAAGY,GACfmQ,EAAS3S,EAAIt4I,KAAKypF,kBAAkBzpF,KAExC,OAAOmmF,EAAMyzD,OAAOvjH,EAAM4jH,EAAKgR,GA1CtBC,CAASjR,EAAK5jH,EAAMiiH,GACtB,GAAiB,QAAbA,EAAI7yI,KAAgB,CAC7B,GAAiB,QAAbo1I,EAAoB,MAAM,IAAIhjJ,MAAM,yBACxC,OA0CJ,SAAoBoiJ,EAAK5jH,EAAMiiH,GAC7B,IAAIn9G,EAAIm9G,EAAIt4I,KAAKm7B,EACbiG,EAAIk3G,EAAIt4I,KAAKohC,EACbwM,EAAI0qG,EAAIt4I,KAAK4tC,EACbjf,EAAI2pH,EAAIt4I,KAAK2pF,QACbwhE,EAAWriE,EAAU8B,UAAUzB,OAAO8wD,EAAK,OAC3C1jH,EAAI40H,EAAS50H,EACbQ,EAAIo0H,EAASp0H,EACjBi0H,EAAWz0H,EAAG6K,GACd4pH,EAAWj0H,EAAGqK,GACd,IAAIgqH,EAAQn0H,EAAG6b,KAAK3X,GAChB3D,EAAIjB,EAAEgY,KAAKnN,GAOf,OAAoB,IANZwM,EAAEyB,MAAM+7G,GACbx6G,OAAO,IAAI3Z,EAAGZ,GAAM5F,IAAI+G,GAAGM,IAAIsJ,IAC/BqO,UACAhf,IAAI9B,EAAE0gB,MAAM+7G,GAAOx6G,OAAO7Z,EAAEtG,IAAI+G,GAAGM,IAAIsJ,IAAIqO,WAC3C3X,IAAIqD,GACJrD,IAAIsJ,GACE/B,IAAItI,GA5DJs0H,CAAUpR,EAAK5jH,EAAMiiH,GAE5B,GAAiB,QAAbuC,GAAmC,cAAbA,EAA0B,MAAM,IAAIhjJ,MAAM,yBAEtEw+B,EAAOvzB,EAAOxF,OAAO,CAACgc,EAAK+c,IAI3B,IAHA,IAAIrO,EAAMswH,EAAIj7C,QAAQjzE,aAClBvY,EAAM,CAAC,GACPy5I,EAAS,EACNj1H,EAAKt/B,OAAS8a,EAAI9a,OAAS,EAAIixB,GACpCnW,EAAI1T,KAAK,KACTmtJ,IAEFz5I,EAAI1T,KAAK,GAET,IADA,IAAIN,GAAK,IACAA,EAAIw4B,EAAKt/B,QAChB8a,EAAI1T,KAAKk4B,EAAKx4B,IAEhBgU,EAAM/O,EAAOO,KAAKwO,GAClB,IAAI+sB,EAAM3H,EAAG6b,KAAKwlG,EAAIj7C,SAGtB48C,GAFAA,EAAM,IAAIhjH,EAAGgjH,GAAK5qG,MAAMzQ,IAEdgS,OAAO,IAAI3Z,EAAGqhH,EAAI36C,iBAC5Bs8C,EAAMn3I,EAAOO,KAAK42I,EAAIxqG,UAAU5oC,WAChC,IAAI4oB,EAAM67H,EAAS,EAAI,EAAI,EAK3B,IAJAtjI,EAAMltB,KAAK8F,IAAIq5I,EAAIljJ,OAAQ8a,EAAI9a,QAC3BkjJ,EAAIljJ,SAAW8a,EAAI9a,SAAQ04B,EAAM,GAErC5xB,GAAK,IACIA,EAAImqB,GAAKyH,GAAOwqH,EAAIp8I,GAAKgU,EAAIhU,GACtC,OAAe,IAAR4xB,I,iBC5CT,gBAAIovE,EAAWvjG,EAAQ,KACnB27B,EAAK37B,EAAQ,MAEjB5C,EAAOT,QAAU,SAAqBkuF,GACpC,OAAO,IAAIolE,EAAKplE,IAGlB,IAAIqlE,EAAU,CACZC,UAAW,CACTpmJ,KAAM,YACN+kB,WAAY,IAEdshI,UAAW,CACTrmJ,KAAM,OACN+kB,WAAY,IAEduhI,WAAY,CACVtmJ,KAAM,OACN+kB,WAAY,IAEdwhI,WAAY,CACVvmJ,KAAM,OACN+kB,WAAY,IAEdyhI,QAAS,CACPxmJ,KAAM,UACN+kB,WAAY,IAEd0hI,UAAW,CACTzmJ,KAAM,OACN+kB,WAAY,IAEd2hI,UAAW,CACT1mJ,KAAM,OACN+kB,WAAY,KAUhB,SAASmhI,EAAMplE,GACb5pF,KAAKyvJ,UAAYR,EAAQrlE,GACpB5pF,KAAKyvJ,YACRzvJ,KAAKyvJ,UAAY,CACf3mJ,KAAM8gF,IAGV5pF,KAAK4pF,MAAQ,IAAI0Y,EAASE,GAAGxiG,KAAKyvJ,UAAU3mJ,MAC5C9I,KAAKwY,UAAO,EAwDd,SAASikI,EAAmB1sB,EAAIjuH,EAAK2pB,GAC9Bhc,MAAMC,QAAQqgH,KACjBA,EAAKA,EAAGzlH,WAEV,IAAIjD,EAAM,IAAId,EAAOwpH,GACrB,GAAItkG,GAAOpkB,EAAI7M,OAASixB,EAAK,CAC3B,IAAImY,EAAQ,IAAIr9B,EAAOklB,EAAMpkB,EAAI7M,QACjCopC,EAAMz8B,KAAK,GACXE,EAAMd,EAAOxF,OAAO,CAAC6iC,EAAOv8B,IAE9B,OAAKvF,EAGIuF,EAAIrM,SAAS8G,GAFbuF,EAjFX4nJ,EAAQz6G,KAAOy6G,EAAQE,UACvBF,EAAQS,KAAOT,EAAQU,UAAYV,EAAQG,WAC3CH,EAAQx6G,KAAOw6G,EAAQW,UAAYX,EAAQI,WAC3CJ,EAAQY,KAAOZ,EAAQM,UACvBN,EAAQa,KAAOb,EAAQO,UAavBR,EAAKj0J,UAAU6hJ,aAAe,SAAU96I,EAAKsU,GAE3C,OADApW,KAAKwY,KAAOxY,KAAK4pF,MAAMi9D,aAChB7mJ,KAAK88I,aAAah7I,EAAKsU,IAGhC44I,EAAKj0J,UAAUgiJ,cAAgB,SAAUpvF,EAAOoiG,EAAOjuJ,GAOrD,OANAiuJ,EAAQA,GAAS,OACZxpJ,EAAO6nB,SAASu/B,KACnBA,EAAQ,IAAIpnD,EAAOonD,EAAOoiG,IAIrBtT,EAFQz8I,KAAK4pF,MAAM+8D,cAAch5F,GAAOo6F,YAC5B7zH,IAAIl0B,KAAKwY,KAAKgvI,cAAc97D,OACjB5pF,EAAK9B,KAAKyvJ,UAAU5hI,aAGpDmhI,EAAKj0J,UAAU+hJ,aAAe,SAAUh7I,EAAKsU,GAC3C,IAAI3Y,EAAMuC,KAAKwY,KAAKuvI,UAAqB,eAAX3xI,GAAyB,GAQvD,MAPe,WAAXA,IACE3Y,EAAIA,EAAIjD,OAAS,GAAK,EACxBiD,EAAI,GAAK,EAETA,EAAI,GAAK,GAGNg/I,EAAkBh/I,EAAKqE,IAGhCktJ,EAAKj0J,UAAUoiJ,cAAgB,SAAUr7I,GACvC,OAAO26I,EAAkBz8I,KAAKwY,KAAKgvI,aAAc1lJ,IAGnDktJ,EAAKj0J,UAAU+gJ,aAAe,SAAUC,EAAKj6I,GAM3C,OALAA,EAAMA,GAAO,OACRyE,EAAO6nB,SAAS2tH,KACnBA,EAAM,IAAIx1I,EAAOw1I,EAAKj6I,IAExB9B,KAAKwY,KAAK0wI,cAAcnN,GACjB/7I,MAGTgvJ,EAAKj0J,UAAUkhJ,cAAgB,SAAUp7C,EAAM/+F,GAC7CA,EAAMA,GAAO,OACRyE,EAAO6nB,SAASyyE,KACnBA,EAAO,IAAIt6F,EAAOs6F,EAAM/+F,IAG1B,IAAIo6I,EAAQ,IAAIxhH,EAAGmmE,GAInB,OAHAq7C,EAAQA,EAAMlhJ,SAAS,IACvBgF,KAAKwY,KAAOxY,KAAK4pF,MAAMi9D,aACvB7mJ,KAAKwY,KAAKwwI,eAAe9M,GAClBl8I,Q,6RCzGT,SAAW7D,EAAQT,GACjB,aAGA,SAAS2+B,EAAQ9L,EAAK+L,GACpB,IAAK/L,EAAK,MAAM,IAAIjzB,MAAMg/B,GAAO,oBAKnC,SAASiE,EAAUz4B,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIM,EAAW,aACfA,EAAStL,UAAYgL,EAAUhL,UAC/B+K,EAAK/K,UAAY,IAAIsL,EACrBP,EAAK/K,UAAUkL,YAAcH,EAK/B,SAAS40B,EAAIh1B,EAAQ0M,EAAM0sB,GACzB,GAAIpE,EAAGyH,KAAKz8B,GACV,OAAOA,EAGT1F,KAAKoiC,SAAW,EAChBpiC,KAAKU,MAAQ,KACbV,KAAKxF,OAAS,EAGdwF,KAAKqiC,IAAM,KAEI,OAAX38B,IACW,OAAT0M,GAA0B,OAATA,IACnB0sB,EAAS1sB,EACTA,EAAO,IAGTpS,KAAKsiC,MAAM58B,GAAU,EAAG0M,GAAQ,GAAI0sB,GAAU,OAYlD,IAAIv4B,EATkB,WAAlB,EAAOpK,GACTA,EAAOT,QAAUg/B,EAEjBh/B,EAAQg/B,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAG6H,SAAW,GAGd,IAEIh8B,EADoB,oBAAX7H,aAAmD,IAAlBA,OAAO6H,OACxC7H,OAAO6H,OAEPxH,EAAQ,MAAUwH,OAE7B,MAAOvD,IAgIT,SAASw/B,EAAe1lC,EAAQkN,GAC9B,IAAI7B,EAAIrL,EAAO8F,WAAWoH,GAE1B,OAAI7B,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASs6B,EAAc3lC,EAAQ4lC,EAAY14B,GACzC,IAAIwwB,EAAIgI,EAAc1lC,EAAQkN,GAI9B,OAHIA,EAAQ,GAAK04B,IACflI,GAAKgI,EAAc1lC,EAAQkN,EAAQ,IAAM,GAEpCwwB,EA8CT,SAASmI,EAAW/pB,EAAKiG,EAAOH,EAAKwV,GAGnC,IAFA,IAAIsG,EAAI,EACJ/O,EAAMltB,KAAK8F,IAAIuU,EAAIpe,OAAQkkB,GACtBpd,EAAIud,EAAOvd,EAAImqB,EAAKnqB,IAAK,CAChC,IAAI6G,EAAIyQ,EAAIhW,WAAWtB,GAAK,GAE5Bk5B,GAAKtG,EAIHsG,GADEryB,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAOqyB,EAnNTE,EAAGyH,KAAO,SAAenH,GACvB,OAAIA,aAAeN,GAIJ,OAARM,GAA+B,WAAf,EAAOA,IAC5BA,EAAI/0B,YAAYs8B,WAAa7H,EAAG6H,UAAY9yB,MAAMC,QAAQsrB,EAAIt6B,QAGlEg6B,EAAGx2B,IAAM,SAAc0+B,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTnI,EAAGr2B,IAAM,SAAcu+B,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTnI,EAAG3/B,UAAUunC,MAAQ,SAAe58B,EAAQ0M,EAAM0sB,GAChD,GAAsB,iBAAXp5B,EACT,OAAO1F,KAAK+iC,YAAYr9B,EAAQ0M,EAAM0sB,GAGxC,GAAsB,WAAlB,EAAOp5B,GACT,OAAO1F,KAAKgjC,WAAWt9B,EAAQ0M,EAAM0sB,GAG1B,QAAT1sB,IACFA,EAAO,IAETioB,EAAOjoB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIyM,EAAQ,EACM,OAFlBnZ,EAASA,EAAO1K,WAAW+U,QAAQ,OAAQ,KAEhC,KACT8O,IACA7e,KAAKoiC,SAAW,GAGdvjB,EAAQnZ,EAAOlL,SACJ,KAAT4X,EACFpS,KAAKijC,UAAUv9B,EAAQmZ,EAAOigB,IAE9B9+B,KAAKkjC,WAAWx9B,EAAQ0M,EAAMyM,GACf,OAAXigB,GACF9+B,KAAKgjC,WAAWhjC,KAAKsK,UAAW8H,EAAM0sB,MAM9CpE,EAAG3/B,UAAUgoC,YAAc,SAAsBr9B,EAAQ0M,EAAM0sB,GACzDp5B,EAAS,IACX1F,KAAKoiC,SAAW,EAChB18B,GAAUA,GAERA,EAAS,UACX1F,KAAKU,MAAQ,CAAW,SAATgF,GACf1F,KAAKxF,OAAS,GACLkL,EAAS,kBAClB1F,KAAKU,MAAQ,CACF,SAATgF,EACCA,EAAS,SAAa,UAEzB1F,KAAKxF,OAAS,IAEd6/B,EAAO30B,EAAS,kBAChB1F,KAAKU,MAAQ,CACF,SAATgF,EACCA,EAAS,SAAa,SACvB,GAEF1F,KAAKxF,OAAS,GAGD,OAAXskC,GAGJ9+B,KAAKgjC,WAAWhjC,KAAKsK,UAAW8H,EAAM0sB,IAGxCpE,EAAG3/B,UAAUioC,WAAa,SAAqBt9B,EAAQ0M,EAAM0sB,GAG3D,GADAzE,EAAgC,iBAAlB30B,EAAOlL,QACjBkL,EAAOlL,QAAU,EAGnB,OAFAwF,KAAKU,MAAQ,CAAE,GACfV,KAAKxF,OAAS,EACPwF,KAGTA,KAAKxF,OAAS+D,KAAKkD,KAAKiE,EAAOlL,OAAS,GACxCwF,KAAKU,MAAQ,IAAI+O,MAAMzP,KAAKxF,QAC5B,IAAK,IAAI8G,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC/BtB,KAAKU,MAAMY,GAAK,EAGlB,IAAIE,EAAGy5B,EACH9Y,EAAM,EACV,GAAe,OAAX2c,EACF,IAAKx9B,EAAIoE,EAAOlL,OAAS,EAAGgH,EAAI,EAAGF,GAAK,EAAGA,GAAK,EAC9C25B,EAAIv1B,EAAOpE,GAAMoE,EAAOpE,EAAI,IAAM,EAAMoE,EAAOpE,EAAI,IAAM,GACzDtB,KAAKU,MAAMc,IAAOy5B,GAAK9Y,EAAO,SAC9BniB,KAAKU,MAAMc,EAAI,GAAMy5B,IAAO,GAAK9Y,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP3gB,UAGC,GAAe,OAAXs9B,EACT,IAAKx9B,EAAI,EAAGE,EAAI,EAAGF,EAAIoE,EAAOlL,OAAQ8G,GAAK,EACzC25B,EAAIv1B,EAAOpE,GAAMoE,EAAOpE,EAAI,IAAM,EAAMoE,EAAOpE,EAAI,IAAM,GACzDtB,KAAKU,MAAMc,IAAOy5B,GAAK9Y,EAAO,SAC9BniB,KAAKU,MAAMc,EAAI,GAAMy5B,IAAO,GAAK9Y,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP3gB,KAIN,OAAOxB,KAAKmjC,SAyBdzI,EAAG3/B,UAAUkoC,UAAY,SAAoBv9B,EAAQmZ,EAAOigB,GAE1D9+B,KAAKxF,OAAS+D,KAAKkD,MAAMiE,EAAOlL,OAASqkB,GAAS,GAClD7e,KAAKU,MAAQ,IAAI+O,MAAMzP,KAAKxF,QAC5B,IAAK,IAAI8G,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC/BtB,KAAKU,MAAMY,GAAK,EAIlB,IAGI25B,EAHA9Y,EAAM,EACN3gB,EAAI,EAGR,GAAe,OAAXs9B,EACF,IAAKx9B,EAAIoE,EAAOlL,OAAS,EAAG8G,GAAKud,EAAOvd,GAAK,EAC3C25B,EAAIwH,EAAa/8B,EAAQmZ,EAAOvd,IAAM6gB,EACtCniB,KAAKU,MAAMc,IAAU,SAAJy5B,EACb9Y,GAAO,IACTA,GAAO,GACP3gB,GAAK,EACLxB,KAAKU,MAAMc,IAAMy5B,IAAM,IAEvB9Y,GAAO,OAKX,IAAK7gB,GADaoE,EAAOlL,OAASqkB,GACX,GAAM,EAAIA,EAAQ,EAAIA,EAAOvd,EAAIoE,EAAOlL,OAAQ8G,GAAK,EAC1E25B,EAAIwH,EAAa/8B,EAAQmZ,EAAOvd,IAAM6gB,EACtCniB,KAAKU,MAAMc,IAAU,SAAJy5B,EACb9Y,GAAO,IACTA,GAAO,GACP3gB,GAAK,EACLxB,KAAKU,MAAMc,IAAMy5B,IAAM,IAEvB9Y,GAAO,EAKbniB,KAAKmjC,SA2BPzI,EAAG3/B,UAAUmoC,WAAa,SAAqBx9B,EAAQ0M,EAAMyM,GAE3D7e,KAAKU,MAAQ,CAAE,GACfV,KAAKxF,OAAS,EAGd,IAAK,IAAI4oC,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWjxB,EAClEgxB,IAEFA,IACAC,EAAWA,EAAUjxB,EAAQ,EAO7B,IALA,IAAIkxB,EAAQ59B,EAAOlL,OAASqkB,EACxB0c,EAAM+H,EAAQF,EACd1kB,EAAMngB,KAAK8F,IAAIi/B,EAAOA,EAAQ/H,GAAO1c,EAErC6f,EAAO,EACFp9B,EAAIud,EAAOvd,EAAIod,EAAKpd,GAAK8hC,EAChC1E,EAAOiE,EAAUj9B,EAAQpE,EAAGA,EAAI8hC,EAAShxB,GAEzCpS,KAAKujC,MAAMF,GACPrjC,KAAKU,MAAM,GAAKg+B,EAAO,SACzB1+B,KAAKU,MAAM,IAAMg+B,EAEjB1+B,KAAKwjC,OAAO9E,GAIhB,GAAY,IAARnD,EAAW,CACb,IAAI9G,EAAM,EAGV,IAFAiK,EAAOiE,EAAUj9B,EAAQpE,EAAGoE,EAAOlL,OAAQ4X,GAEtC9Q,EAAI,EAAGA,EAAIi6B,EAAKj6B,IACnBmzB,GAAOriB,EAGTpS,KAAKujC,MAAM9O,GACPz0B,KAAKU,MAAM,GAAKg+B,EAAO,SACzB1+B,KAAKU,MAAM,IAAMg+B,EAEjB1+B,KAAKwjC,OAAO9E,GAIhB1+B,KAAKmjC,SAGPzI,EAAG3/B,UAAUuzB,KAAO,SAAemV,GACjCA,EAAK/iC,MAAQ,IAAI+O,MAAMzP,KAAKxF,QAC5B,IAAK,IAAI8G,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC/BmiC,EAAK/iC,MAAMY,GAAKtB,KAAKU,MAAMY,GAE7BmiC,EAAKjpC,OAASwF,KAAKxF,OACnBipC,EAAKrB,SAAWpiC,KAAKoiC,SACrBqB,EAAKpB,IAAMriC,KAAKqiC,KAGlB3H,EAAG3/B,UAAUyF,MAAQ,WACnB,IAAIg6B,EAAI,IAAIE,EAAG,MAEf,OADA16B,KAAKsuB,KAAKkM,GACHA,GAGTE,EAAG3/B,UAAU2oC,QAAU,SAAkBx8B,GACvC,KAAOlH,KAAKxF,OAAS0M,GACnBlH,KAAKU,MAAMV,KAAKxF,UAAY,EAE9B,OAAOwF,MAIT06B,EAAG3/B,UAAUooC,MAAQ,WACnB,KAAOnjC,KAAKxF,OAAS,GAAqC,IAAhCwF,KAAKU,MAAMV,KAAKxF,OAAS,IACjDwF,KAAKxF,SAEP,OAAOwF,KAAK2jC,aAGdjJ,EAAG3/B,UAAU4oC,UAAY,WAKvB,OAHoB,IAAhB3jC,KAAKxF,QAAkC,IAAlBwF,KAAKU,MAAM,KAClCV,KAAKoiC,SAAW,GAEXpiC,MAGT06B,EAAG3/B,UAAU03B,QAAU,WACrB,OAAQzyB,KAAKqiC,IAAM,UAAY,SAAWriC,KAAKhF,SAAS,IAAM,KAiChE,IAAI4oC,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYplC,EAAMq8B,EAAK9H,GAC9BA,EAAIkP,SAAWpH,EAAIoH,SAAWzjC,EAAKyjC,SACnC,IAAI3W,EAAO9sB,EAAKnE,OAASwgC,EAAIxgC,OAAU,EACvC04B,EAAI14B,OAASixB,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAI/jB,EAAoB,EAAhB/I,EAAK+B,MAAM,GACfiH,EAAmB,EAAfqzB,EAAIt6B,MAAM,GACd85B,EAAI9yB,EAAIC,EAERmpB,EAAS,SAAJ0J,EACL0F,EAAS1F,EAAI,SAAa,EAC9BtH,EAAIxyB,MAAM,GAAKowB,EAEf,IAAK,IAAItJ,EAAI,EAAGA,EAAIiE,EAAKjE,IAAK,CAM5B,IAHA,IAAIwc,EAAS9D,IAAU,GACnB+D,EAAgB,SAAR/D,EACRgE,EAAO3lC,KAAK8F,IAAImjB,EAAGwT,EAAIxgC,OAAS,GAC3BgH,EAAIjD,KAAK2F,IAAI,EAAGsjB,EAAI7oB,EAAKnE,OAAS,GAAIgH,GAAK0iC,EAAM1iC,IAAK,CAC7D,IAAIF,EAAKkmB,EAAIhmB,EAAK,EAIlBwiC,IADAxJ,GAFA9yB,EAAoB,EAAhB/I,EAAK+B,MAAMY,KACfqG,EAAmB,EAAfqzB,EAAIt6B,MAAMc,IACFyiC,GACG,SAAa,EAC5BA,EAAY,SAAJzJ,EAEVtH,EAAIxyB,MAAM8mB,GAAa,EAARyc,EACf/D,EAAiB,EAAT8D,EAQV,OANc,IAAV9D,EACFhN,EAAIxyB,MAAM8mB,GAAa,EAAR0Y,EAEfhN,EAAI14B,SAGC04B,EAAIiQ,QAzlBbzI,EAAG3/B,UAAUC,SAAW,SAAmBoX,EAAMuD,GAI/C,IAAIud,EACJ,GAHAvd,EAAoB,EAAVA,GAAe,EAGZ,MAJbvD,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC8gB,EAAM,GAGN,IAFA,IAAI/Q,EAAM,EACN+d,EAAQ,EACH5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CACpC,IAAI25B,EAAIj7B,KAAKU,MAAMY,GACfo9B,GAA+B,UAArBzD,GAAK9Y,EAAO+d,IAAmBllC,SAAS,IAGpDk4B,EADY,KADdgN,EAASjF,IAAO,GAAK9Y,EAAQ,WACV7gB,IAAMtB,KAAKxF,OAAS,EAC/BopC,EAAM,EAAIlF,EAAKlkC,QAAUkkC,EAAOxL,EAEhCwL,EAAOxL,GAEf/Q,GAAO,IACI,KACTA,GAAO,GACP7gB,KAMJ,IAHc,IAAV4+B,IACFhN,EAAMgN,EAAMllC,SAAS,IAAMk4B,GAEtBA,EAAI14B,OAASmb,GAAY,GAC9Bud,EAAM,IAAMA,EAKd,OAHsB,IAAlBlzB,KAAKoiC,WACPlP,EAAM,IAAMA,GAEPA,EAGT,GAAI9gB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI+xB,EAAYN,EAAWzxB,GAEvBgyB,EAAYN,EAAW1xB,GAC3B8gB,EAAM,GACN,IAAI/qB,EAAInI,KAAKQ,QAEb,IADA2H,EAAEi6B,SAAW,GACLj6B,EAAEk8B,UAAU,CAClB,IAAI7J,EAAIryB,EAAEm8B,KAAKF,GAAWppC,SAASoX,GAMjC8gB,GALF/qB,EAAIA,EAAEo8B,MAAMH,IAELC,SAGC7J,EAAItH,EAFJ0Q,EAAMO,EAAY3J,EAAEhgC,QAAUggC,EAAItH,EAQ5C,IAHIlzB,KAAKqkC,WACPnR,EAAM,IAAMA,GAEPA,EAAI14B,OAASmb,GAAY,GAC9Bud,EAAM,IAAMA,EAKd,OAHsB,IAAlBlzB,KAAKoiC,WACPlP,EAAM,IAAMA,GAEPA,EAGTmH,GAAO,EAAO,oCAGhBK,EAAG3/B,UAAUypC,SAAW,WACtB,IAAIva,EAAMjqB,KAAKU,MAAM,GASrB,OARoB,IAAhBV,KAAKxF,OACPyvB,GAAuB,SAAhBjqB,KAAKU,MAAM,GACO,IAAhBV,KAAKxF,QAAkC,IAAlBwF,KAAKU,MAAM,GAEzCupB,GAAO,iBAAoC,SAAhBjqB,KAAKU,MAAM,GAC7BV,KAAKxF,OAAS,GACvB6/B,GAAO,EAAO,8CAEU,IAAlBr6B,KAAKoiC,UAAmBnY,EAAMA,GAGxCyQ,EAAG3/B,UAAUi4B,OAAS,WACpB,OAAOhzB,KAAKhF,SAAS,KAGvB0/B,EAAG3/B,UAAU0pC,SAAW,SAAmB3F,EAAQtkC,GAEjD,OADA6/B,OAAyB,IAAX9zB,GACPvG,KAAK0kC,YAAYn+B,EAAQu4B,EAAQtkC,IAG1CkgC,EAAG3/B,UAAUuP,QAAU,SAAkBw0B,EAAQtkC,GAC/C,OAAOwF,KAAK0kC,YAAYj1B,MAAOqvB,EAAQtkC,IAGzCkgC,EAAG3/B,UAAU2pC,YAAc,SAAsBC,EAAW7F,EAAQtkC,GAClE,IAAIqzB,EAAa7tB,KAAK6tB,aAClB+W,EAAYpqC,GAAU+D,KAAK2F,IAAI,EAAG2pB,GACtCwM,EAAOxM,GAAc+W,EAAW,yCAChCvK,EAAOuK,EAAY,EAAG,+BAEtB5kC,KAAKmjC,QACL,IAGIx7B,EAAGrG,EAHHmyB,EAA0B,OAAXqL,EACf9hB,EAAM,IAAI2nB,EAAUC,GAGpBC,EAAI7kC,KAAKQ,QACb,GAAKizB,EAYE,CACL,IAAKnyB,EAAI,GAAIujC,EAAER,SAAU/iC,IACvBqG,EAAIk9B,EAAErJ,MAAM,KACZqJ,EAAElJ,OAAO,GAET3e,EAAI1b,GAAKqG,EAGX,KAAOrG,EAAIsjC,EAAWtjC,IACpB0b,EAAI1b,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAIsjC,EAAY/W,EAAYvsB,IACtC0b,EAAI1b,GAAK,EAGX,IAAKA,EAAI,GAAIujC,EAAER,SAAU/iC,IACvBqG,EAAIk9B,EAAErJ,MAAM,KACZqJ,EAAElJ,OAAO,GAET3e,EAAI4nB,EAAYtjC,EAAI,GAAKqG,EAe7B,OAAOqV,GAGLze,KAAKumC,MACPpK,EAAG3/B,UAAUgqC,WAAa,SAAqB9J,GAC7C,OAAO,GAAK18B,KAAKumC,MAAM7J,IAGzBP,EAAG3/B,UAAUgqC,WAAa,SAAqB9J,GAC7C,IAAInzB,EAAImzB,EACJT,EAAI,EAiBR,OAhBI1yB,GAAK,OACP0yB,GAAK,GACL1yB,KAAO,IAELA,GAAK,KACP0yB,GAAK,EACL1yB,KAAO,GAELA,GAAK,IACP0yB,GAAK,EACL1yB,KAAO,GAELA,GAAK,IACP0yB,GAAK,EACL1yB,KAAO,GAEF0yB,EAAI1yB,GAIf4yB,EAAG3/B,UAAUiqC,UAAY,SAAoB/J,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAInzB,EAAImzB,EACJT,EAAI,EAoBR,OAnBqB,IAAZ,KAAJ1yB,KACH0yB,GAAK,GACL1yB,KAAO,IAEU,IAAV,IAAJA,KACH0yB,GAAK,EACL1yB,KAAO,GAES,IAAT,GAAJA,KACH0yB,GAAK,EACL1yB,KAAO,GAES,IAAT,EAAJA,KACH0yB,GAAK,EACL1yB,KAAO,GAES,IAAT,EAAJA,IACH0yB,IAEKA,GAITE,EAAG3/B,UAAUqgC,UAAY,WACvB,IAAIH,EAAIj7B,KAAKU,MAAMV,KAAKxF,OAAS,GAC7Bq2B,EAAK7wB,KAAK+kC,WAAW9J,GACzB,OAA2B,IAAnBj7B,KAAKxF,OAAS,GAAUq2B,GAiBlC6J,EAAG3/B,UAAUkqC,SAAW,WACtB,GAAIjlC,KAAKqkC,SAAU,OAAO,EAG1B,IADA,IAAI7J,EAAI,EACCl5B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CACpC,IAAIqG,EAAI3H,KAAKglC,UAAUhlC,KAAKU,MAAMY,IAElC,GADAk5B,GAAK7yB,EACK,KAANA,EAAU,MAEhB,OAAO6yB,GAGTE,EAAG3/B,UAAU8yB,WAAa,WACxB,OAAOtvB,KAAKkD,KAAKzB,KAAKo7B,YAAc,IAGtCV,EAAG3/B,UAAUmqC,OAAS,SAAiBnpC,GACrC,OAAsB,IAAlBiE,KAAKoiC,SACApiC,KAAK83B,MAAMqN,MAAMppC,GAAOqpC,MAAM,GAEhCplC,KAAKQ,SAGdk6B,EAAG3/B,UAAUsqC,SAAW,SAAmBtpC,GACzC,OAAIiE,KAAKslC,MAAMvpC,EAAQ,GACdiE,KAAKulC,KAAKxpC,GAAOqpC,MAAM,GAAGI,OAE5BxlC,KAAKQ,SAGdk6B,EAAG3/B,UAAU0qC,MAAQ,WACnB,OAAyB,IAAlBzlC,KAAKoiC,UAId1H,EAAG3/B,UAAU2qC,IAAM,WACjB,OAAO1lC,KAAKQ,QAAQglC,QAGtB9K,EAAG3/B,UAAUyqC,KAAO,WAKlB,OAJKxlC,KAAKqkC,WACRrkC,KAAKoiC,UAAY,GAGZpiC,MAIT06B,EAAG3/B,UAAU4qC,KAAO,SAAe3K,GACjC,KAAOh7B,KAAKxF,OAASwgC,EAAIxgC,QACvBwF,KAAKU,MAAMV,KAAKxF,UAAY,EAG9B,IAAK,IAAI8G,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAC9BtB,KAAKU,MAAMY,GAAKtB,KAAKU,MAAMY,GAAK05B,EAAIt6B,MAAMY,GAG5C,OAAOtB,KAAKmjC,SAGdzI,EAAG3/B,UAAU6qC,IAAM,SAAc5K,GAE/B,OADAX,EAA0C,IAAlCr6B,KAAKoiC,SAAWpH,EAAIoH,WACrBpiC,KAAK2lC,KAAK3K,IAInBN,EAAG3/B,UAAU8qC,GAAK,SAAa7K,GAC7B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQolC,IAAI5K,GAC/CA,EAAIx6B,QAAQolC,IAAI5lC,OAGzB06B,EAAG3/B,UAAU+qC,IAAM,SAAc9K,GAC/B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQmlC,KAAK3K,GAChDA,EAAIx6B,QAAQmlC,KAAK3lC,OAI1B06B,EAAG3/B,UAAUgrC,MAAQ,SAAgB/K,GAEnC,IAAIrzB,EAEFA,EADE3H,KAAKxF,OAASwgC,EAAIxgC,OAChBwgC,EAEAh7B,KAGN,IAAK,IAAIsB,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAC5BtB,KAAKU,MAAMY,GAAKtB,KAAKU,MAAMY,GAAK05B,EAAIt6B,MAAMY,GAK5C,OAFAtB,KAAKxF,OAASmN,EAAEnN,OAETwF,KAAKmjC,SAGdzI,EAAG3/B,UAAUirC,KAAO,SAAehL,GAEjC,OADAX,EAA0C,IAAlCr6B,KAAKoiC,SAAWpH,EAAIoH,WACrBpiC,KAAK+lC,MAAM/K,IAIpBN,EAAG3/B,UAAUkrC,IAAM,SAAcjL,GAC/B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQwlC,KAAKhL,GAChDA,EAAIx6B,QAAQwlC,KAAKhmC,OAG1B06B,EAAG3/B,UAAUmrC,KAAO,SAAelL,GACjC,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQulC,MAAM/K,GACjDA,EAAIx6B,QAAQulC,MAAM/lC,OAI3B06B,EAAG3/B,UAAUorC,MAAQ,SAAgBnL,GAEnC,IAAItzB,EACAC,EACA3H,KAAKxF,OAASwgC,EAAIxgC,QACpBkN,EAAI1H,KACJ2H,EAAIqzB,IAEJtzB,EAAIszB,EACJrzB,EAAI3H,MAGN,IAAK,IAAIsB,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAC5BtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAAKqG,EAAEjH,MAAMY,GAGvC,GAAItB,OAAS0H,EACX,KAAOpG,EAAIoG,EAAElN,OAAQ8G,IACnBtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAM5B,OAFAtB,KAAKxF,OAASkN,EAAElN,OAETwF,KAAKmjC,SAGdzI,EAAG3/B,UAAUqrC,KAAO,SAAepL,GAEjC,OADAX,EAA0C,IAAlCr6B,KAAKoiC,SAAWpH,EAAIoH,WACrBpiC,KAAKmmC,MAAMnL,IAIpBN,EAAG3/B,UAAUsrC,IAAM,SAAcrL,GAC/B,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQ4lC,KAAKpL,GAChDA,EAAIx6B,QAAQ4lC,KAAKpmC,OAG1B06B,EAAG3/B,UAAUurC,KAAO,SAAetL,GACjC,OAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQ2lC,MAAMnL,GACjDA,EAAIx6B,QAAQ2lC,MAAMnmC,OAI3B06B,EAAG3/B,UAAUoqC,MAAQ,SAAgBppC,GACnCs+B,EAAwB,iBAAVt+B,GAAsBA,GAAS,GAE7C,IAAIwqC,EAAsC,EAAxBhoC,KAAKkD,KAAK1F,EAAQ,IAChCyqC,EAAWzqC,EAAQ,GAGvBiE,KAAK0jC,QAAQ6C,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIjlC,EAAI,EAAGA,EAAIilC,EAAajlC,IAC/BtB,KAAKU,MAAMY,GAAsB,UAAhBtB,KAAKU,MAAMY,GAS9B,OALIklC,EAAW,IACbxmC,KAAKU,MAAMY,IAAMtB,KAAKU,MAAMY,GAAM,UAAc,GAAKklC,GAIhDxmC,KAAKmjC,SAGdzI,EAAG3/B,UAAUwqC,KAAO,SAAexpC,GACjC,OAAOiE,KAAKQ,QAAQ2kC,MAAMppC,IAI5B2+B,EAAG3/B,UAAU0rC,KAAO,SAAeC,EAAKnY,GACtC8L,EAAsB,iBAARqM,GAAoBA,GAAO,GAEzC,IAAIvkB,EAAOukB,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARA1mC,KAAK0jC,QAAQvhB,EAAM,GAGjBniB,KAAKU,MAAMyhB,GADToM,EACgBvuB,KAAKU,MAAMyhB,GAAQ,GAAKwkB,EAExB3mC,KAAKU,MAAMyhB,KAAS,GAAKwkB,GAGtC3mC,KAAKmjC,SAIdzI,EAAG3/B,UAAU6rC,KAAO,SAAe5L,GACjC,IAAIR,EAkBA9yB,EAAGC,EAfP,GAAsB,IAAlB3H,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAI7B,OAHApiC,KAAKoiC,SAAW,EAChB5H,EAAIx6B,KAAK6mC,KAAK7L,GACdh7B,KAAKoiC,UAAY,EACVpiC,KAAK2jC,YAGP,GAAsB,IAAlB3jC,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAIpC,OAHApH,EAAIoH,SAAW,EACf5H,EAAIx6B,KAAK6mC,KAAK7L,GACdA,EAAIoH,SAAW,EACR5H,EAAEmJ,YAKP3jC,KAAKxF,OAASwgC,EAAIxgC,QACpBkN,EAAI1H,KACJ2H,EAAIqzB,IAEJtzB,EAAIszB,EACJrzB,EAAI3H,MAIN,IADA,IAAIkgC,EAAQ,EACH5+B,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAC5Bk5B,GAAkB,EAAb9yB,EAAEhH,MAAMY,KAAwB,EAAbqG,EAAEjH,MAAMY,IAAU4+B,EAC1ClgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAChB0F,EAAQ1F,IAAM,GAEhB,KAAiB,IAAV0F,GAAe5+B,EAAIoG,EAAElN,OAAQ8G,IAClCk5B,GAAkB,EAAb9yB,EAAEhH,MAAMY,IAAU4+B,EACvBlgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAChB0F,EAAQ1F,IAAM,GAIhB,GADAx6B,KAAKxF,OAASkN,EAAElN,OACF,IAAV0lC,EACFlgC,KAAKU,MAAMV,KAAKxF,QAAU0lC,EAC1BlgC,KAAKxF,cAEA,GAAIkN,IAAM1H,KACf,KAAOsB,EAAIoG,EAAElN,OAAQ8G,IACnBtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAI5B,OAAOtB,MAIT06B,EAAG3/B,UAAU+rC,IAAM,SAAc9L,GAC/B,IAAIhe,EACJ,OAAqB,IAAjBge,EAAIoH,UAAoC,IAAlBpiC,KAAKoiC,UAC7BpH,EAAIoH,SAAW,EACfplB,EAAMhd,KAAKsb,IAAI0f,GACfA,EAAIoH,UAAY,EACTplB,GACmB,IAAjBge,EAAIoH,UAAoC,IAAlBpiC,KAAKoiC,UACpCpiC,KAAKoiC,SAAW,EAChBplB,EAAMge,EAAI1f,IAAItb,MACdA,KAAKoiC,SAAW,EACTplB,GAGLhd,KAAKxF,OAASwgC,EAAIxgC,OAAewF,KAAKQ,QAAQomC,KAAK5L,GAEhDA,EAAIx6B,QAAQomC,KAAK5mC,OAI1B06B,EAAG3/B,UAAU8rC,KAAO,SAAe7L,GAEjC,GAAqB,IAAjBA,EAAIoH,SAAgB,CACtBpH,EAAIoH,SAAW,EACf,IAAI5H,EAAIx6B,KAAK4mC,KAAK5L,GAElB,OADAA,EAAIoH,SAAW,EACR5H,EAAEmJ,YAGJ,GAAsB,IAAlB3jC,KAAKoiC,SAId,OAHApiC,KAAKoiC,SAAW,EAChBpiC,KAAK4mC,KAAK5L,GACVh7B,KAAKoiC,SAAW,EACTpiC,KAAK2jC,YAId,IAWIj8B,EAAGC,EAXHm7B,EAAM9iC,KAAK8iC,IAAI9H,GAGnB,GAAY,IAAR8H,EAIF,OAHA9iC,KAAKoiC,SAAW,EAChBpiC,KAAKxF,OAAS,EACdwF,KAAKU,MAAM,GAAK,EACTV,KAKL8iC,EAAM,GACRp7B,EAAI1H,KACJ2H,EAAIqzB,IAEJtzB,EAAIszB,EACJrzB,EAAI3H,MAIN,IADA,IAAIkgC,EAAQ,EACH5+B,EAAI,EAAGA,EAAIqG,EAAEnN,OAAQ8G,IAE5B4+B,GADA1F,GAAkB,EAAb9yB,EAAEhH,MAAMY,KAAwB,EAAbqG,EAAEjH,MAAMY,IAAU4+B,IAC7B,GACblgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAElB,KAAiB,IAAV0F,GAAe5+B,EAAIoG,EAAElN,OAAQ8G,IAElC4+B,GADA1F,GAAkB,EAAb9yB,EAAEhH,MAAMY,IAAU4+B,IACV,GACblgC,KAAKU,MAAMY,GAAS,SAAJk5B,EAIlB,GAAc,IAAV0F,GAAe5+B,EAAIoG,EAAElN,QAAUkN,IAAM1H,KACvC,KAAOsB,EAAIoG,EAAElN,OAAQ8G,IACnBtB,KAAKU,MAAMY,GAAKoG,EAAEhH,MAAMY,GAU5B,OANAtB,KAAKxF,OAAS+D,KAAK2F,IAAIlE,KAAKxF,OAAQ8G,GAEhCoG,IAAM1H,OACRA,KAAKoiC,SAAW,GAGXpiC,KAAKmjC,SAIdzI,EAAG3/B,UAAUugB,IAAM,SAAc0f,GAC/B,OAAOh7B,KAAKQ,QAAQqmC,KAAK7L,IA+C3B,IAAI+L,EAAc,SAAsBpoC,EAAMq8B,EAAK9H,GACjD,IAIIpC,EACAkW,EACAnW,EANAnpB,EAAI/I,EAAK+B,MACTiH,EAAIqzB,EAAIt6B,MACRogC,EAAI5N,EAAIxyB,MACRyH,EAAI,EAIJ8+B,EAAY,EAAPv/B,EAAE,GACPw/B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1/B,EAAE,GACP2/B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7/B,EAAE,GACP8/B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhgC,EAAE,GACPigC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPngC,EAAE,GACPogC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtgC,EAAE,GACPugC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzgC,EAAE,GACP0gC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5gC,EAAE,GACP6gC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/gC,EAAE,GACPghC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlhC,EAAE,GACPmhC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPphC,EAAE,GACPqhC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvhC,EAAE,GACPwhC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1hC,EAAE,GACP2hC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7hC,EAAE,GACP8hC,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhiC,EAAE,GACPiiC,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPniC,EAAE,GACPoiC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPtiC,EAAE,GACPuiC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPziC,EAAE,GACP0iC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5iC,EAAE,GACP6iC,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/iC,EAAE,GACPgjC,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBxX,EAAIkP,SAAWzjC,EAAKyjC,SAAWpH,EAAIoH,SACnClP,EAAI14B,OAAS,GAMb,IAAIqwC,IAAQ1iC,GAJZ2oB,EAAKvyB,KAAKusC,KAAK5D,EAAK8B,IAIE,KAAa,MAFnChC,GADAA,EAAMzoC,KAAKusC,KAAK5D,EAAK+B,IACR1qC,KAAKusC,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrD7gC,IAFA0oB,EAAKtyB,KAAKusC,KAAK3D,EAAK8B,KAEPjC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAEN/Z,EAAKvyB,KAAKusC,KAAKzD,EAAK2B,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKzD,EAAK4B,IACR1qC,KAAKusC,KAAKxD,EAAK0B,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQ5iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKkC,GAAQ,GACvB7qC,KAAKusC,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDhhC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKiC,GAAQ,IAErBpC,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENja,EAAKvyB,KAAKusC,KAAKtD,EAAKwB,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKtD,EAAKyB,IACR1qC,KAAKusC,KAAKrD,EAAKuB,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKrD,EAAKwB,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAK8B,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAK+B,GAAQ,GACvB7qC,KAAKusC,KAAKxD,EAAK6B,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQ7iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKqC,GAAQ,GACvBhrC,KAAKusC,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrDnhC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKoC,GAAQ,IAErBvC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENla,EAAKvyB,KAAKusC,KAAKnD,EAAKqB,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKnD,EAAKsB,IACR1qC,KAAKusC,KAAKlD,EAAKoB,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKlD,EAAKqB,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK2B,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK4B,GAAQ,GACvB7qC,KAAKusC,KAAKrD,EAAK0B,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK2B,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKiC,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKkC,GAAQ,GACvBhrC,KAAKusC,KAAKxD,EAAKgC,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQ9iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKwC,GAAQ,GACvBnrC,KAAKusC,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrDthC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKuC,GAAQ,IAErB1C,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENna,EAAKvyB,KAAKusC,KAAKhD,EAAKkB,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKhD,EAAKmB,IACR1qC,KAAKusC,KAAK/C,EAAKiB,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAK/C,EAAKkB,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKwB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKyB,GAAQ,GACvB7qC,KAAKusC,KAAKlD,EAAKuB,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKwB,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK8B,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK+B,GAAQ,GACvBhrC,KAAKusC,KAAKrD,EAAK6B,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK8B,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKoC,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKqC,GAAQ,GACvBnrC,KAAKusC,KAAKxD,EAAKmC,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQ/iC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAK2C,IAAQ,GACvBtrC,KAAKusC,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDzhC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAK0C,IAAQ,IAErB7C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENpa,EAAKvyB,KAAKusC,KAAK7C,EAAKe,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAK7C,EAAKgB,IACR1qC,KAAKusC,KAAK5C,EAAKc,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAK5C,EAAKe,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKqB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKsB,GAAQ,GACvB7qC,KAAKusC,KAAK/C,EAAKoB,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKqB,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK2B,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK4B,GAAQ,GACvBhrC,KAAKusC,KAAKlD,EAAK0B,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK2B,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKiC,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKkC,GAAQ,GACvBnrC,KAAKusC,KAAKrD,EAAKgC,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKiC,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKuC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKwC,IAAQ,GACvBtrC,KAAKusC,KAAKxD,EAAKsC,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQhjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAK8C,IAAQ,GACvBzrC,KAAKusC,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrD5hC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAK6C,IAAQ,IAErBhD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENra,EAAKvyB,KAAKusC,KAAK1C,EAAKY,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAK1C,EAAKa,IACR1qC,KAAKusC,KAAKzC,EAAKW,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKzC,EAAKY,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKkB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKmB,GAAQ,GACvB7qC,KAAKusC,KAAK5C,EAAKiB,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKkB,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKwB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKyB,GAAQ,GACvBhrC,KAAKusC,KAAK/C,EAAKuB,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKwB,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK8B,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK+B,GAAQ,GACvBnrC,KAAKusC,KAAKlD,EAAK6B,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK8B,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKoC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKqC,IAAQ,GACvBtrC,KAAKusC,KAAKrD,EAAKmC,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKoC,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAK0C,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAK2C,IAAQ,GACvBzrC,KAAKusC,KAAKxD,EAAKyC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQjjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKiD,IAAQ,GACvB5rC,KAAKusC,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrD/hC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKgD,IAAQ,IAErBnD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENta,EAAKvyB,KAAKusC,KAAKvC,EAAKS,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKvC,EAAKU,IACR1qC,KAAKusC,KAAKtC,EAAKQ,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKtC,EAAKS,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKe,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKgB,GAAQ,GACvB7qC,KAAKusC,KAAKzC,EAAKc,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKe,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKqB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKsB,GAAQ,GACvBhrC,KAAKusC,KAAK5C,EAAKoB,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKqB,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK2B,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK4B,GAAQ,GACvBnrC,KAAKusC,KAAK/C,EAAK0B,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK2B,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKiC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKkC,IAAQ,GACvBtrC,KAAKusC,KAAKlD,EAAKgC,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKiC,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKuC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKwC,IAAQ,GACvBzrC,KAAKusC,KAAKrD,EAAKsC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKuC,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAK6C,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAK8C,IAAQ,GACvB5rC,KAAKusC,KAAKxD,EAAK4C,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQljC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKoD,IAAQ,GACvB/rC,KAAKusC,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrDliC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKmD,IAAQ,IAErBtD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENva,EAAKvyB,KAAKusC,KAAKpC,EAAKM,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKpC,EAAKO,IACR1qC,KAAKusC,KAAKnC,EAAKK,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKnC,EAAKM,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKY,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKa,GAAQ,GACvB7qC,KAAKusC,KAAKtC,EAAKW,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKY,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKkB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKmB,GAAQ,GACvBhrC,KAAKusC,KAAKzC,EAAKiB,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKkB,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKwB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKyB,GAAQ,GACvBnrC,KAAKusC,KAAK5C,EAAKuB,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKwB,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK8B,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK+B,IAAQ,GACvBtrC,KAAKusC,KAAK/C,EAAK6B,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK8B,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKoC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKqC,IAAQ,GACvBzrC,KAAKusC,KAAKlD,EAAKmC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKoC,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK0C,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK2C,IAAQ,GACvB5rC,KAAKusC,KAAKrD,EAAKyC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK0C,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKgD,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKiD,IAAQ,GACvB/rC,KAAKusC,KAAKxD,EAAK+C,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQnjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAKuD,IAAQ,GACvBlsC,KAAKusC,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrDriC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKsD,IAAQ,IAErBzD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENxa,EAAKvyB,KAAKusC,KAAKjC,EAAKG,GAEpBhC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKI,IACR1qC,KAAKusC,KAAKhC,EAAKE,GAAQ,EACpCnY,EAAKtyB,KAAKusC,KAAKhC,EAAKG,GACpBnY,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKS,GAAQ,EAElCnC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKU,GAAQ,GACvB7qC,KAAKusC,KAAKnC,EAAKQ,GAAQ,EACpCtY,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKS,GAAQ,EAClCtY,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKe,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKgB,GAAQ,GACvBhrC,KAAKusC,KAAKtC,EAAKc,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKe,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKqB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKsB,GAAQ,GACvBnrC,KAAKusC,KAAKzC,EAAKoB,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKqB,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAK2B,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAK4B,IAAQ,GACvBtrC,KAAKusC,KAAK5C,EAAK0B,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAK2B,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKiC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKkC,IAAQ,GACvBzrC,KAAKusC,KAAK/C,EAAKgC,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKiC,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKuC,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKwC,IAAQ,GACvB5rC,KAAKusC,KAAKlD,EAAKsC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKuC,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAK6C,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAK8C,IAAQ,GACvB/rC,KAAKusC,KAAKrD,EAAK4C,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAK6C,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKmD,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKoD,IAAQ,GACvBlsC,KAAKusC,KAAKxD,EAAKkD,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQpjC,GAJZ2oB,EAAMA,EAAKvyB,KAAKusC,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK5D,EAAK0D,IAAQ,GACvBrsC,KAAKusC,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK3D,EAAKyD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAENza,EAAKvyB,KAAKusC,KAAKjC,EAAKM,GAEpBnC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKO,IACR7qC,KAAKusC,KAAKhC,EAAKK,GAAQ,EACpCtY,EAAKtyB,KAAKusC,KAAKhC,EAAKM,GACpBtY,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKY,GAAQ,EAElCtC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKa,GAAQ,GACvBhrC,KAAKusC,KAAKnC,EAAKW,GAAQ,EACpCzY,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKY,GAAQ,EAClCzY,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKkB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKmB,GAAQ,GACvBnrC,KAAKusC,KAAKtC,EAAKiB,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKkB,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKwB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKyB,IAAQ,GACvBtrC,KAAKusC,KAAKzC,EAAKuB,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKwB,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAK8B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAK+B,IAAQ,GACvBzrC,KAAKusC,KAAK5C,EAAK6B,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAK8B,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKoC,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKqC,IAAQ,GACvB5rC,KAAKusC,KAAK/C,EAAKmC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKoC,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK0C,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK2C,IAAQ,GACvB/rC,KAAKusC,KAAKlD,EAAKyC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK0C,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKgD,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKiD,IAAQ,GACvBlsC,KAAKusC,KAAKrD,EAAK+C,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAASrjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKzD,EAAKuD,IAAQ,GACvBrsC,KAAKusC,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKxD,EAAKsD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP1a,EAAKvyB,KAAKusC,KAAKjC,EAAKS,GAEpBtC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKU,IACRhrC,KAAKusC,KAAKhC,EAAKQ,GAAQ,EACpCzY,EAAKtyB,KAAKusC,KAAKhC,EAAKS,GACpBzY,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKe,GAAQ,EAElCzC,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKgB,GAAQ,GACvBnrC,KAAKusC,KAAKnC,EAAKc,GAAQ,EACpC5Y,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKe,GAAQ,EAClC5Y,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKqB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKsB,IAAQ,GACvBtrC,KAAKusC,KAAKtC,EAAKoB,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKqB,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAK2B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAK4B,IAAQ,GACvBzrC,KAAKusC,KAAKzC,EAAK0B,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAK2B,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKiC,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKkC,IAAQ,GACvB5rC,KAAKusC,KAAK5C,EAAKgC,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKiC,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAKuC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAKwC,IAAQ,GACvB/rC,KAAKusC,KAAK/C,EAAKsC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAKuC,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAK6C,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAK8C,IAAQ,GACvBlsC,KAAKusC,KAAKlD,EAAK4C,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAStjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKtD,EAAKoD,IAAQ,GACvBrsC,KAAKusC,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKrD,EAAKmD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP3a,EAAKvyB,KAAKusC,KAAKjC,EAAKY,GAEpBzC,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKa,IACRnrC,KAAKusC,KAAKhC,EAAKW,GAAQ,EACpC5Y,EAAKtyB,KAAKusC,KAAKhC,EAAKY,GACpB5Y,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKkB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKmB,IAAQ,GACvBtrC,KAAKusC,KAAKnC,EAAKiB,GAAQ,EACpC/Y,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKkB,IAAQ,EAClC/Y,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKwB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKyB,IAAQ,GACvBzrC,KAAKusC,KAAKtC,EAAKuB,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKwB,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAK8B,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAK+B,IAAQ,GACvB5rC,KAAKusC,KAAKzC,EAAK6B,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAK8B,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKoC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKqC,IAAQ,GACvB/rC,KAAKusC,KAAK5C,EAAKmC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKoC,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK0C,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK2C,IAAQ,GACvBlsC,KAAKusC,KAAK/C,EAAKyC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAASvjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKnD,EAAKiD,IAAQ,GACvBrsC,KAAKusC,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKlD,EAAKgD,IAAQ,IAErB5D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP5a,EAAKvyB,KAAKusC,KAAKjC,EAAKe,GAEpB5C,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKgB,KACRtrC,KAAKusC,KAAKhC,EAAKc,GAAQ,EACpC/Y,EAAKtyB,KAAKusC,KAAKhC,EAAKe,IACpB/Y,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKqB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKsB,IAAQ,GACvBzrC,KAAKusC,KAAKnC,EAAKoB,IAAQ,EACpClZ,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKqB,IAAQ,EAClClZ,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAK2B,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAK4B,IAAQ,GACvB5rC,KAAKusC,KAAKtC,EAAK0B,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAK2B,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKiC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKkC,IAAQ,GACvB/rC,KAAKusC,KAAKzC,EAAKgC,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKiC,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAKuC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAKwC,IAAQ,GACvBlsC,KAAKusC,KAAK5C,EAAKsC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASxjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKhD,EAAK8C,IAAQ,GACvBrsC,KAAKusC,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK/C,EAAK6C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP7a,EAAKvyB,KAAKusC,KAAKjC,EAAKkB,IAEpB/C,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKmB,KACRzrC,KAAKusC,KAAKhC,EAAKiB,IAAQ,EACpClZ,EAAKtyB,KAAKusC,KAAKhC,EAAKkB,IACpBlZ,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKwB,IAAQ,EAElClD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKyB,IAAQ,GACvB5rC,KAAKusC,KAAKnC,EAAKuB,IAAQ,EACpCrZ,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKwB,IAAQ,EAClCrZ,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAK8B,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAK+B,IAAQ,GACvB/rC,KAAKusC,KAAKtC,EAAK6B,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAK8B,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKoC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKqC,IAAQ,GACvBlsC,KAAKusC,KAAKzC,EAAKmC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASzjC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK7C,EAAK2C,IAAQ,GACvBrsC,KAAKusC,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAK5C,EAAK0C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP9a,EAAKvyB,KAAKusC,KAAKjC,EAAKqB,IAEpBlD,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKsB,KACR5rC,KAAKusC,KAAKhC,EAAKoB,IAAQ,EACpCrZ,EAAKtyB,KAAKusC,KAAKhC,EAAKqB,IACpBrZ,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAK2B,IAAQ,EAElCrD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAK4B,IAAQ,GACvB/rC,KAAKusC,KAAKnC,EAAK0B,IAAQ,EACpCxZ,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAK2B,IAAQ,EAClCxZ,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKiC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKkC,IAAQ,GACvBlsC,KAAKusC,KAAKtC,EAAKgC,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAAS1jC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAK1C,EAAKwC,IAAQ,GACvBrsC,KAAKusC,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKzC,EAAKuC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEP/a,EAAKvyB,KAAKusC,KAAKjC,EAAKwB,IAEpBrD,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAKyB,KACR/rC,KAAKusC,KAAKhC,EAAKuB,IAAQ,EACpCxZ,EAAKtyB,KAAKusC,KAAKhC,EAAKwB,IACpBxZ,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAK8B,IAAQ,EAElCxD,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAK+B,IAAQ,GACvBlsC,KAAKusC,KAAKnC,EAAK6B,IAAQ,EACpC3Z,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAAS3jC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKvC,EAAKqC,IAAQ,GACvBrsC,KAAKusC,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKtC,EAAKoC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPhb,EAAKvyB,KAAKusC,KAAKjC,EAAK2B,IAEpBxD,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAK4B,KACRlsC,KAAKusC,KAAKhC,EAAK0B,IAAQ,EACpC3Z,EAAKtyB,KAAKusC,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAAS5jC,GAJb2oB,EAAMA,EAAKvyB,KAAKusC,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMzoC,KAAKusC,KAAKpC,EAAKkC,IAAQ,GACvBrsC,KAAKusC,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDxiC,IAFA0oB,EAAMA,EAAKtyB,KAAKusC,KAAKnC,EAAKiC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAS7jC,GAJb2oB,EAAKvyB,KAAKusC,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC3D,GADAA,EAAMzoC,KAAKusC,KAAKjC,EAAK+B,KACRrsC,KAAKusC,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAxiC,IAFA0oB,EAAKtyB,KAAKusC,KAAKhC,EAAK8B,MAEP5D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SACPlL,EAAE,GAAK+J,GACP/J,EAAE,GAAKiK,GACPjK,EAAE,GAAKkK,GACPlK,EAAE,GAAKmK,GACPnK,EAAE,GAAKoK,GACPpK,EAAE,GAAKqK,GACPrK,EAAE,GAAKsK,GACPtK,EAAE,GAAKuK,GACPvK,EAAE,GAAKwK,GACPxK,EAAE,GAAKyK,GACPzK,EAAE,IAAM0K,GACR1K,EAAE,IAAM2K,GACR3K,EAAE,IAAM4K,GACR5K,EAAE,IAAM6K,GACR7K,EAAE,IAAM8K,GACR9K,EAAE,IAAM+K,GACR/K,EAAE,IAAMgL,GACRhL,EAAE,IAAMiL,GACRjL,EAAE,IAAMkL,GACE,IAAN7jC,IACF24B,EAAE,IAAM34B,EACR+qB,EAAI14B,UAEC04B,GAiDT,SAAS+Y,EAAYttC,EAAMq8B,EAAK9H,GAE9B,OADW,IAAIgZ,GACHC,KAAKxtC,EAAMq8B,EAAK9H,GAsB9B,SAASgZ,EAAM/Z,EAAGC,GAChBpyB,KAAKmyB,EAAIA,EACTnyB,KAAKoyB,EAAIA,EAvEN7zB,KAAKusC,OACR/D,EAAchD,GAiDhBrJ,EAAG3/B,UAAUqxC,MAAQ,SAAgBpR,EAAK9H,GACxC,IACIzH,EAAMzrB,KAAKxF,OAASwgC,EAAIxgC,OAW5B,OAVoB,KAAhBwF,KAAKxF,QAAgC,KAAfwgC,EAAIxgC,OACtBusC,EAAY/mC,KAAMg7B,EAAK9H,GACpBzH,EAAM,GACTsY,EAAW/jC,KAAMg7B,EAAK9H,GACnBzH,EAAM,KArDnB,SAAmB9sB,EAAMq8B,EAAK9H,GAC5BA,EAAIkP,SAAWpH,EAAIoH,SAAWzjC,EAAKyjC,SACnClP,EAAI14B,OAASmE,EAAKnE,OAASwgC,EAAIxgC,OAI/B,IAFA,IAAI0lC,EAAQ,EACRmM,EAAU,EACL7kB,EAAI,EAAGA,EAAI0L,EAAI14B,OAAS,EAAGgtB,IAAK,CAGvC,IAAIwc,EAASqI,EACbA,EAAU,EAGV,IAFA,IAAIpI,EAAgB,SAAR/D,EACRgE,EAAO3lC,KAAK8F,IAAImjB,EAAGwT,EAAIxgC,OAAS,GAC3BgH,EAAIjD,KAAK2F,IAAI,EAAGsjB,EAAI7oB,EAAKnE,OAAS,GAAIgH,GAAK0iC,EAAM1iC,IAAK,CAC7D,IAAIF,EAAIkmB,EAAIhmB,EAGRg5B,GAFoB,EAAhB77B,EAAK+B,MAAMY,KACI,EAAf05B,EAAIt6B,MAAMc,IAGdsvB,EAAS,SAAJ0J,EAGTyJ,EAAa,UADbnT,EAAMA,EAAKmT,EAAS,GAIpBoI,IAFArI,GAHAA,EAAUA,GAAWxJ,EAAI,SAAa,GAAM,IAGxB1J,IAAO,IAAO,KAEZ,GACtBkT,GAAU,SAEZ9Q,EAAIxyB,MAAM8mB,GAAKyc,EACf/D,EAAQ8D,EACRA,EAASqI,EAQX,OANc,IAAVnM,EACFhN,EAAIxyB,MAAM8mB,GAAK0Y,EAEfhN,EAAI14B,SAGC04B,EAAIiQ,QAgBHmJ,CAAStsC,KAAMg7B,EAAK9H,GAEpB+Y,EAAWjsC,KAAMg7B,EAAK9H,IAchCgZ,EAAKnxC,UAAUwxC,QAAU,SAAkBC,GAGzC,IAFA,IAAI1kC,EAAI,IAAI2H,MAAM+8B,GACd9pB,EAAIgY,EAAG3/B,UAAUgqC,WAAWyH,GAAK,EAC5BlrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IACrBwG,EAAExG,GAAKtB,KAAKysC,OAAOnrC,EAAGohB,EAAG8pB,GAG3B,OAAO1kC,GAITokC,EAAKnxC,UAAU0xC,OAAS,SAAiBta,EAAGzP,EAAG8pB,GAC7C,GAAU,IAANra,GAAWA,IAAMqa,EAAI,EAAG,OAAOra,EAGnC,IADA,IAAIua,EAAK,EACAprC,EAAI,EAAGA,EAAIohB,EAAGphB,IACrBorC,IAAW,EAAJva,IAAWzP,EAAIphB,EAAI,EAC1B6wB,IAAM,EAGR,OAAOua,GAKTR,EAAKnxC,UAAU4xC,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAIlrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IACrByrC,EAAKzrC,GAAKurC,EAAID,EAAItrC,IAClB0rC,EAAK1rC,GAAKwrC,EAAIF,EAAItrC,KAItB4qC,EAAKnxC,UAAUkyC,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtE5sC,KAAK2sC,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIxS,EAAI,EAAGA,EAAIwS,EAAGxS,IAAM,EAM3B,IALA,IAAItX,EAAIsX,GAAK,EAETkT,EAAQ3uC,KAAK4uC,IAAI,EAAI5uC,KAAK6uC,GAAK1qB,GAC/B2qB,EAAQ9uC,KAAKw5B,IAAI,EAAIx5B,KAAK6uC,GAAK1qB,GAE1Bkc,EAAI,EAAGA,EAAI4N,EAAG5N,GAAKlc,EAI1B,IAHA,IAAI4qB,EAASJ,EACTK,EAASF,EAEJ7rC,EAAI,EAAGA,EAAIw4B,EAAGx4B,IAAK,CAC1B,IAAIgsC,EAAKT,EAAKnO,EAAIp9B,GACdisC,EAAKT,EAAKpO,EAAIp9B,GAEdksC,EAAKX,EAAKnO,EAAIp9B,EAAIw4B,GAClB2T,EAAKX,EAAKpO,EAAIp9B,EAAIw4B,GAElB4T,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELb,EAAKnO,EAAIp9B,GAAKgsC,EAAKE,EACnBV,EAAKpO,EAAIp9B,GAAKisC,EAAKE,EAEnBZ,EAAKnO,EAAIp9B,EAAIw4B,GAAKwT,EAAKE,EACvBV,EAAKpO,EAAIp9B,EAAIw4B,GAAKyT,EAAKE,EAGnBnsC,IAAMkhB,IACRkrB,EAAKV,EAAQI,EAASD,EAAQE,EAE9BA,EAASL,EAAQK,EAASF,EAAQC,EAClCA,EAASM,KAOnB1B,EAAKnxC,UAAU8yC,YAAc,SAAsBlrB,EAAGtD,GACpD,IAAImtB,EAAqB,EAAjBjuC,KAAK2F,IAAImb,EAAGsD,GAChBmrB,EAAU,EAAJtB,EACNlrC,EAAI,EACR,IAAKkrC,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/BlrC,IAGF,OAAO,GAAKA,EAAI,EAAIwsC,GAGtB5B,EAAKnxC,UAAUgzC,UAAY,SAAoBlB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIlrC,EAAI,EAAGA,EAAIkrC,EAAI,EAAGlrC,IAAK,CAC9B,IAAIwG,EAAI+kC,EAAIvrC,GAEZurC,EAAIvrC,GAAKurC,EAAIL,EAAIlrC,EAAI,GACrBurC,EAAIL,EAAIlrC,EAAI,GAAKwG,EAEjBA,EAAIglC,EAAIxrC,GAERwrC,EAAIxrC,IAAMwrC,EAAIN,EAAIlrC,EAAI,GACtBwrC,EAAIN,EAAIlrC,EAAI,IAAMwG,IAItBokC,EAAKnxC,UAAUizC,aAAe,SAAuB3S,EAAImR,GAEvD,IADA,IAAItM,EAAQ,EACH5+B,EAAI,EAAGA,EAAIkrC,EAAI,EAAGlrC,IAAK,CAC9B,IAAI25B,EAAoC,KAAhC18B,KAAKojC,MAAMtG,EAAG,EAAI/5B,EAAI,GAAKkrC,GACjCjuC,KAAKojC,MAAMtG,EAAG,EAAI/5B,GAAKkrC,GACvBtM,EAEF7E,EAAG/5B,GAAS,SAAJ25B,EAGNiF,EADEjF,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT6Q,EAAKnxC,UAAUkzC,WAAa,SAAqB5S,EAAI5P,EAAKohB,EAAKL,GAE7D,IADA,IAAItM,EAAQ,EACH5+B,EAAI,EAAGA,EAAImqB,EAAKnqB,IACvB4+B,GAAyB,EAAR7E,EAAG/5B,GAEpBurC,EAAI,EAAIvrC,GAAa,KAAR4+B,EAAgBA,KAAkB,GAC/C2M,EAAI,EAAIvrC,EAAI,GAAa,KAAR4+B,EAAgBA,KAAkB,GAIrD,IAAK5+B,EAAI,EAAImqB,EAAKnqB,EAAIkrC,IAAKlrC,EACzBurC,EAAIvrC,GAAK,EAGX+4B,EAAiB,IAAV6F,GACP7F,EAA6B,KAAb,KAAR6F,KAGVgM,EAAKnxC,UAAUmzC,KAAO,SAAe1B,GAEnC,IADA,IAAI2B,EAAK,IAAI1+B,MAAM+8B,GACVlrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IACrB6sC,EAAG7sC,GAAK,EAGV,OAAO6sC,GAGTjC,EAAKnxC,UAAUoxC,KAAO,SAAeha,EAAGC,EAAGc,GACzC,IAAIsZ,EAAI,EAAIxsC,KAAK6tC,YAAY1b,EAAE33B,OAAQ43B,EAAE53B,QAErCoyC,EAAM5sC,KAAKusC,QAAQC,GAEnB4B,EAAIpuC,KAAKkuC,KAAK1B,GAEdK,EAAM,IAAIp9B,MAAM+8B,GAChB6B,EAAO,IAAI5+B,MAAM+8B,GACjB8B,EAAO,IAAI7+B,MAAM+8B,GAEjB+B,EAAO,IAAI9+B,MAAM+8B,GACjBgC,EAAQ,IAAI/+B,MAAM+8B,GAClBiC,EAAQ,IAAIh/B,MAAM+8B,GAElBkC,EAAOxb,EAAIxyB,MACfguC,EAAKl0C,OAASgyC,EAEdxsC,KAAKiuC,WAAW9b,EAAEzxB,MAAOyxB,EAAE33B,OAAQqyC,EAAKL,GACxCxsC,KAAKiuC,WAAW7b,EAAE1xB,MAAO0xB,EAAE53B,OAAQ+zC,EAAM/B,GAEzCxsC,KAAKitC,UAAUJ,EAAKuB,EAAGC,EAAMC,EAAM9B,EAAGI,GACtC5sC,KAAKitC,UAAUsB,EAAMH,EAAGI,EAAOC,EAAOjC,EAAGI,GAEzC,IAAK,IAAItrC,EAAI,EAAGA,EAAIkrC,EAAGlrC,IAAK,CAC1B,IAAIssC,EAAKS,EAAK/sC,GAAKktC,EAAMltC,GAAKgtC,EAAKhtC,GAAKmtC,EAAMntC,GAC9CgtC,EAAKhtC,GAAK+sC,EAAK/sC,GAAKmtC,EAAMntC,GAAKgtC,EAAKhtC,GAAKktC,EAAMltC,GAC/C+sC,EAAK/sC,GAAKssC,EAUZ,OAPA5tC,KAAK+tC,UAAUM,EAAMC,EAAM9B,GAC3BxsC,KAAKitC,UAAUoB,EAAMC,EAAMI,EAAMN,EAAG5B,EAAGI,GACvC5sC,KAAK+tC,UAAUW,EAAMN,EAAG5B,GACxBxsC,KAAKguC,aAAaU,EAAMlC,GAExBtZ,EAAIkP,SAAWjQ,EAAEiQ,SAAWhQ,EAAEgQ,SAC9BlP,EAAI14B,OAAS23B,EAAE33B,OAAS43B,EAAE53B,OACnB04B,EAAIiQ,SAIbzI,EAAG3/B,UAAUm5B,IAAM,SAAc8G,GAC/B,IAAI9H,EAAM,IAAIwH,EAAG,MAEjB,OADAxH,EAAIxyB,MAAQ,IAAI+O,MAAMzP,KAAKxF,OAASwgC,EAAIxgC,QACjCwF,KAAKosC,MAAMpR,EAAK9H,IAIzBwH,EAAG3/B,UAAU4zC,KAAO,SAAe3T,GACjC,IAAI9H,EAAM,IAAIwH,EAAG,MAEjB,OADAxH,EAAIxyB,MAAQ,IAAI+O,MAAMzP,KAAKxF,OAASwgC,EAAIxgC,QACjCyxC,EAAWjsC,KAAMg7B,EAAK9H,IAI/BwH,EAAG3/B,UAAU+vC,KAAO,SAAe9P,GACjC,OAAOh7B,KAAKQ,QAAQ4rC,MAAMpR,EAAKh7B,OAGjC06B,EAAG3/B,UAAUwoC,MAAQ,SAAgBvI,GACnCX,EAAsB,iBAARW,GACdX,EAAOW,EAAM,UAIb,IADA,IAAIkF,EAAQ,EACH5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CACpC,IAAI25B,GAAqB,EAAhBj7B,KAAKU,MAAMY,IAAU05B,EAC1BlK,GAAU,SAAJmK,IAA0B,SAARiF,GAC5BA,IAAU,GACVA,GAAUjF,EAAI,SAAa,EAE3BiF,GAASpP,IAAO,GAChB9wB,KAAKU,MAAMY,GAAU,SAALwvB,EAQlB,OALc,IAAVoP,IACFlgC,KAAKU,MAAMY,GAAK4+B,EAChBlgC,KAAKxF,UAGAwF,MAGT06B,EAAG3/B,UAAU6zC,KAAO,SAAe5T,GACjC,OAAOh7B,KAAKQ,QAAQ+iC,MAAMvI,IAI5BN,EAAG3/B,UAAU8zC,IAAM,WACjB,OAAO7uC,KAAKk0B,IAAIl0B,OAIlB06B,EAAG3/B,UAAU+zC,KAAO,WAClB,OAAO9uC,KAAK8qC,KAAK9qC,KAAKQ,UAIxBk6B,EAAG3/B,UAAU05B,IAAM,SAAcuG,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIxrB,MAAMurB,EAAII,aAEbsL,EAAM,EAAGA,EAAMzL,EAAEzgC,OAAQksC,IAAO,CACvC,IAAIvkB,EAAOukB,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBzL,EAAEyL,IAAQ1L,EAAIt6B,MAAMyhB,GAAQ,GAAKwkB,KAAWA,EAG9C,OAAO1L,EA8wCC8T,CAAW/T,GACnB,GAAiB,IAAbC,EAAEzgC,OAAc,OAAO,IAAIkgC,EAAG,GAIlC,IADA,IAAI1d,EAAMhd,KACDsB,EAAI,EAAGA,EAAI25B,EAAEzgC,QACP,IAATygC,EAAE35B,GADsBA,IAAK0b,EAAMA,EAAI6xB,OAI7C,KAAMvtC,EAAI25B,EAAEzgC,OACV,IAAK,IAAIqqC,EAAI7nB,EAAI6xB,MAAOvtC,EAAI25B,EAAEzgC,OAAQ8G,IAAKujC,EAAIA,EAAEgK,MAClC,IAAT5T,EAAE35B,KAEN0b,EAAMA,EAAIkX,IAAI2Q,IAIlB,OAAO7nB,GAIT0d,EAAG3/B,UAAUi0C,OAAS,SAAiB9T,GACrCb,EAAuB,iBAATa,GAAqBA,GAAQ,GAC3C,IAGI55B,EAHAk5B,EAAIU,EAAO,GACXlB,GAAKkB,EAAOV,GAAK,GACjByU,EAAa,WAAe,GAAKzU,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAI0F,EAAQ,EAEZ,IAAK5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAAK,CAChC,IAAI4tC,EAAWlvC,KAAKU,MAAMY,GAAK2tC,EAC3B9mC,GAAsB,EAAhBnI,KAAKU,MAAMY,IAAU4tC,GAAa1U,EAC5Cx6B,KAAKU,MAAMY,GAAK6G,EAAI+3B,EACpBA,EAAQgP,IAAc,GAAK1U,EAGzB0F,IACFlgC,KAAKU,MAAMY,GAAK4+B,EAChBlgC,KAAKxF,UAIT,GAAU,IAANw/B,EAAS,CACX,IAAK14B,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IAChCtB,KAAKU,MAAMY,EAAI04B,GAAKh6B,KAAKU,MAAMY,GAGjC,IAAKA,EAAI,EAAGA,EAAI04B,EAAG14B,IACjBtB,KAAKU,MAAMY,GAAK,EAGlBtB,KAAKxF,QAAUw/B,EAGjB,OAAOh6B,KAAKmjC,SAGdzI,EAAG3/B,UAAUo0C,MAAQ,SAAgBjU,GAGnC,OADAb,EAAyB,IAAlBr6B,KAAKoiC,UACLpiC,KAAKgvC,OAAO9T,IAMrBR,EAAG3/B,UAAU4gC,OAAS,SAAiBT,EAAMkU,EAAMC,GAEjD,IAAIC,EADJjV,EAAuB,iBAATa,GAAqBA,GAAQ,GAGzCoU,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI5U,EAAIU,EAAO,GACXlB,EAAIz7B,KAAK8F,KAAK62B,EAAOV,GAAK,GAAIx6B,KAAKxF,QACnC+0C,EAAO,SAAc,WAAc/U,GAAMA,EACzCgV,EAAcH,EAMlB,GAJAC,GAAKtV,EACLsV,EAAI/wC,KAAK2F,IAAI,EAAGorC,GAGZE,EAAa,CACf,IAAK,IAAIluC,EAAI,EAAGA,EAAI04B,EAAG14B,IACrBkuC,EAAY9uC,MAAMY,GAAKtB,KAAKU,MAAMY,GAEpCkuC,EAAYh1C,OAASw/B,EAGvB,GAAU,IAANA,QAEG,GAAIh6B,KAAKxF,OAASw/B,EAEvB,IADAh6B,KAAKxF,QAAUw/B,EACV14B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAC3BtB,KAAKU,MAAMY,GAAKtB,KAAKU,MAAMY,EAAI04B,QAGjCh6B,KAAKU,MAAM,GAAK,EAChBV,KAAKxF,OAAS,EAGhB,IAAI0lC,EAAQ,EACZ,IAAK5+B,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,IAAgB,IAAV4+B,GAAe5+B,GAAKguC,GAAIhuC,IAAK,CAChE,IAAIo9B,EAAuB,EAAhB1+B,KAAKU,MAAMY,GACtBtB,KAAKU,MAAMY,GAAM4+B,GAAU,GAAK1F,EAAOkE,IAASlE,EAChD0F,EAAQxB,EAAO6Q,EAajB,OATIC,GAAyB,IAAVtP,IACjBsP,EAAY9uC,MAAM8uC,EAAYh1C,UAAY0lC,GAGxB,IAAhBlgC,KAAKxF,SACPwF,KAAKU,MAAM,GAAK,EAChBV,KAAKxF,OAAS,GAGTwF,KAAKmjC,SAGdzI,EAAG3/B,UAAU00C,MAAQ,SAAgBvU,EAAMkU,EAAMC,GAG/C,OADAhV,EAAyB,IAAlBr6B,KAAKoiC,UACLpiC,KAAK27B,OAAOT,EAAMkU,EAAMC,IAIjC3U,EAAG3/B,UAAU20C,KAAO,SAAexU,GACjC,OAAOl7B,KAAKQ,QAAQ2uC,MAAMjU,IAG5BR,EAAG3/B,UAAU40C,MAAQ,SAAgBzU,GACnC,OAAOl7B,KAAKQ,QAAQwuC,OAAO9T,IAI7BR,EAAG3/B,UAAU60C,KAAO,SAAe1U,GACjC,OAAOl7B,KAAKQ,QAAQivC,MAAMvU,IAG5BR,EAAG3/B,UAAU80C,MAAQ,SAAgB3U,GACnC,OAAOl7B,KAAKQ,QAAQm7B,OAAOT,IAI7BR,EAAG3/B,UAAUuqC,MAAQ,SAAgBoB,GACnCrM,EAAsB,iBAARqM,GAAoBA,GAAO,GACzC,IAAIlM,EAAIkM,EAAM,GACV1M,GAAK0M,EAAMlM,GAAK,GAChBqK,EAAI,GAAKrK,EAGb,QAAIx6B,KAAKxF,QAAUw/B,OAGXh6B,KAAKU,MAAMs5B,GAEL6K,IAIhBnK,EAAG3/B,UAAU+0C,OAAS,SAAiB5U,GACrCb,EAAuB,iBAATa,GAAqBA,GAAQ,GAC3C,IAAIV,EAAIU,EAAO,GACXlB,GAAKkB,EAAOV,GAAK,GAIrB,GAFAH,EAAyB,IAAlBr6B,KAAKoiC,SAAgB,2CAExBpiC,KAAKxF,QAAUw/B,EACjB,OAAOh6B,KAQT,GALU,IAANw6B,GACFR,IAEFh6B,KAAKxF,OAAS+D,KAAK8F,IAAI21B,EAAGh6B,KAAKxF,QAErB,IAANggC,EAAS,CACX,IAAI+U,EAAO,SAAc,WAAc/U,GAAMA,EAC7Cx6B,KAAKU,MAAMV,KAAKxF,OAAS,IAAM+0C,EAGjC,OAAOvvC,KAAKmjC,SAIdzI,EAAG3/B,UAAUg1C,MAAQ,SAAgB7U,GACnC,OAAOl7B,KAAKQ,QAAQsvC,OAAO5U,IAI7BR,EAAG3/B,UAAUqqC,MAAQ,SAAgBpK,GAGnC,OAFAX,EAAsB,iBAARW,GACdX,EAAOW,EAAM,UACTA,EAAM,EAAUh7B,KAAK07B,OAAOV,GAGV,IAAlBh7B,KAAKoiC,SACa,IAAhBpiC,KAAKxF,SAAiC,EAAhBwF,KAAKU,MAAM,IAAUs6B,GAC7Ch7B,KAAKU,MAAM,GAAKs6B,GAAuB,EAAhBh7B,KAAKU,MAAM,IAClCV,KAAKoiC,SAAW,EACTpiC,OAGTA,KAAKoiC,SAAW,EAChBpiC,KAAK07B,MAAMV,GACXh7B,KAAKoiC,SAAW,EACTpiC,MAIFA,KAAKwjC,OAAOxI,IAGrBN,EAAG3/B,UAAUyoC,OAAS,SAAiBxI,GACrCh7B,KAAKU,MAAM,IAAMs6B,EAGjB,IAAK,IAAI15B,EAAI,EAAGA,EAAItB,KAAKxF,QAAUwF,KAAKU,MAAMY,IAAM,SAAWA,IAC7DtB,KAAKU,MAAMY,IAAM,SACbA,IAAMtB,KAAKxF,OAAS,EACtBwF,KAAKU,MAAMY,EAAI,GAAK,EAEpBtB,KAAKU,MAAMY,EAAI,KAKnB,OAFAtB,KAAKxF,OAAS+D,KAAK2F,IAAIlE,KAAKxF,OAAQ8G,EAAI,GAEjCtB,MAIT06B,EAAG3/B,UAAU2gC,MAAQ,SAAgBV,GAGnC,GAFAX,EAAsB,iBAARW,GACdX,EAAOW,EAAM,UACTA,EAAM,EAAG,OAAOh7B,KAAKolC,OAAOpK,GAEhC,GAAsB,IAAlBh7B,KAAKoiC,SAIP,OAHApiC,KAAKoiC,SAAW,EAChBpiC,KAAKolC,MAAMpK,GACXh7B,KAAKoiC,SAAW,EACTpiC,KAKT,GAFAA,KAAKU,MAAM,IAAMs6B,EAEG,IAAhBh7B,KAAKxF,QAAgBwF,KAAKU,MAAM,GAAK,EACvCV,KAAKU,MAAM,IAAMV,KAAKU,MAAM,GAC5BV,KAAKoiC,SAAW,OAGhB,IAAK,IAAI9gC,EAAI,EAAGA,EAAItB,KAAKxF,QAAUwF,KAAKU,MAAMY,GAAK,EAAGA,IACpDtB,KAAKU,MAAMY,IAAM,SACjBtB,KAAKU,MAAMY,EAAI,IAAM,EAIzB,OAAOtB,KAAKmjC,SAGdzI,EAAG3/B,UAAUi1C,KAAO,SAAehV,GACjC,OAAOh7B,KAAKQ,QAAQ4kC,MAAMpK,IAG5BN,EAAG3/B,UAAUk1C,KAAO,SAAejV,GACjC,OAAOh7B,KAAKQ,QAAQk7B,MAAMV,IAG5BN,EAAG3/B,UAAUm1C,KAAO,WAGlB,OAFAlwC,KAAKoiC,SAAW,EAETpiC,MAGT06B,EAAG3/B,UAAU+8B,IAAM,WACjB,OAAO93B,KAAKQ,QAAQ0vC,QAGtBxV,EAAG3/B,UAAUo1C,aAAe,SAAuBnV,EAAK9G,EAAKkc,GAC3D,IACI9uC,EAIA25B,EALAxP,EAAMuP,EAAIxgC,OAAS41C,EAGvBpwC,KAAK0jC,QAAQjY,GAGb,IAAIyU,EAAQ,EACZ,IAAK5+B,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAAK,CAC/B25B,GAA6B,EAAxBj7B,KAAKU,MAAMY,EAAI8uC,IAAclQ,EAClC,IAAI2C,GAAwB,EAAf7H,EAAIt6B,MAAMY,IAAU4yB,EAEjCgM,IADAjF,GAAa,SAAR4H,IACS,KAAQA,EAAQ,SAAa,GAC3C7iC,KAAKU,MAAMY,EAAI8uC,GAAa,SAAJnV,EAE1B,KAAO35B,EAAItB,KAAKxF,OAAS41C,EAAO9uC,IAE9B4+B,GADAjF,GAA6B,EAAxBj7B,KAAKU,MAAMY,EAAI8uC,IAAclQ,IACrB,GACblgC,KAAKU,MAAMY,EAAI8uC,GAAa,SAAJnV,EAG1B,GAAc,IAAViF,EAAa,OAAOlgC,KAAKmjC,QAK7B,IAFA9I,GAAkB,IAAX6F,GACPA,EAAQ,EACH5+B,EAAI,EAAGA,EAAItB,KAAKxF,OAAQ8G,IAE3B4+B,GADAjF,IAAsB,EAAhBj7B,KAAKU,MAAMY,IAAU4+B,IACd,GACblgC,KAAKU,MAAMY,GAAS,SAAJ25B,EAIlB,OAFAj7B,KAAKoiC,SAAW,EAETpiC,KAAKmjC,SAGdzI,EAAG3/B,UAAUs1C,SAAW,SAAmBrV,EAAKvmB,GAC9C,IAAI27B,GAAQpwC,KAAKxF,OAASwgC,EAAIxgC,QAE1BkN,EAAI1H,KAAKQ,QACTmH,EAAIqzB,EAGJsV,EAA8B,EAAxB3oC,EAAEjH,MAAMiH,EAAEnN,OAAS,GAGf,KADd41C,EAAQ,GADMpwC,KAAK+kC,WAAWuL,MAG5B3oC,EAAIA,EAAEgoC,MAAMS,GACZ1oC,EAAEsnC,OAAOoB,GACTE,EAA8B,EAAxB3oC,EAAEjH,MAAMiH,EAAEnN,OAAS,IAI3B,IACIqqC,EADAxlB,EAAI3X,EAAElN,OAASmN,EAAEnN,OAGrB,GAAa,QAATia,EAAgB,EAClBowB,EAAI,IAAInK,EAAG,OACTlgC,OAAS6kB,EAAI,EACfwlB,EAAEnkC,MAAQ,IAAI+O,MAAMo1B,EAAErqC,QACtB,IAAK,IAAI8G,EAAI,EAAGA,EAAIujC,EAAErqC,OAAQ8G,IAC5BujC,EAAEnkC,MAAMY,GAAK,EAIjB,IAAI67B,EAAOz1B,EAAElH,QAAQ2vC,aAAaxoC,EAAG,EAAG0X,GAClB,IAAlB8d,EAAKiF,WACP16B,EAAIy1B,EACA0H,IACFA,EAAEnkC,MAAM2e,GAAK,IAIjB,IAAK,IAAI7d,EAAI6d,EAAI,EAAG7d,GAAK,EAAGA,IAAK,CAC/B,IAAI+uC,EAAmC,UAAL,EAAxB7oC,EAAEhH,MAAMiH,EAAEnN,OAASgH,KACE,EAA5BkG,EAAEhH,MAAMiH,EAAEnN,OAASgH,EAAI,IAO1B,IAHA+uC,EAAKhyC,KAAK8F,IAAKksC,EAAKD,EAAO,EAAG,UAE9B5oC,EAAEyoC,aAAaxoC,EAAG4oC,EAAI/uC,GACA,IAAfkG,EAAE06B,UACPmO,IACA7oC,EAAE06B,SAAW,EACb16B,EAAEyoC,aAAaxoC,EAAG,EAAGnG,GAChBkG,EAAE28B,WACL38B,EAAE06B,UAAY,GAGdyC,IACFA,EAAEnkC,MAAMc,GAAK+uC,GAajB,OAVI1L,GACFA,EAAE1B,QAEJz7B,EAAEy7B,QAGW,QAAT1uB,GAA4B,IAAV27B,GACpB1oC,EAAEi0B,OAAOyU,GAGJ,CACLI,IAAK3L,GAAK,KACVtJ,IAAK7zB,IAQTgzB,EAAG3/B,UAAU01C,OAAS,SAAiBzV,EAAKvmB,EAAMi8B,GAGhD,OAFArW,GAAQW,EAAIqJ,UAERrkC,KAAKqkC,SACA,CACLmM,IAAK,IAAI9V,EAAG,GACZa,IAAK,IAAIb,EAAG,IAKM,IAAlB16B,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,UAC7BplB,EAAMhd,KAAK0lC,MAAM+K,OAAOzV,EAAKvmB,GAEhB,QAATA,IACF+7B,EAAMxzB,EAAIwzB,IAAI9K,OAGH,QAATjxB,IACF8mB,EAAMve,EAAIue,IAAImK,MACVgL,GAA6B,IAAjBnV,EAAI6G,UAClB7G,EAAIqL,KAAK5L,IAIN,CACLwV,IAAKA,EACLjV,IAAKA,IAIa,IAAlBv7B,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,UAC7BplB,EAAMhd,KAAKywC,OAAOzV,EAAI0K,MAAOjxB,GAEhB,QAATA,IACF+7B,EAAMxzB,EAAIwzB,IAAI9K,OAGT,CACL8K,IAAKA,EACLjV,IAAKve,EAAIue,MAI0B,IAAlCv7B,KAAKoiC,SAAWpH,EAAIoH,WACvBplB,EAAMhd,KAAK0lC,MAAM+K,OAAOzV,EAAI0K,MAAOjxB,GAEtB,QAATA,IACF8mB,EAAMve,EAAIue,IAAImK,MACVgL,GAA6B,IAAjBnV,EAAI6G,UAClB7G,EAAIsL,KAAK7L,IAIN,CACLwV,IAAKxzB,EAAIwzB,IACTjV,IAAKA,IAOLP,EAAIxgC,OAASwF,KAAKxF,QAAUwF,KAAK8iC,IAAI9H,GAAO,EACvC,CACLwV,IAAK,IAAI9V,EAAG,GACZa,IAAKv7B,MAKU,IAAfg7B,EAAIxgC,OACO,QAATia,EACK,CACL+7B,IAAKxwC,KAAK2wC,KAAK3V,EAAIt6B,MAAM,IACzB66B,IAAK,MAII,QAAT9mB,EACK,CACL+7B,IAAK,KACLjV,IAAK,IAAIb,EAAG16B,KAAKskC,KAAKtJ,EAAIt6B,MAAM,MAI7B,CACL8vC,IAAKxwC,KAAK2wC,KAAK3V,EAAIt6B,MAAM,IACzB66B,IAAK,IAAIb,EAAG16B,KAAKskC,KAAKtJ,EAAIt6B,MAAM,MAI7BV,KAAKqwC,SAASrV,EAAKvmB,GAlF1B,IAAI+7B,EAAKjV,EAAKve,GAsFhB0d,EAAG3/B,UAAUy1C,IAAM,SAAcxV,GAC/B,OAAOh7B,KAAKywC,OAAOzV,EAAK,OAAO,GAAOwV,KAIxC9V,EAAG3/B,UAAUwgC,IAAM,SAAcP,GAC/B,OAAOh7B,KAAKywC,OAAOzV,EAAK,OAAO,GAAOO,KAGxCb,EAAG3/B,UAAU61C,KAAO,SAAe5V,GACjC,OAAOh7B,KAAKywC,OAAOzV,EAAK,OAAO,GAAMO,KAIvCb,EAAG3/B,UAAU81C,SAAW,SAAmB7V,GACzC,IAAI8V,EAAK9wC,KAAKywC,OAAOzV,GAGrB,GAAI8V,EAAGvV,IAAI8I,SAAU,OAAOyM,EAAGN,IAE/B,IAAIjV,EAA0B,IAApBuV,EAAGN,IAAIpO,SAAiB0O,EAAGvV,IAAIsL,KAAK7L,GAAO8V,EAAGvV,IAEpDwV,EAAO/V,EAAI6U,MAAM,GACjBmB,EAAKhW,EAAIQ,MAAM,GACfsH,EAAMvH,EAAIuH,IAAIiO,GAGlB,OAAIjO,EAAM,GAAY,IAAPkO,GAAoB,IAARlO,EAAkBgO,EAAGN,IAGrB,IAApBM,EAAGN,IAAIpO,SAAiB0O,EAAGN,IAAI9U,MAAM,GAAKoV,EAAGN,IAAIpL,MAAM,IAGhE1K,EAAG3/B,UAAUupC,KAAO,SAAetJ,GACjCX,EAAOW,GAAO,UAId,IAHA,IAAI4D,GAAK,GAAK,IAAM5D,EAEhBjxB,EAAM,EACDzI,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IACpCyI,GAAO60B,EAAI70B,GAAuB,EAAhB/J,KAAKU,MAAMY,KAAW05B,EAG1C,OAAOjxB,GAIT2wB,EAAG3/B,UAAUwpC,MAAQ,SAAgBvJ,GACnCX,EAAOW,GAAO,UAGd,IADA,IAAIkF,EAAQ,EACH5+B,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CACzC,IAAI25B,GAAqB,EAAhBj7B,KAAKU,MAAMY,IAAkB,SAAR4+B,EAC9BlgC,KAAKU,MAAMY,GAAM25B,EAAID,EAAO,EAC5BkF,EAAQjF,EAAID,EAGd,OAAOh7B,KAAKmjC,SAGdzI,EAAG3/B,UAAU41C,KAAO,SAAe3V,GACjC,OAAOh7B,KAAKQ,QAAQ+jC,MAAMvJ,IAG5BN,EAAG3/B,UAAUk2C,KAAO,SAAerS,GACjCvE,EAAsB,IAAfuE,EAAEwD,UACT/H,GAAQuE,EAAEyF,UAEV,IAAIlS,EAAInyB,KACJoyB,EAAIwM,EAAEp+B,QAGR2xB,EADiB,IAAfA,EAAEiQ,SACAjQ,EAAEye,KAAKhS,GAEPzM,EAAE3xB,QAaR,IATA,IAAI0wC,EAAI,IAAIxW,EAAG,GACXyW,EAAI,IAAIzW,EAAG,GAGXh7B,EAAI,IAAIg7B,EAAG,GACX0W,EAAI,IAAI1W,EAAG,GAEX2W,EAAI,EAEDlf,EAAEmf,UAAYlf,EAAEkf,UACrBnf,EAAEwJ,OAAO,GACTvJ,EAAEuJ,OAAO,KACP0V,EAMJ,IAHA,IAAIE,EAAKnf,EAAE5xB,QACPgxC,EAAKrf,EAAE3xB,SAEH2xB,EAAEkS,UAAU,CAClB,IAAK,IAAI/iC,EAAI,EAAGmwC,EAAK,EAAyB,IAArBtf,EAAEzxB,MAAM,GAAK+wC,IAAanwC,EAAI,KAAMA,EAAGmwC,IAAO,GACvE,GAAInwC,EAAI,EAEN,IADA6wB,EAAEwJ,OAAOr6B,GACFA,KAAM,IACP4vC,EAAEzV,SAAW0V,EAAE1V,WACjByV,EAAEtK,KAAK2K,GACPJ,EAAEtK,KAAK2K,IAGTN,EAAEvV,OAAO,GACTwV,EAAExV,OAAO,GAIb,IAAK,IAAIn6B,EAAI,EAAGkwC,EAAK,EAAyB,IAArBtf,EAAE1xB,MAAM,GAAKgxC,IAAalwC,EAAI,KAAMA,EAAGkwC,IAAO,GACvE,GAAIlwC,EAAI,EAEN,IADA4wB,EAAEuJ,OAAOn6B,GACFA,KAAM,IACP9B,EAAE+7B,SAAW2V,EAAE3V,WACjB/7B,EAAEknC,KAAK2K,GACPH,EAAEvK,KAAK2K,IAGT9xC,EAAEi8B,OAAO,GACTyV,EAAEzV,OAAO,GAITxJ,EAAE2Q,IAAI1Q,IAAM,GACdD,EAAE0U,KAAKzU,GACP8e,EAAErK,KAAKnnC,GACPyxC,EAAEtK,KAAKuK,KAEPhf,EAAEyU,KAAK1U,GACPzyB,EAAEmnC,KAAKqK,GACPE,EAAEvK,KAAKsK,IAIX,MAAO,CACLzpC,EAAGhI,EACHiI,EAAGypC,EACHO,IAAKvf,EAAE4c,OAAOqC,KAOlB3W,EAAG3/B,UAAU62C,OAAS,SAAiBhT,GACrCvE,EAAsB,IAAfuE,EAAEwD,UACT/H,GAAQuE,EAAEyF,UAEV,IAAI38B,EAAI1H,KACJ2H,EAAIi3B,EAAEp+B,QAGRkH,EADiB,IAAfA,EAAE06B,SACA16B,EAAEkpC,KAAKhS,GAEPl3B,EAAElH,QAQR,IALA,IAuCIwc,EAvCA60B,EAAK,IAAInX,EAAG,GACZoX,EAAK,IAAIpX,EAAG,GAEZqX,EAAQpqC,EAAEnH,QAEPkH,EAAEy0B,KAAK,GAAK,GAAKx0B,EAAEw0B,KAAK,GAAK,GAAG,CACrC,IAAK,IAAI76B,EAAI,EAAGmwC,EAAK,EAAyB,IAArB/pC,EAAEhH,MAAM,GAAK+wC,IAAanwC,EAAI,KAAMA,EAAGmwC,IAAO,GACvE,GAAInwC,EAAI,EAEN,IADAoG,EAAEi0B,OAAOr6B,GACFA,KAAM,GACPuwC,EAAGpW,SACLoW,EAAGjL,KAAKmL,GAGVF,EAAGlW,OAAO,GAId,IAAK,IAAIn6B,EAAI,EAAGkwC,EAAK,EAAyB,IAArB/pC,EAAEjH,MAAM,GAAKgxC,IAAalwC,EAAI,KAAMA,EAAGkwC,IAAO,GACvE,GAAIlwC,EAAI,EAEN,IADAmG,EAAEg0B,OAAOn6B,GACFA,KAAM,GACPswC,EAAGrW,SACLqW,EAAGlL,KAAKmL,GAGVD,EAAGnW,OAAO,GAIVj0B,EAAEo7B,IAAIn7B,IAAM,GACdD,EAAEm/B,KAAKl/B,GACPkqC,EAAGhL,KAAKiL,KAERnqC,EAAEk/B,KAAKn/B,GACPoqC,EAAGjL,KAAKgL,IAeZ,OATE70B,EADgB,IAAdtV,EAAEy0B,KAAK,GACH0V,EAEAC,GAGA3V,KAAK,GAAK,GAChBnf,EAAI4pB,KAAKhI,GAGJ5hB,GAGT0d,EAAG3/B,UAAU42C,IAAM,SAAc3W,GAC/B,GAAIh7B,KAAKqkC,SAAU,OAAOrJ,EAAIlD,MAC9B,GAAIkD,EAAIqJ,SAAU,OAAOrkC,KAAK83B,MAE9B,IAAIpwB,EAAI1H,KAAKQ,QACTmH,EAAIqzB,EAAIx6B,QACZkH,EAAE06B,SAAW,EACbz6B,EAAEy6B,SAAW,EAGb,IAAK,IAAIgO,EAAQ,EAAG1oC,EAAE4pC,UAAY3pC,EAAE2pC,SAAUlB,IAC5C1oC,EAAEi0B,OAAO,GACTh0B,EAAEg0B,OAAO,GAGX,OAAG,CACD,KAAOj0B,EAAE4pC,UACP5pC,EAAEi0B,OAAO,GAEX,KAAOh0B,EAAE2pC,UACP3pC,EAAEg0B,OAAO,GAGX,IAAInB,EAAI9yB,EAAEo7B,IAAIn7B,GACd,GAAI6yB,EAAI,EAAG,CAET,IAAI1yB,EAAIJ,EACRA,EAAIC,EACJA,EAAIG,OACC,GAAU,IAAN0yB,GAAyB,IAAd7yB,EAAEw0B,KAAK,GAC3B,MAGFz0B,EAAEm/B,KAAKl/B,GAGT,OAAOA,EAAEqnC,OAAOoB,IAIlB1V,EAAG3/B,UAAUi3C,KAAO,SAAehX,GACjC,OAAOh7B,KAAKixC,KAAKjW,GAAKtzB,EAAEkpC,KAAK5V,IAG/BN,EAAG3/B,UAAUu2C,OAAS,WACpB,OAA+B,IAAP,EAAhBtxC,KAAKU,MAAM,KAGrBg6B,EAAG3/B,UAAU0gC,MAAQ,WACnB,OAA+B,IAAP,EAAhBz7B,KAAKU,MAAM,KAIrBg6B,EAAG3/B,UAAUygC,MAAQ,SAAgBR,GACnC,OAAOh7B,KAAKU,MAAM,GAAKs6B,GAIzBN,EAAG3/B,UAAUk3C,MAAQ,SAAgBvL,GACnCrM,EAAsB,iBAARqM,GACd,IAAIlM,EAAIkM,EAAM,GACV1M,GAAK0M,EAAMlM,GAAK,GAChBqK,EAAI,GAAKrK,EAGb,GAAIx6B,KAAKxF,QAAUw/B,EAGjB,OAFAh6B,KAAK0jC,QAAQ1J,EAAI,GACjBh6B,KAAKU,MAAMs5B,IAAM6K,EACV7kC,KAKT,IADA,IAAIkgC,EAAQ2E,EACHvjC,EAAI04B,EAAa,IAAVkG,GAAe5+B,EAAItB,KAAKxF,OAAQ8G,IAAK,CACnD,IAAI25B,EAAoB,EAAhBj7B,KAAKU,MAAMY,GAEnB4+B,GADAjF,GAAKiF,KACS,GACdjF,GAAK,SACLj7B,KAAKU,MAAMY,GAAK25B,EAMlB,OAJc,IAAViF,IACFlgC,KAAKU,MAAMY,GAAK4+B,EAChBlgC,KAAKxF,UAEAwF,MAGT06B,EAAG3/B,UAAUspC,OAAS,WACpB,OAAuB,IAAhBrkC,KAAKxF,QAAkC,IAAlBwF,KAAKU,MAAM,IAGzCg6B,EAAG3/B,UAAUohC,KAAO,SAAenB,GACjC,IAOIhe,EAPAolB,EAAWpH,EAAM,EAErB,GAAsB,IAAlBh7B,KAAKoiC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBpiC,KAAKoiC,UAAkBA,EAAU,OAAO,EAK5C,GAHApiC,KAAKmjC,QAGDnjC,KAAKxF,OAAS,EAChBwiB,EAAM,MACD,CACDolB,IACFpH,GAAOA,GAGTX,EAAOW,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhBj7B,KAAKU,MAAM,GACnBsc,EAAMie,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBh7B,KAAKoiC,SAA8B,GAANplB,EAC1BA,GAOT0d,EAAG3/B,UAAU+nC,IAAM,SAAc9H,GAC/B,GAAsB,IAAlBh7B,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAAgB,OAAQ,EACvD,GAAsB,IAAlBpiC,KAAKoiC,UAAmC,IAAjBpH,EAAIoH,SAAgB,OAAO,EAEtD,IAAIplB,EAAMhd,KAAKkyC,KAAKlX,GACpB,OAAsB,IAAlBh7B,KAAKoiC,SAA8B,GAANplB,EAC1BA,GAIT0d,EAAG3/B,UAAUm3C,KAAO,SAAelX,GAEjC,GAAIh7B,KAAKxF,OAASwgC,EAAIxgC,OAAQ,OAAO,EACrC,GAAIwF,KAAKxF,OAASwgC,EAAIxgC,OAAQ,OAAQ,EAGtC,IADA,IAAIwiB,EAAM,EACD1b,EAAItB,KAAKxF,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CACzC,IAAIoG,EAAoB,EAAhB1H,KAAKU,MAAMY,GACfqG,EAAmB,EAAfqzB,EAAIt6B,MAAMY,GAElB,GAAIoG,IAAMC,EAAV,CACID,EAAIC,EACNqV,GAAO,EACEtV,EAAIC,IACbqV,EAAM,GAER,OAEF,OAAOA,GAGT0d,EAAG3/B,UAAUo3C,IAAM,SAAcnX,GAC/B,OAA0B,IAAnBh7B,KAAKm8B,KAAKnB,IAGnBN,EAAG3/B,UAAUq3C,GAAK,SAAapX,GAC7B,OAAyB,IAAlBh7B,KAAK8iC,IAAI9H,IAGlBN,EAAG3/B,UAAUs3C,KAAO,SAAerX,GACjC,OAAOh7B,KAAKm8B,KAAKnB,IAAQ,GAG3BN,EAAG3/B,UAAUu3C,IAAM,SAActX,GAC/B,OAAOh7B,KAAK8iC,IAAI9H,IAAQ,GAG1BN,EAAG3/B,UAAUw3C,IAAM,SAAcvX,GAC/B,OAA2B,IAApBh7B,KAAKm8B,KAAKnB,IAGnBN,EAAG3/B,UAAUy3C,GAAK,SAAaxX,GAC7B,OAA0B,IAAnBh7B,KAAK8iC,IAAI9H,IAGlBN,EAAG3/B,UAAU03C,KAAO,SAAezX,GACjC,OAAOh7B,KAAKm8B,KAAKnB,IAAQ,GAG3BN,EAAG3/B,UAAU23C,IAAM,SAAc1X,GAC/B,OAAOh7B,KAAK8iC,IAAI9H,IAAQ,GAG1BN,EAAG3/B,UAAU43C,IAAM,SAAc3X,GAC/B,OAA0B,IAAnBh7B,KAAKm8B,KAAKnB,IAGnBN,EAAG3/B,UAAU63C,GAAK,SAAa5X,GAC7B,OAAyB,IAAlBh7B,KAAK8iC,IAAI9H,IAOlBN,EAAG2H,IAAM,SAAcrH,GACrB,OAAO,IAAI6X,EAAI7X,IAGjBN,EAAG3/B,UAAU+3C,MAAQ,SAAgBC,GAGnC,OAFA1Y,GAAQr6B,KAAKqiC,IAAK,yCAClBhI,EAAyB,IAAlBr6B,KAAKoiC,SAAgB,iCACrB2Q,EAAIC,UAAUhzC,MAAMizC,UAAUF,IAGvCrY,EAAG3/B,UAAUm4C,QAAU,WAErB,OADA7Y,EAAOr6B,KAAKqiC,IAAK,wDACVriC,KAAKqiC,IAAI8Q,YAAYnzC,OAG9B06B,EAAG3/B,UAAUk4C,UAAY,SAAoBF,GAE3C,OADA/yC,KAAKqiC,IAAM0Q,EACJ/yC,MAGT06B,EAAG3/B,UAAUq4C,SAAW,SAAmBL,GAEzC,OADA1Y,GAAQr6B,KAAKqiC,IAAK,yCACXriC,KAAKizC,UAAUF,IAGxBrY,EAAG3/B,UAAUs4C,OAAS,SAAiBrY,GAErC,OADAX,EAAOr6B,KAAKqiC,IAAK,sCACVriC,KAAKqiC,IAAIyE,IAAI9mC,KAAMg7B,IAG5BN,EAAG3/B,UAAUu4C,QAAU,SAAkBtY,GAEvC,OADAX,EAAOr6B,KAAKqiC,IAAK,uCACVriC,KAAKqiC,IAAIuE,KAAK5mC,KAAMg7B,IAG7BN,EAAG3/B,UAAUw4C,OAAS,SAAiBvY,GAErC,OADAX,EAAOr6B,KAAKqiC,IAAK,sCACVriC,KAAKqiC,IAAI/mB,IAAItb,KAAMg7B,IAG5BN,EAAG3/B,UAAUy4C,QAAU,SAAkBxY,GAEvC,OADAX,EAAOr6B,KAAKqiC,IAAK,uCACVriC,KAAKqiC,IAAIwE,KAAK7mC,KAAMg7B,IAG7BN,EAAG3/B,UAAU04C,OAAS,SAAiBzY,GAErC,OADAX,EAAOr6B,KAAKqiC,IAAK,sCACVriC,KAAKqiC,IAAIqR,IAAI1zC,KAAMg7B,IAG5BN,EAAG3/B,UAAU44C,OAAS,SAAiB3Y,GAGrC,OAFAX,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAIuR,SAAS5zC,KAAMg7B,GACjBh7B,KAAKqiC,IAAInO,IAAIl0B,KAAMg7B,IAG5BN,EAAG3/B,UAAU84C,QAAU,SAAkB7Y,GAGvC,OAFAX,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAIuR,SAAS5zC,KAAMg7B,GACjBh7B,KAAKqiC,IAAIyI,KAAK9qC,KAAMg7B,IAG7BN,EAAG3/B,UAAU+4C,OAAS,WAGpB,OAFAzZ,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAIwM,IAAI7uC,OAGtB06B,EAAG3/B,UAAUi5C,QAAU,WAGrB,OAFA3Z,EAAOr6B,KAAKqiC,IAAK,uCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAIyM,KAAK9uC,OAIvB06B,EAAG3/B,UAAUk5C,QAAU,WAGrB,OAFA5Z,EAAOr6B,KAAKqiC,IAAK,uCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAI6R,KAAKl0C,OAGvB06B,EAAG3/B,UAAUo5C,QAAU,WAGrB,OAFA9Z,EAAOr6B,KAAKqiC,IAAK,uCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAI2P,KAAKhyC,OAIvB06B,EAAG3/B,UAAUq5C,OAAS,WAGpB,OAFA/Z,EAAOr6B,KAAKqiC,IAAK,sCACjBriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAIqD,IAAI1lC,OAGtB06B,EAAG3/B,UAAUs5C,OAAS,SAAiBrZ,GAGrC,OAFAX,EAAOr6B,KAAKqiC,MAAQrH,EAAIqH,IAAK,qBAC7BriC,KAAKqiC,IAAI0R,SAAS/zC,MACXA,KAAKqiC,IAAI5N,IAAIz0B,KAAMg7B,IAI5B,IAAIsZ,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQ7rC,EAAM81B,GAErB5+B,KAAK8I,KAAOA,EACZ9I,KAAK4+B,EAAI,IAAIlE,EAAGkE,EAAG,IACnB5+B,KAAK2iB,EAAI3iB,KAAK4+B,EAAExD,YAChBp7B,KAAKwnB,EAAI,IAAIkT,EAAG,GAAGsU,OAAOhvC,KAAK2iB,GAAGkkB,KAAK7mC,KAAK4+B,GAE5C5+B,KAAK+lB,IAAM/lB,KAAK40C,OAiDlB,SAASC,IACPF,EAAO15C,KACL+E,KACA,OACA,2EA+DJ,SAAS80C,IACPH,EAAO15C,KACL+E,KACA,OACA,kEAIJ,SAAS+0C,IACPJ,EAAO15C,KACL+E,KACA,OACA,yDAIJ,SAASg1C,IAEPL,EAAO15C,KACL+E,KACA,QACA,uEA8CJ,SAAS6yC,EAAKxzB,GACZ,GAAiB,iBAANA,EAAgB,CACzB,IAAI41B,EAAQva,EAAGwa,OAAO71B,GACtBrf,KAAKqf,EAAI41B,EAAMrW,EACf5+B,KAAKi1C,MAAQA,OAEb5a,EAAOhb,EAAE8yB,IAAI,GAAI,kCACjBnyC,KAAKqf,EAAIA,EACTrf,KAAKi1C,MAAQ,KAkOjB,SAASE,EAAM91B,GACbwzB,EAAI53C,KAAK+E,KAAMqf,GAEfrf,KAAKowC,MAAQpwC,KAAKqf,EAAE+b,YAChBp7B,KAAKowC,MAAQ,IAAO,IACtBpwC,KAAKowC,OAAS,GAAMpwC,KAAKowC,MAAQ,IAGnCpwC,KAAKw6B,EAAI,IAAIE,EAAG,GAAGsU,OAAOhvC,KAAKowC,OAC/BpwC,KAAKgxC,GAAKhxC,KAAKo1C,KAAKp1C,KAAKw6B,EAAEqU,OAC3B7uC,KAAKq1C,KAAOr1C,KAAKw6B,EAAEoX,OAAO5xC,KAAKqf,GAE/Brf,KAAKs1C,KAAOt1C,KAAKq1C,KAAKnhB,IAAIl0B,KAAKw6B,GAAGkB,MAAM,GAAG8U,IAAIxwC,KAAKqf,GACpDrf,KAAKs1C,KAAOt1C,KAAKs1C,KAAK1E,KAAK5wC,KAAKw6B,GAChCx6B,KAAKs1C,KAAOt1C,KAAKw6B,EAAElf,IAAItb,KAAKs1C,MA5a9BX,EAAO55C,UAAU65C,KAAO,WACtB,IAAI7uB,EAAM,IAAI2U,EAAG,MAEjB,OADA3U,EAAIrlB,MAAQ,IAAI+O,MAAMlR,KAAKkD,KAAKzB,KAAK2iB,EAAI,KAClCoD,GAGT4uB,EAAO55C,UAAUw6C,QAAU,SAAkBva,GAG3C,IACIwa,EADAhb,EAAIQ,EAGR,GACEh7B,KAAK6d,MAAM2c,EAAGx6B,KAAK+lB,KAGnByvB,GADAhb,GADAA,EAAIx6B,KAAKy1C,MAAMjb,IACToM,KAAK5mC,KAAK+lB,MACPqV,kBACFoa,EAAOx1C,KAAK2iB,GAErB,IAAImgB,EAAM0S,EAAOx1C,KAAK2iB,GAAK,EAAI6X,EAAE0X,KAAKlyC,KAAK4+B,GAgB3C,OAfY,IAARkE,GACFtI,EAAE95B,MAAM,GAAK,EACb85B,EAAEhgC,OAAS,GACFsoC,EAAM,EACftI,EAAEqM,KAAK7mC,KAAK4+B,QAEIpgC,IAAZg8B,EAAE2I,MAEJ3I,EAAE2I,QAGF3I,EAAEkb,SAIClb,GAGTma,EAAO55C,UAAU8iB,MAAQ,SAAgB83B,EAAOziB,GAC9CyiB,EAAMha,OAAO37B,KAAK2iB,EAAG,EAAGuQ,IAG1ByhB,EAAO55C,UAAU06C,MAAQ,SAAgBza,GACvC,OAAOA,EAAI8P,KAAK9qC,KAAKwnB,IASvB+W,EAASsW,EAAMF,GAEfE,EAAK95C,UAAU8iB,MAAQ,SAAgB83B,EAAOC,GAK5C,IAHA,IAEIC,EAASt3C,KAAK8F,IAAIsxC,EAAMn7C,OAAQ,GAC3B8G,EAAI,EAAGA,EAAIu0C,EAAQv0C,IAC1Bs0C,EAAOl1C,MAAMY,GAAKq0C,EAAMj1C,MAAMY,GAIhC,GAFAs0C,EAAOp7C,OAASq7C,EAEZF,EAAMn7C,QAAU,EAGlB,OAFAm7C,EAAMj1C,MAAM,GAAK,OACjBi1C,EAAMn7C,OAAS,GAKjB,IAAIs7C,EAAOH,EAAMj1C,MAAM,GAGvB,IAFAk1C,EAAOl1C,MAAMk1C,EAAOp7C,UAhBT,QAgBqBs7C,EAE3Bx0C,EAAI,GAAIA,EAAIq0C,EAAMn7C,OAAQ8G,IAAK,CAClC,IAAIy0C,EAAwB,EAAjBJ,EAAMj1C,MAAMY,GACvBq0C,EAAMj1C,MAAMY,EAAI,KApBP,QAoBey0C,IAAgB,EAAMD,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMj1C,MAAMY,EAAI,IAAMw0C,EACT,IAATA,GAAcH,EAAMn7C,OAAS,GAC/Bm7C,EAAMn7C,QAAU,GAEhBm7C,EAAMn7C,QAAU,GAIpBq6C,EAAK95C,UAAU06C,MAAQ,SAAgBza,GAErCA,EAAIt6B,MAAMs6B,EAAIxgC,QAAU,EACxBwgC,EAAIt6B,MAAMs6B,EAAIxgC,OAAS,GAAK,EAC5BwgC,EAAIxgC,QAAU,EAId,IADA,IAAIs2B,EAAK,EACAxvB,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAAK,CACnC,IAAI25B,EAAmB,EAAfD,EAAIt6B,MAAMY,GAClBwvB,GAAU,IAAJmK,EACND,EAAIt6B,MAAMY,GAAU,SAALwvB,EACfA,EAAS,GAAJmK,GAAanK,EAAK,SAAa,GAUtC,OANkC,IAA9BkK,EAAIt6B,MAAMs6B,EAAIxgC,OAAS,KACzBwgC,EAAIxgC,SAC8B,IAA9BwgC,EAAIt6B,MAAMs6B,EAAIxgC,OAAS,IACzBwgC,EAAIxgC,UAGDwgC,GASTuD,EAASuW,EAAMH,GAQfpW,EAASwW,EAAMJ,GASfpW,EAASyW,EAAQL,GAEjBK,EAAOj6C,UAAU06C,MAAQ,SAAgBza,GAGvC,IADA,IAAIkF,EAAQ,EACH5+B,EAAI,EAAGA,EAAI05B,EAAIxgC,OAAQ8G,IAAK,CACnC,IAAIuvB,EAA0B,IAAL,EAAfmK,EAAIt6B,MAAMY,IAAiB4+B,EACjCpP,EAAU,SAALD,EACTA,KAAQ,GAERmK,EAAIt6B,MAAMY,GAAKwvB,EACfoP,EAAQrP,EAKV,OAHc,IAAVqP,IACFlF,EAAIt6B,MAAMs6B,EAAIxgC,UAAY0lC,GAErBlF,GAITN,EAAGwa,OAAS,SAAgBpsC,GAE1B,GAAIwrC,EAAOxrC,GAAO,OAAOwrC,EAAOxrC,GAEhC,IAAImsC,EACJ,GAAa,SAATnsC,EACFmsC,EAAQ,IAAIJ,OACP,GAAa,SAAT/rC,EACTmsC,EAAQ,IAAIH,OACP,GAAa,SAAThsC,EACTmsC,EAAQ,IAAIF,MACP,IAAa,WAATjsC,EAGT,MAAM,IAAIxN,MAAM,iBAAmBwN,GAFnCmsC,EAAQ,IAAID,EAMd,OAFAV,EAAOxrC,GAAQmsC,EAERA,GAkBTpC,EAAI93C,UAAUg5C,SAAW,SAAmBrsC,GAC1C2yB,EAAsB,IAAf3yB,EAAE06B,SAAgB,iCACzB/H,EAAO3yB,EAAE26B,IAAK,oCAGhBwQ,EAAI93C,UAAU64C,SAAW,SAAmBlsC,EAAGC,GAC7C0yB,EAAqC,IAA7B3yB,EAAE06B,SAAWz6B,EAAEy6B,UAAiB,iCACxC/H,EAAO3yB,EAAE26B,KAAO36B,EAAE26B,MAAQ16B,EAAE06B,IAC1B,oCAGJwQ,EAAI93C,UAAUq6C,KAAO,SAAe1tC,GAClC,OAAI1H,KAAKi1C,MAAcj1C,KAAKi1C,MAAMM,QAAQ7tC,GAAGurC,UAAUjzC,MAChD0H,EAAEkpC,KAAK5wC,KAAKqf,GAAG4zB,UAAUjzC,OAGlC6yC,EAAI93C,UAAU2qC,IAAM,SAAch+B,GAChC,OAAIA,EAAE28B,SACG38B,EAAElH,QAGJR,KAAKqf,EAAE/D,IAAI5T,GAAGurC,UAAUjzC,OAGjC6yC,EAAI93C,UAAU+rC,IAAM,SAAcp/B,EAAGC,GACnC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAEo/B,IAAIn/B,GAIhB,OAHIqV,EAAI8lB,IAAI9iC,KAAKqf,IAAM,GACrBrC,EAAI6pB,KAAK7mC,KAAKqf,GAETrC,EAAIi2B,UAAUjzC,OAGvB6yC,EAAI93C,UAAU6rC,KAAO,SAAel/B,EAAGC,GACrC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAEk/B,KAAKj/B,GAIjB,OAHIqV,EAAI8lB,IAAI9iC,KAAKqf,IAAM,GACrBrC,EAAI6pB,KAAK7mC,KAAKqf,GAETrC,GAGT61B,EAAI93C,UAAUugB,IAAM,SAAc5T,EAAGC,GACnC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAE4T,IAAI3T,GAIhB,OAHIqV,EAAImf,KAAK,GAAK,GAChBnf,EAAI4pB,KAAK5mC,KAAKqf,GAETrC,EAAIi2B,UAAUjzC,OAGvB6yC,EAAI93C,UAAU8rC,KAAO,SAAen/B,EAAGC,GACrC3H,KAAK4zC,SAASlsC,EAAGC,GAEjB,IAAIqV,EAAMtV,EAAEm/B,KAAKl/B,GAIjB,OAHIqV,EAAImf,KAAK,GAAK,GAChBnf,EAAI4pB,KAAK5mC,KAAKqf,GAETrC,GAGT61B,EAAI93C,UAAU24C,IAAM,SAAchsC,EAAGszB,GAEnC,OADAh7B,KAAK+zC,SAASrsC,GACP1H,KAAKo1C,KAAK1tC,EAAEioC,MAAM3U,KAG3B6X,EAAI93C,UAAU+vC,KAAO,SAAepjC,EAAGC,GAErC,OADA3H,KAAK4zC,SAASlsC,EAAGC,GACV3H,KAAKo1C,KAAK1tC,EAAEojC,KAAKnjC,KAG1BkrC,EAAI93C,UAAUm5B,IAAM,SAAcxsB,EAAGC,GAEnC,OADA3H,KAAK4zC,SAASlsC,EAAGC,GACV3H,KAAKo1C,KAAK1tC,EAAEwsB,IAAIvsB,KAGzBkrC,EAAI93C,UAAU+zC,KAAO,SAAepnC,GAClC,OAAO1H,KAAK8qC,KAAKpjC,EAAGA,EAAElH,UAGxBqyC,EAAI93C,UAAU8zC,IAAM,SAAcnnC,GAChC,OAAO1H,KAAKk0B,IAAIxsB,EAAGA,IAGrBmrC,EAAI93C,UAAUm5C,KAAO,SAAexsC,GAClC,GAAIA,EAAE28B,SAAU,OAAO38B,EAAElH,QAEzB,IAAIw1C,EAAOh2C,KAAKqf,EAAEmc,MAAM,GAIxB,GAHAnB,EAAO2b,EAAO,GAAM,GAGP,IAATA,EAAY,CACd,IAAIvhB,EAAMz0B,KAAKqf,EAAEynB,IAAI,IAAIpM,EAAG,IAAIiB,OAAO,GACvC,OAAO37B,KAAKy0B,IAAI/sB,EAAG+sB,GAQrB,IAFA,IAAIoQ,EAAI7kC,KAAKqf,EAAE4wB,KAAK,GAChBjW,EAAI,GACA6K,EAAER,UAA2B,IAAfQ,EAAErJ,MAAM,IAC5BxB,IACA6K,EAAElJ,OAAO,GAEXtB,GAAQwK,EAAER,UAEV,IAAI4R,EAAM,IAAIvb,EAAG,GAAGoY,MAAM9yC,MACtBk2C,EAAOD,EAAI7B,SAIX+B,EAAOn2C,KAAKqf,EAAE4wB,KAAK,GAAGtU,OAAO,GAC7BL,EAAIt7B,KAAKqf,EAAE+b,YAGf,IAFAE,EAAI,IAAIZ,EAAG,EAAIY,EAAIA,GAAGwX,MAAM9yC,MAEW,IAAhCA,KAAKy0B,IAAI6G,EAAG6a,GAAMrT,IAAIoT,IAC3B5a,EAAEgY,QAAQ4C,GAOZ,IAJA,IAAI/tC,EAAInI,KAAKy0B,IAAI6G,EAAGuJ,GAChBrK,EAAIx6B,KAAKy0B,IAAI/sB,EAAGm9B,EAAEmL,KAAK,GAAGrU,OAAO,IACjC7zB,EAAI9H,KAAKy0B,IAAI/sB,EAAGm9B,GAChBxlB,EAAI2a,EACc,IAAflyB,EAAEg7B,IAAImT,IAAY,CAEvB,IADA,IAAIlwB,EAAMje,EACDxG,EAAI,EAAoB,IAAjBykB,EAAI+c,IAAImT,GAAY30C,IAClCykB,EAAMA,EAAI+tB,SAEZzZ,EAAO/4B,EAAI+d,GACX,IAAI1X,EAAI3H,KAAKy0B,IAAItsB,EAAG,IAAIuyB,EAAG,GAAGsU,OAAO3vB,EAAI/d,EAAI,IAE7Ck5B,EAAIA,EAAEmZ,OAAOhsC,GACbQ,EAAIR,EAAEmsC,SACNhsC,EAAIA,EAAE6rC,OAAOxrC,GACbkX,EAAI/d,EAGN,OAAOk5B,GAGTqY,EAAI93C,UAAUi3C,KAAO,SAAetqC,GAClC,IAAI0uC,EAAM1uC,EAAEkqC,OAAO5xC,KAAKqf,GACxB,OAAqB,IAAjB+2B,EAAIhU,UACNgU,EAAIhU,SAAW,EACRpiC,KAAKo1C,KAAKgB,GAAKhC,UAEfp0C,KAAKo1C,KAAKgB,IAIrBvD,EAAI93C,UAAU05B,IAAM,SAAc/sB,EAAGszB,GACnC,GAAIA,EAAIqJ,SAAU,OAAO,IAAI3J,EAAG,GAAGoY,MAAM9yC,MACzC,GAAoB,IAAhBg7B,EAAImB,KAAK,GAAU,OAAOz0B,EAAElH,QAEhC,IACI61C,EAAM,IAAI5mC,MAAM,IACpB4mC,EAAI,GAAK,IAAI3b,EAAG,GAAGoY,MAAM9yC,MACzBq2C,EAAI,GAAK3uC,EACT,IAAK,IAAIpG,EAAI,EAAGA,EAAI+0C,EAAI77C,OAAQ8G,IAC9B+0C,EAAI/0C,GAAKtB,KAAKk0B,IAAImiB,EAAI/0C,EAAI,GAAIoG,GAGhC,IAAIsV,EAAMq5B,EAAI,GACV5tC,EAAU,EACV6tC,EAAa,EACbz3B,EAAQmc,EAAII,YAAc,GAK9B,IAJc,IAAVvc,IACFA,EAAQ,IAGLvd,EAAI05B,EAAIxgC,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIo9B,EAAO1D,EAAIt6B,MAAMY,GACZE,EAAIqd,EAAQ,EAAGrd,GAAK,EAAGA,IAAK,CACnC,IAAIklC,EAAOhI,GAAQl9B,EAAK,EACpBwb,IAAQq5B,EAAI,KACdr5B,EAAMhd,KAAK6uC,IAAI7xB,IAGL,IAAR0pB,GAAyB,IAAZj+B,GAKjBA,IAAY,EACZA,GAAWi+B,GA9BE,MA+Bb4P,GACwC,IAANh1C,GAAiB,IAANE,KAE7Cwb,EAAMhd,KAAKk0B,IAAIlX,EAAKq5B,EAAI5tC,IACxB6tC,EAAa,EACb7tC,EAAU,IAXR6tC,EAAa,EAajBz3B,EAAQ,GAGV,OAAO7B,GAGT61B,EAAI93C,UAAUi4C,UAAY,SAAoBhY,GAC5C,IAAIR,EAAIQ,EAAI4V,KAAK5wC,KAAKqf,GAEtB,OAAOmb,IAAMQ,EAAMR,EAAEh6B,QAAUg6B,GAGjCqY,EAAI93C,UAAUo4C,YAAc,SAAsBnY,GAChD,IAAIhe,EAAMge,EAAIx6B,QAEd,OADAwc,EAAIqlB,IAAM,KACHrlB,GAOT0d,EAAG6b,KAAO,SAAevb,GACvB,OAAO,IAAIma,EAAKna,IAmBlBuD,EAAS4W,EAAMtC,GAEfsC,EAAKp6C,UAAUi4C,UAAY,SAAoBhY,GAC7C,OAAOh7B,KAAKo1C,KAAKpa,EAAI2U,MAAM3vC,KAAKowC,SAGlC+E,EAAKp6C,UAAUo4C,YAAc,SAAsBnY,GACjD,IAAIR,EAAIx6B,KAAKo1C,KAAKpa,EAAI9G,IAAIl0B,KAAKq1C,OAE/B,OADA7a,EAAE6H,IAAM,KACD7H,GAGT2a,EAAKp6C,UAAU+vC,KAAO,SAAepjC,EAAGC,GACtC,GAAID,EAAE28B,UAAY18B,EAAE08B,SAGlB,OAFA38B,EAAEhH,MAAM,GAAK,EACbgH,EAAElN,OAAS,EACJkN,EAGT,IAAII,EAAIJ,EAAEojC,KAAKnjC,GACXQ,EAAIL,EAAEioC,MAAM/vC,KAAKowC,OAAOlc,IAAIl0B,KAAKs1C,MAAMxF,OAAO9vC,KAAKowC,OAAOlc,IAAIl0B,KAAKqf,GACnEm3B,EAAI1uC,EAAE++B,KAAK1+B,GAAGwzB,OAAO37B,KAAKowC,OAC1BpzB,EAAMw5B,EAQV,OANIA,EAAE1T,IAAI9iC,KAAKqf,IAAM,EACnBrC,EAAMw5B,EAAE3P,KAAK7mC,KAAKqf,GACTm3B,EAAEra,KAAK,GAAK,IACrBnf,EAAMw5B,EAAE5P,KAAK5mC,KAAKqf,IAGbrC,EAAIi2B,UAAUjzC,OAGvBm1C,EAAKp6C,UAAUm5B,IAAM,SAAcxsB,EAAGC,GACpC,GAAID,EAAE28B,UAAY18B,EAAE08B,SAAU,OAAO,IAAI3J,EAAG,GAAGuY,UAAUjzC,MAEzD,IAAI8H,EAAIJ,EAAEwsB,IAAIvsB,GACVQ,EAAIL,EAAEioC,MAAM/vC,KAAKowC,OAAOlc,IAAIl0B,KAAKs1C,MAAMxF,OAAO9vC,KAAKowC,OAAOlc,IAAIl0B,KAAKqf,GACnEm3B,EAAI1uC,EAAE++B,KAAK1+B,GAAGwzB,OAAO37B,KAAKowC,OAC1BpzB,EAAMw5B,EAOV,OANIA,EAAE1T,IAAI9iC,KAAKqf,IAAM,EACnBrC,EAAMw5B,EAAE3P,KAAK7mC,KAAKqf,GACTm3B,EAAEra,KAAK,GAAK,IACrBnf,EAAMw5B,EAAE5P,KAAK5mC,KAAKqf,IAGbrC,EAAIi2B,UAAUjzC,OAGvBm1C,EAAKp6C,UAAUi3C,KAAO,SAAetqC,GAGnC,OADU1H,KAAKo1C,KAAK1tC,EAAEkqC,OAAO5xC,KAAKqf,GAAG6U,IAAIl0B,KAAKgxC,KACnCiC,UAAUjzC,OAn3GzB,CAq3GoC7D,EAAQ6D,Q,uCCr3G5CtE,EAAQk6I,cAAgB72I,EAAQ,MAChCrD,EAAQq6I,eAAiBh3I,EAAQ,MAEjCrD,EAAQm6I,eAAiB,SAAyBp4I,EAAK4J,GACrD,OAAO3L,EAAQk6I,cAAcn4I,EAAK4J,GAAK,IAGzC3L,EAAQo6I,cAAgB,SAAwBr4I,EAAK4J,GACnD,OAAO3L,EAAQq6I,eAAet4I,EAAK4J,GAAK,K,gBCR1C,IAAIklF,EAAYxtF,EAAQ,KACpBK,EAAcL,EAAQ,KACtBw2H,EAAax2H,EAAQ,KACrBixJ,EAAMjxJ,EAAQ,MACdsnC,EAAMtnC,EAAQ,MACd27B,EAAK37B,EAAQ,KACbkxJ,EAAalxJ,EAAQ,MACrBkiG,EAAMliG,EAAQ,KACdwH,EAASxH,EAAQ,KAAewH,OAEpCpK,EAAOT,QAAU,SAAwBw0J,EAAW51H,EAAK1tB,GACvD,IAAI+I,EAEFA,EADEu6I,EAAUv6I,QACFu6I,EAAUv6I,QACX/I,EACC,EAEA,EAEZ,IACI8oH,EADAj4H,EAAM8uF,EAAU2jE,GAEpB,GAAgB,IAAZv6I,EACF+/G,EAkBJ,SAAej4H,EAAK68B,GAClB,IAAI9S,EAAI/pB,EAAIqjG,QAAQjzE,aAChB2iH,EAAOl2G,EAAI9/B,OACX21J,EAAQ56B,EAAW,QAAQ1wH,OAAO0B,EAAOQ,MAAM,IAAIu+D,SACnDsmD,EAAOukC,EAAM31J,OACb41J,EAAQ,EAAIxkC,EAChB,GAAI4kB,EAAOhpH,EAAI4oI,EAAQ,EACrB,MAAM,IAAI90J,MAAM,oBAElB,IAAI+0J,EAAK9pJ,EAAOQ,MAAMygB,EAAIgpH,EAAO4f,EAAQ,GACrCE,EAAQ9oI,EAAIokG,EAAO,EACnB6J,EAAOr2H,EAAYwsH,GACnB2kC,EAAWlqH,EAAI9/B,EAAOxF,OAAO,CAACovJ,EAAOE,EAAI9pJ,EAAOQ,MAAM,EAAG,GAAIuzB,GAAMg2H,GAAQN,EAAIv6B,EAAM66B,IACrFE,EAAanqH,EAAIovF,EAAMu6B,EAAIO,EAAU3kC,IACzC,OAAO,IAAIlxF,EAAGn0B,EAAOxF,OAAO,CAACwF,EAAOQ,MAAM,GAAIypJ,EAAYD,GAAW/oI,IAhCvDipI,CAAKhzJ,EAAK68B,QACjB,GAAgB,IAAZ3kB,EACT+/G,EAgCJ,SAAgBj4H,EAAK68B,EAAK1tB,GACxB,IAKIyjJ,EALA7f,EAAOl2G,EAAI9/B,OACXgtB,EAAI/pB,EAAIqjG,QAAQjzE,aACpB,GAAI2iH,EAAOhpH,EAAI,GACb,MAAM,IAAIlsB,MAAM,oBAIhB+0J,EADEzjJ,EACGrG,EAAOQ,MAAMygB,EAAIgpH,EAAO,EAAG,KAMpC,SAAkB/kH,GAChB,IAIIuP,EAJA9H,EAAM3sB,EAAOS,YAAYykB,GACzBnqB,EAAI,EACJykI,EAAQ3mI,EAAkB,EAANqsB,GACpBg/G,EAAM,EAEV,KAAOnpI,EAAImqB,GACLg/G,IAAQ1E,EAAMvrI,SAChBurI,EAAQ3mI,EAAkB,EAANqsB,GACpBg/G,EAAM,IAERzvG,EAAM+qG,EAAM0E,QAEVv3G,EAAI5xB,KAAO05B,GAGf,OAAO9H,EApBAw9H,CAAQlpI,EAAIgpH,EAAO,GAE1B,OAAO,IAAI91G,EAAGn0B,EAAOxF,OAAO,CAACwF,EAAOO,KAAK,CAAC,EAAG8F,EAAU,EAAI,IAAKyjJ,EAAI9pJ,EAAOQ,MAAM,GAAIuzB,GAAM9S,IA5C7EmpI,CAAMlzJ,EAAK68B,EAAK1tB,OACvB,IAAgB,IAAZ+I,EAMT,MAAM,IAAIra,MAAM,mBAJhB,IADAo6H,EAAY,IAAIh7F,EAAGJ,IACLwI,IAAIrlC,EAAIqjG,UAAY,EAChC,MAAM,IAAIxlG,MAAM,6BAKpB,OAAIsR,EACKq0F,EAAIy0B,EAAWj4H,GAEfwyJ,EAAWv6B,EAAWj4H,K,iBCpCjC,IAAI8uF,EAAYxtF,EAAQ,KACpBixJ,EAAMjxJ,EAAQ,MACdsnC,EAAMtnC,EAAQ,MACd27B,EAAK37B,EAAQ,KACbkiG,EAAMliG,EAAQ,KACdw2H,EAAax2H,EAAQ,KACrBkxJ,EAAalxJ,EAAQ,MACrBwH,EAASxH,EAAQ,KAAewH,OAEpCpK,EAAOT,QAAU,SAAyBsyF,EAAYlsF,EAAK8K,GACzD,IAAI+I,EAEFA,EADEq4E,EAAWr4E,QACHq4E,EAAWr4E,QACZ/I,EACC,EAEA,EAGZ,IAKI0tB,EALA78B,EAAM8uF,EAAUyB,GAChBxmE,EAAI/pB,EAAIqjG,QAAQjzE,aACpB,GAAI/rB,EAAItH,OAASgtB,GAAK,IAAIkT,EAAG54B,GAAKghC,IAAIrlC,EAAIqjG,UAAY,EACpD,MAAM,IAAIxlG,MAAM,oBAIhBg/B,EADE1tB,EACIqjJ,EAAW,IAAIv1H,EAAG54B,GAAMrE,GAExBwjG,EAAIn/F,EAAKrE,GAEjB,IAAImzJ,EAAUrqJ,EAAOQ,MAAMygB,EAAI8S,EAAI9/B,QAEnC,GADA8/B,EAAM/zB,EAAOxF,OAAO,CAAC6vJ,EAASt2H,GAAM9S,GACpB,IAAZ7R,EACF,OAUJ,SAAelY,EAAK68B,GAClB,IAAI9S,EAAI/pB,EAAIqjG,QAAQjzE,aAChBsiI,EAAQ56B,EAAW,QAAQ1wH,OAAO0B,EAAOQ,MAAM,IAAIu+D,SACnDsmD,EAAOukC,EAAM31J,OACjB,GAAe,IAAX8/B,EAAI,GACN,MAAM,IAAIh/B,MAAM,oBAElB,IAAIk1J,EAAal2H,EAAIp8B,MAAM,EAAG0tH,EAAO,GACjC2kC,EAAWj2H,EAAIp8B,MAAM0tH,EAAO,GAC5B6J,EAAOpvF,EAAImqH,EAAYR,EAAIO,EAAU3kC,IACrCilC,EAAKxqH,EAAIkqH,EAAUP,EAAIv6B,EAAMjuG,EAAIokG,EAAO,IAC5C,GAoCF,SAAkBlkH,EAAGC,GACnBD,EAAInB,EAAOO,KAAKY,GAChBC,EAAIpB,EAAOO,KAAKa,GAChB,IAAImpJ,EAAM,EACNrlI,EAAM/jB,EAAElN,OACRkN,EAAElN,SAAWmN,EAAEnN,SACjBs2J,IACArlI,EAAMltB,KAAK8F,IAAIqD,EAAElN,OAAQmN,EAAEnN,SAE7B,IAAI8G,GAAK,EACT,OAASA,EAAImqB,GACXqlI,GAAQppJ,EAAEpG,GAAKqG,EAAErG,GAEnB,OAAOwvJ,EAjDH5+H,CAAQi+H,EAAOU,EAAG3yJ,MAAM,EAAG0tH,IAC7B,MAAM,IAAItwH,MAAM,oBAElB,IAAIgG,EAAIsqH,EACR,KAAiB,IAAVilC,EAAGvvJ,IACRA,IAEF,GAAgB,IAAZuvJ,EAAGvvJ,KACL,MAAM,IAAIhG,MAAM,oBAElB,OAAOu1J,EAAG3yJ,MAAMoD,GA/BPmvJ,CAAKhzJ,EAAK68B,GACZ,GAAgB,IAAZ3kB,EACT,OAgCJ,SAAgBlY,EAAK68B,EAAK1tB,GACxB,IAAI2zI,EAAKjmH,EAAIp8B,MAAM,EAAG,GAClBoD,EAAI,EACJo3H,EAAS,EACb,KAAoB,IAAbp+F,EAAIh5B,MACT,GAAIA,GAAKg5B,EAAI9/B,OAAQ,CACnBk+H,IACA,MAGJ,IAAI23B,EAAK/1H,EAAIp8B,MAAM,EAAGoD,EAAI,IAEE,SAAvBi/I,EAAGvlJ,SAAS,SAAsB4R,GAAoC,SAAvB2zI,EAAGvlJ,SAAS,QAAqB4R,IACnF8rH,IAEE23B,EAAG71J,OAAS,GACdk+H,IAEF,GAAIA,EACF,MAAM,IAAIp9H,MAAM,oBAElB,OAAOg/B,EAAIp8B,MAAMoD,GArDRqvJ,CAAMlzJ,EAAK68B,EAAK1tB,GAClB,GAAgB,IAAZ+I,EACT,OAAO2kB,EAEP,MAAM,IAAIh/B,MAAM,qB,8BCvCpB,cAEA,SAASy1J,IACP,MAAM,IAAIz1J,MAAM,8GAElB,IAAI01J,EAAajyJ,EAAQ,KACrBkyJ,EAAclyJ,EAAQ,KACtBwH,EAASyqJ,EAAWzqJ,OACpB2qJ,EAAmBF,EAAW5jI,WAC9B3uB,EAASK,EAAOL,QAAUK,EAAOD,SACjCsyJ,EAAa5yJ,KAAKk2B,IAAI,EAAG,IAAM,EACnC,SAAS28H,EAAc9sJ,EAAQ9J,GAC7B,GAAsB,iBAAX8J,GAAuBA,GAAWA,EAC3C,MAAM,IAAI7J,UAAU,2BAGtB,GAAI6J,EAAS6sJ,GAAc7sJ,EAAS,EAClC,MAAM,IAAI7J,UAAU,2BAGtB,GAAI6J,EAAS4sJ,GAAoB5sJ,EAAS9J,EACxC,MAAM,IAAIgzB,WAAW,uBAIzB,SAASiB,EAAYvnB,EAAM5C,EAAQ9J,GACjC,GAAoB,iBAAT0M,GAAqBA,GAASA,EACvC,MAAM,IAAIzM,UAAU,yBAGtB,GAAIyM,EAAOiqJ,GAAcjqJ,EAAO,EAC9B,MAAM,IAAIzM,UAAU,yBAGtB,GAAIyM,EAAO5C,EAAS9J,GAAU0M,EAAOgqJ,EACnC,MAAM,IAAI1jI,WAAW,oBA8BzB,SAAS6jI,EAAYhqJ,EAAK/C,EAAQ4C,EAAMsU,GACtC,GAAIzH,EAAQkY,QAAS,CACnB,IAAIqlI,EAASjqJ,EAAIf,OACbirJ,EAAO,IAAI9jI,WAAW6jI,EAAQhtJ,EAAQ4C,GAE1C,OADAzI,EAAOS,gBAAgBqyJ,GACnB/1I,OACFzH,EAAQgY,UAAS,WACfvQ,EAAG,KAAMnU,MAINA,EAET,IAAImU,EAYJ,OAFYy1I,EAAY/pJ,GAClBonB,KAAKjnB,EAAK/C,GACT+C,EAXL4pJ,EAAY/pJ,GAAM,SAAUlI,EAAKo0B,GAC/B,GAAIp0B,EACF,OAAOwc,EAAGxc,GAEZo0B,EAAM9E,KAAKjnB,EAAK/C,GAChBkX,EAAG,KAAMnU,MA9CV5I,GAAUA,EAAOS,kBAAqB6U,EAAQkY,SACjDvwB,EAAQu6I,WAMV,SAAqB5uI,EAAK/C,EAAQ4C,EAAMsU,GACtC,KAAKjV,EAAO6nB,SAAS/mB,IAAUA,aAAevI,EAAO2uB,YACnD,MAAM,IAAIhzB,UAAU,iDAGtB,GAAsB,mBAAX6J,EACTkX,EAAKlX,EACLA,EAAS,EACT4C,EAAOG,EAAI7M,YACN,GAAoB,mBAAT0M,EAChBsU,EAAKtU,EACLA,EAAOG,EAAI7M,OAAS8J,OACf,GAAkB,mBAAPkX,EAChB,MAAM,IAAI/gB,UAAU,oCAItB,OAFA22J,EAAa9sJ,EAAQ+C,EAAI7M,QACzBi0B,EAAWvnB,EAAM5C,EAAQ+C,EAAI7M,QACtB62J,EAAWhqJ,EAAK/C,EAAQ4C,EAAMsU,IAtBrC9f,EAAQw6I,eAoDV,SAAyB7uI,EAAK/C,EAAQ4C,QACd,IAAX5C,IACTA,EAAS,GAEX,KAAKiC,EAAO6nB,SAAS/mB,IAAUA,aAAevI,EAAO2uB,YACnD,MAAM,IAAIhzB,UAAU,iDAGtB22J,EAAa9sJ,EAAQ+C,EAAI7M,aAEZgE,IAAT0I,IAAoBA,EAAOG,EAAI7M,OAAS8J,GAI5C,OAFAmqB,EAAWvnB,EAAM5C,EAAQ+C,EAAI7M,QAEtB62J,EAAWhqJ,EAAK/C,EAAQ4C,MAhE/BxL,EAAQu6I,WAAa8a,EACrBr1J,EAAQw6I,eAAiB6a,K,wCCvC3B,SAASS,EAAStqJ,GAChBlH,KAAKyxJ,SAAkB,EAAPvqJ,EAChBlH,KAAKkK,IAAMpP,OAAOwE,OAAO,MACzBU,KAAKkM,KAAO,IAAIwlJ,EAsClB,SAASA,IACP1xJ,KAAK2xJ,UAAY,KACjB3xJ,KAAK4xJ,SAAW,KA2ClB,SAASC,EAAiBp0J,EAAK8wB,GAC7BvuB,KAAKvC,IAAMA,EACXuC,KAAKuuB,IAAMA,EACXvuB,KAAK81C,KAAO,KACZ91C,KAAK+1C,KAAO,KA9Fd55C,EAAOT,QAAU,SAASwL,GACxB,OAAO,IAAIsqJ,EAAStqJ,IAStBsqJ,EAASz2J,UAAUyR,IAAM,SAAS/O,GAChC,IAAI2O,EAAOpM,KAAKkK,IAAIzM,GACpB,GAAY,MAAR2O,EAEJ,OADApM,KAAK4oF,KAAKx8E,GACHA,EAAKmiB,KAGdijI,EAASz2J,UAAU8R,IAAM,SAASpP,EAAK8wB,GACrC,IAAIniB,EAAOpM,KAAKkK,IAAIzM,GACpB,GAAY,MAAR2O,EACFA,EAAKmiB,IAAMA,MACN,CAEL,GADKvuB,KAAKyxJ,UAAUzxJ,KAAK8xJ,SACpB9xJ,KAAKyxJ,SAAU,OAAO,EAC3BrlJ,EAAO,IAAIylJ,EAAiBp0J,EAAK8wB,GACjCvuB,KAAKkK,IAAIzM,GAAO2O,EAChBpM,KAAKyxJ,WAGP,OADAzxJ,KAAK4oF,KAAKx8E,IACH,GAGTolJ,EAASz2J,UAAU6tF,KAAO,SAASx8E,GACjCpM,KAAKkM,KAAK6lJ,YAAY3lJ,IAGxBolJ,EAASz2J,UAAU+2J,MAAQ,WACzB,IAAI1lJ,EAAOpM,KAAKkM,KAAKJ,MACT,MAARM,WACKpM,KAAKkK,IAAIkC,EAAK3O,KACrBuC,KAAKyxJ,aAUTC,EAAiB32J,UAAUg3J,YAAc,SAAS3lJ,GAC5CpM,KAAK2xJ,WAAavlJ,IAEtBpM,KAAKgyJ,OAAO5lJ,GAEU,MAAlBpM,KAAK2xJ,WACP3xJ,KAAK2xJ,UAAYvlJ,EACjBpM,KAAK4xJ,SAAWxlJ,EAChBA,EAAK0pC,KAAO,KACZ1pC,EAAK2pC,KAAO,OAEZ3pC,EAAK0pC,KAAO,KACZ1pC,EAAK2pC,KAAO/1C,KAAK2xJ,UACjBvlJ,EAAK2pC,KAAKD,KAAO1pC,EACjBpM,KAAK2xJ,UAAYvlJ,KAIrBslJ,EAAiB32J,UAAU+Q,IAAM,WAC/B,IAAI8lJ,EAAW5xJ,KAAK4xJ,SAIpB,OAHgB,MAAZA,GACF5xJ,KAAKgyJ,OAAOJ,GAEPA,GAGTF,EAAiB32J,UAAUi3J,OAAS,SAAS5lJ,GACvCpM,KAAK2xJ,WAAavlJ,EACpBpM,KAAK2xJ,UAAYvlJ,EAAK2pC,KACA,MAAb3pC,EAAK0pC,OACd1pC,EAAK0pC,KAAKC,KAAO3pC,EAAK2pC,MAEpB/1C,KAAK4xJ,UAAYxlJ,EACnBpM,KAAK4xJ,SAAWxlJ,EAAK0pC,KACC,MAAb1pC,EAAK2pC,OACd3pC,EAAK2pC,KAAKD,KAAO1pC,EAAK0pC,Q,cCrF1B,SAAS+H,EAAgB/c,EAAGlC,GAM1B,OALAziC,EAAOT,QAAUmiD,EAAkB/iD,OAAOimC,gBAAkB,SAAyBD,EAAGlC,GAEtF,OADAkC,EAAEpT,UAAYkR,EACPkC,GAGF+c,EAAgB/c,EAAGlC,GAG5BziC,EAAOT,QAAUmiD,G,6BCAjB,IAAIo0G,EAAuBlzJ,EAAQ,MAEnC,SAASmzJ,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3C/1J,EAAOT,QAAU,WACf,SAAS22J,EAAK7qJ,EAAO8qJ,EAAUC,EAAe75G,EAAU85G,EAAcxV,GACpE,GAAIA,IAAWiV,EAAf,CAIA,IAAIjzJ,EAAM,IAAI1D,MACZ,mLAKF,MADA0D,EAAI8J,KAAO,sBACL9J,GAGR,SAASyzJ,IACP,OAAOJ,EAFTA,EAAKK,WAAaL,EAMlB,IAAIM,EAAiB,CACnBp1J,MAAO80J,EACPpzG,KAAMozG,EACNhxB,KAAMgxB,EACN3sJ,OAAQ2sJ,EACRx0J,OAAQw0J,EACRv1J,OAAQu1J,EACRO,OAAQP,EAER52F,IAAK42F,EACLQ,QAASJ,EACT/hJ,QAAS2hJ,EACTS,YAAaT,EACbU,WAAYN,EACZrmJ,KAAMimJ,EACNW,SAAUP,EACVjuF,MAAOiuF,EACPQ,UAAWR,EACXS,MAAOT,EACPU,MAAOV,EAEPW,eAAgBjB,EAChBC,kBAAmBF,GAKrB,OAFAS,EAAeU,UAAYV,EAEpBA,I,6BCnDTx2J,EAAOT,QAFoB,gD,4DCJ3B,IAAI++B,EAAe17B,EAAQ,KACvBu0J,EAAev0J,EAAQ,MACvBw0J,EAAex0J,EAAQ,MACvBy0J,EAAez0J,EAAQ,MACvB00J,EAAe10J,EAAQ,MACvB20J,EAAe30J,EAAQ,MACvB40J,EAAe50J,EAAQ,MACvBsZ,EAAetZ,EAAQ,MACvBsgH,EAAetgH,EAAQ,MAGvBk4F,EAAS,CACX,QAAWl4F,EAAQ,MACnBwuD,KAAMxuD,EAAQ,MACd60J,WAAY70J,EAAQ,OAYlB80J,EAAe,oCACfC,EAAe,oCAEnB,SAASC,EAAax8G,GAEpB,IAAI3+B,EAAM2+B,EAAI39B,OAAO5J,cAErB,OAAO6jJ,EAAaj2J,KAAKgb,MAAQk7I,EAAal2J,KAAKgb,GAMrD,IAAIo7I,EAAsB,CAAE,QAAS,SAAU,WAE/C,SAASC,EAAc18G,GACrB,IAAIpnB,EAAS9X,EAAMnW,MAAMq1C,GAAK,GAE9B,GAAIpnB,EAAOu8G,YAOJv8G,EAAOgnG,UAAY68B,EAAoBpkJ,QAAQugB,EAAOgnG,WAAa,GACtE,IACEhnG,EAAOu8G,SAAWrtB,EAAS0zB,QAAQ5iH,EAAOu8G,UAC1C,MAAOxuE,IAIb,OAAO7lD,EAAMyiB,OAAOziB,EAAMjC,OAAO+Z,IAGnC,SAAS+jI,EAAkB38G,GACzB,IAAIpnB,EAAS9X,EAAMnW,MAAMq1C,GAAK,GAE9B,GAAIpnB,EAAOu8G,YAOJv8G,EAAOgnG,UAAY68B,EAAoBpkJ,QAAQugB,EAAOgnG,WAAa,GACtE,IACEhnG,EAAOu8G,SAAWrtB,EAAS80C,UAAUhkI,EAAOu8G,UAC5C,MAAOxuE,IAIb,OAAO7lD,EAAMu0E,OAAOv0E,EAAMjC,OAAO+Z,IAyInC,SAASikI,EAAWC,EAAYv4J,GAC9B,KAAMkE,gBAAgBo0J,GACpB,OAAO,IAAIA,EAAWC,EAAYv4J,GAG/BA,GACE2+B,EAAMhiB,SAAS47I,KAClBv4J,EAAUu4J,GAAc,GACxBA,EAAa,WAWjBr0J,KAAKs0J,OAAS,IAAIZ,EASlB1zJ,KAAKgV,MAAQ,IAAIy+I,EASjBzzJ,KAAKu0J,KAAO,IAAIf,EAuBhBxzJ,KAAKw0J,SAAW,IAAIjB,EASpBvzJ,KAAKy0J,QAAU,IAAId,EAiBnB3zJ,KAAK+zJ,aAAeA,EAQpB/zJ,KAAKi0J,cAAgBA,EAOrBj0J,KAAKk0J,kBAAoBA,EAWzBl0J,KAAKy6B,MAAQA,EAQbz6B,KAAKszJ,QAAU74H,EAAMlzB,OAAO,GAAI+rJ,GAGhCtzJ,KAAKlE,QAAU,GACfkE,KAAK00J,UAAUL,GAEXv4J,GAAWkE,KAAK6M,IAAI/Q,GAuB1Bs4J,EAAWr5J,UAAU8R,IAAM,SAAU/Q,GAEnC,OADA2+B,EAAMlzB,OAAOvH,KAAKlE,QAASA,GACpBkE,MAcTo0J,EAAWr5J,UAAU25J,UAAY,SAAUC,GACzC,IAAiBN,EAAb11J,EAAOqB,KAEX,GAAIy6B,EAAMhiB,SAASk8I,MAEjBA,EAAU19D,EADVo9D,EAAaM,IAEG,MAAM,IAAIr5J,MAAM,+BAAiC+4J,EAAa,iBAGhF,IAAKM,EAAW,MAAM,IAAIr5J,MAAM,8CAchC,OAZIq5J,EAAQ74J,SAAW6C,EAAKkO,IAAI8nJ,EAAQ74J,SAEpC64J,EAAQp2I,YACVzjB,OAAO0d,KAAKm8I,EAAQp2I,YAAYpU,SAAQ,SAAUrB,GAC5C6rJ,EAAQp2I,WAAWzV,GAAM+kD,OAC3BlvD,EAAKmK,GAAM8rJ,MAAM3rD,WAAW0rD,EAAQp2I,WAAWzV,GAAM+kD,OAEnD8mG,EAAQp2I,WAAWzV,GAAM+rJ,QAC3Bl2J,EAAKmK,GAAMgsJ,OAAO7rD,WAAW0rD,EAAQp2I,WAAWzV,GAAM+rJ,WAIrD70J,MAqBTo0J,EAAWr5J,UAAUguG,OAAS,SAAU78F,EAAM88F,GAC5C,IAAIvrF,EAAS,GAERhO,MAAMC,QAAQxD,KAASA,EAAO,CAAEA,IAErC,CAAE,OAAQ,QAAS,UAAW/B,SAAQ,SAAUq+F,GAC9C/qF,EAASA,EAAO1c,OAAOf,KAAKwoG,GAAOosD,MAAM7rD,OAAO78F,GAAM,MACrDlM,MAEHyd,EAASA,EAAO1c,OAAOf,KAAKs0J,OAAOQ,OAAO/rD,OAAO78F,GAAM,IAEvD,IAAI6oJ,EAAS7oJ,EAAKsQ,QAAO,SAAU1T,GAAQ,OAAO2U,EAAO7N,QAAQ9G,GAAQ,KAEzE,GAAIisJ,EAAOv6J,SAAWwuG,EACpB,MAAM,IAAI1tG,MAAM,iDAAmDy5J,GAGrE,OAAO/0J,MAWTo0J,EAAWr5J,UAAUmuG,QAAU,SAAUh9F,EAAM88F,GAC7C,IAAIvrF,EAAS,GAERhO,MAAMC,QAAQxD,KAASA,EAAO,CAAEA,IAErC,CAAE,OAAQ,QAAS,UAAW/B,SAAQ,SAAUq+F,GAC9C/qF,EAASA,EAAO1c,OAAOf,KAAKwoG,GAAOosD,MAAM1rD,QAAQh9F,GAAM,MACtDlM,MAEHyd,EAASA,EAAO1c,OAAOf,KAAKs0J,OAAOQ,OAAO5rD,QAAQh9F,GAAM,IAExD,IAAI6oJ,EAAS7oJ,EAAKsQ,QAAO,SAAU1T,GAAQ,OAAO2U,EAAO7N,QAAQ9G,GAAQ,KAEzE,GAAIisJ,EAAOv6J,SAAWwuG,EACpB,MAAM,IAAI1tG,MAAM,kDAAoDy5J,GAEtE,OAAO/0J,MAoBTo0J,EAAWr5J,UAAU+9D,IAAM,SAAUk8F,GACnC,IAAIz6J,EAAO,CAAEyF,MAAOe,OAAO0O,MAAM1U,UAAUmD,MAAMjD,KAAKL,UAAW,IAEjE,OADAo6J,EAAO50J,MAAM40J,EAAQz6J,GACdyF,MAmBTo0J,EAAWr5J,UAAUmH,MAAQ,SAAUuE,EAAKylB,GAC1C,GAAmB,iBAARzlB,EACT,MAAM,IAAInL,MAAM,iCAGlB,IAAI0M,EAAQ,IAAIhI,KAAKu0J,KAAKU,MAAMxuJ,EAAKzG,KAAMksB,GAI3C,OAFAlsB,KAAKu0J,KAAKxgJ,QAAQ/L,GAEXA,EAAM2wE,QAefy7E,EAAWr5J,UAAU2O,OAAS,SAAUjD,EAAKylB,GAG3C,OAFAA,EAAMA,GAAO,GAENlsB,KAAKw0J,SAAS9qJ,OAAO1J,KAAKkC,MAAMuE,EAAKylB,GAAMlsB,KAAKlE,QAASowB,IAalEkoI,EAAWr5J,UAAUm6J,YAAc,SAAUzuJ,EAAKylB,GAChD,IAAIlkB,EAAQ,IAAIhI,KAAKu0J,KAAKU,MAAMxuJ,EAAKzG,KAAMksB,GAK3C,OAHAlkB,EAAMmtJ,YAAa,EACnBn1J,KAAKu0J,KAAKxgJ,QAAQ/L,GAEXA,EAAM2wE,QAYfy7E,EAAWr5J,UAAUq6J,aAAe,SAAU3uJ,EAAKylB,GAGjD,OAFAA,EAAMA,GAAO,GAENlsB,KAAKw0J,SAAS9qJ,OAAO1J,KAAKk1J,YAAYzuJ,EAAKylB,GAAMlsB,KAAKlE,QAASowB,IAIxE/vB,EAAOT,QAAU04J,G,ig5BChkBjB,IAAIiB,EAAc,GAsClB,SAASv6H,EAAOh+B,EAAQw4J,EAASC,GAC/B,IAAIj0J,EAAGohB,EAAG1J,EAAMw8I,EAAUzvB,EACtBtoH,EAAS,GAcb,IAZuB,iBAAZ63I,IAETC,EAAeD,EACfA,EAAUx6H,EAAO26H,mBAGQ,IAAhBF,IACTA,GAAc,GAGhBxvB,EA9CF,SAAwBuvB,GACtB,IAAIh0J,EAAG4W,EAAI6tH,EAAQsvB,EAAYC,GAC/B,GAAIvvB,EAAS,OAAOA,EAIpB,IAFAA,EAAQsvB,EAAYC,GAAW,GAE1Bh0J,EAAI,EAAGA,EAAI,IAAKA,IACnB4W,EAAKlc,OAAOyG,aAAanB,GAErB,cAAc1D,KAAKsa,GAErB6tH,EAAMnkI,KAAKsW,GAEX6tH,EAAMnkI,KAAK,KAAO,IAAMN,EAAEtG,SAAS,IAAI6e,eAAe3b,OAAO,IAIjE,IAAKoD,EAAI,EAAGA,EAAIg0J,EAAQ96J,OAAQ8G,IAC9BykI,EAAMuvB,EAAQ1yJ,WAAWtB,IAAMg0J,EAAQh0J,GAGzC,OAAOykI,EAyBC2vB,CAAeJ,GAElBh0J,EAAI,EAAGohB,EAAI5lB,EAAOtC,OAAQ8G,EAAIohB,EAAGphB,IAGpC,GAFA0X,EAAOlc,EAAO8F,WAAWtB,GAErBi0J,GAAwB,KAATv8I,GAAyB1X,EAAI,EAAIohB,GAC9C,iBAAiB9kB,KAAKd,EAAOoB,MAAMoD,EAAI,EAAGA,EAAI,IAChDmc,GAAU3gB,EAAOoB,MAAMoD,EAAGA,EAAI,GAC9BA,GAAK,OAKT,GAAI0X,EAAO,IACTyE,GAAUsoH,EAAM/sH,QAIlB,GAAIA,GAAQ,OAAUA,GAAQ,MAA9B,CACE,GAAIA,GAAQ,OAAUA,GAAQ,OAAU1X,EAAI,EAAIohB,IAC9C8yI,EAAW14J,EAAO8F,WAAWtB,EAAI,KACjB,OAAUk0J,GAAY,MAAQ,CAC5C/3I,GAAUta,mBAAmBrG,EAAOwE,GAAKxE,EAAOwE,EAAI,IACpDA,IACA,SAGJmc,GAAU,iBAIZA,GAAUta,mBAAmBrG,EAAOwE,IAGtC,OAAOmc,EAGTqd,EAAO26H,aAAiB,uBACxB36H,EAAO66H,eAAiB,YAGxBx5J,EAAOT,QAAUo/B,G,6BC3FjB,IAAI86H,EAAc,GAwBlB,SAAShpE,EAAO9vF,EAAQw4J,GACtB,IAAIvvB,EAQJ,MANuB,iBAAZuvB,IACTA,EAAU1oE,EAAO6oE,cAGnB1vB,EA7BF,SAAwBuvB,GACtB,IAAIh0J,EAAG4W,EAAI6tH,EAAQ6vB,EAAYN,GAC/B,GAAIvvB,EAAS,OAAOA,EAIpB,IAFAA,EAAQ6vB,EAAYN,GAAW,GAE1Bh0J,EAAI,EAAGA,EAAI,IAAKA,IACnB4W,EAAKlc,OAAOyG,aAAanB,GACzBykI,EAAMnkI,KAAKsW,GAGb,IAAK5W,EAAI,EAAGA,EAAIg0J,EAAQ96J,OAAQ8G,IAE9BykI,EADA7tH,EAAKo9I,EAAQ1yJ,WAAWtB,IACZ,KAAO,IAAM4W,EAAGld,SAAS,IAAI6e,eAAe3b,OAAO,GAGjE,OAAO6nI,EAaC8vB,CAAeP,GAEhBx4J,EAAOiT,QAAQ,qBAAqB,SAAS67I,GAClD,IAAItqJ,EAAGohB,EAAGwmB,EAAIG,EAAIG,EAAIG,EAAImsH,EACtBr4I,EAAS,GAEb,IAAKnc,EAAI,EAAGohB,EAAIkpI,EAAIpxJ,OAAQ8G,EAAIohB,EAAGphB,GAAK,GACtC4nC,EAAK7mC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,EAAGA,EAAI,GAAI,KAE9B,IACPmc,GAAUsoH,EAAM78F,GAIE,MAAV,IAALA,IAAwB5nC,EAAI,EAAIohB,GAIf,MAAV,KAFV2mB,EAAKhnC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,EAAGA,EAAI,GAAI,OAMnCmc,IAHFq4I,EAAQ5sH,GAAM,EAAK,KAAe,GAALG,GAEnB,IACE,KAEArtC,OAAOyG,aAAaqzJ,GAGhCx0J,GAAK,GAKW,MAAV,IAAL4nC,IAAwB5nC,EAAI,EAAIohB,IAEnC2mB,EAAKhnC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,EAAGA,EAAI,GAAI,IACvCkoC,EAAKnnC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,EAAGA,EAAI,GAAI,IAEnB,MAAV,IAAL+nC,IAAuC,MAAV,IAALG,KAIzB/rB,IAHFq4I,EAAQ5sH,GAAM,GAAM,MAAYG,GAAM,EAAK,KAAe,GAALG,GAE3C,MAAUssH,GAAO,OAAUA,GAAO,MAChC,MAEA95J,OAAOyG,aAAaqzJ,GAGhCx0J,GAAK,GAKW,MAAV,IAAL4nC,IAAwB5nC,EAAI,EAAIohB,IAEnC2mB,EAAKhnC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,EAAGA,EAAI,GAAI,IACvCkoC,EAAKnnC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,EAAGA,EAAI,GAAI,IACvCqoC,EAAKtnC,SAASupJ,EAAI1tJ,MAAMoD,EAAI,GAAIA,EAAI,IAAK,IAErB,MAAV,IAAL+nC,IAAuC,MAAV,IAALG,IAAuC,MAAV,IAALG,MACnDmsH,EAAQ5sH,GAAM,GAAM,QAAcG,GAAM,GAAM,OAAaG,GAAM,EAAK,KAAe,GAALG,GAEtE,OAAWmsH,EAAM,QACzBr4I,GAAU,QAEVq4I,GAAO,MACPr4I,GAAUzhB,OAAOyG,aAAa,OAAUqzJ,GAAO,IAAK,OAAgB,KAANA,KAGhEx0J,GAAK,GAKTmc,GAAU,IAGZ,OAAOA,KAKXmvE,EAAO6oE,aAAiB,cACxB7oE,EAAO+oE,eAAiB,GAGxBx5J,EAAOT,QAAUkxF,G,6BCrHjBzwF,EAAOT,QAAU,SAAgB67C,GAC/B,IAAI95B,EAAS,GAkBb,OAhBAA,GAAU85B,EAAI4/E,UAAY,GAC1B15G,GAAU85B,EAAIy5F,QAAU,KAAO,GAC/BvzH,GAAU85B,EAAI4lF,KAAO5lF,EAAI4lF,KAAO,IAAM,GAElC5lF,EAAIm1F,WAA2C,IAA/Bn1F,EAAIm1F,SAAS98H,QAAQ,KAEvC6N,GAAU,IAAM85B,EAAIm1F,SAAW,IAE/BjvH,GAAU85B,EAAIm1F,UAAY,GAG5BjvH,GAAU85B,EAAIu1F,KAAO,IAAMv1F,EAAIu1F,KAAO,GACtCrvH,GAAU85B,EAAIqB,UAAY,GAC1Bn7B,GAAU85B,EAAIsB,QAAU,GACxBp7B,GAAU85B,EAAIzd,MAAQ,K,6BCwBxB,SAASi3G,IACP/wI,KAAKm3H,SAAW,KAChBn3H,KAAKgxI,QAAU,KACfhxI,KAAKm9H,KAAO,KACZn9H,KAAK8sI,KAAO,KACZ9sI,KAAK0sI,SAAW,KAChB1sI,KAAK85B,KAAO,KACZ95B,KAAK64C,OAAS,KACd74C,KAAK44C,SAAW,KAOlB,IAAIu4F,EAAkB,oBAClBC,EAAc,WAGdC,EAAoB,qCAOpBC,EAAS,CAAE,IAAK,IAAK,IAAK,KAAM,IAAK,KAAMvwI,OAHlC,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OAMhDwwI,EAAa,CAAE,KAAOxwI,OAAOuwI,GAK7BE,EAAe,CAAE,IAAK,IAAK,IAAK,IAAK,KAAMzwI,OAAOwwI,GAClDE,EAAkB,CAAE,IAAK,IAAK,KAE9BC,EAAsB,yBACtBC,EAAoB,+BAIpBE,EAAmB,CACjB,YAAc,EACd,eAAe,GAGjBC,EAAkB,CAChB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAYff,EAAIh2I,UAAUmH,MAAQ,SAASq1C,EAAKy6F,GAClC,IAAI1wI,EAAGohB,EAAG2vH,EAAYG,EAAKxB,EACvB/yI,EAAOs5C,EAMX,GAFAt5C,EAAOA,EAAK2b,QAEPo4H,GAA+C,IAA1Bz6F,EAAI15B,MAAM,KAAKrjB,OAAc,CAErD,IAAI43I,EAAaf,EAAkB3zH,KAAKzf,GACxC,GAAIm0I,EAKF,OAJApyI,KAAK44C,SAAWw5F,EAAW,GACvBA,EAAW,KACbpyI,KAAK64C,OAASu5F,EAAW,IAEpBpyI,KAIX,IAAIsO,EAAQ6iI,EAAgBzzH,KAAKzf,GAoBjC,GAnBIqQ,IAEF+jI,GADA/jI,EAAQA,EAAM,IACK0B,cACnBhQ,KAAKm3H,SAAW7oH,EAChBrQ,EAAOA,EAAKqE,OAAOgM,EAAM9T,UAOvBw3I,GAAqB1jI,GAASrQ,EAAKd,MAAM,6BAC3C6zI,EAAgC,OAAtB/yI,EAAKqE,OAAO,EAAG,KACRgM,GAASujI,EAAiBvjI,KACzCrQ,EAAOA,EAAKqE,OAAO,GACnBtC,KAAKgxI,SAAU,KAIda,EAAiBvjI,KACjB0iI,GAAY1iI,IAAUwjI,EAAgBxjI,IAAU,CAkBnD,IAUI6uH,EAAMmV,EAVNC,GAAW,EACf,IAAKjxI,EAAI,EAAGA,EAAImwI,EAAgBj3I,OAAQ8G,KAEzB,KADbkxI,EAAMv0I,EAAK2R,QAAQ6hI,EAAgBnwI,QACH,IAAbixI,GAAkBC,EAAMD,KACzCA,EAAUC,GA0Bd,KARgB,KATdF,GAFe,IAAbC,EAEOt0I,EAAKuxB,YAAY,KAIjBvxB,EAAKuxB,YAAY,IAAK+iH,MAM/BpV,EAAOl/H,EAAKC,MAAM,EAAGo0I,GACrBr0I,EAAOA,EAAKC,MAAMo0I,EAAS,GAC3BtyI,KAAKm9H,KAAOA,GAIdoV,GAAW,EACNjxI,EAAI,EAAGA,EAAIkwI,EAAah3I,OAAQ8G,KAEtB,KADbkxI,EAAMv0I,EAAK2R,QAAQ4hI,EAAalwI,QACA,IAAbixI,GAAkBC,EAAMD,KACzCA,EAAUC,IAIG,IAAbD,IACFA,EAAUt0I,EAAKzD,QAGS,MAAtByD,EAAKs0I,EAAU,IAAcA,IACjC,IAAIlW,EAAOp+H,EAAKC,MAAM,EAAGq0I,GACzBt0I,EAAOA,EAAKC,MAAMq0I,GAGlBvyI,KAAKyyI,UAAUpW,GAIfr8H,KAAK0sI,SAAW1sI,KAAK0sI,UAAY,GAIjC,IAAIgG,EAAoC,MAArB1yI,KAAK0sI,SAAS,IACe,MAA5C1sI,KAAK0sI,SAAS1sI,KAAK0sI,SAASlyI,OAAS,GAGzC,IAAKk4I,EAAc,CACjB,IAAIC,EAAY3yI,KAAK0sI,SAAS7uH,MAAM,MACpC,IAAKvc,EAAI,EAAGohB,EAAIiwH,EAAUn4I,OAAQ8G,EAAIohB,EAAGphB,IAAK,CAC5C,IAAIupD,EAAO8nF,EAAUrxI,GACrB,GAAKupD,IACAA,EAAK1tD,MAAMu0I,GAAsB,CAEpC,IADA,IAAIkB,EAAU,GACLpxI,EAAI,EAAGgmB,EAAIqjC,EAAKrwD,OAAQgH,EAAIgmB,EAAGhmB,IAClCqpD,EAAKjoD,WAAWpB,GAAK,IAIvBoxI,GAAW,IAEXA,GAAW/nF,EAAKrpD,GAIpB,IAAKoxI,EAAQz1I,MAAMu0I,GAAsB,CACvC,IAAImB,EAAaF,EAAUz0I,MAAM,EAAGoD,GAChCwxI,EAAUH,EAAUz0I,MAAMoD,EAAI,GAC9BolC,EAAMmkB,EAAK1tD,MAAMw0I,GACjBjrG,IACFmsG,EAAWjxI,KAAK8kC,EAAI,IACpBosG,EAAQ91E,QAAQt2B,EAAI,KAElBosG,EAAQt4I,SACVyD,EAAO60I,EAAQ7wI,KAAK,KAAOhE,GAE7B+B,KAAK0sI,SAAWmG,EAAW5wI,KAAK,KAChC,SAMJjC,KAAK0sI,SAASlyI,OA1LD,MA2LfwF,KAAK0sI,SAAW,IAKdgG,IACF1yI,KAAK0sI,SAAW1sI,KAAK0sI,SAASpqI,OAAO,EAAGtC,KAAK0sI,SAASlyI,OAAS,IAKnE,IAAIs/B,EAAO77B,EAAK2R,QAAQ,MACV,IAAVkqB,IAEF95B,KAAK85B,KAAO77B,EAAKqE,OAAOw3B,GACxB77B,EAAOA,EAAKC,MAAM,EAAG47B,IAEvB,IAAIo5G,EAAKj1I,EAAK2R,QAAQ,KAWtB,OAVY,IAARsjI,IACFlzI,KAAK64C,OAAS56C,EAAKqE,OAAO4wI,GAC1Bj1I,EAAOA,EAAKC,MAAM,EAAGg1I,IAEnBj1I,IAAQ+B,KAAK44C,SAAW36C,GACxB6zI,EAAgBO,IAChBryI,KAAK0sI,WAAa1sI,KAAK44C,WACzB54C,KAAK44C,SAAW,IAGX54C,MAGT+wI,EAAIh2I,UAAU03I,UAAY,SAASpW,GACjC,IAAIyQ,EAAOsE,EAAY1zH,KAAK2+G,GACxByQ,IAEW,OADbA,EAAOA,EAAK,MAEV9sI,KAAK8sI,KAAOA,EAAKxqI,OAAO,IAE1B+5H,EAAOA,EAAK/5H,OAAO,EAAG+5H,EAAK7hI,OAASsyI,EAAKtyI,SAEvC6hI,IAAQr8H,KAAK0sI,SAAWrQ,IAG9BlgI,EAAOT,QA7MP,SAAkB67C,EAAKy6F,GACrB,GAAIz6F,GAAOA,aAAew5F,EAAO,OAAOx5F,EAExC,IAAIf,EAAI,IAAIu6F,EAEZ,OADAv6F,EAAEt0C,MAAMq1C,EAAKy6F,GACNx7F,I,6BC7GT96C,EAAQq6J,IAAMh3J,EAAQ,MACtBrD,EAAQs6J,GAAMj3J,EAAQ,MACtBrD,EAAQu6J,GAAMl3J,EAAQ,MACtBrD,EAAQ+6G,EAAM13G,EAAQ,KACtBrD,EAAQw6J,EAAMn3J,EAAQ,O,cCNtB5C,EAAOT,QAAQ,yN,6BCIfA,EAAQy6J,eAAuBp3J,EAAQ,MACvCrD,EAAQ06J,qBAAuBr3J,EAAQ,MACvCrD,EAAQ26J,eAAuBt3J,EAAQ,O,6BCCvC5C,EAAOT,QAAU,SAAwBsM,EAAO6W,EAAOy3I,GACrD,IAAI93I,EAAOuR,EAAOpE,EAAQ4qI,EACtBC,GAAY,EACZtyJ,EAAM8D,EAAMyuJ,OACZC,EAAS1uJ,EAAMoR,IAKnB,IAHApR,EAAMoR,IAAMyF,EAAQ,EACpBL,EAAQ,EAEDxW,EAAMoR,IAAMlV,GAAK,CAEtB,GAAe,MADfynB,EAAS3jB,EAAMvB,IAAI7D,WAAWoF,EAAMoR,OAGpB,MADdoF,EACiB,CACfuR,GAAQ,EACR,MAMJ,GAFAwmI,EAAUvuJ,EAAMoR,IAChBpR,EAAM2uJ,GAAGrC,OAAOsC,UAAU5uJ,GACX,KAAX2jB,EACF,GAAI4qI,IAAYvuJ,EAAMoR,IAAM,EAE1BoF,SACK,GAAI83I,EAET,OADAtuJ,EAAMoR,IAAMs9I,GACJ,EAYd,OAPI3mI,IACFymI,EAAWxuJ,EAAMoR,KAInBpR,EAAMoR,IAAMs9I,EAELF,I,6BCzCT,IAAI39I,EAAc9Z,EAAQ,KAAmB8Z,YAG7C1c,EAAOT,QAAU,SAA8Bkd,EAAKQ,EAAKlV,GACvD,IAAI8U,EAAMwF,EAENK,EAAQzF,EACRqE,EAAS,CACPo5I,IAAI,EACJz9I,IAAK,EACLyzI,MAAO,EACPj0I,IAAK,IAGX,GAA4B,KAAxBA,EAAIhW,WAAWwW,GAAuB,CAExC,IADAA,IACOA,EAAMlV,GAAK,CAEhB,GAAa,MADb8U,EAAOJ,EAAIhW,WAAWwW,IACQ,OAAOqE,EACrC,GAAa,KAATzE,EAIF,OAHAyE,EAAOrE,IAAMA,EAAM,EACnBqE,EAAO7E,IAAMC,EAAYD,EAAI1a,MAAM2gB,EAAQ,EAAGzF,IAC9CqE,EAAOo5I,IAAK,EACLp5I,EAEI,KAATzE,GAAyBI,EAAM,EAAIlV,EACrCkV,GAAO,EAITA,IAIF,OAAOqE,EAMT,IADAe,EAAQ,EACDpF,EAAMlV,GAGE,MAFb8U,EAAOJ,EAAIhW,WAAWwW,OAKlBJ,EAAO,IAAiB,MAATA,IAEnB,GAAa,KAATA,GAAyBI,EAAM,EAAIlV,EACrCkV,GAAO,MADT,CASA,GAJa,KAATJ,GACFwF,IAGW,KAATxF,EAAuB,CACzB,GAAc,IAAVwF,EAAe,MACnBA,IAGFpF,IAGF,OAAIyF,IAAUzF,GACA,IAAVoF,IAEJf,EAAO7E,IAAMC,EAAYD,EAAI1a,MAAM2gB,EAAOzF,IAC1CqE,EAAOovI,MAhEK,EAiEZpvI,EAAOrE,IAAMA,EACbqE,EAAOo5I,IAAK,GANgBp5I,I,6BCjE9B,IAAI5E,EAAc9Z,EAAQ,KAAmB8Z,YAG7C1c,EAAOT,QAAU,SAAwBkd,EAAKQ,EAAKlV,GACjD,IAAI8U,EACA2S,EACAkhI,EAAQ,EACRhuI,EAAQzF,EACRqE,EAAS,CACPo5I,IAAI,EACJz9I,IAAK,EACLyzI,MAAO,EACPj0I,IAAK,IAGX,GAAIQ,GAAOlV,EAAO,OAAOuZ,EAIzB,GAAe,MAFfkO,EAAS/S,EAAIhW,WAAWwW,KAEkB,KAAXuS,GAAsC,KAAXA,EAA2B,OAAOlO,EAO5F,IALArE,IAGe,KAAXuS,IAAmBA,EAAS,IAEzBvS,EAAMlV,GAAK,CAEhB,IADA8U,EAAOJ,EAAIhW,WAAWwW,MACTuS,EAKX,OAJAlO,EAAOrE,IAAMA,EAAM,EACnBqE,EAAOovI,MAAQA,EACfpvI,EAAO7E,IAAMC,EAAYD,EAAI1a,MAAM2gB,EAAQ,EAAGzF,IAC9CqE,EAAOo5I,IAAK,EACLp5I,EACW,KAATzE,EACT6zI,IACkB,KAAT7zI,GAAyBI,EAAM,EAAIlV,IAC5CkV,IAC4B,KAAxBR,EAAIhW,WAAWwW,IACjByzI,KAIJzzI,IAGF,OAAOqE,I,6BCzCT,IAAIlW,EAAkBxI,EAAQ,KAAkBwI,OAC5CsR,EAAkB9Z,EAAQ,KAAkB8Z,YAC5CK,EAAkBna,EAAQ,KAAkBma,WAK5C49I,EAAgB,GAgHpB,SAASvD,IA8BPvzJ,KAAK6tD,MAAQtmD,EAAO,GAAIuvJ,GA3I1BA,EAAcC,YAAc,SAAUp+E,EAAQ5pB,EAAKjzD,EAASowB,EAAK8qI,GAC/D,IAAIh4I,EAAQ25D,EAAO5pB,GAEnB,MAAQ,QAAUioG,EAAIC,YAAYj4I,GAAS,IACnC9F,EAAWy/D,EAAO5pB,GAAK1wC,SACvB,WAIVy4I,EAAcI,WAAa,SAAUv+E,EAAQ5pB,EAAKjzD,EAASowB,EAAK8qI,GAC9D,IAAIh4I,EAAQ25D,EAAO5pB,GAEnB,MAAQ,OAASioG,EAAIC,YAAYj4I,GAAS,UAClC9F,EAAWy/D,EAAO5pB,GAAK1wC,SACvB,mBAIVy4I,EAAcK,MAAQ,SAAUx+E,EAAQ5pB,EAAKjzD,EAASowB,EAAK8qI,GACzD,IAGII,EAAa91J,EAAG+1J,EAAUC,EAH1Bt4I,EAAQ25D,EAAO5pB,GACfu/B,EAAOtvE,EAAMsvE,KAAOz1E,EAAYmG,EAAMsvE,MAAM10E,OAAS,GACrD29I,EAAW,GAaf,OAVIjpE,IACFipE,EAAWjpE,EAAKzwE,MAAM,QAAQ,IASI,KALlCu5I,EADEt7J,EAAQ07J,WACI17J,EAAQ07J,UAAUx4I,EAAMX,QAASk5I,IAEjCr+I,EAAW8F,EAAMX,UAGjBzO,QAAQ,QACfwnJ,EAAc,KAMnB9oE,GACFhtF,EAAW0d,EAAM0qF,UAAU,SAC3B2tD,EAAWr4I,EAAMzP,MAAQyP,EAAMzP,MAAMrR,QAAU,GAE3CoD,EAAI,EACN+1J,EAASz1J,KAAK,CAAE,QAAS9F,EAAQ27J,WAAaF,IAE9CF,EAAS/1J,GAAG,IAAM,IAAMxF,EAAQ27J,WAAaF,EAI/CD,EAAW,CACT/nJ,MAAO8nJ,GAGD,aAAeL,EAAIC,YAAYK,GAAY,IAC3CF,EACA,mBAIF,aAAeJ,EAAIC,YAAYj4I,GAAS,IACxCo4I,EACA,mBAIVN,EAAcvvF,MAAQ,SAAUoR,EAAQ5pB,EAAKjzD,EAASowB,EAAK8qI,GACzD,IAAIh4I,EAAQ25D,EAAO5pB,GAUnB,OAHA/vC,EAAMzP,MAAMyP,EAAM0qF,UAAU,QAAQ,GAClCstD,EAAIU,mBAAmB14I,EAAMpV,SAAU9N,EAASowB,GAE3C8qI,EAAIW,YAAYh/E,EAAQ5pB,EAAKjzD,IAItCg7J,EAAcc,UAAY,SAAUj/E,EAAQ5pB,EAAKjzD,GAC/C,OAAOA,EAAQ+7J,SAAW,WAAa,UAEzCf,EAAcgB,UAAY,SAAUn/E,EAAQ5pB,EAAKjzD,GAC/C,OAAOA,EAAQi8J,OAAUj8J,EAAQ+7J,SAAW,WAAa,SAAY,MAIvEf,EAAcp2I,KAAO,SAAUi4D,EAAQ5pB,GACrC,OAAO71C,EAAWy/D,EAAO5pB,GAAK1wC,UAIhCy4I,EAAckB,WAAa,SAAUr/E,EAAQ5pB,GAC3C,OAAO4pB,EAAO5pB,GAAK1wC,SAErBy4I,EAAcmB,YAAc,SAAUt/E,EAAQ5pB,GAC5C,OAAO4pB,EAAO5pB,GAAK1wC,SAgDrBk1I,EAASx4J,UAAUk8J,YAAc,SAAqBj4I,GACpD,IAAI1d,EAAGohB,EAAGjF,EAEV,IAAKuB,EAAMzP,MAAS,MAAO,GAI3B,IAFAkO,EAAS,GAEJnc,EAAI,EAAGohB,EAAI1D,EAAMzP,MAAM/U,OAAQ8G,EAAIohB,EAAGphB,IACzCmc,GAAU,IAAMvE,EAAW8F,EAAMzP,MAAMjO,GAAG,IAAM,KAAO4X,EAAW8F,EAAMzP,MAAMjO,GAAG,IAAM,IAGzF,OAAOmc,GAaT81I,EAASx4J,UAAU48J,YAAc,SAAqBh/E,EAAQ5pB,EAAKjzD,GACjE,IAAIo8J,EACAz6I,EAAS,GACT06I,GAAS,EACTn5I,EAAQ25D,EAAO5pB,GAGnB,OAAI/vC,EAAMyqF,OACD,IAULzqF,EAAMhK,QAA4B,IAAnBgK,EAAMsqF,SAAkBv6C,GAAO4pB,EAAO5pB,EAAM,GAAG06C,SAChEhsF,GAAU,MAIZA,KAA8B,IAAnBuB,EAAMsqF,QAAiB,KAAO,KAAOtqF,EAAMjC,IAGtDU,GAAUzd,KAAKi3J,YAAYj4I,GAGL,IAAlBA,EAAMsqF,SAAiBxtG,EAAQ+7J,WACjCp6I,GAAU,MAIRuB,EAAMhK,QACRmjJ,GAAS,EAEa,IAAlBn5I,EAAMsqF,SACJv6C,EAAM,EAAI4pB,EAAOn+E,SAGI,YAFvB09J,EAAYv/E,EAAO5pB,EAAM,IAEX7lD,MAAqBgvJ,EAAUzuD,SAKX,IAAvByuD,EAAU5uD,SAAkB4uD,EAAUn7I,MAAQiC,EAAMjC,OAF7Do7I,GAAS,IAWjB16I,GAAU06I,EAAS,MAAQ,MAc7B5E,EAASx4J,UAAUq6J,aAAe,SAAUz8E,EAAQ78E,EAASowB,GAK3D,IAJA,IAAIhjB,EACAuU,EAAS,GACTowC,EAAQ7tD,KAAK6tD,MAERvsD,EAAI,EAAGmqB,EAAMktD,EAAOn+E,OAAQ8G,EAAImqB,EAAKnqB,SAGjB,IAAhBusD,EAFX3kD,EAAOyvE,EAAOr3E,GAAG4H,MAGfuU,GAAUowC,EAAM3kD,GAAMyvE,EAAQr3E,EAAGxF,EAASowB,EAAKlsB,MAE/Cyd,GAAUzd,KAAK23J,YAAYh/E,EAAQr3E,EAAGxF,GAI1C,OAAO2hB,GAcT81I,EAASx4J,UAAU28J,mBAAqB,SAAU/+E,EAAQ78E,EAASowB,GAGjE,IAFA,IAAIzO,EAAS,GAEJnc,EAAI,EAAGmqB,EAAMktD,EAAOn+E,OAAQ8G,EAAImqB,EAAKnqB,IACrB,SAAnBq3E,EAAOr3E,GAAG4H,KACZuU,GAAUk7D,EAAOr3E,GAAG+c,QACQ,UAAnBs6D,EAAOr3E,GAAG4H,OACnBuU,GAAUzd,KAAK03J,mBAAmB/+E,EAAOr3E,GAAGsI,SAAU9N,EAASowB,IAInE,OAAOzO,GAaT81I,EAASx4J,UAAU2O,OAAS,SAAUivE,EAAQ78E,EAASowB,GACrD,IAAI5qB,EAAGmqB,EAAKviB,EACRuU,EAAS,GACTowC,EAAQ7tD,KAAK6tD,MAEjB,IAAKvsD,EAAI,EAAGmqB,EAAMktD,EAAOn+E,OAAQ8G,EAAImqB,EAAKnqB,IAG3B,YAFb4H,EAAOyvE,EAAOr3E,GAAG4H,MAGfuU,GAAUzd,KAAKo1J,aAAaz8E,EAAOr3E,GAAGsI,SAAU9N,EAASowB,QACzB,IAAhB2hC,EAAM3kD,GACtBuU,GAAUowC,EAAM8qB,EAAOr3E,GAAG4H,MAAMyvE,EAAQr3E,EAAGxF,EAASowB,EAAKlsB,MAEzDyd,GAAUzd,KAAK23J,YAAYh/E,EAAQr3E,EAAGxF,EAASowB,GAInD,OAAOzO,GAGTthB,EAAOT,QAAU63J,G,6BCrUjB,IAAIxrD,EAAShpG,EAAQ,KAGjBq5J,EAAS,CACX,CAAE,YAAkBr5J,EAAQ,OAC5B,CAAE,QAAkBA,EAAQ,OAC5B,CAAE,SAAkBA,EAAQ,OAC5B,CAAE,UAAkBA,EAAQ,OAC5B,CAAE,eAAkBA,EAAQ,OAC5B,CAAE,cAAkBA,EAAQ,QAO9B,SAASs5J,IAMPr4J,KAAK40J,MAAQ,IAAI7sD,EAEjB,IAAK,IAAIzmG,EAAI,EAAGA,EAAI82J,EAAO59J,OAAQ8G,IACjCtB,KAAK40J,MAAMhzJ,KAAKw2J,EAAO92J,GAAG,GAAI82J,EAAO92J,GAAG,IAU5C+2J,EAAKt9J,UAAUgZ,QAAU,SAAU/L,GACjC,IAAI1G,EAAGohB,EAAGmrC,EAIV,IAAKvsD,EAAI,EAAGohB,GAFZmrC,EAAQ7tD,KAAK40J,MAAMzrD,SAAS,KAEN3uG,OAAQ8G,EAAIohB,EAAGphB,IACnCusD,EAAMvsD,GAAG0G,IAIbqwJ,EAAKt9J,UAAUk6J,MAAQl2J,EAAQ,MAG/B5C,EAAOT,QAAU28J,G,6BCnDjB,IAAIC,EAAe,YACfC,EAAe,MAGnBp8J,EAAOT,QAAU,SAAmBsM,GAClC,IAAI4Q,EAMJA,GAHAA,EAAM5Q,EAAMvB,IAAIsJ,QAAQuoJ,EAAa,OAG3BvoJ,QAAQwoJ,EAAS,KAE3BvwJ,EAAMvB,IAAMmS,I,6BChBdzc,EAAOT,QAAU,SAAesM,GAC9B,IAAIgX,EAEAhX,EAAMmtJ,aACRn2I,EAAiB,IAAIhX,EAAMqhG,MAAM,SAAU,GAAI,IACzChrF,QAAWrW,EAAMvB,IACvBuY,EAAM9U,IAAW,CAAE,EAAG,GACtB8U,EAAMpV,SAAW,GACjB5B,EAAM2wE,OAAO/2E,KAAKod,IAElBhX,EAAM2uJ,GAAG3hJ,MAAM9S,MAAM8F,EAAMvB,IAAKuB,EAAM2uJ,GAAI3uJ,EAAMkkB,IAAKlkB,EAAM2wE,U,6BCX/Dx8E,EAAOT,QAAU,SAAgBsM,GAC/B,IAA2BwwJ,EAAKl3J,EAAGohB,EAA/Bi2D,EAAS3wE,EAAM2wE,OAGnB,IAAKr3E,EAAI,EAAGohB,EAAIi2D,EAAOn+E,OAAQ8G,EAAIohB,EAAGphB,IAEnB,YADjBk3J,EAAM7/E,EAAOr3E,IACL4H,MACNlB,EAAM2uJ,GAAGrC,OAAOpyJ,MAAMs2J,EAAIn6I,QAASrW,EAAM2uJ,GAAI3uJ,EAAMkkB,IAAKssI,EAAI5uJ,Y,6BCFlE,IAAIuP,EAAiBpa,EAAQ,KAAmBoa,eAMhD,SAASs/I,EAAY7/I,GACnB,MAAO,aAAahb,KAAKgb,GAI3Bzc,EAAOT,QAAU,SAAiBsM,GAChC,IAAI1G,EAAGE,EAAGkhB,EAAGi2D,EAAQ35D,EAAO05I,EAAcC,EAAOC,EAAIl4I,EAAMtH,EAAKy/I,EAC5Dr6I,EAAOs6I,EAAevhH,EAAKwhH,EAASC,EAEpCC,EAZcrgJ,EAWdsgJ,EAAclxJ,EAAM2wE,OAGxB,GAAK3wE,EAAM2uJ,GAAG76J,QAAQ24J,QAEtB,IAAKjzJ,EAAI,EAAGkhB,EAAIw2I,EAAY1+J,OAAQgH,EAAIkhB,EAAGlhB,IACzC,GAA4B,WAAxB03J,EAAY13J,GAAG0H,MACdlB,EAAM2uJ,GAAGlC,QAAQ0E,QAAQD,EAAY13J,GAAG6c,SAU7C,IAJAy6I,EAAgB,EAIXx3J,GANLq3E,EAASugF,EAAY13J,GAAGoI,UAMRpP,OAAS,EAAG8G,GAAK,EAAGA,IAIlC,GAA0B,gBAH1Bo3J,EAAe//E,EAAOr3E,IAGL4H,MAiBjB,GAR0B,gBAAtBwvJ,EAAaxvJ,OAzCH0P,EA0CG8/I,EAAar6I,QAzC3B,YAAYzgB,KAAKgb,IAyCsBkgJ,EAAgB,GACtDA,IAEEL,EAAYC,EAAar6I,UAC3By6I,OAGAA,EAAgB,IAEM,SAAtBJ,EAAaxvJ,MAAmBlB,EAAM2uJ,GAAGlC,QAAQ72J,KAAK86J,EAAar6I,SAAU,CAU/E,IARAqC,EAAOg4I,EAAar6I,QACpB46I,EAAQjxJ,EAAM2uJ,GAAGlC,QAAQt3J,MAAMujB,GAG/Bi4I,EAAQ,GACRn6I,EAAQk6I,EAAal6I,MACrBq6I,EAAU,EAELD,EAAK,EAAGA,EAAKK,EAAMz+J,OAAQo+J,IAE9BrhH,EAAM0hH,EAAML,GAAIrhH,IAChBwhH,EAAU/wJ,EAAM2uJ,GAAG1C,cAAc18G,GAC5BvvC,EAAM2uJ,GAAG5C,aAAagF,KAE3BC,EAAUC,EAAML,GAAIl4I,KAWlBs4I,EALGC,EAAML,GAAI77C,OAEiB,YAArBk8C,EAAML,GAAI77C,QAAyB,YAAYn/G,KAAKo7J,GAGnDhxJ,EAAM2uJ,GAAGzC,kBAAkB8E,GAF3BhxJ,EAAM2uJ,GAAGzC,kBAAkB,UAAY8E,GAASjpJ,QAAQ,WAAY,IAFpE/H,EAAM2uJ,GAAGzC,kBAAkB,UAAY8E,GAASjpJ,QAAQ,aAAc,KAOlFqJ,EAAM6/I,EAAML,GAAI5uJ,OAEN6uJ,KACR75I,EAAgB,IAAIhX,EAAMqhG,MAAM,OAAQ,GAAI,IACtChrF,QAAUqC,EAAKxiB,MAAM26J,EAASz/I,GACpC4F,EAAMR,MAAUA,EAChBm6I,EAAM/2J,KAAKod,KAGbA,EAAgB,IAAIhX,EAAMqhG,MAAM,YAAa,IAAK,IAC5C95F,MAAU,CAAE,CAAE,OAAQwpJ,IAC5B/5I,EAAMR,MAAUA,IAChBQ,EAAMuqF,OAAU,UAChBvqF,EAAMsvE,KAAU,OAChBqqE,EAAM/2J,KAAKod,IAEXA,EAAgB,IAAIhX,EAAMqhG,MAAM,OAAQ,GAAI,IACtChrF,QAAU26I,EAChBh6I,EAAMR,MAAUA,EAChBm6I,EAAM/2J,KAAKod,IAEXA,EAAgB,IAAIhX,EAAMqhG,MAAM,aAAc,KAAM,IAC9C7qF,QAAYA,EAClBQ,EAAMuqF,OAAU,UAChBvqF,EAAMsvE,KAAU,OAChBqqE,EAAM/2J,KAAKod,GAEX65I,EAAUI,EAAML,GAAI96I,WAElB+6I,EAAUn4I,EAAKlmB,UACjBwkB,EAAgB,IAAIhX,EAAMqhG,MAAM,OAAQ,GAAI,IACtChrF,QAAUqC,EAAKxiB,MAAM26J,GAC3B75I,EAAMR,MAAUA,EAChBm6I,EAAM/2J,KAAKod,IAIbk6I,EAAY13J,GAAGoI,SAAW+uE,EAASx/D,EAAew/D,EAAQr3E,EAAGq3J,SApF7D,IADAr3J,IACOq3E,EAAOr3E,GAAGkd,QAAUk6I,EAAal6I,OAA4B,cAAnBm6D,EAAOr3E,GAAG4H,MACzD5H,M,6BC5BV,IAAI83J,EAAU,+BAIVC,EAAsB,kBAEtBC,EAAiB,mBACjBC,EAAc,CAChBpxJ,EAAG,IACHqyB,EAAG,IACHoE,EAAG,IACH46H,GAAI,KAGN,SAASC,EAAUt8J,EAAO2L,GACxB,OAAOywJ,EAAYzwJ,EAAKkH,eAG1B,SAAS0pJ,EAAeC,GACtB,IAAIr4J,EAAG0d,EAAO46I,EAAkB,EAEhC,IAAKt4J,EAAIq4J,EAAan/J,OAAS,EAAG8G,GAAK,EAAGA,IAGrB,UAFnB0d,EAAQ26I,EAAar4J,IAEX4H,MAAoB0wJ,IAC5B56I,EAAMX,QAAUW,EAAMX,QAAQtO,QAAQupJ,EAAgBG,IAGrC,cAAfz6I,EAAM9V,MAAuC,SAAf8V,EAAMsvE,MACtCsrE,IAGiB,eAAf56I,EAAM9V,MAAwC,SAAf8V,EAAMsvE,MACvCsrE,IAKN,SAASC,EAAaF,GACpB,IAAIr4J,EAAG0d,EAAO46I,EAAkB,EAEhC,IAAKt4J,EAAIq4J,EAAan/J,OAAS,EAAG8G,GAAK,EAAGA,IAGrB,UAFnB0d,EAAQ26I,EAAar4J,IAEX4H,MAAoB0wJ,GACxBR,EAAQx7J,KAAKohB,EAAMX,WACrBW,EAAMX,QAAUW,EAAMX,QACnBtO,QAAQ,OAAQ,KAGhBA,QAAQ,UAAW,KAAKA,QAAQ,WAAY,QAC5CA,QAAQ,cAAe,UAAUA,QAAQ,SAAU,KAEnDA,QAAQ,0BAA2B,OAEnCA,QAAQ,qBAAsB,OAC9BA,QAAQ,6BAA8B,QAI1B,cAAfiP,EAAM9V,MAAuC,SAAf8V,EAAMsvE,MACtCsrE,IAGiB,eAAf56I,EAAM9V,MAAwC,SAAf8V,EAAMsvE,MACvCsrE,IAMNz9J,EAAOT,QAAU,SAAiBsM,GAChC,IAAI8xJ,EAEJ,GAAK9xJ,EAAM2uJ,GAAG76J,QAAQi+J,YAEtB,IAAKD,EAAS9xJ,EAAM2wE,OAAOn+E,OAAS,EAAGs/J,GAAU,EAAGA,IAEhB,WAA9B9xJ,EAAM2wE,OAAOmhF,GAAQ5wJ,OAErBmwJ,EAAoBz7J,KAAKoK,EAAM2wE,OAAOmhF,GAAQz7I,UAChDq7I,EAAe1xJ,EAAM2wE,OAAOmhF,GAAQlwJ,UAGlCwvJ,EAAQx7J,KAAKoK,EAAM2wE,OAAOmhF,GAAQz7I,UACpCw7I,EAAa7xJ,EAAM2wE,OAAOmhF,GAAQlwJ,a,6BCjGxC,IAAI2P,EAAiBxa,EAAQ,KAAmBwa,aAC5CE,EAAiB1a,EAAQ,KAAmB0a,YAC5CD,EAAiBza,EAAQ,KAAmBya,eAE5CwgJ,EAAgB,OAChBC,EAAW,QAIf,SAASC,EAAUthJ,EAAK5O,EAAOkO,GAC7B,OAAOU,EAAItW,OAAO,EAAG0H,GAASkO,EAAKU,EAAItW,OAAO0H,EAAQ,GAGxD,SAASmwJ,EAAgBxhF,EAAQ3wE,GAC/B,IAAI1G,EAAG0d,EAAO0B,EAAM5Y,EAAGsR,EAAKlV,EAAKk2J,EAAWxlF,EAAMtV,EAAUxgD,EACxDu7I,EAAiBC,EAAiBC,EAAkBC,EACpDC,EAASC,EAAUl5J,EAAGm5J,EAAUp/J,EAAOq/J,EAAWC,EAItD,IAFAt/J,EAAQ,GAEH+F,EAAI,EAAGA,EAAIq3E,EAAOn+E,OAAQ8G,IAAK,CAKlC,IAJA0d,EAAQ25D,EAAOr3E,GAEf84J,EAAYzhF,EAAOr3E,GAAGkd,MAEjBhd,EAAIjG,EAAMf,OAAS,EAAGgH,GAAK,KAC1BjG,EAAMiG,GAAGgd,OAAS47I,GADW54J,KAKnC,GAFAjG,EAAMf,OAASgH,EAAI,EAEA,SAAfwd,EAAM9V,KAAV,CAGAkQ,EAAM,EACNlV,GAFAwc,EAAO1B,EAAMX,SAEF7jB,OAGXsgK,EACA,KAAO1hJ,EAAMlV,IACX+1J,EAASn8I,UAAY1E,EACrBtR,EAAImyJ,EAASv8I,KAAKgD,KAFF,CAchB,GATA+5I,EAAUC,GAAW,EACrBthJ,EAAMtR,EAAEkC,MAAQ,EAChB2wJ,EAAqB,MAAT7yJ,EAAE,GAKdw3D,EAAW,GAEPx3D,EAAEkC,MAAQ,GAAK,EACjBs1D,EAAW5+C,EAAK9d,WAAWkF,EAAEkC,MAAQ,QAErC,IAAKxI,EAAIF,EAAI,EAAGE,GAAK,IACI,cAAnBm3E,EAAOn3E,GAAG0H,MAA2C,cAAnByvE,EAAOn3E,GAAG0H,MAD1B1H,IAEtB,GAAuB,SAAnBm3E,EAAOn3E,GAAG0H,KAAd,CAEAo2D,EAAWqZ,EAAOn3E,GAAG6c,QAAQzb,WAAW+1E,EAAOn3E,GAAG6c,QAAQ7jB,OAAS,GACnE,MASJ,GAFAskB,EAAW,GAEP1F,EAAMlV,EACR4a,EAAW4B,EAAK9d,WAAWwW,QAE3B,IAAK5X,EAAIF,EAAI,EAAGE,EAAIm3E,EAAOn+E,SACF,cAAnBm+E,EAAOn3E,GAAG0H,MAA2C,cAAnByvE,EAAOn3E,GAAG0H,MADf1H,IAEjC,GAAuB,SAAnBm3E,EAAOn3E,GAAG0H,KAAd,CAEA4V,EAAW65D,EAAOn3E,GAAG6c,QAAQzb,WAAW,GACxC,MA6CJ,GAzCAy3J,EAAkB7gJ,EAAe8lD,IAAa7lD,EAAYzd,OAAOyG,aAAa68D,IAC9Eg7F,EAAkB9gJ,EAAesF,IAAarF,EAAYzd,OAAOyG,aAAaqc,IAE9Ey7I,EAAmBhhJ,EAAa+lD,IAChCk7F,EAAmBjhJ,EAAauF,IAG9B27I,GAAU,EACDH,IACHC,GAAoBF,IACxBI,GAAU,IAIVF,EACFG,GAAW,EACFL,IACHG,GAAoBF,IACxBI,GAAW,IAIE,KAAb57I,GAAsC,MAAThX,EAAE,IAC7Bw3D,GAAY,IAAgBA,GAAY,KAE1Co7F,EAAWD,GAAU,GAIrBA,GAAWC,IAQbD,EAAUJ,EACVK,EAAWJ,GAGRG,GAAYC,EAAjB,CAQA,GAAIA,EAEF,IAAKl5J,EAAIjG,EAAMf,OAAS,EAAGgH,GAAK,IAC9BozE,EAAOr5E,EAAMiG,KACTjG,EAAMiG,GAAGgd,MAAQ47I,IAFY54J,IAGjC,GAAIozE,EAAKmmF,SAAWJ,GAAYp/J,EAAMiG,GAAGgd,QAAU47I,EAAW,CAC5DxlF,EAAOr5E,EAAMiG,GAETm5J,GACFC,EAAY5yJ,EAAM2uJ,GAAG76J,QAAQk/J,OAAO,GACpCH,EAAa7yJ,EAAM2uJ,GAAG76J,QAAQk/J,OAAO,KAErCJ,EAAY5yJ,EAAM2uJ,GAAG76J,QAAQk/J,OAAO,GACpCH,EAAa7yJ,EAAM2uJ,GAAG76J,QAAQk/J,OAAO,IAMvCh8I,EAAMX,QAAU67I,EAAUl7I,EAAMX,QAASvW,EAAEkC,MAAO6wJ,GAClDliF,EAAO/D,EAAK51D,OAAOX,QAAU67I,EAC3BvhF,EAAO/D,EAAK51D,OAAOX,QAASu2D,EAAKx7D,IAAKwhJ,GAExCxhJ,GAAOyhJ,EAAWrgK,OAAS,EACvBo6E,EAAK51D,QAAU1d,IAAK8X,GAAOwhJ,EAAUpgK,OAAS,GAGlD0J,GADAwc,EAAO1B,EAAMX,SACF7jB,OAEXe,EAAMf,OAASgH,EACf,SAASs5J,EAKXL,EACFl/J,EAAMqG,KAAK,CACTod,MAAO1d,EACP8X,IAAKtR,EAAEkC,MACP+wJ,OAAQJ,EACRn8I,MAAO47I,IAEAM,GAAYC,IACrB37I,EAAMX,QAAU67I,EAAUl7I,EAAMX,QAASvW,EAAEkC,MAvKlC,WAsHL2wJ,IACF37I,EAAMX,QAAU67I,EAAUl7I,EAAMX,QAASvW,EAAEkC,MAvHpC,SA8KjB7N,EAAOT,QAAU,SAAqBsM,GAEpC,IAAI8xJ,EAEJ,GAAK9xJ,EAAM2uJ,GAAG76J,QAAQi+J,YAEtB,IAAKD,EAAS9xJ,EAAM2wE,OAAOn+E,OAAS,EAAGs/J,GAAU,EAAGA,IAEhB,WAA9B9xJ,EAAM2wE,OAAOmhF,GAAQ5wJ,MACpB8wJ,EAAcp8J,KAAKoK,EAAM2wE,OAAOmhF,GAAQz7I,UAI7C87I,EAAgBnyJ,EAAM2wE,OAAOmhF,GAAQlwJ,SAAU5B,K,6BClMnD,IAAIqhG,EAAQtqG,EAAQ,KAGpB,SAASk8J,EAAUx0J,EAAKkwJ,EAAIzqI,GAC1BlsB,KAAKyG,IAAMA,EACXzG,KAAKksB,IAAMA,EACXlsB,KAAK24E,OAAS,GACd34E,KAAKm1J,YAAa,EAClBn1J,KAAK22J,GAAKA,EAIZsE,EAAUlgK,UAAUsuG,MAAQA,EAG5BltG,EAAOT,QAAUu/J,G,6BCXjB,IAAIlzD,EAAkBhpG,EAAQ,KAG1Bq5J,EAAS,CAGX,CAAE,QAAcr5J,EAAQ,MAA6B,CAAE,YAAa,cACpE,CAAE,OAAcA,EAAQ,OACxB,CAAE,QAAcA,EAAQ,MAA6B,CAAE,YAAa,YAAa,aAAc,SAC/F,CAAE,aAAcA,EAAQ,MAA6B,CAAE,YAAa,YAAa,aAAc,SAC/F,CAAE,KAAcA,EAAQ,MAA6B,CAAE,YAAa,YAAa,aAAc,SAC/F,CAAE,OAAcA,EAAQ,MAA6B,CAAE,YAAa,YAAa,eACjF,CAAE,YAAcA,EAAQ,OACxB,CAAE,UAAcA,EAAQ,MAA6B,CAAE,YAAa,YAAa,eACjF,CAAE,WAAcA,EAAQ,OACxB,CAAE,aAAcA,EAAQ,MAA6B,CAAE,YAAa,YAAa,eACjF,CAAE,YAAcA,EAAQ,QAO1B,SAAS00J,IAMPzzJ,KAAK40J,MAAQ,IAAI7sD,EAEjB,IAAK,IAAIzmG,EAAI,EAAGA,EAAI82J,EAAO59J,OAAQ8G,IACjCtB,KAAK40J,MAAMhzJ,KAAKw2J,EAAO92J,GAAG,GAAI82J,EAAO92J,GAAG,GAAI,CAAEgnG,KAAM8vD,EAAO92J,GAAG,IAAM,IAAIpD,UAO5Eu1J,EAAY14J,UAAUq7H,SAAW,SAAUpuH,EAAOkzJ,EAAWC,GAQ3D,IAPA,IAAQ75J,EACJusD,EAAQ7tD,KAAK40J,MAAMzrD,SAAS,IAC5B19E,EAAMoiC,EAAMrzD,OACZqwI,EAAOqwB,EACPE,GAAgB,EAChBC,EAAarzJ,EAAM2uJ,GAAG76J,QAAQu/J,WAE3BxwB,EAAOswB,IACZnzJ,EAAM6iI,KAAOA,EAAO7iI,EAAMszJ,eAAezwB,KACrCA,GAAQswB,OAIRnzJ,EAAMuzJ,OAAO1wB,GAAQ7iI,EAAMwzJ,YANV,CAUrB,GAAIxzJ,EAAMwW,OAAS68I,EAAY,CAC7BrzJ,EAAM6iI,KAAOswB,EACb,MAUF,IAAK75J,EAAI,EAAGA,EAAImqB,IACToiC,EAAMvsD,GAAG0G,EAAO6iI,EAAMswB,GAAS,GADjB75J,KAOrB0G,EAAMyzJ,OAASL,EAGXpzJ,EAAMitE,QAAQjtE,EAAM6iI,KAAO,KAC7BuwB,GAAgB,IAGlBvwB,EAAO7iI,EAAM6iI,MAEFswB,GAAWnzJ,EAAMitE,QAAQ41D,KAClCuwB,GAAgB,EAChBvwB,IACA7iI,EAAM6iI,KAAOA,KAWnB4oB,EAAY14J,UAAUmH,MAAQ,SAAUuE,EAAKkwJ,EAAIzqI,EAAKwvI,GACpD,IAAI1zJ,EAECvB,IAELuB,EAAQ,IAAIhI,KAAKi1J,MAAMxuJ,EAAKkwJ,EAAIzqI,EAAKwvI,GAErC17J,KAAKo2H,SAASpuH,EAAOA,EAAM6iI,KAAM7iI,EAAM2zJ,WAIzClI,EAAY14J,UAAUk6J,MAAQl2J,EAAQ,MAGtC5C,EAAOT,QAAU+3J,G,6BCrHjB,IAAIn6I,EAAUva,EAAQ,KAAmBua,QAGzC,SAASsiJ,EAAQ5zJ,EAAO6iI,GACtB,IAAIzxH,EAAMpR,EAAM6zJ,OAAOhxB,GAAQ7iI,EAAMwzJ,UACjCt3J,EAAM8D,EAAM8zJ,OAAOjxB,GAEvB,OAAO7iI,EAAMvB,IAAInE,OAAO8W,EAAKlV,EAAMkV,GAGrC,SAAS2iJ,EAAanjJ,GACpB,IAGIV,EAHAuF,EAAS,GACTrE,EAAM,EACNlV,EAAM0U,EAAIpe,OAEVwhK,EAAU,EACVnD,EAAU,EACVoD,GAAa,EACbC,EAAe,EAInB,IAFAhkJ,EAAMU,EAAIhW,WAAWwW,GAEdA,EAAMlV,GACA,KAAPgU,EACE+jJ,GAGFA,GAAa,EACbC,EAAe9iJ,GACN4iJ,EAAU,GAAM,IACzBC,GAAa,EACbC,EAAe9iJ,GAED,MAAPlB,GAAuB8jJ,EAAU,GAAM,GAAOC,IACvDx+I,EAAO7b,KAAKgX,EAAImF,UAAU86I,EAASz/I,IACnCy/I,EAAUz/I,EAAM,GAGP,KAAPlB,EACF8jJ,IAEAA,EAAU,IAGZ5iJ,IAIYlV,GAAO+3J,IACjBA,GAAa,EACb7iJ,EAAM8iJ,EAAe,GAGvBhkJ,EAAKU,EAAIhW,WAAWwW,GAKtB,OAFAqE,EAAO7b,KAAKgX,EAAImF,UAAU86I,IAEnBp7I,EAITthB,EAAOT,QAAU,SAAesM,EAAOkzJ,EAAWC,EAASn4G,GACzD,IAAI9qC,EAAIikJ,EAAU/iJ,EAAK9X,EAAG86J,EAAUC,EAASC,EAAat9I,EACtDu9I,EAAQz0J,EAAG00J,EAAYC,EAG3B,GAAIvB,EAAY,EAAIC,EAAW,OAAO,EAItC,GAFAiB,EAAWlB,EAAY,EAEnBlzJ,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,UAAa,OAAO,EAGvD,GAAIxzJ,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,WAAa,EAAK,OAAO,EAO5D,IADApiJ,EAAMpR,EAAM6zJ,OAAOO,GAAYp0J,EAAM00J,OAAON,KACjCp0J,EAAM8zJ,OAAOM,GAAa,OAAO,EAG5C,GAAW,OADXlkJ,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,OACO,KAAPlB,GAA6B,KAAPA,EAAsB,OAAO,EAE7E,KAAOkB,EAAMpR,EAAM8zJ,OAAOM,IAAW,CAGnC,GAAW,OAFXlkJ,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,KAEO,KAAPlB,GAA6B,KAAPA,IAAuBoB,EAAQpB,GAAO,OAAO,EAE7FkB,IAOF,IAFAijJ,GAFAF,EAAWP,EAAQ5zJ,EAAOkzJ,EAAY,IAEnBr9I,MAAM,KACzB0+I,EAAS,GACJj7J,EAAI,EAAGA,EAAI+6J,EAAQ7hK,OAAQ8G,IAAK,CAEnC,KADAwG,EAAIu0J,EAAQ/6J,GAAGsY,QACP,CAGN,GAAU,IAANtY,GAAWA,IAAM+6J,EAAQ7hK,OAAS,EACpC,SAEA,OAAO,EAIX,IAAK,WAAWoD,KAAKkK,GAAM,OAAO,EACC,KAA/BA,EAAElF,WAAWkF,EAAEtN,OAAS,GAC1B+hK,EAAO36J,KAAyB,KAApBkG,EAAElF,WAAW,GAAqB,SAAW,SAC5B,KAApBkF,EAAElF,WAAW,GACtB25J,EAAO36J,KAAK,QAEZ26J,EAAO36J,KAAK,IAKhB,IAA+B,KAD/Bu6J,EAAWP,EAAQ5zJ,EAAOkzJ,GAAWthJ,QACxBhK,QAAQ,KAAe,OAAO,EAC3C,GAAI5H,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAM7D,IADAc,GAJAD,EAAUN,EAAaI,EAASpsJ,QAAQ,WAAY,MAI9BvV,QACJ+hK,EAAO/hK,OAAU,OAAO,EAE1C,GAAIwoD,EAAU,OAAO,EAWrB,KATAhkC,EAAYhX,EAAMpG,KAAK,aAAc,QAAS,IACxCsI,IAAMsyJ,EAAa,CAAEtB,EAAW,IAEtCl8I,EAAYhX,EAAMpG,KAAK,aAAc,QAAS,IACxCsI,IAAM,CAAEgxJ,EAAWA,EAAY,IAErCl8I,EAAYhX,EAAMpG,KAAK,UAAW,KAAM,IAClCsI,IAAM,CAAEgxJ,EAAWA,EAAY,GAEhC55J,EAAI,EAAGA,EAAI+6J,EAAQ7hK,OAAQ8G,KAC9B0d,EAAiBhX,EAAMpG,KAAK,UAAW,KAAM,IACvCsI,IAAW,CAAEgxJ,EAAWA,EAAY,GACtCqB,EAAOj7J,KACT0d,EAAMzP,MAAS,CAAE,CAAE,QAAS,cAAgBgtJ,EAAOj7J,OAGrD0d,EAAiBhX,EAAMpG,KAAK,SAAU,GAAI,IACpCyc,QAAWg+I,EAAQ/6J,GAAGsY,OAC5BoF,EAAM9U,IAAW,CAAEgxJ,EAAWA,EAAY,GAC1Cl8I,EAAMpV,SAAW,GAEjBoV,EAAiBhX,EAAMpG,KAAK,WAAY,MAAO,GASjD,IANAod,EAAYhX,EAAMpG,KAAK,WAAY,MAAO,GAC1Cod,EAAYhX,EAAMpG,KAAK,cAAe,SAAU,IAEhDod,EAAYhX,EAAMpG,KAAK,aAAc,QAAS,IACxCsI,IAAMuyJ,EAAa,CAAEvB,EAAY,EAAG,GAErCkB,EAAWlB,EAAY,EAAGkB,EAAWjB,KACpCnzJ,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,aAGJ,KAD/BW,EAAWP,EAAQ5zJ,EAAOo0J,GAAUxiJ,QACvBhK,QAAQ,QACjB5H,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,WAAa,GALCY,IAAY,CAS7D,IAHAC,EAAUN,EAAaI,EAASpsJ,QAAQ,WAAY,KAEpDiP,EAAQhX,EAAMpG,KAAK,UAAW,KAAM,GAC/BN,EAAI,EAAGA,EAAIg7J,EAAah7J,IAC3B0d,EAAiBhX,EAAMpG,KAAK,UAAW,KAAM,GACzC26J,EAAOj7J,KACT0d,EAAMzP,MAAS,CAAE,CAAE,QAAS,cAAgBgtJ,EAAOj7J,OAGrD0d,EAAiBhX,EAAMpG,KAAK,SAAU,GAAI,IACpCyc,QAAWg+I,EAAQ/6J,GAAK+6J,EAAQ/6J,GAAGsY,OAAS,GAClDoF,EAAMpV,SAAW,GAEjBoV,EAAiBhX,EAAMpG,KAAK,WAAY,MAAO,GAEjDod,EAAQhX,EAAMpG,KAAK,WAAY,MAAO,GAOxC,OALAod,EAAQhX,EAAMpG,KAAK,cAAe,SAAU,GAC5Cod,EAAQhX,EAAMpG,KAAK,cAAe,SAAU,GAE5C46J,EAAW,GAAKC,EAAW,GAAKL,EAChCp0J,EAAM6iI,KAAOuxB,GACN,I,6BC7LTjgK,EAAOT,QAAU,SAAcsM,EAAOkzJ,EAAWC,GAC/C,IAAIiB,EAAUn+D,EAAMj/E,EAEpB,GAAIhX,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,UAAY,EAAK,OAAO,EAI5D,IAFAv9D,EAAOm+D,EAAWlB,EAAY,EAEvBkB,EAAWjB,GAChB,GAAInzJ,EAAMitE,QAAQmnF,GAChBA,QADF,CAKA,KAAIp0J,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,WAAa,GAKhD,MAHEv9D,IADAm+D,EAaJ,OANAp0J,EAAM6iI,KAAO5sC,GAEbj/E,EAAgBhX,EAAMpG,KAAK,aAAc,OAAQ,IAC3Cyc,QAAUrW,EAAM20J,SAASzB,EAAWj9D,EAAM,EAAIj2F,EAAMwzJ,WAAW,GACrEx8I,EAAM9U,IAAU,CAAEgxJ,EAAWlzJ,EAAM6iI,OAE5B,I,6BC3BT1uI,EAAOT,QAAU,SAAesM,EAAOkzJ,EAAWC,EAASn4G,GACzD,IAAIr3B,EAAQF,EAAK0hE,EAAQivE,EAAUh3I,EAAKpG,EAAOuqF,EAC3CqzD,GAAgB,EAChBxjJ,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GAGvB,GAAIlzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAE7D,GAAIpiJ,EAAM,EAAIlV,EAAO,OAAO,EAI5B,GAAe,OAFfynB,EAAS3jB,EAAMvB,IAAI7D,WAAWwW,KAEW,KAAXuS,EAC5B,OAAO,EAST,GALAvG,EAAMhM,GAGNqS,GAFArS,EAAMpR,EAAM60J,UAAUzjJ,EAAKuS,IAEfvG,GAEF,EAAK,OAAO,EAKtB,GAHAmkF,EAASvhG,EAAMvB,IAAIvI,MAAMknB,EAAKhM,GAC9B+zE,EAASnlF,EAAMvB,IAAIvI,MAAMkb,EAAKlV,GAEf,KAAXynB,GACEwhE,EAAOv9E,QAAQ5T,OAAOyG,aAAakpB,KAAY,EACjD,OAAO,EAKX,GAAIq3B,EAAU,OAAO,EAKrB,IAFAo5G,EAAWlB,MAGTkB,GACgBjB,OAMhB/hJ,EAAMgM,EAAMpd,EAAM6zJ,OAAOO,GAAYp0J,EAAM00J,OAAON,KAClDl4J,EAAM8D,EAAM8zJ,OAAOM,KAEFp0J,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,YAOhD,GAAIxzJ,EAAMvB,IAAI7D,WAAWwW,KAASuS,KAE9B3jB,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,WAAa,IAKhDpiJ,EAAMpR,EAAM60J,UAAUzjJ,EAAKuS,IAGjBvG,EAAMqG,IAGhBrS,EAAMpR,EAAM80J,WAAW1jJ,IAEblV,GAAV,CAEA04J,GAAgB,EAEhB,MAcF,OAVAnxI,EAAMzjB,EAAMuzJ,OAAOL,GAEnBlzJ,EAAM6iI,KAAOuxB,GAAYQ,EAAgB,EAAI,IAE7C59I,EAAgBhX,EAAMpG,KAAK,QAAS,OAAQ,IACtC0sF,KAAUnB,EAChBnuE,EAAMX,QAAUrW,EAAM20J,SAASzB,EAAY,EAAGkB,EAAU3wI,GAAK,GAC7DzM,EAAMuqF,OAAUA,EAChBvqF,EAAM9U,IAAU,CAAEgxJ,EAAWlzJ,EAAM6iI,OAE5B,I,6BC5FT,IAAIvxH,EAAUva,EAAQ,KAAmBua,QAGzCnd,EAAOT,QAAU,SAAoBsM,EAAOkzJ,EAAWC,EAASn4G,GAC9D,IAAI+5G,EACA7kJ,EACA5W,EACAmoJ,EACA/mI,EACAs6I,EACAnQ,EACAuP,EACA93J,EACA24J,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAz+I,EACA0+I,EACAC,EAAa31J,EAAM2zJ,QACnBviJ,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GAGvB,GAAIlzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAG7D,GAAoC,KAAhCxzJ,EAAMvB,IAAI7D,WAAWwW,KAA0B,OAAO,EAI1D,GAAI4pC,EAAU,OAAO,EAqCrB,IAlCAymG,EAAUnlJ,EAAS0D,EAAMuzJ,OAAOL,GAAa9hJ,GAAOpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,IAGzD,KAA9BlzJ,EAAMvB,IAAI7D,WAAWwW,IAGvBA,IACAqwI,IACAnlJ,IACAy4J,GAAY,EACZQ,GAAmB,GACoB,IAA9Bv1J,EAAMvB,IAAI7D,WAAWwW,IAC9BmkJ,GAAmB,GAEdv1J,EAAM41J,QAAQ1C,GAAa52J,GAAU,GAAM,GAG9C8U,IACAqwI,IACAnlJ,IACAy4J,GAAY,GAKZA,GAAY,GAGdQ,GAAmB,EAGrBN,EAAY,CAAEj1J,EAAM6zJ,OAAOX,IAC3BlzJ,EAAM6zJ,OAAOX,GAAa9hJ,EAEnBA,EAAMlV,IACXgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,GAEtBE,EAAQpB,KACC,IAAPA,EACF5T,GAAU,GAAKA,EAAS0D,EAAM41J,QAAQ1C,IAAc6B,EAAY,EAAI,IAAM,EAE1Ez4J,IAMJ8U,IAsCF,IAnCA8jJ,EAAa,CAAEl1J,EAAM41J,QAAQ1C,IAC7BlzJ,EAAM41J,QAAQ1C,GAAalzJ,EAAMuzJ,OAAOL,GAAa,GAAKqC,EAAmB,EAAI,GAEjFP,EAAgB5jJ,GAAOlV,EAEvBm5J,EAAY,CAAEr1J,EAAMuzJ,OAAOL,IAC3BlzJ,EAAMuzJ,OAAOL,GAAa52J,EAASmlJ,EAEnC6T,EAAY,CAAEt1J,EAAM00J,OAAOxB,IAC3BlzJ,EAAM00J,OAAOxB,GAAa9hJ,EAAMpR,EAAM6zJ,OAAOX,GAE7CuC,EAAkBz1J,EAAM2uJ,GAAG3hJ,MAAM4/I,MAAMzrD,SAAS,cAEhDi0D,EAAgBp1J,EAAM61J,WACtB71J,EAAM61J,WAAa,aACnBH,GAAe,EAoBVtB,EAAWlB,EAAY,EAAGkB,EAAWjB,IASpCnzJ,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,YAAWkC,GAAe,MAE7DtkJ,EAAMpR,EAAM6zJ,OAAOO,GAAYp0J,EAAM00J,OAAON,MAC5Cl4J,EAAM8D,EAAM8zJ,OAAOM,MAZ8BA,IAmBjD,GAAoC,KAAhCp0J,EAAMvB,IAAI7D,WAAWwW,MAA2BskJ,EAApD,CAoEA,GAAIV,EAAiB,MAIrB,IADAQ,GAAY,EACPl8J,EAAI,EAAGohB,EAAI+6I,EAAgBjjK,OAAQ8G,EAAIohB,EAAGphB,IAC7C,GAAIm8J,EAAgBn8J,GAAG0G,EAAOo0J,EAAUjB,GAAS,GAAO,CACtDqC,GAAY,EACZ,MAIJ,GAAIA,EAAW,CAKbx1J,EAAM2zJ,QAAUS,EAEQ,IAApBp0J,EAAMwzJ,YAIRyB,EAAUr7J,KAAKoG,EAAM6zJ,OAAOO,IAC5Bc,EAAWt7J,KAAKoG,EAAM41J,QAAQxB,IAC9BkB,EAAU17J,KAAKoG,EAAM00J,OAAON,IAC5BiB,EAAUz7J,KAAKoG,EAAMuzJ,OAAOa,IAC5Bp0J,EAAMuzJ,OAAOa,IAAap0J,EAAMwzJ,WAGlC,MAGFyB,EAAUr7J,KAAKoG,EAAM6zJ,OAAOO,IAC5Bc,EAAWt7J,KAAKoG,EAAM41J,QAAQxB,IAC9BkB,EAAU17J,KAAKoG,EAAM00J,OAAON,IAC5BiB,EAAUz7J,KAAKoG,EAAMuzJ,OAAOa,IAI5Bp0J,EAAMuzJ,OAAOa,IAAa,MA3G1B,CAsCE,IAlCA3S,EAAUnlJ,EAAS0D,EAAMuzJ,OAAOa,GAAYhjJ,GAAOpR,EAAM6zJ,OAAOO,GAAYp0J,EAAM00J,OAAON,IAGvD,KAA9Bp0J,EAAMvB,IAAI7D,WAAWwW,IAGvBA,IACAqwI,IACAnlJ,IACAy4J,GAAY,EACZQ,GAAmB,GACoB,IAA9Bv1J,EAAMvB,IAAI7D,WAAWwW,IAC9BmkJ,GAAmB,GAEdv1J,EAAM41J,QAAQxB,GAAY93J,GAAU,GAAM,GAG7C8U,IACAqwI,IACAnlJ,IACAy4J,GAAY,GAKZA,GAAY,GAGdQ,GAAmB,EAGrBN,EAAUr7J,KAAKoG,EAAM6zJ,OAAOO,IAC5Bp0J,EAAM6zJ,OAAOO,GAAYhjJ,EAElBA,EAAMlV,IACXgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,GAEtBE,EAAQpB,KACC,IAAPA,EACF5T,GAAU,GAAKA,EAAS0D,EAAM41J,QAAQxB,IAAaW,EAAY,EAAI,IAAM,EAEzEz4J,IAMJ8U,IAGF4jJ,EAAgB5jJ,GAAOlV,EAEvBg5J,EAAWt7J,KAAKoG,EAAM41J,QAAQxB,IAC9Bp0J,EAAM41J,QAAQxB,GAAYp0J,EAAMuzJ,OAAOa,GAAY,GAAKmB,EAAmB,EAAI,GAE/EF,EAAUz7J,KAAKoG,EAAMuzJ,OAAOa,IAC5Bp0J,EAAMuzJ,OAAOa,GAAY93J,EAASmlJ,EAElC6T,EAAU17J,KAAKoG,EAAM00J,OAAON,IAC5Bp0J,EAAM00J,OAAON,GAAYhjJ,EAAMpR,EAAM6zJ,OAAOO,GAiEhD,IAlBAe,EAAYn1J,EAAMwzJ,UAClBxzJ,EAAMwzJ,UAAY,GAElBx8I,EAAehX,EAAMpG,KAAK,kBAAmB,aAAc,IACrD2nG,OAAS,IACfvqF,EAAM9U,IAAS2iJ,EAAQ,CAAEqO,EAAW,GAEpClzJ,EAAM2uJ,GAAG3hJ,MAAMohH,SAASpuH,EAAOkzJ,EAAWkB,IAE1Cp9I,EAAehX,EAAMpG,KAAK,mBAAoB,cAAe,IACvD2nG,OAAS,IAEfvhG,EAAM2zJ,QAAUgC,EAChB31J,EAAM61J,WAAaT,EACnBvQ,EAAM,GAAK7kJ,EAAM6iI,KAIZvpI,EAAI,EAAGA,EAAIg8J,EAAU9iK,OAAQ8G,IAChC0G,EAAM6zJ,OAAOv6J,EAAI45J,GAAa+B,EAAU37J,GACxC0G,EAAM00J,OAAOp7J,EAAI45J,GAAaoC,EAAUh8J,GACxC0G,EAAMuzJ,OAAOj6J,EAAI45J,GAAamC,EAAU/7J,GACxC0G,EAAM41J,QAAQt8J,EAAI45J,GAAagC,EAAW57J,GAI5C,OAFA0G,EAAMwzJ,UAAY2B,GAEX,I,6BCvRT,IAAI7jJ,EAAUva,EAAQ,KAAmBua,QAGzCnd,EAAOT,QAAU,SAAYsM,EAAOkzJ,EAAWC,EAASn4G,GACtD,IAAIr3B,EAAQmyI,EAAK5lJ,EAAI8G,EACjB5F,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GAGvB,GAAIlzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAK7D,GAAe,MAHf7vI,EAAS3jB,EAAMvB,IAAI7D,WAAWwW,OAIf,KAAXuS,GACW,KAAXA,EACF,OAAO,EAMT,IADAmyI,EAAM,EACC1kJ,EAAMlV,GAAK,CAEhB,IADAgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,QACfuS,IAAWrS,EAAQpB,GAAO,OAAO,EACxCA,IAAOyT,GAAUmyI,IAGvB,QAAIA,EAAM,KAEN96G,IAEJh7C,EAAM6iI,KAAOqwB,EAAY,GAEzBl8I,EAAehX,EAAMpG,KAAK,KAAM,KAAM,IAChCsI,IAAS,CAAEgxJ,EAAWlzJ,EAAM6iI,MAClC7rH,EAAMuqF,OAAS95F,MAAMquJ,EAAM,GAAG77J,KAAKjG,OAAOyG,aAAakpB,MANlC,K,6BC/BvB,IAAIrS,EAAUva,EAAQ,KAAmBua,QAKzC,SAASykJ,EAAqB/1J,EAAOkzJ,GACnC,IAAIvvI,EAAQvS,EAAKlV,EAAKgU,EAOtB,OALAkB,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GAIJ,MAFfvvI,EAAS3jB,EAAMvB,IAAI7D,WAAWwW,OAGf,KAAXuS,GACW,KAAXA,GAIAvS,EAAMlV,IACRgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,IAErBE,EAAQpB,KANL,EAYHkB,EAKT,SAAS4kJ,EAAsBh2J,EAAOkzJ,GACpC,IAAIhjJ,EACA2G,EAAQ7W,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC/C9hJ,EAAMyF,EACN3a,EAAM8D,EAAM8zJ,OAAOZ,GAGvB,GAAI9hJ,EAAM,GAAKlV,EAAO,OAAQ,EAI9B,IAFAgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,MAEjB,IAAelB,EAAK,GAAe,OAAQ,EAEpD,OAAS,CAEP,GAAIkB,GAAOlV,EAAO,OAAQ,EAI1B,MAFAgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,OAEhB,IAAelB,GAAM,IAA/B,CAUA,GAAW,KAAPA,GAA6B,KAAPA,EACxB,MAGF,OAAQ,EAVN,GAAIkB,EAAMyF,GAAS,GAAM,OAAQ,EAcrC,OAAIzF,EAAMlV,IACRgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,IAErBE,EAAQpB,KAEH,EAGLkB,EAiBTjd,EAAOT,QAAU,SAAcsM,EAAOkzJ,EAAWC,EAASn4G,GACxD,IAAI9qC,EACA+lJ,EACA38J,EACA48J,EACAC,EACA1U,EACA2U,EACAC,EACA37I,EACA47I,EACAC,EACAC,EACAC,EACAv6J,EACAk4J,EACA93J,EACAo6J,EACAtB,EACAC,EACAC,EACAqB,EACAvlJ,EACAwlJ,EACAC,EACAhgJ,EACA2+I,EACAC,EACAz+I,EACA8/I,GAAyB,EACzBrD,GAAQ,EAGZ,GAAIzzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAQ7D,GAAIxzJ,EAAM+2J,YAAc,GACpB/2J,EAAMuzJ,OAAOL,GAAalzJ,EAAM+2J,YAAc,GAC9C/2J,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,UAClC,OAAO,EAiBT,GAZIx4G,GAA+B,cAArBh7C,EAAM61J,YAMd71J,EAAM00J,OAAOxB,IAAclzJ,EAAMwzJ,YACnCsD,GAAyB,IAKxBF,EAAiBZ,EAAsBh2J,EAAOkzJ,KAAe,GAOhE,GANAkD,GAAY,EACZv/I,EAAQ7W,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC/CuD,EAAc94J,OAAOqC,EAAMvB,IAAInE,OAAOuc,EAAO+/I,EAAiB//I,EAAQ,IAIlEigJ,GAA0C,IAAhBL,EAAmB,OAAO,MAEnD,OAAKG,EAAiBb,EAAqB/1J,EAAOkzJ,KAAe,GAItE,OAAO,EAHPkD,GAAY,EAQd,GAAIU,GACE92J,EAAM80J,WAAW8B,IAAmB52J,EAAM8zJ,OAAOZ,GAAY,OAAO,EAO1E,GAHAsD,EAAiBx2J,EAAMvB,IAAI7D,WAAWg8J,EAAiB,GAGnD57G,EAAU,OAAO,EA6BrB,IA1BAu7G,EAAav2J,EAAM2wE,OAAOn+E,OAEtB4jK,GACFp/I,EAAchX,EAAMpG,KAAK,oBAAqB,KAAM,GAChC,IAAhB68J,IACFz/I,EAAMzP,MAAQ,CAAE,CAAE,QAASkvJ,MAI7Bz/I,EAAchX,EAAMpG,KAAK,mBAAoB,KAAM,GAGrDod,EAAM9U,IAASo0J,EAAY,CAAEpD,EAAW,GACxCl8I,EAAMuqF,OAASvtG,OAAOyG,aAAa+7J,GAMnCpC,EAAWlB,EACX2D,GAAe,EACfpB,EAAkBz1J,EAAM2uJ,GAAG3hJ,MAAM4/I,MAAMzrD,SAAS,QAEhDi0D,EAAgBp1J,EAAM61J,WACtB71J,EAAM61J,WAAa,OAEZzB,EAAWjB,GAAS,CAMzB,IALA/hJ,EAAMwlJ,EACN16J,EAAM8D,EAAM8zJ,OAAOM,GAEnB3S,EAAUnlJ,EAAS0D,EAAMuzJ,OAAOa,GAAYwC,GAAkB52J,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,IAE9F9hJ,EAAMlV,GAAK,CAGhB,GAAW,KAFXgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,IAGxB9U,GAAU,GAAKA,EAAS0D,EAAM41J,QAAQxB,IAAa,MAC9C,IAAW,KAAPlkJ,EAGT,MAFA5T,IAKF8U,IA4EF,IArEE+kJ,GAJFF,EAAe7kJ,IAEKlV,EAEE,EAEAI,EAASmlJ,GAKP,IAAK0U,EAAoB,GAIjDD,EAASzU,EAAU0U,GAGnBn/I,EAAehX,EAAMpG,KAAK,iBAAkB,KAAM,IAC5C2nG,OAASvtG,OAAOyG,aAAa+7J,GACnCx/I,EAAM9U,IAASm0J,EAAY,CAAEnD,EAAW,GAGxCyD,EAAW32J,EAAMyzJ,MACjB6B,EAAYt1J,EAAM00J,OAAOxB,GACzBmC,EAAYr1J,EAAMuzJ,OAAOL,GAMzBwD,EAAgB12J,EAAM+2J,WACtB/2J,EAAM+2J,WAAa/2J,EAAMwzJ,UACzBxzJ,EAAMwzJ,UAAY0C,EAElBl2J,EAAMyzJ,OAAQ,EACdzzJ,EAAM00J,OAAOxB,GAAa+C,EAAej2J,EAAM6zJ,OAAOX,GACtDlzJ,EAAMuzJ,OAAOL,GAAa52J,EAEtB25J,GAAgB/5J,GAAO8D,EAAMitE,QAAQimF,EAAY,GAQnDlzJ,EAAM6iI,KAAOtsI,KAAK8F,IAAI2D,EAAM6iI,KAAO,EAAGswB,GAEtCnzJ,EAAM2uJ,GAAG3hJ,MAAMohH,SAASpuH,EAAOkzJ,EAAWC,GAAS,GAIhDnzJ,EAAMyzJ,QAASoD,IAClBpD,GAAQ,GAIVoD,EAAgB72J,EAAM6iI,KAAOqwB,EAAa,GAAKlzJ,EAAMitE,QAAQjtE,EAAM6iI,KAAO,GAE1E7iI,EAAMwzJ,UAAYxzJ,EAAM+2J,WACxB/2J,EAAM+2J,WAAaL,EACnB12J,EAAM00J,OAAOxB,GAAaoC,EAC1Bt1J,EAAMuzJ,OAAOL,GAAamC,EAC1Br1J,EAAMyzJ,MAAQkD,GAEd3/I,EAAehX,EAAMpG,KAAK,kBAAmB,MAAO,IAC9C2nG,OAASvtG,OAAOyG,aAAa+7J,GAEnCpC,EAAWlB,EAAYlzJ,EAAM6iI,KAC7BwzB,EAAU,GAAKjC,EACf6B,EAAej2J,EAAM6zJ,OAAOX,GAExBkB,GAAYjB,EAAW,MAK3B,GAAInzJ,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,UAAa,MAGhD,GAAIxzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,MAItD,IADAgC,GAAY,EACPl8J,EAAI,EAAGohB,EAAI+6I,EAAgBjjK,OAAQ8G,EAAIohB,EAAGphB,IAC7C,GAAIm8J,EAAgBn8J,GAAG0G,EAAOo0J,EAAUjB,GAAS,GAAO,CACtDqC,GAAY,EACZ,MAGJ,GAAIA,EAAa,MAGjB,GAAIY,GAEF,IADAQ,EAAiBZ,EAAsBh2J,EAAOo0J,IACzB,EAAK,WAG1B,IADAwC,EAAiBb,EAAqB/1J,EAAOo0J,IACxB,EAAK,MAG5B,GAAIoC,IAAmBx2J,EAAMvB,IAAI7D,WAAWg8J,EAAiB,GAAM,MAqBrE,OAhBE5/I,EADEo/I,EACMp2J,EAAMpG,KAAK,qBAAsB,MAAO,GAExCoG,EAAMpG,KAAK,oBAAqB,MAAO,IAE3C2nG,OAASvtG,OAAOyG,aAAa+7J,GAEnCF,EAAU,GAAKlC,EACfp0J,EAAM6iI,KAAOuxB,EAEbp0J,EAAM61J,WAAaT,EAGf3B,GA7QN,SAA6BzzJ,EAAO+mD,GAClC,IAAIztD,EAAGohB,EACHlE,EAAQxW,EAAMwW,MAAQ,EAE1B,IAAKld,EAAIytD,EAAM,EAAGrsC,EAAI1a,EAAM2wE,OAAOn+E,OAAS,EAAG8G,EAAIohB,EAAGphB,IAChD0G,EAAM2wE,OAAOr3E,GAAGkd,QAAUA,GAAkC,mBAAzBxW,EAAM2wE,OAAOr3E,GAAG4H,OACrDlB,EAAM2wE,OAAOr3E,EAAI,GAAGmoG,QAAS,EAC7BzhG,EAAM2wE,OAAOr3E,GAAGmoG,QAAS,EACzBnoG,GAAK,GAsQP09J,CAAoBh3J,EAAOu2J,IAGtB,I,6BCnWT,IAAI5kJ,EAAuB5a,EAAQ,KAAmB4a,mBAClDL,EAAuBva,EAAQ,KAAmBua,QAGtDnd,EAAOT,QAAU,SAAmBsM,EAAOkzJ,EAAW+D,EAAUj8G,GAC9D,IAAI9qC,EACAgnJ,EACAC,EACAhE,EACA9hH,EACA/3C,EACAohB,EACAiqI,EACA6J,EACA4G,EACApgJ,EACA6B,EACAjG,EACA4kJ,EACAC,EACAzxI,EACA6gI,EAAQ,EACRzzI,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GACnBkB,EAAWlB,EAAY,EAG3B,GAAIlzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAE7D,GAAkC,KAA9BxzJ,EAAMvB,IAAI7D,WAAWwW,GAAwB,OAAO,EAIxD,OAASA,EAAMlV,GACb,GAAkC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,IACa,KAAlCpR,EAAMvB,IAAI7D,WAAWwW,EAAM,GAAoB,CACjD,GAAIA,EAAM,IAAMlV,EAAO,OAAO,EAC9B,GAAsC,KAAlC8D,EAAMvB,IAAI7D,WAAWwW,EAAM,GAAsB,OAAO,EAC5D,MAYJ,IARA+hJ,EAAUnzJ,EAAM2zJ,QAGhB8B,EAAkBz1J,EAAM2uJ,GAAG3hJ,MAAM4/I,MAAMzrD,SAAS,aAEhDi0D,EAAgBp1J,EAAM61J,WACtB71J,EAAM61J,WAAa,YAEZzB,EAAWjB,IAAYnzJ,EAAMitE,QAAQmnF,GAAWA,IAGrD,KAAIp0J,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,UAAY,GAG3CxzJ,EAAMuzJ,OAAOa,GAAY,GAA7B,CAIA,IADAoB,GAAY,EACPl8J,EAAI,EAAGohB,EAAI+6I,EAAgBjjK,OAAQ8G,EAAIohB,EAAGphB,IAC7C,GAAIm8J,EAAgBn8J,GAAG0G,EAAOo0J,EAAUjB,GAAS,GAAO,CACtDqC,GAAY,EACZ,MAGJ,GAAIA,EAAa,MAMnB,IAFAt5J,GADA0U,EAAM5Q,EAAM20J,SAASzB,EAAWkB,EAAUp0J,EAAMwzJ,WAAW,GAAO5hJ,QACxDpf,OAEL4e,EAAM,EAAGA,EAAMlV,EAAKkV,IAAO,CAE9B,GAAW,MADXlB,EAAKU,EAAIhW,WAAWwW,IAElB,OAAO,EACF,GAAW,KAAPlB,EAAqB,CAC9Bs+I,EAAWp9I,EACX,OACgB,KAAPlB,GAEO,KAAPA,KACTkB,EACUlV,GAA+B,KAAxB0U,EAAIhW,WAAWwW,KAHhCyzI,IASJ,GAAI2J,EAAW,GAAsC,KAAjC59I,EAAIhW,WAAW4zJ,EAAW,GAAsB,OAAO,EAI3E,IAAKp9I,EAAMo9I,EAAW,EAAGp9I,EAAMlV,EAAKkV,IAElC,GAAW,MADXlB,EAAKU,EAAIhW,WAAWwW,IAElByzI,SACK,IAAIvzI,EAAQpB,GAGjB,MAOJ,KADA8E,EAAMhV,EAAM2uJ,GAAGrD,QAAQ8C,qBAAqBx9I,EAAKQ,EAAKlV,IAC7C2yJ,GAAM,OAAO,EAGtB,GADAx9G,EAAOrxC,EAAM2uJ,GAAG1C,cAAcj3I,EAAIpE,MAC7B5Q,EAAM2uJ,GAAG5C,aAAa16G,GAAS,OAAO,EAY3C,IANA6lH,EAJA9lJ,EAAM4D,EAAI5D,IAKV+lJ,EAJAtS,GAAS7vI,EAAI6vI,MAQbhuI,EAAQzF,EACDA,EAAMlV,EAAKkV,IAEhB,GAAW,MADXlB,EAAKU,EAAIhW,WAAWwW,IAElByzI,SACK,IAAIvzI,EAAQpB,GAGjB,MAkBJ,IAZA8E,EAAMhV,EAAM2uJ,GAAGrD,QAAQ+C,eAAez9I,EAAKQ,EAAKlV,GAC5CkV,EAAMlV,GAAO2a,IAAUzF,GAAO4D,EAAI65I,IACpC7qI,EAAQhP,EAAIpE,IACZQ,EAAM4D,EAAI5D,IACVyzI,GAAS7vI,EAAI6vI,QAEb7gI,EAAQ,GACR5S,EAAM8lJ,EACNrS,EAAQsS,GAIH/lJ,EAAMlV,IACXgU,EAAKU,EAAIhW,WAAWwW,GACfE,EAAQpB,KACbkB,IAGF,GAAIA,EAAMlV,GAA+B,KAAxB0U,EAAIhW,WAAWwW,IAC1B4S,EAMF,IAHAA,EAAQ,GACR5S,EAAM8lJ,EACNrS,EAAQsS,EACD/lJ,EAAMlV,IACXgU,EAAKU,EAAIhW,WAAWwW,GACfE,EAAQpB,KACbkB,IAKN,QAAIA,EAAMlV,GAA+B,KAAxB0U,EAAIhW,WAAWwW,SAKhCuzI,EAAQhzI,EAAmBf,EAAI1a,MAAM,EAAGs4J,OAQpCxzG,SAEgC,IAAzBh7C,EAAMkkB,IAAIkzI,aACnBp3J,EAAMkkB,IAAIkzI,WAAa,SAEkB,IAAhCp3J,EAAMkkB,IAAIkzI,WAAWzS,KAC9B3kJ,EAAMkkB,IAAIkzI,WAAWzS,GAAS,CAAE3gI,MAAOA,EAAOqtB,KAAMA,IAGtDrxC,EAAM61J,WAAaT,EAEnBp1J,EAAM6iI,KAAOqwB,EAAYrO,EAAQ,IAXZ,M,6BCpLvB,IAAIvzI,EAAUva,EAAQ,KAAmBua,QAGzCnd,EAAOT,QAAU,SAAiBsM,EAAOkzJ,EAAWC,EAASn4G,GAC3D,IAAI9qC,EAAIsG,EAAOuH,EAAK/G,EAChB5F,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GAGvB,GAAIlzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAI7D,GAAW,MAFXtjJ,EAAMlQ,EAAMvB,IAAI7D,WAAWwW,KAEDA,GAAOlV,EAAO,OAAO,EAK/C,IAFAsa,EAAQ,EACRtG,EAAKlQ,EAAMvB,IAAI7D,aAAawW,GACd,KAAPlB,GAAsBkB,EAAMlV,GAAOsa,GAAS,GACjDA,IACAtG,EAAKlQ,EAAMvB,IAAI7D,aAAawW,GAG9B,QAAIoF,EAAQ,GAAMpF,EAAMlV,IAAQoV,EAAQpB,MAEpC8qC,IAIJ9+C,EAAM8D,EAAMq3J,eAAen7J,EAAKkV,IAChC2M,EAAM/d,EAAMs3J,cAAcp7J,EAAK,GAAMkV,IAC3BA,GAAOE,EAAQtR,EAAMvB,IAAI7D,WAAWmjB,EAAM,MAClD7hB,EAAM6hB,GAGR/d,EAAM6iI,KAAOqwB,EAAY,GAEzBl8I,EAAehX,EAAMpG,KAAK,eAAgB,IAAM5F,OAAOwiB,GAAQ,IACzD+qF,OAAS,WAAWrrG,MAAM,EAAGsgB,GACnCQ,EAAM9U,IAAS,CAAEgxJ,EAAWlzJ,EAAM6iI,OAElC7rH,EAAiBhX,EAAMpG,KAAK,SAAU,GAAI,IACpCyc,QAAWrW,EAAMvB,IAAIvI,MAAMkb,EAAKlV,GAAK0V,OAC3CoF,EAAM9U,IAAW,CAAEgxJ,EAAWlzJ,EAAM6iI,MACpC7rH,EAAMpV,SAAW,IAEjBoV,EAAehX,EAAMpG,KAAK,gBAAiB,IAAM5F,OAAOwiB,IAAS,IAC3D+qF,OAAS,WAAWrrG,MAAM,EAAGsgB,KAtBd,K,6BCxBvBriB,EAAOT,QAAU,SAAkBsM,EAAOkzJ,EAAWC,GACnD,IAAI98I,EAASm/I,EAAWl8J,EAAGohB,EAAG1D,EAAO5F,EAAKlV,EAAKsa,EAAOmN,EACxByxI,EAA1BhB,EAAWlB,EAAY,EACvBuC,EAAkBz1J,EAAM2uJ,GAAG3hJ,MAAM4/I,MAAMzrD,SAAS,aAGpD,GAAInhG,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAM7D,IAJA4B,EAAgBp1J,EAAM61J,WACtB71J,EAAM61J,WAAa,YAGZzB,EAAWjB,IAAYnzJ,EAAMitE,QAAQmnF,GAAWA,IAGrD,KAAIp0J,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,UAAY,GAA/C,CAKA,GAAIxzJ,EAAMuzJ,OAAOa,IAAap0J,EAAMwzJ,YAClCpiJ,EAAMpR,EAAM6zJ,OAAOO,GAAYp0J,EAAM00J,OAAON,KAC5Cl4J,EAAM8D,EAAM8zJ,OAAOM,MAKF,MAFfzwI,EAAS3jB,EAAMvB,IAAI7D,WAAWwW,KAEW,KAAXuS,KAC5BvS,EAAMpR,EAAM60J,UAAUzjJ,EAAKuS,IAC3BvS,EAAMpR,EAAM80J,WAAW1jJ,KAEZlV,GAAK,CACdsa,EAAoB,KAAXmN,EAAyB,EAAI,EACtC,MAOR,KAAI3jB,EAAMuzJ,OAAOa,GAAY,GAA7B,CAIA,IADAoB,GAAY,EACPl8J,EAAI,EAAGohB,EAAI+6I,EAAgBjjK,OAAQ8G,EAAIohB,EAAGphB,IAC7C,GAAIm8J,EAAgBn8J,GAAG0G,EAAOo0J,EAAUjB,GAAS,GAAO,CACtDqC,GAAY,EACZ,MAGJ,GAAIA,EAAa,OAGnB,QAAKh/I,IAKLH,EAAUrW,EAAM20J,SAASzB,EAAWkB,EAAUp0J,EAAMwzJ,WAAW,GAAO5hJ,OAEtE5R,EAAM6iI,KAAOuxB,EAAW,GAExBp9I,EAAiBhX,EAAMpG,KAAK,eAAgB,IAAM5F,OAAOwiB,GAAQ,IAC3D+qF,OAAWvtG,OAAOyG,aAAakpB,GACrC3M,EAAM9U,IAAW,CAAEgxJ,EAAWlzJ,EAAM6iI,OAEpC7rH,EAAiBhX,EAAMpG,KAAK,SAAU,GAAI,IACpCyc,QAAWA,EACjBW,EAAM9U,IAAW,CAAEgxJ,EAAWlzJ,EAAM6iI,KAAO,GAC3C7rH,EAAMpV,SAAW,IAEjBoV,EAAiBhX,EAAMpG,KAAK,gBAAiB,IAAM5F,OAAOwiB,IAAS,IAC7D+qF,OAAWvtG,OAAOyG,aAAakpB,GAErC3jB,EAAM61J,WAAaT,GAEZ,K,6BC5ET,IAAImC,EAAcxgK,EAAQ,MACtBg3H,EAAyBh3H,EAAQ,MAAqBg3H,uBAKtDypC,EAAiB,CACnB,CAAE,oCAAqC,2BAA2B,GAClE,CAAE,QAAgB,OAAS,GAC3B,CAAE,OAAgB,OAAS,GAC3B,CAAE,WAAgB,KAAS,GAC3B,CAAE,eAAgB,SAAS,GAC3B,CAAE,IAAI9nJ,OAAO,QAAU6nJ,EAAYt9J,KAAK,KAAO,mBAAoB,KAAM,MAAM,GAC/E,CAAE,IAAIyV,OAAOq+G,EAAuBp+G,OAAS,SAAW,MAAM,IAIhExb,EAAOT,QAAU,SAAoBsM,EAAOkzJ,EAAWC,EAASn4G,GAC9D,IAAI1hD,EAAG86J,EAAUp9I,EAAOm9I,EACpB/iJ,EAAMpR,EAAM6zJ,OAAOX,GAAalzJ,EAAM00J,OAAOxB,GAC7Ch3J,EAAM8D,EAAM8zJ,OAAOZ,GAGvB,GAAIlzJ,EAAMuzJ,OAAOL,GAAalzJ,EAAMwzJ,WAAa,EAAK,OAAO,EAE7D,IAAKxzJ,EAAM2uJ,GAAG76J,QAAQwiB,KAAQ,OAAO,EAErC,GAAkC,KAA9BtW,EAAMvB,IAAI7D,WAAWwW,GAAwB,OAAO,EAIxD,IAFA+iJ,EAAWn0J,EAAMvB,IAAIvI,MAAMkb,EAAKlV,GAE3B5C,EAAI,EAAGA,EAAIk+J,EAAehlK,SACzBglK,EAAel+J,GAAG,GAAG1D,KAAKu+J,GADO76J,KAIvC,GAAIA,IAAMk+J,EAAehlK,OAAU,OAAO,EAE1C,GAAIwoD,EAEF,OAAOw8G,EAAel+J,GAAG,GAO3B,GAJA86J,EAAWlB,EAAY,GAIlBsE,EAAel+J,GAAG,GAAG1D,KAAKu+J,GAC7B,KAAOC,EAAWjB,KACZnzJ,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,WADVY,IAOzB,GAJAhjJ,EAAMpR,EAAM6zJ,OAAOO,GAAYp0J,EAAM00J,OAAON,GAC5Cl4J,EAAM8D,EAAM8zJ,OAAOM,GACnBD,EAAWn0J,EAAMvB,IAAIvI,MAAMkb,EAAKlV,GAE5Bs7J,EAAel+J,GAAG,GAAG1D,KAAKu+J,GAAW,CACf,IAApBA,EAAS3hK,QAAgB4hK,IAC7B,MAWN,OANAp0J,EAAM6iI,KAAOuxB,GAEbp9I,EAAgBhX,EAAMpG,KAAK,aAAc,GAAI,IACvCsI,IAAU,CAAEgxJ,EAAWkB,GAC7Bp9I,EAAMX,QAAUrW,EAAM20J,SAASzB,EAAWkB,EAAUp0J,EAAMwzJ,WAAW,IAE9D,I,6BClETr/J,EAAOT,QAAU,CACf,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,OACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,UACA,SACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,O,6BChEFS,EAAOT,QAAU,SAAmBsM,EAAOkzJ,GACzC,IAAI78I,EAASm/I,EAAWl8J,EAAGohB,EAAG1D,EAAOo+I,EACjChB,EAAWlB,EAAY,EACvBuC,EAAkBz1J,EAAM2uJ,GAAG3hJ,MAAM4/I,MAAMzrD,SAAS,aAChDgyD,EAAUnzJ,EAAM2zJ,QAMpB,IAJAyB,EAAgBp1J,EAAM61J,WACtB71J,EAAM61J,WAAa,YAGZzB,EAAWjB,IAAYnzJ,EAAMitE,QAAQmnF,GAAWA,IAGrD,KAAIp0J,EAAMuzJ,OAAOa,GAAYp0J,EAAMwzJ,UAAY,GAG3CxzJ,EAAMuzJ,OAAOa,GAAY,GAA7B,CAIA,IADAoB,GAAY,EACPl8J,EAAI,EAAGohB,EAAI+6I,EAAgBjjK,OAAQ8G,EAAIohB,EAAGphB,IAC7C,GAAIm8J,EAAgBn8J,GAAG0G,EAAOo0J,EAAUjB,GAAS,GAAO,CACtDqC,GAAY,EACZ,MAGJ,GAAIA,EAAa,MAmBnB,OAhBAn/I,EAAUrW,EAAM20J,SAASzB,EAAWkB,EAAUp0J,EAAMwzJ,WAAW,GAAO5hJ,OAEtE5R,EAAM6iI,KAAOuxB,GAEbp9I,EAAiBhX,EAAMpG,KAAK,iBAAkB,IAAK,IAC7CsI,IAAW,CAAEgxJ,EAAWlzJ,EAAM6iI,OAEpC7rH,EAAiBhX,EAAMpG,KAAK,SAAU,GAAI,IACpCyc,QAAWA,EACjBW,EAAM9U,IAAW,CAAEgxJ,EAAWlzJ,EAAM6iI,MACpC7rH,EAAMpV,SAAW,GAEjBoV,EAAiBhX,EAAMpG,KAAK,kBAAmB,KAAM,GAErDoG,EAAM61J,WAAaT,GAEZ,I,6BC9CT,IAAI/zD,EAAQtqG,EAAQ,KAChBua,EAAUva,EAAQ,KAAmBua,QAGzC,SAASmmJ,EAAWh5J,EAAKkwJ,EAAIzqI,EAAKysD,GAChC,IAAIzgE,EAAI8hB,EAAGnb,EAAOzF,EAAKqS,EAAKyyI,EAAQ55J,EAAQo7J,EAuD5C,IArDA1/J,KAAKyG,IAAMA,EAGXzG,KAAK22J,GAASA,EAEd32J,KAAKksB,IAAMA,EAMXlsB,KAAK24E,OAASA,EAEd34E,KAAK67J,OAAS,GACd77J,KAAK87J,OAAS,GACd97J,KAAK08J,OAAS,GACd18J,KAAKu7J,OAAS,GAYdv7J,KAAK49J,QAAU,GAGf59J,KAAKw7J,UAAa,EAElBx7J,KAAK6qI,KAAa,EAClB7qI,KAAK27J,QAAa,EAClB37J,KAAKy7J,OAAa,EAClBz7J,KAAK2/J,UAAc,EACnB3/J,KAAK++J,YAAc,EAInB/+J,KAAK69J,WAAa,OAElB79J,KAAKwe,MAAQ,EAGbxe,KAAKyd,OAAS,GAKdiiJ,GAAe,EAEV7gJ,EAAQzF,EAAM8kJ,EAAS55J,EAAS,EAAGmnB,GAHxCuO,EAAIh6B,KAAKyG,KAGuCjM,OAAQ4e,EAAMqS,EAAKrS,IAAO,CAGxE,GAFAlB,EAAK8hB,EAAEp3B,WAAWwW,IAEbsmJ,EAAc,CACjB,GAAIpmJ,EAAQpB,GAAK,CACfgmJ,IAEW,IAAPhmJ,EACF5T,GAAU,EAAIA,EAAS,EAEvBA,IAEF,SAEAo7J,GAAe,EAIR,KAAPxnJ,GAAekB,IAAQqS,EAAM,IACpB,KAAPvT,GAAekB,IACnBpZ,KAAK67J,OAAOj6J,KAAKid,GACjB7e,KAAK87J,OAAOl6J,KAAKwX,GACjBpZ,KAAK08J,OAAO96J,KAAKs8J,GACjBl+J,KAAKu7J,OAAO35J,KAAK0C,GACjBtE,KAAK49J,QAAQh8J,KAAK,GAElB89J,GAAe,EACfxB,EAAS,EACT55J,EAAS,EACTua,EAAQzF,EAAM,GAKlBpZ,KAAK67J,OAAOj6J,KAAKo4B,EAAEx/B,QACnBwF,KAAK87J,OAAOl6J,KAAKo4B,EAAEx/B,QACnBwF,KAAK08J,OAAO96J,KAAK,GACjB5B,KAAKu7J,OAAO35J,KAAK,GACjB5B,KAAK49J,QAAQh8J,KAAK,GAElB5B,KAAK27J,QAAU37J,KAAK67J,OAAOrhK,OAAS,EAKtCilK,EAAW1kK,UAAU6G,KAAO,SAAUsH,EAAM6T,EAAKusF,GAC/C,IAAItqF,EAAQ,IAAIqqF,EAAMngG,EAAM6T,EAAKusF,GAQjC,OAPAtqF,EAAMhK,OAAQ,EAEVs0F,EAAU,GAAGtpG,KAAKwe,QACtBQ,EAAMR,MAAQxe,KAAKwe,MACf8qF,EAAU,GAAGtpG,KAAKwe,QAEtBxe,KAAK24E,OAAO/2E,KAAKod,GACVA,GAGTygJ,EAAW1kK,UAAUk6E,QAAU,SAAiB41D,GAC9C,OAAO7qI,KAAK67J,OAAOhxB,GAAQ7qI,KAAK08J,OAAO7xB,IAAS7qI,KAAK87J,OAAOjxB,IAG9D40B,EAAW1kK,UAAUugK,eAAiB,SAAwBx0J,GAC5D,IAAK,IAAI5C,EAAMlE,KAAK27J,QAAS70J,EAAO5C,KAC9BlE,KAAK67J,OAAO/0J,GAAQ9G,KAAK08J,OAAO51J,GAAQ9G,KAAK87J,OAAOh1J,IADjBA,KAKzC,OAAOA,GAIT24J,EAAW1kK,UAAU+hK,WAAa,SAAoB1jJ,GAGpD,IAFA,IAAIlB,EAEKhU,EAAMlE,KAAKyG,IAAIjM,OAAQ4e,EAAMlV,IACpCgU,EAAKlY,KAAKyG,IAAI7D,WAAWwW,GACpBE,EAAQpB,IAF4BkB,KAI3C,OAAOA,GAITqmJ,EAAW1kK,UAAUskK,eAAiB,SAAwBjmJ,EAAK/U,GACjE,GAAI+U,GAAO/U,EAAO,OAAO+U,EAEzB,KAAOA,EAAM/U,GACX,IAAKiV,EAAQtZ,KAAKyG,IAAI7D,aAAawW,IAAS,OAAOA,EAAM,EAE3D,OAAOA,GAITqmJ,EAAW1kK,UAAU8hK,UAAY,SAAmBzjJ,EAAKJ,GACvD,IAAK,IAAI9U,EAAMlE,KAAKyG,IAAIjM,OAAQ4e,EAAMlV,GAChClE,KAAKyG,IAAI7D,WAAWwW,KAASJ,EADQI,KAG3C,OAAOA,GAITqmJ,EAAW1kK,UAAUukK,cAAgB,SAAuBlmJ,EAAKJ,EAAM3U,GACrE,GAAI+U,GAAO/U,EAAO,OAAO+U,EAEzB,KAAOA,EAAM/U,GACX,GAAI2U,IAAShZ,KAAKyG,IAAI7D,aAAawW,GAAQ,OAAOA,EAAM,EAE1D,OAAOA,GAITqmJ,EAAW1kK,UAAU4hK,SAAW,SAAkBiD,EAAOlhJ,EAAKw/I,EAAQ2B,GACpE,IAAIv+J,EAAGw+J,EAAY5nJ,EAAI8mF,EAAOf,EAAM7yE,EAAO20I,EACvCl1B,EAAO+0B,EAEX,GAAIA,GAASlhJ,EACX,MAAO,GAKT,IAFA0M,EAAQ,IAAI3b,MAAMiP,EAAMkhJ,GAEnBt+J,EAAI,EAAGupI,EAAOnsH,EAAKmsH,IAAQvpI,IAAK,CAWnC,IAVAw+J,EAAa,EACbC,EAAY/gE,EAAQh/F,KAAK67J,OAAOhxB,GAI9B5sC,EAFE4sC,EAAO,EAAInsH,GAAOmhJ,EAEb7/J,KAAK87J,OAAOjxB,GAAQ,EAEpB7qI,KAAK87J,OAAOjxB,GAGd7rC,EAAQf,GAAQ6hE,EAAa5B,GAAQ,CAG1C,GAFAhmJ,EAAKlY,KAAKyG,IAAI7D,WAAWo8F,GAErB1lF,EAAQpB,GACC,IAAPA,EACF4nJ,GAAc,GAAKA,EAAa9/J,KAAK49J,QAAQ/yB,IAAS,EAEtDi1B,QAEG,MAAI9gE,EAAQ+gE,EAAY//J,KAAK08J,OAAO7xB,IAIzC,MAFAi1B,IAKF9gE,IAMA5zE,EAAM9pB,GAHJw+J,EAAa5B,EAGJ,IAAIzuJ,MAAMqwJ,EAAa5B,EAAS,GAAGj8J,KAAK,KAAOjC,KAAKyG,IAAIvI,MAAM8gG,EAAOf,GAErEj+F,KAAKyG,IAAIvI,MAAM8gG,EAAOf,GAIrC,OAAO7yE,EAAMnpB,KAAK,KAIpBw9J,EAAW1kK,UAAUsuG,MAAQA,EAG7BltG,EAAOT,QAAU+jK,G,6BC9NjB,IAAI13D,EAAkBhpG,EAAQ,KAM1Bq5J,EAAS,CACX,CAAE,OAAmBr5J,EAAQ,OAC7B,CAAE,UAAmBA,EAAQ,OAC7B,CAAE,SAAmBA,EAAQ,OAC7B,CAAE,YAAmBA,EAAQ,OAC7B,CAAE,gBAAmBA,EAAQ,MAAgCq3H,UAC7D,CAAE,WAAmBr3H,EAAQ,MAA2Bq3H,UACxD,CAAE,OAAmBr3H,EAAQ,OAC7B,CAAE,QAAmBA,EAAQ,OAC7B,CAAE,WAAmBA,EAAQ,OAC7B,CAAE,cAAmBA,EAAQ,OAC7B,CAAE,SAAmBA,EAAQ,QAG3BihK,EAAU,CACZ,CAAE,gBAAmBjhK,EAAQ,OAC7B,CAAE,gBAAmBA,EAAQ,MAAgC+pD,aAC7D,CAAE,WAAmB/pD,EAAQ,MAA2B+pD,aACxD,CAAE,gBAAmB/pD,EAAQ,QAO/B,SAAS20J,IACP,IAAIpyJ,EASJ,IAFAtB,KAAK40J,MAAQ,IAAI7sD,EAEZzmG,EAAI,EAAGA,EAAI82J,EAAO59J,OAAQ8G,IAC7BtB,KAAK40J,MAAMhzJ,KAAKw2J,EAAO92J,GAAG,GAAI82J,EAAO92J,GAAG,IAW1C,IAFAtB,KAAK80J,OAAS,IAAI/sD,EAEbzmG,EAAI,EAAGA,EAAI0+J,EAAQxlK,OAAQ8G,IAC9BtB,KAAK80J,OAAOlzJ,KAAKo+J,EAAQ1+J,GAAG,GAAI0+J,EAAQ1+J,GAAG,IAQ/CoyJ,EAAa34J,UAAU67J,UAAY,SAAU5uJ,GAC3C,IAAI6uJ,EAAIv1J,EAAG8X,EAAMpR,EAAMoR,IACnBy0C,EAAQ7tD,KAAK40J,MAAMzrD,SAAS,IAC5B19E,EAAMoiC,EAAMrzD,OACZ6gK,EAAarzJ,EAAM2uJ,GAAG76J,QAAQu/J,WAC9Bt1B,EAAQ/9H,EAAM+9H,MAGlB,QAA0B,IAAfA,EAAM3sH,GAAjB,CAKA,GAAIpR,EAAMwW,MAAQ68I,EAChB,IAAK/5J,EAAI,EAAGA,EAAImqB,IAKdzjB,EAAMwW,QACNq4I,EAAKhpG,EAAMvsD,GAAG0G,GAAO,GACrBA,EAAMwW,SAEFq4I,GATev1J,UAuBrB0G,EAAMoR,IAAMpR,EAAMyuJ,OAGfI,GAAM7uJ,EAAMoR,MACjB2sH,EAAM3sH,GAAOpR,EAAMoR,SAhCjBpR,EAAMoR,IAAM2sH,EAAM3sH,IAsCtBs6I,EAAa34J,UAAUq7H,SAAW,SAAUpuH,GAO1C,IANA,IAAI6uJ,EAAIv1J,EACJusD,EAAQ7tD,KAAK40J,MAAMzrD,SAAS,IAC5B19E,EAAMoiC,EAAMrzD,OACZkkB,EAAM1W,EAAMyuJ,OACZ4E,EAAarzJ,EAAM2uJ,GAAG76J,QAAQu/J,WAE3BrzJ,EAAMoR,IAAMsF,GAAK,CAQtB,GAAI1W,EAAMwW,MAAQ68I,EAChB,IAAK/5J,EAAI,EAAGA,EAAImqB,KACdorI,EAAKhpG,EAAMvsD,GAAG0G,GAAO,IADF1G,KAMvB,GAAIu1J,GACF,GAAI7uJ,EAAMoR,KAAOsF,EAAO,WAI1B1W,EAAMisD,SAAWjsD,EAAMvB,IAAIuB,EAAMoR,OAG/BpR,EAAMisD,SACRjsD,EAAMi4J,eAUVvM,EAAa34J,UAAUmH,MAAQ,SAAU0W,EAAK+9I,EAAIzqI,EAAKwvI,GACrD,IAAIp6J,EAAGusD,EAAOpiC,EACVzjB,EAAQ,IAAIhI,KAAKi1J,MAAMr8I,EAAK+9I,EAAIzqI,EAAKwvI,GAOzC,IALA17J,KAAKo2H,SAASpuH,GAGdyjB,GADAoiC,EAAQ7tD,KAAK80J,OAAO3rD,SAAS,KACjB3uG,OAEP8G,EAAI,EAAGA,EAAImqB,EAAKnqB,IACnBusD,EAAMvsD,GAAG0G,IAKb0rJ,EAAa34J,UAAUk6J,MAAQl2J,EAAQ,MAGvC5C,EAAOT,QAAUg4J,G,6BCnKjB,SAASwM,EAAiBhoJ,GACxB,OAAQA,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,IACL,KAAK,IACH,OAAO,EACT,QACE,OAAO,GAIb/b,EAAOT,QAAU,SAAcsM,EAAOg7C,GAGpC,IAFA,IAAI5pC,EAAMpR,EAAMoR,IAETA,EAAMpR,EAAMyuJ,SAAWyJ,EAAiBl4J,EAAMvB,IAAI7D,WAAWwW,KAClEA,IAGF,OAAIA,IAAQpR,EAAMoR,MAEb4pC,IAAUh7C,EAAMisD,SAAWjsD,EAAMvB,IAAIvI,MAAM8J,EAAMoR,IAAKA,IAE3DpR,EAAMoR,IAAMA,GAEL,K,6BCrDT,IAAIE,EAAUva,EAAQ,KAAmBua,QAGzCnd,EAAOT,QAAU,SAAiBsM,EAAOg7C,GACvC,IAAIm9G,EAAMj8J,EAAKkV,EAAMpR,EAAMoR,IAE3B,GAAkC,KAA9BpR,EAAMvB,IAAI7D,WAAWwW,GAAyB,OAAO,EA2BzD,IAzBA+mJ,EAAOn4J,EAAMisD,QAAQz5D,OAAS,EAC9B0J,EAAM8D,EAAMyuJ,OAMPzzG,IACCm9G,GAAQ,GAAwC,KAAnCn4J,EAAMisD,QAAQrxD,WAAWu9J,GACpCA,GAAQ,GAA4C,KAAvCn4J,EAAMisD,QAAQrxD,WAAWu9J,EAAO,IAC/Cn4J,EAAMisD,QAAUjsD,EAAMisD,QAAQlkD,QAAQ,MAAO,IAC7C/H,EAAMpG,KAAK,YAAa,KAAM,KAE9BoG,EAAMisD,QAAUjsD,EAAMisD,QAAQ/1D,MAAM,GAAI,GACxC8J,EAAMpG,KAAK,YAAa,KAAM,IAIhCoG,EAAMpG,KAAK,YAAa,KAAM,IAIlCwX,IAGOA,EAAMlV,GAAOoV,EAAQtR,EAAMvB,IAAI7D,WAAWwW,KAASA,IAG1D,OADApR,EAAMoR,IAAMA,GACL,I,6BChCT,IAJA,IAAIE,EAAUva,EAAQ,KAAmBua,QAErC8mJ,EAAU,GAEL9+J,EAAI,EAAGA,EAAI,IAAKA,IAAO8+J,EAAQx+J,KAAK,GAE7C,qCACGic,MAAM,IAAI1T,SAAQ,SAAU+N,GAAMkoJ,EAAQloJ,EAAGtV,WAAW,IAAM,KAGjEzG,EAAOT,QAAU,SAAgBsM,EAAOg7C,GACtC,IAAI9qC,EAAIkB,EAAMpR,EAAMoR,IAAKlV,EAAM8D,EAAMyuJ,OAErC,GAAkC,KAA9BzuJ,EAAMvB,IAAI7D,WAAWwW,GAAwB,OAAO,EAIxD,KAFAA,EAEUlV,EAAK,CAGb,IAFAgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,IAEjB,KAAuB,IAAhBgnJ,EAAQloJ,GAGtB,OAFK8qC,IAAUh7C,EAAMisD,SAAWjsD,EAAMvB,IAAI2S,IAC1CpR,EAAMoR,KAAO,GACN,EAGT,GAAW,KAAPlB,EAAa,CAOf,IANK8qC,GACHh7C,EAAMpG,KAAK,YAAa,KAAM,GAGhCwX,IAEOA,EAAMlV,IACXgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,GACrBE,EAAQpB,KACbkB,IAIF,OADApR,EAAMoR,IAAMA,GACL,GAMX,OAFK4pC,IAAUh7C,EAAMisD,SAAW,MAChCjsD,EAAMoR,OACC,I,6BC9CTjd,EAAOT,QAAU,SAAkBsM,EAAOg7C,GACxC,IAAInkC,EAAO3a,EAAKynB,EAAQ00I,EAAYC,EAAUthJ,EAC1C5F,EAAMpR,EAAMoR,IAGhB,GAAW,KAFFpR,EAAMvB,IAAI7D,WAAWwW,GAEJ,OAAO,EAMjC,IAJAyF,EAAQzF,EACRA,IACAlV,EAAM8D,EAAMyuJ,OAELr9I,EAAMlV,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,IAAwBA,IAMjE,IAJAuS,EAAS3jB,EAAMvB,IAAIvI,MAAM2gB,EAAOzF,GAEhCinJ,EAAaC,EAAWlnJ,GAEoC,KAApDinJ,EAAar4J,EAAMvB,IAAImJ,QAAQ,IAAK0wJ,KAAmB,CAG7D,IAFAA,EAAWD,EAAa,EAEjBC,EAAWp8J,GAA0C,KAAnC8D,EAAMvB,IAAI7D,WAAW09J,IAA6BA,IAE3E,GAAIA,EAAWD,IAAe10I,EAAOnxB,OASnC,OARKwoD,KACHhkC,EAAgBhX,EAAMpG,KAAK,cAAe,OAAQ,IAC5C2nG,OAAU59E,EAChB3M,EAAMX,QAAUrW,EAAMvB,IAAIvI,MAAMkb,EAAKinJ,GAClCtwJ,QAAQ,MAAO,KACfA,QAAQ,WAAY,OAEzB/H,EAAMoR,IAAMknJ,GACL,EAMX,OAFKt9G,IAAUh7C,EAAMisD,SAAWtoC,GAChC3jB,EAAMoR,KAAOuS,EAAOnxB,QACb,I,6BCrCT,IAAImf,EAAuB5a,EAAQ,KAAmB4a,mBAClDL,EAAuBva,EAAQ,KAAmBua,QAGtDnd,EAAOT,QAAU,SAAcsM,EAAOg7C,GACpC,IAAIzzC,EACAyJ,EACA2zI,EACA6J,EACA+J,EACAnnJ,EACA4D,EACAzU,EACAyjB,EAEAqtB,EAAO,GACPq9G,EAAS1uJ,EAAMoR,IACflV,EAAM8D,EAAMyuJ,OACZ53I,EAAQ7W,EAAMoR,IACdonJ,GAAiB,EAErB,GAAwC,KAApCx4J,EAAMvB,IAAI7D,WAAWoF,EAAMoR,KAAwB,OAAO,EAM9D,GAJAmnJ,EAAav4J,EAAMoR,IAAM,GACzBo9I,EAAWxuJ,EAAM2uJ,GAAGrD,QAAQ6C,eAAenuJ,EAAOA,EAAMoR,KAAK,IAG9C,EAAK,OAAO,EAG3B,IADAA,EAAMo9I,EAAW,GACPtyJ,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,GAAsB,CAW1D,IALAonJ,GAAiB,EAIjBpnJ,IACOA,EAAMlV,IACX8U,EAAOhR,EAAMvB,IAAI7D,WAAWwW,GACvBE,EAAQN,IAAkB,KAATA,GAFNI,KAIlB,GAAIA,GAAOlV,EAAO,OAAO,EAkBzB,IAdA2a,EAAQzF,GACR4D,EAAMhV,EAAM2uJ,GAAGrD,QAAQ8C,qBAAqBpuJ,EAAMvB,IAAK2S,EAAKpR,EAAMyuJ,SAC1DI,KACNx9G,EAAOrxC,EAAM2uJ,GAAG1C,cAAcj3I,EAAIpE,KAC9B5Q,EAAM2uJ,GAAG5C,aAAa16G,GACxBjgC,EAAM4D,EAAI5D,IAEVigC,EAAO,IAMXx6B,EAAQzF,EACDA,EAAMlV,IACX8U,EAAOhR,EAAMvB,IAAI7D,WAAWwW,GACvBE,EAAQN,IAAkB,KAATA,GAFNI,KAQlB,GADA4D,EAAMhV,EAAM2uJ,GAAGrD,QAAQ+C,eAAeruJ,EAAMvB,IAAK2S,EAAKpR,EAAMyuJ,QACxDr9I,EAAMlV,GAAO2a,IAAUzF,GAAO4D,EAAI65I,GAMpC,IALA7qI,EAAQhP,EAAIpE,IACZQ,EAAM4D,EAAI5D,IAIHA,EAAMlV,IACX8U,EAAOhR,EAAMvB,IAAI7D,WAAWwW,GACvBE,EAAQN,IAAkB,KAATA,GAFNI,UAKlB4S,EAAQ,IAGN5S,GAAOlV,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,MAErConJ,GAAiB,GAEnBpnJ,IAGF,GAAIonJ,EAAgB,CAIlB,QAAoC,IAAzBx4J,EAAMkkB,IAAIkzI,WAA8B,OAAO,EAmB1D,GAjBIhmJ,EAAMlV,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,IACpCyF,EAAQzF,EAAM,GACdA,EAAMpR,EAAM2uJ,GAAGrD,QAAQ6C,eAAenuJ,EAAOoR,KAClC,EACTuzI,EAAQ3kJ,EAAMvB,IAAIvI,MAAM2gB,EAAOzF,KAE/BA,EAAMo9I,EAAW,GAGnBp9I,EAAMo9I,EAAW,EAKd7J,IAASA,EAAQ3kJ,EAAMvB,IAAIvI,MAAMqiK,EAAY/J,MAElDjuJ,EAAMP,EAAMkkB,IAAIkzI,WAAWzlJ,EAAmBgzI,KAG5C,OADA3kJ,EAAMoR,IAAMs9I,GACL,EAETr9G,EAAO9wC,EAAI8wC,KACXrtB,EAAQzjB,EAAIyjB,MAwBd,OAjBKg3B,IACHh7C,EAAMoR,IAAMmnJ,EACZv4J,EAAMyuJ,OAASD,EAEAxuJ,EAAMpG,KAAK,YAAa,IAAK,GACtC2N,MAASA,EAAQ,CAAE,CAAE,OAAQ8pC,IAC/BrtB,GACFzc,EAAM3N,KAAK,CAAE,QAASoqB,IAGxBhkB,EAAM2uJ,GAAGrC,OAAOl+B,SAASpuH,GAEVA,EAAMpG,KAAK,aAAc,KAAM,IAGhDoG,EAAMoR,IAAMA,EACZpR,EAAMyuJ,OAASvyJ,GACR,I,6BChJT,IAAIyV,EAAuB5a,EAAQ,KAAmB4a,mBAClDL,EAAuBva,EAAQ,KAAmBua,QAGtDnd,EAAOT,QAAU,SAAesM,EAAOg7C,GACrC,IAAIzzC,EACAyJ,EACAqF,EACAsuI,EACA6J,EACA+J,EACAnnJ,EACA7Q,EACAyU,EACAgP,EACAhN,EACA25D,EACA95D,EACAw6B,EAAO,GACPq9G,EAAS1uJ,EAAMoR,IACflV,EAAM8D,EAAMyuJ,OAEhB,GAAwC,KAApCzuJ,EAAMvB,IAAI7D,WAAWoF,EAAMoR,KAAwB,OAAO,EAC9D,GAA4C,KAAxCpR,EAAMvB,IAAI7D,WAAWoF,EAAMoR,IAAM,GAAsB,OAAO,EAMlE,GAJAmnJ,EAAav4J,EAAMoR,IAAM,GACzBo9I,EAAWxuJ,EAAM2uJ,GAAGrD,QAAQ6C,eAAenuJ,EAAOA,EAAMoR,IAAM,GAAG,IAGlD,EAAK,OAAO,EAG3B,IADAA,EAAMo9I,EAAW,GACPtyJ,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,GAAsB,CAQ1D,IADAA,IACOA,EAAMlV,IACX8U,EAAOhR,EAAMvB,IAAI7D,WAAWwW,GACvBE,EAAQN,IAAkB,KAATA,GAFNI,KAIlB,GAAIA,GAAOlV,EAAO,OAAO,EAkBzB,IAdA2a,EAAQzF,GACR4D,EAAMhV,EAAM2uJ,GAAGrD,QAAQ8C,qBAAqBpuJ,EAAMvB,IAAK2S,EAAKpR,EAAMyuJ,SAC1DI,KACNx9G,EAAOrxC,EAAM2uJ,GAAG1C,cAAcj3I,EAAIpE,KAC9B5Q,EAAM2uJ,GAAG5C,aAAa16G,GACxBjgC,EAAM4D,EAAI5D,IAEVigC,EAAO,IAMXx6B,EAAQzF,EACDA,EAAMlV,IACX8U,EAAOhR,EAAMvB,IAAI7D,WAAWwW,GACvBE,EAAQN,IAAkB,KAATA,GAFNI,KAQlB,GADA4D,EAAMhV,EAAM2uJ,GAAGrD,QAAQ+C,eAAeruJ,EAAMvB,IAAK2S,EAAKpR,EAAMyuJ,QACxDr9I,EAAMlV,GAAO2a,IAAUzF,GAAO4D,EAAI65I,GAMpC,IALA7qI,EAAQhP,EAAIpE,IACZQ,EAAM4D,EAAI5D,IAIHA,EAAMlV,IACX8U,EAAOhR,EAAMvB,IAAI7D,WAAWwW,GACvBE,EAAQN,IAAkB,KAATA,GAFNI,UAKlB4S,EAAQ,GAGV,GAAI5S,GAAOlV,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,GAErC,OADApR,EAAMoR,IAAMs9I,GACL,EAETt9I,QACK,CAIL,QAAoC,IAAzBpR,EAAMkkB,IAAIkzI,WAA8B,OAAO,EAmB1D,GAjBIhmJ,EAAMlV,GAAqC,KAA9B8D,EAAMvB,IAAI7D,WAAWwW,IACpCyF,EAAQzF,EAAM,GACdA,EAAMpR,EAAM2uJ,GAAGrD,QAAQ6C,eAAenuJ,EAAOoR,KAClC,EACTuzI,EAAQ3kJ,EAAMvB,IAAIvI,MAAM2gB,EAAOzF,KAE/BA,EAAMo9I,EAAW,GAGnBp9I,EAAMo9I,EAAW,EAKd7J,IAASA,EAAQ3kJ,EAAMvB,IAAIvI,MAAMqiK,EAAY/J,MAElDjuJ,EAAMP,EAAMkkB,IAAIkzI,WAAWzlJ,EAAmBgzI,KAG5C,OADA3kJ,EAAMoR,IAAMs9I,GACL,EAETr9G,EAAO9wC,EAAI8wC,KACXrtB,EAAQzjB,EAAIyjB,MA6Bd,OAtBKg3B,IACH3kC,EAAUrW,EAAMvB,IAAIvI,MAAMqiK,EAAY/J,GAEtCxuJ,EAAM2uJ,GAAGrC,OAAOpyJ,MACdmc,EACArW,EAAM2uJ,GACN3uJ,EAAMkkB,IACNysD,EAAS,KAGX35D,EAAiBhX,EAAMpG,KAAK,QAAS,MAAO,IACtC2N,MAAWA,EAAQ,CAAE,CAAE,MAAO8pC,GAAQ,CAAE,MAAO,KACrDr6B,EAAMpV,SAAW+uE,EACjB35D,EAAMX,QAAWA,EAEb2N,GACFzc,EAAM3N,KAAK,CAAE,QAASoqB,KAI1BhkB,EAAMoR,IAAMA,EACZpR,EAAMyuJ,OAASvyJ,GACR,I,6BChJT,IAAIu8J,EAAc,2IACdC,EAAc,uDAGlBvkK,EAAOT,QAAU,SAAkBsM,EAAOg7C,GACxC,IAAIgnE,EAAM22C,EAAWC,EAAYrpH,EAAKwhH,EAAS/5I,EAC3C5F,EAAMpR,EAAMoR,IAEhB,OAAkC,KAA9BpR,EAAMvB,IAAI7D,WAAWwW,QAEzB4wG,EAAOhiH,EAAMvB,IAAIvI,MAAMkb,IAEdxJ,QAAQ,KAAO,KAEpB8wJ,EAAY9iK,KAAKosH,IAGnBzyE,GAFAopH,EAAY32C,EAAK7sH,MAAMujK,IAEP,GAAGxiK,MAAM,GAAI,GAC7B66J,EAAU/wJ,EAAM2uJ,GAAG1C,cAAc18G,KAC5BvvC,EAAM2uJ,GAAG5C,aAAagF,KAEtB/1G,KACHhkC,EAAgBhX,EAAMpG,KAAK,YAAa,IAAK,IACvC2N,MAAU,CAAE,CAAE,OAAQwpJ,IAC5B/5I,EAAMuqF,OAAU,WAChBvqF,EAAMsvE,KAAU,QAEhBtvE,EAAgBhX,EAAMpG,KAAK,OAAQ,GAAI,IACjCyc,QAAUrW,EAAM2uJ,GAAGzC,kBAAkB38G,IAE3Cv4B,EAAgBhX,EAAMpG,KAAK,aAAc,KAAM,IACzC2nG,OAAU,WAChBvqF,EAAMsvE,KAAU,QAGlBtmF,EAAMoR,KAAOunJ,EAAU,GAAGnmK,QACnB,MAGLimK,EAAS7iK,KAAKosH,KAGhBzyE,GAFAqpH,EAAa52C,EAAK7sH,MAAMsjK,IAEP,GAAGviK,MAAM,GAAI,GAC9B66J,EAAU/wJ,EAAM2uJ,GAAG1C,cAAc,UAAY18G,KACxCvvC,EAAM2uJ,GAAG5C,aAAagF,KAEtB/1G,KACHhkC,EAAgBhX,EAAMpG,KAAK,YAAa,IAAK,IACvC2N,MAAU,CAAE,CAAE,OAAQwpJ,IAC5B/5I,EAAMuqF,OAAU,WAChBvqF,EAAMsvE,KAAU,QAEhBtvE,EAAgBhX,EAAMpG,KAAK,OAAQ,GAAI,IACjCyc,QAAUrW,EAAM2uJ,GAAGzC,kBAAkB38G,IAE3Cv4B,EAAgBhX,EAAMpG,KAAK,aAAc,KAAM,IACzC2nG,OAAU,WAChBvqF,EAAMsvE,KAAU,QAGlBtmF,EAAMoR,KAAOwnJ,EAAW,GAAGpmK,QACpB,Q,6BC9DX,IAAIs7H,EAAc/2H,EAAQ,MAAqB+2H,YAU/C35H,EAAOT,QAAU,SAAqBsM,EAAOg7C,GAC3C,IAAI9qC,EAAI/a,EAAO+G,EACXkV,EAAMpR,EAAMoR,IAEhB,QAAKpR,EAAM2uJ,GAAG76J,QAAQwiB,OAGtBpa,EAAM8D,EAAMyuJ,SACsB,KAA9BzuJ,EAAMvB,IAAI7D,WAAWwW,IACrBA,EAAM,GAAKlV,OAMJ,MADXgU,EAAKlQ,EAAMvB,IAAI7D,WAAWwW,EAAM,KAErB,KAAPlB,GACO,KAAPA,IAxBN,SAAkBA,GAEhB,IAAI2oJ,EAAU,GAAL3oJ,EACT,OAAQ2oJ,GAAM,IAAiBA,GAAM,IAsBhCC,CAAS5oJ,SAId/a,EAAQ6K,EAAMvB,IAAIvI,MAAMkb,GAAKjc,MAAM24H,MAG9B9yE,IACah7C,EAAMpG,KAAK,cAAe,GAAI,GACxCyc,QAAUrW,EAAMvB,IAAIvI,MAAMkb,EAAKA,EAAMjc,EAAM,GAAG3C,SAEtDwN,EAAMoR,KAAOjc,EAAM,GAAG3C,QACf,Q,6BCzCT,IAAIqd,EAAoB9Y,EAAQ,MAC5BoY,EAAoBpY,EAAQ,KAAmBoY,IAC/CC,EAAoBrY,EAAQ,KAAmBqY,kBAC/CC,EAAoBtY,EAAQ,KAAmBsY,cAG/C0pJ,EAAa,uCACbC,EAAa,4BAGjB7kK,EAAOT,QAAU,SAAgBsM,EAAOg7C,GACtC,IAAQhqC,EAAM7b,EAAOic,EAAMpR,EAAMoR,IAAKlV,EAAM8D,EAAMyuJ,OAElD,GAAkC,KAA9BzuJ,EAAMvB,IAAI7D,WAAWwW,GAAwB,OAAO,EAExD,GAAIA,EAAM,EAAIlV,EAGZ,GAAW,KAFN8D,EAAMvB,IAAI7D,WAAWwW,EAAM,IAI9B,GADAjc,EAAQ6K,EAAMvB,IAAIvI,MAAMkb,GAAKjc,MAAM4jK,GAOjC,OALK/9G,IACHhqC,EAAqC,MAA9B7b,EAAM,GAAG,GAAG6S,cAAwB3N,SAASlF,EAAM,GAAGe,MAAM,GAAI,IAAMmE,SAASlF,EAAM,GAAI,IAChG6K,EAAMisD,SAAW78C,EAAkB4B,GAAQ3B,EAAc2B,GAAQ3B,EAAc,QAEjFrP,EAAMoR,KAAOjc,EAAM,GAAG3C,QACf,OAIT,IADA2C,EAAQ6K,EAAMvB,IAAIvI,MAAMkb,GAAKjc,MAAM6jK,KAE7B7pJ,EAAIU,EAAU1a,EAAM,IAGtB,OAFK6lD,IAAUh7C,EAAMisD,SAAWp8C,EAAS1a,EAAM,KAC/C6K,EAAMoR,KAAOjc,EAAM,GAAG3C,QACf,EAQf,OAFKwoD,IAAUh7C,EAAMisD,SAAW,KAChCjsD,EAAMoR,OACC,I,6BCzCT,SAAS6nJ,EAAkBj5J,EAAOguH,GAChC,IAAIkrC,EAAWC,EAAWC,EAAQC,EAAQC,EAAcC,EACpDC,EAAYC,EACZC,EAAgB,GAChBx9J,EAAM8xH,EAAWx7H,OAErB,IAAK0mK,EAAY,EAAGA,EAAYh9J,EAAKg9J,IASnC,IARAE,EAASprC,EAAWkrC,IAMb1mK,OAAS4mK,EAAO5mK,QAAU,EAE5B4mK,EAAO1qC,MAAZ,CAaA,IATKgrC,EAAc5jK,eAAesjK,EAAOz1I,UACvC+1I,EAAcN,EAAOz1I,QAAU,EAAG,GAAI,GAAI,IAG5C21I,EAAeI,EAAcN,EAAOz1I,QAAQy1I,EAAO5mK,OAAS,GAC5D+mK,GAAmB,EAEnBJ,EAAYD,EAAYE,EAAO7qC,KAAO,EAE/B4qC,EAAYG,EAAcH,GAAaE,EAAO9qC,KAAO,EAG1D,IAFA8qC,EAASrrC,EAAWmrC,IAETx1I,SAAWy1I,EAAOz1I,UAEJ,IAArB41I,IAAwBA,EAAkBJ,GAE1CE,EAAO7qC,MACP6qC,EAAO3iJ,IAAM,GACb2iJ,EAAO7iJ,QAAU4iJ,EAAO5iJ,QAE1BgjJ,GAAa,GASTH,EAAO3qC,OAAS0qC,EAAO5qC,QACpB6qC,EAAO7mK,OAAS4mK,EAAO5mK,QAAU,GAAM,IACtC6mK,EAAO7mK,OAAS,GAAM,GAAK4mK,EAAO5mK,OAAS,GAAM,IACnDgnK,GAAa,KAKdA,IAAY,CAKfC,EAAWN,EAAY,IAAMnrC,EAAWmrC,EAAY,GAAG3qC,KACrDR,EAAWmrC,EAAY,GAAG5qC,KAAO,EACjC,EAEF6qC,EAAO7qC,KAAQ2qC,EAAYC,EAAYM,EACvCL,EAAO5qC,MAAQ,EACf6qC,EAAO3iJ,IAAQwiJ,EACfG,EAAO9qC,KAAQkrC,EACfJ,EAAO3qC,OAAQ,EACf6qC,GAAmB,EACnB,OAKmB,IAArBA,IAQFG,EAAcN,EAAOz1I,SAASy1I,EAAO5mK,QAAU,GAAK,GAAK+mK,IAM/DplK,EAAOT,QAAU,SAAoBsM,GACnC,IAAI4uH,EACAC,EAAc7uH,EAAM6uH,YACpB3yH,EAAM8D,EAAM6uH,YAAYr8H,OAI5B,IAFAymK,EAAkBj5J,EAAOA,EAAMguH,YAE1BY,EAAO,EAAGA,EAAO1yH,EAAK0yH,IACrBC,EAAYD,IAASC,EAAYD,GAAMZ,YACzCirC,EAAkBj5J,EAAO6uH,EAAYD,GAAMZ,c,6BC7FjD75H,EAAOT,QAAU,SAAuBsM,GACtC,IAAI4uH,EAAM34B,EACNz/E,EAAQ,EACRm6D,EAAS3wE,EAAM2wE,OACfz0E,EAAM8D,EAAM2wE,OAAOn+E,OAEvB,IAAKo8H,EAAO34B,EAAO,EAAG24B,EAAO1yH,EAAK0yH,IAG5Bj+C,EAAOi+C,GAAMttB,QAAU,GAAG9qF,IAC9Bm6D,EAAOi+C,GAAMp4G,MAAQA,EACjBm6D,EAAOi+C,GAAMttB,QAAU,GAAG9qF,IAEJ,SAAtBm6D,EAAOi+C,GAAM1tH,MACb0tH,EAAO,EAAI1yH,GACe,SAA1By0E,EAAOi+C,EAAO,GAAG1tH,KAGnByvE,EAAOi+C,EAAO,GAAGv4G,QAAUs6D,EAAOi+C,GAAMv4G,QAAUs6D,EAAOi+C,EAAO,GAAGv4G,SAE/Du4G,IAAS34B,IAAQtlB,EAAOslB,GAAQtlB,EAAOi+C,IAE3C34B,KAIA24B,IAAS34B,IACXtlB,EAAOn+E,OAASyjG,K,6BCjCpB,IAAIoL,EAAiBtqG,EAAQ,KACzBwa,EAAiBxa,EAAQ,KAAmBwa,aAC5CE,EAAiB1a,EAAQ,KAAmB0a,YAC5CD,EAAiBza,EAAQ,KAAmBya,eAGhD,SAASmoJ,EAAYl7J,EAAKkwJ,EAAIzqI,EAAKwvI,GACjC17J,KAAKyG,IAAMA,EACXzG,KAAKksB,IAAMA,EACXlsB,KAAK22J,GAAKA,EACV32J,KAAK24E,OAAS+iF,EACd17J,KAAK62H,YAAcpnH,MAAMisJ,EAAUlhK,QAEnCwF,KAAKoZ,IAAM,EACXpZ,KAAKy2J,OAASz2J,KAAKyG,IAAIjM,OACvBwF,KAAKwe,MAAQ,EACbxe,KAAKi0D,QAAU,GACfj0D,KAAK4hK,aAAe,EAIpB5hK,KAAK+lI,MAAQ,GAGb/lI,KAAKg2H,WAAa,GAGlBh2H,KAAK6hK,iBAAmB,GAM1BF,EAAY5mK,UAAUklK,YAAc,WAClC,IAAIjhJ,EAAQ,IAAIqqF,EAAM,OAAQ,GAAI,GAKlC,OAJArqF,EAAMX,QAAUre,KAAKi0D,QACrBj1C,EAAMR,MAAQxe,KAAK4hK,aACnB5hK,KAAK24E,OAAO/2E,KAAKod,GACjBhf,KAAKi0D,QAAU,GACRj1C,GAOT2iJ,EAAY5mK,UAAU6G,KAAO,SAAUsH,EAAM6T,EAAKusF,GAC5CtpG,KAAKi0D,SACPj0D,KAAKigK,cAGP,IAAIjhJ,EAAQ,IAAIqqF,EAAMngG,EAAM6T,EAAKusF,GAC7Bw4D,EAAa,KAqBjB,OAnBIx4D,EAAU,IAEZtpG,KAAKwe,QACLxe,KAAKg2H,WAAah2H,KAAK6hK,iBAAiB/1J,OAG1CkT,EAAMR,MAAQxe,KAAKwe,MAEf8qF,EAAU,IAEZtpG,KAAKwe,QACLxe,KAAK6hK,iBAAiBjgK,KAAK5B,KAAKg2H,YAChCh2H,KAAKg2H,WAAa,GAClB8rC,EAAa,CAAE9rC,WAAYh2H,KAAKg2H,aAGlCh2H,KAAK4hK,aAAe5hK,KAAKwe,MACzBxe,KAAK24E,OAAO/2E,KAAKod,GACjBhf,KAAK62H,YAAYj1H,KAAKkgK,GACf9iJ,GAUT2iJ,EAAY5mK,UAAUu7H,WAAa,SAAUz3G,EAAOkjJ,GAClD,IAAiBziG,EAAUxgD,EAAU1U,EAAOqsH,EAAUE,EAClD4jC,EAAkBF,EAClBG,EAAkBF,EAFlBlhJ,EAAMyF,EAGNmjJ,GAAgB,EAChBC,GAAiB,EACjB/9J,EAAMlE,KAAKy2J,OACX9qI,EAAS3rB,KAAKyG,IAAI7D,WAAWic,GAKjC,IAFAygD,EAAWzgD,EAAQ,EAAI7e,KAAKyG,IAAI7D,WAAWic,EAAQ,GAAK,GAEjDzF,EAAMlV,GAAOlE,KAAKyG,IAAI7D,WAAWwW,KAASuS,GAAUvS,IAqC3D,OAnCAhP,EAAQgP,EAAMyF,EAGdC,EAAW1F,EAAMlV,EAAMlE,KAAKyG,IAAI7D,WAAWwW,GAAO,GAElDihJ,EAAkB7gJ,EAAe8lD,IAAa7lD,EAAYzd,OAAOyG,aAAa68D,IAC9Eg7F,EAAkB9gJ,EAAesF,IAAarF,EAAYzd,OAAOyG,aAAaqc,IAE9Ey7I,EAAmBhhJ,EAAa+lD,IAChCk7F,EAAmBjhJ,EAAauF,IAG9BkjJ,GAAgB,EACP1H,IACHC,GAAoBF,IACxB2H,GAAgB,IAIhBzH,EACF0H,GAAiB,EACR5H,IACHG,GAAoBF,IACxB2H,GAAiB,IAIhBF,GAIHtrC,EAAYurC,EACZrrC,EAAYsrC,IAJZxrC,EAAYurC,KAAoBC,GAAkB5H,GAClD1jC,EAAYsrC,KAAoBD,GAAkB1H,IAM7C,CACL7jC,SAAWA,EACXE,UAAWA,EACXn8H,OAAW4P,IAMfu3J,EAAY5mK,UAAUsuG,MAAQA,EAG9BltG,EAAOT,QAAUimK,G,6BC7IjB,SAASp6J,EAAO/H,GACd,IAAI+Y,EAAU9I,MAAM1U,UAAUmD,MAAMjD,KAAKL,UAAW,GAUpD,OARA2d,EAAQpO,SAAQ,SAAUwN,GACnBA,GAEL7c,OAAO0d,KAAKb,GAAQxN,SAAQ,SAAU1M,GACpC+B,EAAI/B,GAAOka,EAAOla,SAIf+B,EAGT,SAASkZ,EAAOlZ,GAAO,OAAO1E,OAAOC,UAAUC,SAASC,KAAKuE,GAI7D,SAASq0E,EAAWr0E,GAAO,MAAuB,sBAAhBkZ,EAAOlZ,GAGzC,SAASka,EAASd,GAAO,OAAOA,EAAI7I,QAAQ,uBAAwB,QAKpE,IAAImQ,EAAiB,CACnBgiJ,WAAW,EACXC,YAAY,EACZC,SAAS,GAWX,IAAIC,EAAiB,CACnB,QAAS,CACPvrF,SAAU,SAAUp2D,EAAMtH,EAAKza,GAC7B,IAAIqrH,EAAOtpG,EAAKxiB,MAAMkb,GAQtB,OANKza,EAAK6uC,GAAG80H,OAEX3jK,EAAK6uC,GAAG80H,KAAQ,IAAI5qJ,OAClB,UAAY/Y,EAAK6uC,GAAG+0H,SAAW5jK,EAAK6uC,GAAGg1H,qBAAuB7jK,EAAK6uC,GAAGi1H,SAAU,MAGhF9jK,EAAK6uC,GAAG80H,KAAK1kK,KAAKosH,GACbA,EAAK7sH,MAAMwB,EAAK6uC,GAAG80H,MAAM,GAAG9nK,OAE9B,IAGX,SAAW,QACX,OAAW,QACX,KAAW,CACTs8E,SAAU,SAAUp2D,EAAMtH,EAAKza,GAC7B,IAAIqrH,EAAOtpG,EAAKxiB,MAAMkb,GAkBtB,OAhBKza,EAAK6uC,GAAGk1H,UAEX/jK,EAAK6uC,GAAGk1H,QAAW,IAAIhrJ,OACrB,IACA/Y,EAAK6uC,GAAG+0H,SAGR,sBAAwB5jK,EAAK6uC,GAAGm1H,WAAa,SAAWhkK,EAAK6uC,GAAGo1H,gBAAkB,IAClFjkK,EAAK6uC,GAAGq1H,SACRlkK,EAAK6uC,GAAGs1H,oBACRnkK,EAAK6uC,GAAGi1H,SAER,MAIA9jK,EAAK6uC,GAAGk1H,QAAQ9kK,KAAKosH,GAEnB5wG,GAAO,GAAuB,MAAlBsH,EAAKtH,EAAM,IACvBA,GAAO,GAAuB,MAAlBsH,EAAKtH,EAAM,GADqB,EAEzC4wG,EAAK7sH,MAAMwB,EAAK6uC,GAAGk1H,SAAS,GAAGloK,OAEjC,IAGX,UAAW,CACTs8E,SAAU,SAAUp2D,EAAMtH,EAAKza,GAC7B,IAAIqrH,EAAOtpG,EAAKxiB,MAAMkb,GAOtB,OALKza,EAAK6uC,GAAGu1H,SACXpkK,EAAK6uC,GAAGu1H,OAAU,IAAIrrJ,OACpB,IAAM/Y,EAAK6uC,GAAGw1H,eAAiB,IAAMrkK,EAAK6uC,GAAGy1H,gBAAiB,MAG9DtkK,EAAK6uC,GAAGu1H,OAAOnlK,KAAKosH,GACfA,EAAK7sH,MAAMwB,EAAK6uC,GAAGu1H,QAAQ,GAAGvoK,OAEhC,KAWT0oK,EAAe,8EAA8ErlJ,MAAM,KA8BvG,SAASslJ,EAAQxkK,GAGf,IAAI6uC,EAAK7uC,EAAK6uC,GAAKzuC,EAAQ,KAARA,CAAoBJ,EAAKykK,UAGxCC,EAAO1kK,EAAK2kK,SAASplK,QAWzB,SAASqlK,EAAMC,GAAO,OAAOA,EAAIzzJ,QAAQ,SAAUy9B,EAAGi2H,UATtD9kK,EAAK+kK,YAEA/kK,EAAKglK,mBACRN,EAAKzhK,KA5Ca,2VA8CpByhK,EAAKzhK,KAAK4rC,EAAGo2H,QAEbp2H,EAAGi2H,SAAWJ,EAAKphK,KAAK,KAIxBurC,EAAGq2H,YAAmBnsJ,OAAO6rJ,EAAM/1H,EAAGs2H,iBAAkB,KACxDt2H,EAAGu2H,WAAmBrsJ,OAAO6rJ,EAAM/1H,EAAGw2H,gBAAiB,KACvDx2H,EAAGy2H,iBAAmBvsJ,OAAO6rJ,EAAM/1H,EAAG02H,sBAAuB,KAC7D12H,EAAG22H,gBAAmBzsJ,OAAO6rJ,EAAM/1H,EAAG42H,qBAAsB,KAM5D,IAAInV,EAAU,GAId,SAASoV,EAAYv7J,EAAMylB,GACzB,MAAM,IAAIjzB,MAAM,+BAAiCwN,EAAO,MAAQylB,GAHlE5vB,EAAK2lK,aAAe,GAMpBxpK,OAAO0d,KAAK7Z,EAAK4lK,aAAap6J,SAAQ,SAAUrB,GAC9C,IAAIylB,EAAM5vB,EAAK4lK,YAAYz7J,GAG3B,GAAY,OAARylB,EAAJ,CAEA,IAAIi2I,EAAW,CAAE1tF,SAAU,KAAM2tF,KAAM,MAIvC,GAFA9lK,EAAK2lK,aAAax7J,GAAQ07J,EAzKkB,oBAAhB9rJ,EA2Kf6V,GAiBX,OA3LN,SAAkB/uB,GAAO,MAAuB,oBAAhBkZ,EAAOlZ,GA2K7Bi0E,CAASllD,EAAIuoD,UAENjD,EAAWtlD,EAAIuoD,UACxB0tF,EAAS1tF,SAAWvoD,EAAIuoD,SAExButF,EAAYv7J,EAAMylB,GAJlBi2I,EAAS1tF,SAnEjB,SAAyBtpC,GACvB,OAAO,SAAU9sB,EAAMtH,GACrB,IAAI4wG,EAAOtpG,EAAKxiB,MAAMkb,GAEtB,OAAIo0B,EAAG5vC,KAAKosH,GACHA,EAAK7sH,MAAMqwC,GAAI,GAAGhzC,OAEpB,GA4DiBkqK,CAAgBn2I,EAAIuoD,eAOtCjD,EAAWtlD,EAAIi2H,WACjBggB,EAAShgB,UAAYj2H,EAAIi2H,UACfj2H,EAAIi2H,UAGd6f,EAAYv7J,EAAMylB,GAFlBi2I,EAAShgB,UAjER,SAAUrnJ,EAAOwB,GACtBA,EAAK6lJ,UAAUrnJ,MAxHnB,SAAkBqC,GAAO,MAAuB,oBAAhBkZ,EAAOlZ,GAgM/BiZ,CAAS8V,GAKb81I,EAAYv7J,EAAMylB,GAJhB0gI,EAAQrtJ,KAAKkH,OAWjBmmJ,EAAQ9kJ,SAAQ,SAAUw6J,GACnBhmK,EAAK2lK,aAAa3lK,EAAK4lK,YAAYI,MAMxChmK,EAAK2lK,aAAaK,GAAO7tF,SACvBn4E,EAAK2lK,aAAa3lK,EAAK4lK,YAAYI,IAAQ7tF,SAC7Cn4E,EAAK2lK,aAAaK,GAAOngB,UACvB7lJ,EAAK2lK,aAAa3lK,EAAK4lK,YAAYI,IAAQngB,cAM/C7lJ,EAAK2lK,aAAa,IAAM,CAAExtF,SAAU,KAAM0tE,UArGnC,SAAUrnJ,EAAOwB,GACtBA,EAAK6lJ,UAAUrnJ,KAyGjB,IAAIynK,EAAQ9pK,OAAO0d,KAAK7Z,EAAK2lK,cACR9nJ,QAAO,SAAU1T,GAEhB,OAAOA,EAAKtO,OAAS,GAAKmE,EAAK2lK,aAAax7J,MAE7CoB,IAAIwP,GACJzX,KAAK,KAE1BtD,EAAK6uC,GAAGq3H,YAAgBntJ,OAAO,oBAA2B81B,EAAGs3H,SAAW,MAAQF,EAAQ,IAAK,KAC7FjmK,EAAK6uC,GAAGu3H,cAAgBrtJ,OAAO,oBAA2B81B,EAAGs3H,SAAW,MAAQF,EAAQ,IAAK,MAE7FjmK,EAAK6uC,GAAG2rH,QAAUzhJ,OAChB,IAAM/Y,EAAK6uC,GAAGq3H,YAAYltJ,OAAS,MAAQhZ,EAAK6uC,GAAG22H,gBAAgBxsJ,OAAS,MAC5E,KAxIJ,SAAwBhZ,GACtBA,EAAKqmK,WAAa,EAClBrmK,EAAKsmK,eAAmB,GA6IxBC,CAAevmK,GAQjB,SAASwmK,EAAMxmK,EAAMyxC,GACnB,IAAIvxB,EAAQlgB,EAAKqmK,UACbtmJ,EAAQ/f,EAAKymK,eACb1kJ,EAAQ/hB,EAAKsmK,eAAe/mK,MAAM2gB,EAAOH,GAO7C1e,KAAK+8G,OAAYp+G,EAAK0mK,WAAWr1J,cAMjChQ,KAAKgK,MAAY6U,EAAQuxB,EAMzBpwC,KAAK8d,UAAYY,EAAM0xB,EAMvBpwC,KAAKm1E,IAAYz0D,EAMjB1gB,KAAK0gB,KAAYA,EAMjB1gB,KAAKu3C,IAAY72B,EAGnB,SAAS4kJ,EAAY3mK,EAAMyxC,GACzB,IAAIjzC,EAAQ,IAAIgoK,EAAMxmK,EAAMyxC,GAI5B,OAFAzxC,EAAK2lK,aAAannK,EAAM4/G,QAAQynC,UAAUrnJ,EAAOwB,GAE1CxB,EA0CT,SAASw2J,EAAU4R,EAASzpK,GAC1B,KAAMkE,gBAAgB2zJ,GACpB,OAAO,IAAIA,EAAU4R,EAASzpK,GAvUlC,IAAsB0D,EA0Uf1D,IA1Ue0D,EA2UD+lK,EA1UZzqK,OAAO0d,KAAKhZ,GAAO,IAAIsK,QAAO,SAAUC,EAAKyd,GAClD,OAAOzd,GAAOmW,EAAepiB,eAAe0pB,MAC3C,KAyUC1rB,EAAUypK,EACVA,EAAU,KAIdvlK,KAAKojK,SAAqB77J,EAAO,GAAI2Y,EAAgBpkB,GAGrDkE,KAAKglK,WAAsB,EAC3BhlK,KAAKolK,gBAAsB,EAC3BplK,KAAKqlK,WAAqB,GAC1BrlK,KAAKilK,eAAqB,GAE1BjlK,KAAKukK,YAAqBh9J,EAAO,GAAI86J,EAAgBkD,GACrDvlK,KAAKskK,aAAqB,GAE1BtkK,KAAKsjK,SAAqBJ,EAC1BljK,KAAK2jK,mBAAqB,EAE1B3jK,KAAKwtC,GAAK,GAEV21H,EAAQnjK,MAWV2zJ,EAAU54J,UAAU+rC,IAAM,SAAai2E,EAAQyoD,GAG7C,OAFAxlK,KAAKukK,YAAYxnD,GAAUyoD,EAC3BrC,EAAQnjK,MACDA,MAUT2zJ,EAAU54J,UAAU8R,IAAM,SAAa/Q,GAErC,OADAkE,KAAKojK,SAAW77J,EAAOvH,KAAKojK,SAAUtnK,GAC/BkE,MAST2zJ,EAAU54J,UAAU6C,KAAO,SAAc8iB,GAKvC,GAHA1gB,KAAKilK,eAAiBvkJ,EACtB1gB,KAAKglK,WAAkB,GAElBtkJ,EAAKlmB,OAAU,OAAO,EAE3B,IAAI6kB,EAAGomJ,EAAIjoC,EAAI/xG,EAAK2kB,EAAO2F,EAAMvI,EAAIk4H,EAGrC,GAAI1lK,KAAKwtC,GAAGq3H,YAAYjnK,KAAK8iB,GAG3B,KAFA8sB,EAAKxtC,KAAKwtC,GAAGu3H,eACVjnJ,UAAY,EACgB,QAAvBuB,EAAImuB,EAAG9vB,KAAKgD,KAElB,GADA+K,EAAMzrB,KAAK2lK,aAAajlJ,EAAMrB,EAAE,GAAImuB,EAAG1vB,WAC9B,CACP9d,KAAKqlK,WAAiBhmJ,EAAE,GACxBrf,KAAKglK,UAAiB3lJ,EAAErV,MAAQqV,EAAE,GAAG7kB,OACrCwF,KAAKolK,eAAiB/lJ,EAAErV,MAAQqV,EAAE,GAAG7kB,OAASixB,EAC9C,MA8CN,OAzCIzrB,KAAKojK,SAASlB,WAAaliK,KAAKskK,aAAa,WAE/CoB,EAAUhlJ,EAAKm4B,OAAO74C,KAAKwtC,GAAG22H,mBACf,IAETnkK,KAAKglK,UAAY,GAAKU,EAAU1lK,KAAKglK,YAC0D,QAA5FS,EAAK/kJ,EAAKvjB,MAAM6C,KAAKojK,SAAShB,QAAUpiK,KAAKwtC,GAAGu2H,WAAa/jK,KAAKwtC,GAAGy2H,qBAExE7zH,EAAQq1H,EAAGz7J,MAAQy7J,EAAG,GAAGjrK,QAErBwF,KAAKglK,UAAY,GAAK50H,EAAQpwC,KAAKglK,aACrChlK,KAAKqlK,WAAiB,GACtBrlK,KAAKglK,UAAiB50H,EACtBpwC,KAAKolK,eAAiBK,EAAGz7J,MAAQy7J,EAAG,GAAGjrK,SAO7CwF,KAAKojK,SAASjB,YAAcniK,KAAKskK,aAAa,YAEvC5jJ,EAAK9Q,QAAQ,MACR,GAGmC,QAA1C4tH,EAAK98G,EAAKvjB,MAAM6C,KAAKwtC,GAAGq2H,gBAE3BzzH,EAAQotF,EAAGxzH,MAAQwzH,EAAG,GAAGhjI,OACzBu7C,EAAQynF,EAAGxzH,MAAQwzH,EAAG,GAAGhjI,QAErBwF,KAAKglK,UAAY,GAAK50H,EAAQpwC,KAAKglK,WAClC50H,IAAUpwC,KAAKglK,WAAajvH,EAAO/1C,KAAKolK,kBAC3CplK,KAAKqlK,WAAiB,UACtBrlK,KAAKglK,UAAiB50H,EACtBpwC,KAAKolK,eAAiBrvH,IAMvB/1C,KAAKglK,WAAa,GAW3BrR,EAAU54J,UAAUo+J,QAAU,SAAiBz4I,GAC7C,OAAO1gB,KAAKwtC,GAAG2rH,QAAQv7J,KAAK8iB,IAa9BizI,EAAU54J,UAAU4qK,aAAe,SAAsBjlJ,EAAMq8F,EAAQ3jG,GAErE,OAAKpZ,KAAKskK,aAAavnD,EAAO/sG,eAGvBhQ,KAAKskK,aAAavnD,EAAO/sG,eAAe8mE,SAASp2D,EAAMtH,EAAKpZ,MAF1D,GAsBX2zJ,EAAU54J,UAAUoC,MAAQ,SAAeujB,GACzC,IAAI0vB,EAAQ,EAAG3yB,EAAS,GAGpBzd,KAAKglK,WAAa,GAAKhlK,KAAKilK,iBAAmBvkJ,IACjDjD,EAAO7b,KAAK0jK,EAAYtlK,KAAMowC,IAC9BA,EAAQpwC,KAAKolK,gBAOf,IAHA,IAAIp7C,EAAO55E,EAAQ1vB,EAAKxiB,MAAMkyC,GAAS1vB,EAGhC1gB,KAAKpC,KAAKosH,IACfvsG,EAAO7b,KAAK0jK,EAAYtlK,KAAMowC,IAE9B45E,EAAOA,EAAK9rH,MAAM8B,KAAKolK,gBACvBh1H,GAASpwC,KAAKolK,eAGhB,OAAI3nJ,EAAOjjB,OACFijB,EAGF,MAmBTk2I,EAAU54J,UAAUsoK,KAAO,SAAcn3J,EAAM05J,GAG7C,OAFA15J,EAAOuD,MAAMC,QAAQxD,GAAQA,EAAO,CAAEA,GAEjC05J,GAOL5lK,KAAKsjK,SAAWtjK,KAAKsjK,SAASviK,OAAOmL,GACJ8uC,OACAx+B,QAAO,SAAU8jB,EAAIyuB,EAAKnxC,GACzB,OAAO0iB,IAAO1iB,EAAImxC,EAAM,MAEzBniD,UAEjCu2J,EAAQnjK,MACDA,OAdLA,KAAKsjK,SAAWp3J,EAAKhO,QACrB8B,KAAK2jK,mBAAoB,EACzBR,EAAQnjK,MACDA,OAmBX2zJ,EAAU54J,UAAUypJ,UAAY,SAAmBrnJ,GAK5CA,EAAM4/G,SAAU5/G,EAAMo6C,IAAM,UAAYp6C,EAAMo6C,KAE9B,YAAjBp6C,EAAM4/G,QAAyB,YAAYn/G,KAAKT,EAAMo6C,OACxDp6C,EAAMo6C,IAAM,UAAYp6C,EAAMo6C,MAUlCo8G,EAAU54J,UAAU2oK,UAAY,aAIhCvnK,EAAOT,QAAUi4J,G,6BCxnBjBx3J,EAAOT,QAAU,SAAUipB,GACzB,IAAI6oB,EAAK,GAGTA,EAAGq4H,QAAU9mK,EAAQ,MAAiC4Y,OACtD61B,EAAGs4H,OAAU/mK,EAAQ,MAAgC4Y,OACrD61B,EAAGu4H,MAAUhnK,EAAQ,MAA+B4Y,OACpD61B,EAAGw4H,MAAUjnK,EAAQ,KAA+B4Y,OAGpD61B,EAAGs3H,SAAW,CAAEt3H,EAAGu4H,MAAOv4H,EAAGw4H,MAAOx4H,EAAGs4H,QAAS7jK,KAAK,KAGrDurC,EAAGy4H,QAAU,CAAEz4H,EAAGu4H,MAAOv4H,EAAGs4H,QAAS7jK,KAAK,KAkK1C,OAzJAurC,EAAG04H,kBAA0B,eAAmC14H,EAAGs3H,SAAW,IAAMt3H,EAAGq4H,QAAU,IAMjGr4H,EAAG24H,QAED,yFAGF34H,EAAG+0H,SAAc,YAAc/0H,EAAGy4H,QAAU,uBAE5Cz4H,EAAGq1H,SAED,kFAEFr1H,EAAGs1H,oBAED,cAAkCt1H,EAAGs3H,SAAW,6BAA+Bt3H,EAAGs3H,SAAW,KAE/Ft3H,EAAGi1H,SAED,iBAGcj1H,EAAGy4H,QAHjB,0CAIoBz4H,EAAGy4H,QAJvB,wBAKoBz4H,EAAGy4H,QALvB,wBAMoBz4H,EAAGy4H,QANvB,wBAOoBz4H,EAAGy4H,QAPvB,yBAQoBz4H,EAAGy4H,QARvB,qBASiBz4H,EAAG04H,kBATpB,sCAkBiB14H,EAAGy4H,QAAU,WACvBthJ,GAAQA,EAAK,OACZ,6BAEA,SAEF,SAAW6oB,EAAGy4H,QAxBpB,aAyBkBz4H,EAAGy4H,QAzBrB,gBA0BiBz4H,EAAGy4H,QA1BpB,iBAiCFz4H,EAAGw1H,eAED,iEAEFx1H,EAAGo2H,OAED,wBAKFp2H,EAAGo1H,gBAGD,MACEp1H,EAAGo2H,OACH,IACAp2H,EAAG04H,kBAHL,UAMF14H,EAAGm1H,WAED,MACEn1H,EAAGo2H,OADL,OAGUp2H,EAAG04H,kBAHb,QAKU14H,EAAG04H,kBAAoB,QAAU14H,EAAG04H,kBAAoB,UAAY14H,EAAG04H,kBALjF,KAQF14H,EAAG44H,SAED,eAIgB54H,EAAGm1H,WAAa,SAAWn1H,EAAGm1H,WAJ9C,KAOFn1H,EAAG64H,eAED,MACE74H,EAAG24H,QADL,aAGgB34H,EAAGm1H,WAHnB,qBAMFn1H,EAAG84H,qBAED,YAAc94H,EAAGm1H,WAAa,oBAEhCn1H,EAAGy1H,gBAEDz1H,EAAG44H,SAAW54H,EAAGs1H,oBAEnBt1H,EAAG+4H,sBAED/4H,EAAG64H,eAAiB74H,EAAGs1H,oBAEzBt1H,EAAGg1H,qBAEDh1H,EAAG44H,SAAW54H,EAAGq1H,SAAWr1H,EAAGs1H,oBAEjCt1H,EAAGg5H,2BAEDh5H,EAAG64H,eAAiB74H,EAAGq1H,SAAWr1H,EAAGs1H,oBAEvCt1H,EAAGi5H,iCAEDj5H,EAAG84H,qBAAuB94H,EAAGq1H,SAAWr1H,EAAGs1H,oBAO7Ct1H,EAAG42H,oBAED,sDAAwD52H,EAAGs3H,SAAW,SAExEt3H,EAAGs2H,gBAEC,kBAAsCt2H,EAAGy4H,QAAzC,KACMz4H,EAAGw1H,eAAiB,IAAMx1H,EAAG+4H,sBAAwB,IAE/D/4H,EAAGw2H,eAGC,mCAA0Cx2H,EAAGs3H,SAA7C,qBAC0Bt3H,EAAGg5H,2BAA6Bh5H,EAAGi1H,SAAW,IAE5Ej1H,EAAG02H,qBAGC,mCAA0C12H,EAAGs3H,SAA7C,qBAC0Bt3H,EAAGi5H,iCAAmCj5H,EAAGi1H,SAAW,IAE3Ej1H,I,6BC7KTrxC,EAAOT,QAAU,CACfI,QAAS,CACPwiB,MAAc,EACdu5I,UAAc,EACdE,QAAc,EACdN,WAAc,YACdhD,SAAc,EAGdsF,aAAc,EAOdiB,OAAQ,OAQRxD,UAAW,KAEX6D,WAAc,KAGhB98I,WAAY,CAEVg2I,KAAM,GACNv/I,MAAO,GACPs/I,OAAQ,M,6BChCZn4J,EAAOT,QAAU,CACfI,QAAS,CACPwiB,MAAc,EACdu5I,UAAc,EACdE,QAAc,EACdN,WAAc,YACdhD,SAAc,EAGdsF,aAAc,EAOdiB,OAAQ,OAQRxD,UAAW,KAEX6D,WAAc,IAGhB98I,WAAY,CAEVg2I,KAAM,CACJ1mG,MAAO,CACL,YACA,QACA,WAIJ74C,MAAO,CACL64C,MAAO,CACL,cAIJymG,OAAQ,CACNzmG,MAAO,CACL,QAEFgnG,OAAQ,CACN,gBACA,qB,6BCpDR14J,EAAOT,QAAU,CACfI,QAAS,CACPwiB,MAAc,EACdu5I,UAAc,EACdE,QAAc,EACdN,WAAc,YACdhD,SAAc,EAGdsF,aAAc,EAOdiB,OAAQ,OAQRxD,UAAW,KAEX6D,WAAc,IAGhB98I,WAAY,CAEVg2I,KAAM,CACJ1mG,MAAO,CACL,YACA,QACA,WAIJ74C,MAAO,CACL64C,MAAO,CACL,aACA,OACA,QACA,UACA,KACA,aACA,WACA,OACA,YACA,cAIJymG,OAAQ,CACNzmG,MAAO,CACL,WACA,YACA,WACA,SACA,SACA,cACA,QACA,OACA,UACA,QAEFgnG,OAAQ,CACN,gBACA,WACA,qB,sVC3EJ6R,EAAU,CACZ59J,KAAM,IACN69J,QAAS,IACTC,cAAe,IACfC,cAAe,IACfC,eAAgB,IAChBC,gBAAiB,IACjBC,iBAAkB,IAClBC,SAAU,IACVC,MAAO,IACPC,UAAW,IACXzmJ,KAAM,IACN0mJ,YAAa,IACbC,SAAU,KAGRC,EAAc,SAAqBC,GACrC,IAAI1uH,EAAS,GAET2uH,EAAc,SAAqBC,EAAS5pJ,GACzC4pJ,IAKJh4J,MAAMC,QAAQ+3J,GAAWA,EAAU,CAACA,IAAUt9J,SAAQ,SAAUrN,IAE9D+gB,EAAQ/gB,EAAO+gB,MAAM,aAAe,CAAC/gB,IAASqN,SAAQ,SAAU6vB,GAC/DA,EAAIA,EAAEhqB,eAEoB,GAAtB6oC,EAAOjpC,QAAQoqB,IACjB6e,EAAOj3C,KAAKo4B,UAUpB,OAJAwtI,EAAYD,EAAMH,aAAa,GAC/BI,EAAYD,EAAMz+J,MAAM,GACxB0+J,EAAYD,EAAMN,UAAU,GAC5BO,EAAYD,EAAMJ,WAAW,GACtBtuH,EAAO52C,KAAK,MAmCjBylK,EAAa,SAAoBjkK,GAGnC,IAAK,IAAIuwH,KAFTvwH,EAAKkkK,YAAa,EAEHlkK,EAAKmkK,OAAQ,CAC1B,IAAIL,EAAQ9jK,EAAKmkK,OAAO5zC,GAExB,IAAK,IAAIv2H,KAAOipK,EACda,EAAM9pK,GAAO8pK,EAAMb,EAAQjpK,WACpB8pK,EAAMb,EAAQjpK,IAGlB8pK,EAAMH,cAAaG,EAAMH,YAAc,IAC5CG,EAAMH,YAAYpqG,QAAQg3D,GAC1BuzC,EAAMM,QAAUN,EAAML,MAAM,GAC5BK,EAAMO,QAAUP,EAAML,MAAM,UACrBK,EAAML,MACRK,EAAM7mJ,OAAM6mJ,EAAM7mJ,KAAO,IACzB6mJ,EAAMF,WAAUE,EAAMF,SAAW,GACtCE,EAAMF,SAAWE,EAAMF,SAASU,QAAQ,GACxCR,EAAM1uH,OAASyuH,EAAYC,KC9FhBS,EADDhsK,OACSqb,eAAiB,WACtC,IAEI4wJ,EACAC,EAHAC,EAAW,MACXC,EAAY,GAGZp+J,GAAS,EACTxP,EAASI,UAAUJ,OAEvB,IAAKA,EACH,MAAO,GAKT,IAFA,IAAIijB,EAAS,KAEJzT,EAAQxP,GAAQ,CACvB,IAAI82B,EAAY3rB,OAAO/K,UAAUoP,IAEjC,IAAK+oB,SAASzB,IACdA,EAAY,GACZA,EAAY,SACZ/yB,KAAKsH,MAAMyrB,IAAcA,EAErB,MAAM9D,WAAW,uBAAyB8D,GAG1CA,GAAa,MAEf82I,EAAUxmK,KAAK0vB,IAKf22I,EAAoC,QADpC32I,GAAa,QACiB,IAC9B42I,EAAe52I,EAAY,KAAQ,MACnC82I,EAAUxmK,KAAKqmK,EAAeC,KAG5Bl+J,EAAQ,IAAMxP,GAAU4tK,EAAU5tK,OAAS2tK,KAC7C1qJ,GAAUzhB,OAAOyG,aAAarC,MAAM,KAAMgoK,GAC1CA,EAAU5tK,OAAS,GAIvB,OAAOijB,GCxCL4qJ,EAAe,4CACfC,EAAQ,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,SAE1D,SAASC,EAAgB5B,GACvB,IACIn1I,EADWm1I,EAAQ9oJ,MAAM,KACH3T,KAAI,SAAUssC,GACtC,MAAO,KAAKz1C,OAAOy1C,MAErB,OAAOgyH,EAAoBpoK,MAAM,KAAMoxB,GAGzC,SAASi3I,EAASlB,GAChB,IAAIz+J,EAAOy+J,EAAMz+J,KACbs+J,EAAcG,EAAMH,YACpBsB,EAAYnB,EAAMmB,UAClBC,EAAkBpB,EAAMoB,gBACxBxB,EAAYI,EAAMJ,UAClBR,EAAUY,EAAMZ,QAChBn7B,EAAS+7B,EAAM/7B,OACfo9B,EAAiBrB,EAAMqB,eACvBC,EAAWtB,EAAMsB,SACjB70C,EAAKuzC,EAAMvzC,IAAMozC,EAAY,GAC7B0B,EAAS,IAAI/nK,OAAOizH,EAAI,KAE5B,OAAIwX,EACK,CACLxX,GAAIA,EACJlrH,KAAMA,EACNs+J,YAAaA,EACb0B,OAAQA,EACR3B,UAAWA,EACX37B,OAAQA,EACRo9B,eAAgBA,EAChBC,SAAUA,IAIVH,IACFI,GAAU,cAAc/nK,OAAO2nK,EAAW,MAGrC,CACL10C,GAAIA,EACJlrH,KAAMA,EACNs+J,YAAaA,EACb0B,OAAQA,EACR3B,UAAWA,EACXR,QAASA,EAAQ32J,cACjB+4J,KAAML,IAAcC,EAAkB,EAAI,MAC1C,OAAUJ,EAAgB5B,KAI9B,SAASqC,IACP,OAAOP,EAASnkJ,EAAQlkB,WAAM,EAAQxF,YAGxC,SAAS0pB,EAAQijJ,EAAOwB,EAAMl8J,EAAKpJ,GACjC,IAAIwlK,EAAY,GAEhB,GAAoB,iBAAT1B,EAAmB,CAC5B,IAAI9vH,EAAU8vH,EAAMpqK,MAAMkrK,GAc1B,GAZI5wH,IACF8vH,EAAQ9vH,EAAQ,GAEZA,EAAQ,KACVsxH,EAAO1mK,SAASo1C,EAAQ,GAAI,MAI5Bh0C,EAAKwrJ,QAAQnxJ,eAAeypK,KAC9BA,EAAQ9jK,EAAKwrJ,QAAQsY,KAGnB9jK,EAAKmkK,OAAO9pK,eAAeypK,GAG7B,OAAO,KAFP0B,EAAYxlK,EAAKmkK,OAAOL,QAIjBA,EAAMvzC,KACXvwH,EAAKwrJ,QAAQnxJ,eAAeypK,EAAMvzC,MACpCuzC,EAAMvzC,GAAKvwH,EAAKwrJ,QAAQsY,EAAMvzC,KAG5BvwH,EAAKmkK,OAAO9pK,eAAeypK,EAAMvzC,MACnCi1C,EAAYxlK,EAAKmkK,OAAOL,EAAMvzC,IAC9B+0C,IAASA,EAAOxB,EAAMwB,QAgB1B,GAZKjuK,OAAO0d,KAAKywJ,GAAWzuK,UAC1ByuK,EAAY1B,GACF/7B,QAAS,EAEdy9B,EAAUpwH,SACbowH,EAAUpwH,OAASyuH,EAAYC,KAInC0B,EAAU9B,YAAc8B,EAAU9B,UAAY,IAC9C8B,EAAUC,aAAeD,EAAUC,WAAa,IAE5CD,EAAUN,iBAAmBI,EAAO,EAAG,CACzCE,EAAYv3G,KAAKxvD,MAAMwvD,KAAK5wD,UAAUmoK,IACtC,IAAIE,EAAUb,EAAMS,EAAO,GACvBK,EAAgBH,EAAUN,gBAAgBQ,GAE9C,GAAIC,KACGA,EAAcF,YAAcD,EAAUC,mBAClCD,EAAUC,WAGfr8J,IAAiDrO,MAAzC4qK,EAAc,WAAWroK,OAAO8L,KAAsBu8J,EAAc,WAAWroK,OAAO8L,OAAWA,GAG3G,IAAK,IAAI2a,KAFTyhJ,EAAUP,UAAYK,EAERK,EAAe,CAC3B,IAAI76J,EAAI66J,EAAc5hJ,GACtByhJ,EAAUzhJ,GAAKjZ,GAWvB,OALI06J,EAAUC,YAAcD,EAAUC,WAAW1uK,UAC/CyuK,EAAYv3G,KAAKxvD,MAAMwvD,KAAK5wD,UAAUmoK,KAC5BtC,QAAUsC,EAAUC,WAAW94H,SAGpC64H,EA4CT,SAASI,EAAKzrJ,GACZ,OAAOA,EAAI9T,QAAO,SAAUC,EAAK6qE,GAK/B,OAJ2B,IAAvB7qE,EAAI6F,QAAQglE,IACd7qE,EAAInI,KAAKgzE,GAGJ7qE,IACN,IAGL,SAASu/J,EAAU5hK,EAAGC,GACpB,IAAI4hK,EAAQF,EAAK3hK,GACb8hK,EAAQH,EAAK1hK,GACjB,OAAO4hK,EAAM/sJ,QAAO,SAAUo4D,GAC5B,OAAO40F,EAAM55J,QAAQglE,IAAS,KAIlC,SAAS60F,EAAU/hK,EAAGC,GACpB,IAAIm5B,EAAI,GAER,IAAK,IAAIrjC,KAAOiK,EAAG,CACjB,IAAIgiK,EAAgBhiK,EAAEjK,GAClB9B,EAAQ+tK,EAER/hK,EAAE7J,eAAeL,KACnB9B,EAAQgM,EAAElK,IAGW,WAAnB+mB,IAAQ7oB,KACVA,EAAQ8tK,EAAUC,EAAe/tK,IAGnCmlC,EAAErjC,GAAO9B,EAGX,OAAOmlC,ECrNT,IAEI6oI,EACAxwF,EAHAywF,EAAY,aACZC,EAA4C,oBAAXnrK,QAA0B,iBAAkBA,OAqBjF,SAASmO,EAAIpP,EAAK9B,GAChB,GAAIw9E,EACFA,EAAO17E,EAAK9B,OACP,CACL,IAAKkuK,EAAyB,OAE9B,IACEnrK,OAAOw4F,aAAa,GAAGn2F,OAAO6oK,EAAW,KAAK7oK,OAAOtD,IAAQi0D,KAAK5wD,UAAUnF,GAC5E,MAAOqH,MAsBE,OACb6B,OAtCF,SAAgBmD,GACd,IAAK,IAAIvK,KAAOuK,EAAO,CAErB6E,EAAIpP,EADQuK,EAAMvK,MAqCpBoP,IAAKA,EACLL,IArBF,SAAa/O,GACX,GAAIksK,EACF,OAAOA,EAAOlsK,GAEd,GAAKosK,EAEL,IACE,IAAIluK,EAAQ+C,OAAOw4F,aAAa,GAAGn2F,OAAO6oK,EAAW,KAAK7oK,OAAOtD,IAEjE,GAAI9B,EACF,OAAO+1D,KAAKxvD,MAAMvG,GAEpB,MAAOqH,GACP,SASJ8mK,aA7CF,SAAsBvkH,GACpBqkH,EAAYrkH,GA6CZwkH,YApDF,SAAqB31D,GACnBA,IAAaA,EAAW,IACxBu1D,EAASv1D,EAASu1D,OAClBxwF,EAASi7B,EAASj7B,SCFhB6wF,EAEJ,WACE,SAASA,EAAiBvmK,EAAMoJ,GAC9BiU,IAAgB9gB,KAAMgqK,GAElBvmK,EAAKkkK,YACPD,EAAWjkK,GAGbzD,KAAKyD,KAAOA,GAAQ,GACpBzD,KAAK6M,IAAMA,GAAO,KAClB7M,KAAKiqK,aAAe,GACpBjqK,KAAKgK,MAAQ,GACbhK,KAAK4nK,OAAS,GACd5nK,KAAKmnK,UAAY,GACjBnnK,KAAKkqK,iBAAmB,GACxBlqK,KAAKmqK,aAwNP,OArNAnpJ,IAAagpJ,EAAkB,CAAC,CAC9BvsK,IAAK,aACL9B,MAAO,WACL,IAAIwR,EAAQnN,KAERoqK,EAAQ,SAAe7C,GACzB,IAAI0B,EAAY97J,EAAM1J,KAAKmkK,OAAOL,GAC9BH,EAAc6B,EAAU7B,YACxBD,EAAY8B,EAAU9B,UACtBwB,EAAkBM,EAAUN,gBAC5B30C,EAAKozC,EAAY,GAarB,GAXID,GACFA,EAAUh9J,SAAQ,SAAUkgK,GACtBl9J,EAAMg6J,UAAUkD,KAIpBl9J,EAAMg6J,UAAUkD,GAAYr2C,MAK5B20C,EAAiB,CACnBx7J,EAAMy6J,OAAO5zC,GAAM,GAEnB,IAAK,IAAIs2C,EAAW,EAAGA,GAAY,EAAGA,IACpCn9J,EAAMy6J,OAAO5zC,GAAIs2C,GAAYtB,EAAiB,CAC5Ch1C,GAAIA,EACJ+0C,KAAMuB,GACLA,EAAUn9J,EAAMN,IAAKM,EAAM1J,WAGhC0J,EAAMy6J,OAAO5zC,GAAMg1C,EAAiBh1C,EAAI,KAAM7mH,EAAMN,IAAKM,EAAM1J,MAGjE0J,EAAM88J,aAAaj2C,GAAMi1C,GAG3B,IAAK,IAAI1B,KAASvnK,KAAKyD,KAAKmkK,OAC1BwC,EAAM7C,KAGT,CACD9pK,IAAK,oBACL9B,MAAO,SAA2B4uK,GAChC,IAAIrlH,EAASllD,KAEbA,KAAKkqK,iBAAiB//J,SAAQ,SAAUo9J,GACtC,IAAIiD,EAAUjD,EAAMvzC,IAAMuzC,EAAMH,YAAY,UACrCmD,EAAKC,UACLtlH,EAAO0iH,OAAO4C,QAGxB,CACD/sK,IAAK,kBACL9B,MAAO,SAAyB6vI,EAAQ++B,GACtC,IAAIniH,EAASpoD,KAETA,KAAKkqK,iBAAiB1vK,QAAQwF,KAAKyqK,kBAAkBF,GACzD/+B,EAAOrhI,SAAQ,SAAUo9J,GACvB,IAAIiD,EAAUjD,EAAMvzC,IAAMuzC,EAAMH,YAAY,GAExCoD,IAAYD,EAAKC,KACnBD,EAAKC,GAAWlmJ,EAAQijJ,EAAO,KAAM,KAAMn/G,EAAO3kD,MAClD2kD,EAAOw/G,OAAO4C,GAAWxB,EAAiBzB,EAAO,KAAM,KAAMn/G,EAAO3kD,UAGxEzD,KAAKkqK,iBAAmB1+B,EACxBxrI,KAAKgK,MAAQ,KAEd,CACDvM,IAAK,SACL9B,MAAO,SAAgBA,GACrB,IAAIwtD,EAASnpD,KAET2mB,EAAO/rB,UAAUJ,OAAS,QAAsBgE,IAAjB5D,UAAU,GAAmBA,UAAU,GAAK,GAC3E8vK,EAAqB/jJ,EAAK+jJ,mBAC1BC,EAAahkJ,EAAKgkJ,WAClBC,EAAUjkJ,EAAKikJ,QACftV,EAAU3uI,EAAK2uI,QACfuV,EAAclkJ,EAAK6kH,OACnBA,OAAyB,IAAhBq/B,EAAyB,GAAKA,EAEvC7qK,KAAKkqK,kBAAoB1+B,GAAQxrI,KAAK8qK,gBAAgBt/B,EAAQxrI,KAAKiqK,cACvE,IAAIK,EAAWvgJ,EAAMvd,IAAI,SAAW,EACpCm+J,IAAeA,EAAa,IAC5BC,IAAYA,EAAU,IACtBtV,IAAYA,EAAU,IACtB,IAAIyV,EAAU,KACVR,EAAOvqK,KAAKiqK,aAEhB,GAAItuK,EAAMnB,OAAQ,CAChB,GAAa,KAATmB,GAAyB,MAATA,EAClB,MAAO,CAACqE,KAAK4nK,QAAO,GAAM0C,IAG5B,IAAI3tK,EAAShB,EAAMqU,cAAc6N,MAAM,gBACnCmtJ,EAAa,GAMjB,GAJIruK,EAAOnC,OAAS,IAClBmC,EAAS,CAACA,EAAO,GAAIA,EAAO,MAG1BiuK,EAAQpwK,QAAU86J,EAAQ96J,UAC5B+vK,EAAO,GACPvqK,KAAKyD,KAAKwnK,WAAW9gK,SAAQ,SAAU+gK,GACrC,IAAIC,GAAaP,IAAWA,EAAQpwK,QAASowK,EAAQh7J,QAAQs7J,EAASl3C,KAAO,EACzEo3C,KAAa9V,IAAWA,EAAQ96J,SAAS86J,EAAQ1lJ,QAAQs7J,EAASl3C,KAAO,EAExEm3C,IAAcC,GAInBF,EAAStD,OAAOz9J,SAAQ,SAAUqgK,GAChC,OAAOD,EAAKC,GAAWrhH,EAAO1lD,KAAKmkK,OAAO4C,SAI1Ch/B,EAAOhxI,QAAQ,CACjB,IAAI6wK,GAAmBT,IAAWA,EAAQpwK,QAASowK,EAAQh7J,QAAQ,WAAa,EAC5E07J,KAAmBhW,IAAWA,EAAQ96J,SAAS86J,EAAQ1lJ,QAAQ,WAAa,EAE5Ey7J,IAAqBC,GACvBtrK,KAAK8qK,gBAAgBt/B,EAAQ++B,GAiEjCQ,GA5DFC,EAAaruK,EAAOuN,KAAI,SAAUvO,GAKhC,IAJA,IAAI4vK,EAAQhB,EACRiB,EAASriH,EAAOn/C,MAChBxP,EAAS,EAEJixK,EAAY,EAAGA,EAAY9vK,EAAMnB,OAAQixK,IAAa,CAC7D,IAAIC,EAAQ/vK,EAAM8vK,GAClBjxK,IACAgxK,EAAOE,KAAWF,EAAOE,GAAS,KAClCF,EAASA,EAAOE,IAEJX,SACV,WACE,IAAIY,EAAS,GAIb,IAAK,IAAI33C,KAHTw3C,EAAOT,QAAU,GACjBS,EAAOjB,KAAO,GAECgB,EAAO,CACpB,IAAIhE,EAAQgE,EAAMv3C,GACdn7E,EAAS0uH,EAAM1uH,OACfv9B,EAAM3f,EAAM2G,OAAO,EAAG9H,GACtBoxK,EAAW/yH,EAAOjpC,QAAQ0L,GAE9B,IAAiB,GAAbswJ,EAAgB,CAClB,IAAIC,EAAQD,EAAW,EACnBtwJ,GAAO04G,IAAI63C,EAAQ,GAEnB1iH,EAAOy+G,OAAO5zC,IAAO7qE,EAAOy+G,OAAO5zC,GAAIs2C,GACzCkB,EAAOT,QAAQnpK,KAAKunD,EAAOy+G,OAAO5zC,GAAIs2C,IAEtCkB,EAAOT,QAAQnpK,KAAKunD,EAAOy+G,OAAO5zC,IAGpCw3C,EAAOjB,KAAKv2C,GAAMuzC,EAClBoE,EAAO33C,GAAM63C,GAIjBL,EAAOT,QAAQ/vH,MAAK,SAAUtzC,EAAGC,GAC/B,IAAImkK,EAASH,EAAOjkK,EAAEssH,IAClB+3C,EAASJ,EAAOhkK,EAAEqsH,IAEtB,OAAI83C,GAAUC,EACLrkK,EAAEssH,GAAGg4C,cAAcrkK,EAAEqsH,IAErB83C,EAASC,KAjCtB,GAuCFR,EAAQC,EAAOjB,KAGjB,OAAOiB,EAAOT,WACbvuJ,QAAO,SAAU9U,GAClB,OAAOA,MAGMlN,OAAS,EACZ8uK,EAAUlpK,MAAM,KAAM4qK,GACvBA,EAAWxwK,OACVwwK,EAAW,GAEX,GAgBd,OAZID,IACEL,IACFK,EAAUA,EAAQvuJ,QAAO,SAAUiB,GACjC,OAAOitJ,EAAmBH,EAAK9sJ,EAAOu2G,SAItC+2C,GAAWA,EAAQvwK,OAASmwK,IAC9BI,EAAUA,EAAQ7sK,MAAM,EAAGysK,KAIxBI,MAIJf,EAvOT,GCNIiC,EAAa,IAAIjC,EAAiBvmK,GACzBwoK,EAAWrE,OACRqE,EAAW9E,UAMZ,ICRX+E,EAAYhqJ,EADZiqJ,EAAW,CAAC,KAAM,WAAY,gBAAiB,aAAc,WAAY,+BAAgC,cAAe,MAAO,SAAU,eAAgB,WAAY,QAAS,MAAO,aAAc,QAAS,QAE5MplJ,EAAW,GAEf,SAAS7mB,IACPgiB,GAAc,EACdgqJ,EAAaniJ,EAAMvd,IAAI,cAmDV,OACbs6B,IAjDF,SAAaygI,GACNrlJ,GAAahiB,IAClB,IAAI8zH,EAAKuzC,EAAMvzC,GACfk4C,IAAeA,EAAanlJ,GAC5BmlJ,EAAWl4C,KAAQk4C,EAAWl4C,GAAM,GACpCk4C,EAAWl4C,IAAO,EAClBjqG,EAAMld,IAAI,OAAQmnH,GAClBjqG,EAAMld,IAAI,aAAcq/J,IA2CxB1/J,IAxCF,SAAa4/J,GAGX,GAFKlqJ,GAAahiB,KAEbgsK,EAAY,CACfnlJ,EAAW,GAGX,IAFA,IAAItJ,EAAS,GAEJnc,EAAI,EAAGA,EAAI8qK,EAAS9qK,IAC3BylB,EAASolJ,EAAS7qK,IAAM8qK,EAAU9qK,EAClCmc,EAAO7b,KAAKuqK,EAAS7qK,IAGvB,OAAOmc,EAGT,IAAI4uJ,EAAqB,EAAVD,EACXE,EAAiB,GAErB,IAAK,IAAI7uK,KAAOyuK,EACVA,EAAWpuK,eAAeL,IAC5B6uK,EAAe1qK,KAAKnE,GAIxB,IAGI8uK,EAHSD,EAAetxH,MAAK,SAAUtzC,EAAGC,GAC5C,OAAOukK,EAAWxkK,GAAKwkK,EAAWvkK,MACjCiF,UACiB1O,MAAM,EAAGmuK,GACzBpuE,EAAOl0E,EAAMvd,IAAI,QAOrB,OALIyxF,IAAiC,GAAzBsuE,EAAO38J,QAAQquF,KACzBsuE,EAAOzgK,MACPygK,EAAO3qK,KAAKq8F,IAGPsuE,I,uICtDLtB,EAAa,CACfuB,SAAU,WACR,OAAOC,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,8tBAGPmyG,OAAQ,WACN,OAAOihC,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,IAAK,CAC1BskC,UAAW,iCACVw/H,IAAM9jK,cAAc,OAAQ,CAC7BqrH,GAAI,YACJ7hG,EAAG,IACHC,EAAG,IACHr2B,MAAO,IACP6wK,OAAQ,KACRh/H,GAAI,QACF6+H,IAAM9jK,cAAc,OAAQ,CAC9BqrH,GAAI,YACJ/mF,UAAW,kEACX9a,EAAG,QACHC,EAAG,QACHr2B,MAAO,IACP6wK,OAAQ,KACRh/H,GAAI,QACF6+H,IAAM9jK,cAAc,OAAQ,CAC9BqrH,GAAI,YACJ/mF,UAAW,mEACX9a,EAAG,QACHC,EAAG,QACHr2B,MAAO,IACP6wK,OAAQ,KACRh/H,GAAI,WAGRgK,MAAO,WACL,OAAO60H,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,sKAGPwzI,MAAO,WACL,OAAOJ,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,u1BAGPyzI,OAAQ,WACN,OAAOL,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,6GACDozI,IAAM9jK,cAAc,OAAQ,CAC9B0wB,EAAG,uhDAGPwvG,QAAS,WACP,OAAO4jC,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,oXACDozI,IAAM9jK,cAAc,OAAQ,CAC9B0wB,EAAG,mjBAGP0zI,OAAQ,WACN,OAAON,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,kJACDozI,IAAM9jK,cAAc,OAAQ,CAC9B0wB,EAAG,+KAGP2zI,OAAQ,WACN,OAAOP,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,wSACDozI,IAAM9jK,cAAc,OAAQ,CAC9B0wB,EAAG,0rBAGP4zI,OAAQ,WACN,OAAOR,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,2CACDozI,IAAM9jK,cAAc,OAAQ,CAC9B0wB,EAAG,oJAGP5Z,QAAS,WACP,OAAOgtJ,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACPC,QAAS,YACT5wK,MAAO,KACP6wK,OAAQ,MACPH,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,g5CAILwf,GAAS,CACXA,OAAQ,WACN,OAAO4zH,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACP3wK,MAAO,KACP6wK,OAAQ,KACRD,QAAS,YACTO,QAAS,OACRT,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,wGAGP,OAAU,WACR,OAAOozI,IAAM9jK,cAAc,MAAO,CAChC+jK,MAAO,6BACP3wK,MAAO,KACP6wK,OAAQ,KACRD,QAAS,YACTO,QAAS,OACRT,IAAM9jK,cAAc,OAAQ,CAC7B0wB,EAAG,yJC3JL8zI,GAAiB,CACnB1pK,KAAM4vJ,IAAUx1J,OAAO60J,WACvB0a,OAAQ/Z,IAAUhyB,KAClBgsC,QAASha,IAAUhyB,KACnB7lF,QAAS63G,IAAUhyB,KACnBp1H,SAAUonJ,IAAUhyB,KACpBisC,kBAAmBja,IAAUhyB,KAC7B,OAAUgyB,IAAUp0G,KACpBsuH,UAAWla,IAAUp0G,KACrBuuH,QAASna,IAAUp0G,KACnBwuH,UAAWpa,IAAUp0G,KACrB8pH,KAAM1V,IAAU7uF,MAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IACtCkpG,UAAWra,IAAU7uF,MAAM,CAAC,GAAI,GAAI,GAAI,KACxCmpG,aAActa,IAAU3tJ,OACxBkoK,UAAWva,IAAU3tJ,OACrBmH,IAAKwmJ,IAAU7uF,MAAM,CAAC,QAAS,SAAU,UAAW,aACpDt9D,KAAMmsJ,IAAU3tJ,OAAOgtJ,WACvB6U,MAAOlU,IAAUJ,UAAU,CAACI,IAAUv2J,OAAQu2J,IAAUx1J,SAAS60J,YAE/Dmb,GAAkB,CACpBryH,QAAS63G,IAAUhyB,KACnBysC,SAAUza,IAAUhyB,KACpB0sC,aAAc1a,IAAUhyB,KACxB+qC,QAAS/Y,IAAU3tJ,OACnBsoK,UAAW3a,IAAU3tJ,OACrBqc,KAAMsxI,IAAUx1J,OAChBs0D,MAAOkhG,IAAUx1J,OACjBmuB,MAAOqnI,IAAUv2J,OACjByqK,MAAOlU,IAAUv2J,OACjBmxK,MAAO5a,IAAUv2J,OACjB+P,IAAKsgK,GAAetgK,IACpBk8J,KAAMoE,GAAepE,KACrB,OAAU1V,IAAUp0G,KACpBquH,kBAAmBH,GAAeG,kBAClCI,UAAWP,GAAeO,UAC1BhD,mBAAoBrX,IAAUhyB,KAC9B6sC,YAAa7a,IAAUp0G,KACvBkvH,cAAe9a,IAAUp0G,KACzBmvH,aAAcjB,GAAeK,QAC7BC,UAAWN,GAAeM,UAC1BY,MAAOhb,IAAU7uF,MAAM,CAAC,OAAQ,QAAS,SACzComG,QAASvX,IAAUR,QAAQQ,IAAUv2J,QACrCw4J,QAASjC,IAAUR,QAAQQ,IAAUv2J,QACrCmwK,OAAQ5Z,IAAUR,QAAQQ,IAAUv2J,QACpCwxK,UAAWjb,IAAUp0G,KACrBsvH,wBAAyBlb,IAAUp0G,KACnCusF,OAAQ6nB,IAAUR,QAAQQ,IAAUH,MAAM,CACxCpqJ,KAAMuqJ,IAAUv2J,OAAO41J,WACvB0U,YAAa/T,IAAUR,QAAQQ,IAAUv2J,QAAQ41J,WACjDyU,UAAW9T,IAAUR,QAAQQ,IAAUv2J,QACvCmqK,SAAU5T,IAAUR,QAAQQ,IAAUv2J,QACtC+rK,SAAUxV,IAAUv2J,OACpB0xK,UAAWnb,IAAUv2J,OACrB+qK,QAASxU,IAAU3tJ,OACnBoiK,QAASzU,IAAU3tJ,OACnBwB,KAAMmsJ,IAAU3tJ,OAChBioK,aAActa,IAAU3tJ,OACxBkoK,UAAWva,IAAU3tJ,UAEvB+oK,UAAWpb,IAAUv2J,OACrB4xK,SAAUrb,IAAUhyB,KACpBstC,cAAetb,IAAUv2J,OACzB8xK,MAAOvb,IAAUx1J,QCtDfgxK,GAEJ,SAAUC,GAGR,SAASD,EAAQrnK,GACf,IAAI2F,EAEJ2T,IAAgB9gB,KAAM6uK,GAEtB1hK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgBguI,GAAS5zK,KAAK+E,KAAMwH,IAC7E,IAAIunK,EAAkBvnK,EAAMyjK,WAAWzuJ,QAAO,SAAU0uJ,GACtD,OAAOA,EAASlsE,SACf,GAKH,OAJA7xF,EAAMnF,MAAQ,CACZ6H,SAAUk/J,EAAgBjmK,MAE5BqE,EAAM6hK,YAAc7hK,EAAM6hK,YAAY/8J,KAAK0rC,IAAuBxwC,IAC3DA,EA4DT,OA3EA2wC,IAAU+wH,EAASC,GAkBnB9tJ,IAAa6tJ,EAAS,CAAC,CACrBpxK,IAAK,cACL9B,MAAO,SAAqBqH,GAC1B,IAAIgH,EAAQhH,EAAE42C,cAAcR,aAAa,cACrC61H,EAAcjvK,KAAKwH,MACnByjK,EAAagE,EAAYhE,YAE7BiE,EADoBD,EAAYC,eAClBjE,EAAWjhK,GAAQA,KAElC,CACDvM,IAAK,SACL9B,MAAO,WACL,IAAIupD,EAASllD,KAETmvK,EAAenvK,KAAKwH,MACpByjK,EAAakE,EAAalE,WAC1BgD,EAAQkB,EAAalB,MACrBlsJ,EAAOotJ,EAAaptJ,KACpB6sJ,EAAQO,EAAaP,MACrB/+J,EAAW7P,KAAKgI,MAAM6H,SAC1B,OAAO48J,IAAM9jK,cAAc,MAAO,CAChC0G,UAAW,qBACX,aAAc0S,EAAKqtJ,iBAClBnE,EAAW/gK,KAAI,SAAUghK,EAAU5pK,GACpC,IAAI0yH,EAAKk3C,EAASl3C,GACdlrH,EAAOoiK,EAASpiK,KAChBumK,EAASnE,EAASmE,OAClBC,EAAaxmK,GAAQ+G,EAEzB,IAAe,IAAXw/J,EACF,OAAO,KAGT,IAAIE,EAASv7C,EAAG32G,WAAW,WAAa,SAAW22G,EACnD,OAAOy4C,IAAM9jK,cAAc,SAAU,CACnClL,IAAKu2H,EACL,aAAcjyG,EAAKkpJ,WAAWj3C,GAC9BhoG,MAAOjK,EAAKkpJ,WAAWj3C,GACvB,aAAc1yH,EACd4H,KAAM,SACNsyC,QAAS0J,EAAO8pH,YAChB3/J,UAAW,qBAAqBtO,OAAOuuK,EAAa,6BAA+B,IACnFn9G,MAAO,CACL87G,MAAOqB,EAAarB,EAAQ,OAE7BxB,IAAM9jK,cAAc,MAAO,CAC5B0G,UAAW,0BACVu/J,EAAM3D,WAAWsE,MAAY9C,IAAM9jK,cAAc,OAAQ,CAC1D0G,UAAW,wBACX8iD,MAAO,CACLq9G,gBAAiBvB,cAOpBY,EA5ET,CA6EEpC,IAAM7kK,eAGRinK,GAAQY,UAEN,CACAxE,WAAY5X,IAAU91J,MACtB2xK,cAAe7b,IAAUhyB,KACzButC,MAAOvb,IAAUx1J,QAEnBgxK,GAAQa,aAAe,CACrBzE,WAAY,GACZiE,cAAe,aACfN,MAAO,ICrGT,IAAIe,GAAoB,CACtB5G,KAAM,EACNl8J,IAAK,QACL6gK,UAAW,GACXC,aAAc,GACdC,UAAW,GACX,QAAU,EACVL,WAAW,EACXC,SAAS,EACTC,WAAW,EACXH,kBAAmB,SAA2BzgK,EAAK6gK,GACjD,MAAO,sCAAsC3sK,OAAO8L,EAAK,KAAK9L,OAAO,QAAS,SAASA,OAAO8L,EAAK,gBAAgB9L,OAAO2sK,EAAW,UAGrIkC,GAAqB,CACvBp0H,QAAS,aACTsyH,SAAU,aACVC,aAAc,aACdC,UAAW,GACX5B,QAAS,EACTrqJ,KAAM,GACNowC,MAAO,GACPnmC,MAAO,cACPu7I,MAAO,mBACP0G,MAAO,UACPphK,IAAK8iK,GAAkB9iK,IACvBwhK,MAAO,QACPtF,KAAM,KACN8G,YAAaF,GAAkB5G,KAC/B,OAAU4G,GAAiB,OAC3BjC,UAAWiC,GAAkBjC,UAC7BJ,kBAAmBqC,GAAkBrC,kBACrC5C,mBAAoB,KACpBwD,aAAa,EACbC,eAAe,EACfC,aAAcuB,GAAkBnC,QAChCC,UAAWkC,GAAkBlC,UAC7Ba,WAAW,EACXC,yBAAyB,EACzB/iC,OAAQ,GACRijC,UAAW,GACXC,SAAU,aACVC,cAAe,gBACfC,MAAO,ICxCT,SAAStvJ,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAE9U,SAASoH,GAAcC,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EAS7gB,IAAIiwJ,GAAW,SAAkBtoK,GAK/B,OAAO8c,EAJK9c,EAAM+/J,MACP//J,EAAMuhK,KACPvhK,EAAMqF,IACLrF,EAAM/D,OAIfssK,GAAe,SAAsBvoK,GACvC,IAAIwoK,EAAYF,GAAStoK,GACrBqgK,EAAUmI,EAAUnI,QACpBC,EAAUkI,EAAUlI,QACpBmI,EAAY,KAAOzoK,EAAMmmK,aAAe,GACxCuC,EAAY,KAAO1oK,EAAMomK,UAAY,GAEzC,MAAO,GAAG7sK,OAAOkvK,EAAYpI,EAAS,MAAM9mK,OAAOmvK,EAAYpI,EAAS,MAGtEqI,GAAoB,SAA2B3oK,GAKjD,OAAOwhK,EAJKxhK,EAAM+/J,MACP//J,EAAMuhK,KACPvhK,EAAMqF,IACLrF,EAAM/D,OAqCf2sK,GAAa,SAAoBz0K,GACnC,OAAQiK,MAAMjK,EAAQ0qB,WAAW1qB,KAmB/B00K,GAAc,SAASA,EAAY7oK,GAKrC,IAAK,IAAIggB,KAJLhgB,EAAM/D,KAAKkkK,YACbD,EAAWlgK,EAAM/D,MAGL4sK,EAAYX,aACRlxK,MAAZgJ,EAAMggB,IAAkDhpB,MAA/B6xK,EAAYX,aAAaloJ,KACpDhgB,EAAMggB,GAAK6oJ,EAAYX,aAAaloJ,IAIxC,IAAI/jB,EAAOqsK,GAAStoK,GAEpB,IAAK/D,EACH,OAAI+D,EAAMyE,SACDzE,EAAMyE,SAAS,KAAMzE,GAErB,KAIX,IAAIm/J,EAAUljK,EAAKkjK,QACfn7B,EAAS/nI,EAAK+nI,OACd47B,EAAc3jK,EAAK2jK,YACnByB,EAAWplK,EAAKolK,SAChB12G,EAAQ,GACRvoD,EAAWpC,EAAMoC,SACjByF,EAAY,mBACZihK,EAAc3J,GAAW4B,EAAgB5B,GACzCha,EAAQ,CAAC2jB,GAAavvK,OAAOqmK,GAAa5qJ,OAAOy+B,SAASh5C,KAAK,MAC/D+pB,EAAQ,KAEZ,IAAK26I,IAAYn7B,EACf,OAAIhkI,EAAMyE,SACDzE,EAAMyE,SAASxI,EAAM+D,GAErB,KAQX,GAJIA,EAAMgmK,UACRxhJ,EAAQo7I,EAAY,IAGlB5/J,EAAK,QAAcm/J,EACrBt3J,GAAa,2BACb8iD,EAAQ,CACNo+G,SAAU/oK,EAAMN,MAElB0C,EAAW0mK,EAEP9oK,EAAM+lK,YACRp7G,EAAMq+G,QAAU,eAChBr+G,EAAMp2D,MAAQyL,EAAMN,KACpBirD,EAAMy6G,OAASplK,EAAMN,KACrBirD,EAAMs+G,UAAY,iBAEf,GAAIjlC,EACTn8H,GAAa,2BACb8iD,EAAQ,CACNp2D,MAAOyL,EAAMN,KACb0lK,OAAQplK,EAAMN,KACdspK,QAAS,gBAITr+G,EADE1uD,EAAK+qK,UACC5uJ,GAAc,GAAIuyC,EAAO,CAC/Bu+G,gBAAiB,OAAO3vK,OAAO0C,EAAK+qK,UAAW,KAC/CmC,eAAgB,GAAG5vK,OAAO,IAAMyG,EAAMmmK,aAAc,MAAM5sK,OAAO,IAAMyG,EAAMomK,UAAW,KACxFgD,mBAAoBb,GAAavoK,KAG3BoY,GAAc,GAAIuyC,EAAO,CAC/Bu+G,gBAAiB,OAAO3vK,OAAO8nK,EAAU,KACzC8H,eAAgB,UAChBE,iBAAkB,YAClBD,mBAAoB,eAGnB,CAGL,KAFwDpyK,MAAtCiF,EAAK,WAAW1C,OAAOyG,EAAMqF,OAAsBpJ,EAAK,WAAW1C,OAAOyG,EAAMqF,OAGhG,OAAIrF,EAAMyE,SACDzE,EAAMyE,SAASxI,EAAM+D,GAErB,KAGT2qD,EAAQ,CACNp2D,MAAOyL,EAAMN,KACb0lK,OAAQplK,EAAMN,KACdspK,QAAS,eACTE,gBAAiB,OAAO3vK,OAAOyG,EAAM8lK,kBAAkB9lK,EAAMqF,IAAKrF,EAAMkmK,WAAY,KACpFiD,eAAgB,GAAG5vK,OAAO,IAAMyG,EAAMmmK,aAAc,MAAM5sK,OAAO,IAAMyG,EAAMomK,UAAW,KACxFgD,mBAAoBb,GAAavoK,IAKvC,IAAIspK,EAAM,CACRhoK,KAAM,OACNtB,MAAO,IAUT,OAPIA,EAAMg0C,SAAWh0C,EAAMimK,YACzBqD,EAAIhoK,KAAO,SACXgoK,EAAItpK,MAAQ,CACV0B,KAAM,WAIN1B,EAAM8W,MACR6zC,EAjIqB,SAA4BA,GACnD,IAAI3hB,EAAM3iC,SAASlF,cAAc,OAEjC,IAAK,IAAIlL,KAAO00D,EAAO,CACrB,IAAIx2D,EAAQw2D,EAAM10D,GAEd2yK,GAAWz0K,KACbA,GAAS,MAGX60C,EAAI2hB,MAAM10D,GAAO9B,EAGnB,OAAO60C,EAAI4I,aAAa,SAoHd23H,CAAmB5+G,GACpB,IAAIpxD,OAAO+vK,EAAIhoK,KAAM,YAAY/H,OAAOoxD,EAAO,kBAAkBpxD,OAAO4rJ,EAAO,MAAM5rJ,OAAOirB,EAAQ,UAAUjrB,OAAOirB,EAAO,KAAO,GAAI,YAAYjrB,OAAOsO,EAAW,MAAMtO,OAAO6I,GAAY,GAAI,MAAM7I,OAAO+vK,EAAIhoK,KAAM,MAEzN2jK,IAAM9jK,cAAcmoK,EAAIhoK,KAAMg/F,IAAS,CAC5CtsD,QAAS,SAAiBx4C,GACxB,OA3KW,SAAsBA,EAAGwE,GACrCA,EAAMg0C,UAOXA,EAHch0C,EAAMg0C,SACR20H,GAAkB3oK,GAEfxE,GAmKFguK,CAAahuK,EAAGwE,IAEzBypK,aAAc,SAAsBjuK,GAClC,OAnKU,SAAqBA,EAAGwE,GACnCA,EAAM4lK,SAOXA,EAHa5lK,EAAM4lK,QACP+C,GAAkB3oK,GAEhBxE,GA2JDkuK,CAAYluK,EAAGwE,IAExB2pK,aAAc,SAAsBnuK,GAClC,OA3JW,SAAsBA,EAAGwE,GACrCA,EAAM6lK,UAOXA,EAHc7lK,EAAM6lK,SACR8C,GAAkB3oK,GAEfxE,GAmJFouK,CAAapuK,EAAGwE,IAEzB,aAAcmlJ,EACd3gI,MAAOA,EACP3c,UAAWA,GACVyhK,EAAItpK,OAAQilK,IAAM9jK,cAAc,OAAQ,CACzCwpD,MAAOA,GACNvoD,KAIPymK,GAAYZ,UAEV7vJ,GAAc,GAAIutJ,GAAgB,CAClC1pK,KAAM4vJ,IAAUx1J,OAAO60J,aAEzB2d,GAAYX,aAAeC,GACZU,UCnOf,SAAS/wJ,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAQ9U,IAAI64J,GAEJ,SAAUvC,GAGR,SAASuC,IAGP,OAFAvwJ,IAAgB9gB,KAAMqxK,GAEftzH,IAA2B/9C,KAAM6gC,IAAgBwwI,GAAUjxK,MAAMJ,KAAMpF,YA6BhF,OAlCAkjD,IAAUuzH,EAAUvC,GAQpB9tJ,IAAaqwJ,EAAU,CAAC,CACtB5zK,IAAK,SACL9B,MAAO,WACL,IAAIszK,EAAcjvK,KAAKwH,MACnB/D,EAAOwrK,EAAYxrK,KACnB6tK,EAAarC,EAAYqC,WACzBvvJ,EAAOktJ,EAAYltJ,KACnB2sJ,EAAWO,EAAYP,SACvBC,EAAgBM,EAAYN,cAchC,OAbgBD,GAAYA,KAAcjC,IAAM9jK,cAAc,MAAO,CACnE0G,UAAW,yBACVghK,GA5BT,SAAuBxwJ,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EA4BxfD,CAAc,CAC3Bnc,KAAMA,GACL6tK,EAAY,CACbpqK,KAAM,GACNqgK,MAAOoH,EACPvB,OAAQ,KACRC,QAAS,KACT7xH,QAAS,QACNixH,IAAM9jK,cAAc,MAAO,CAC9B0G,UAAW,+BACV0S,EAAKwvJ,eAKLF,EAnCT,CAoCE5E,IAAM7kK,eC7CR,SAAS0X,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EDgD9U64J,GAAS5B,UAEP,CACAf,SAAUrb,IAAUhyB,KAAKqxB,WACzB4e,WAAYje,IAAUx1J,OAAO60J,YCzC/B,IAAI8e,GAEJ,SAAUC,GAGR,SAASD,EAAShqK,GAChB,IAAI2F,EAQJ,OANA2T,IAAgB9gB,KAAMwxK,IAEtBrkK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgB2wI,GAAUv2K,KAAK+E,KAAMwH,KACxE/D,KAAO+D,EAAM/D,KACnB0J,EAAMukK,gBAAkBvkK,EAAMukK,gBAAgBz/J,KAAK0rC,IAAuBxwC,IAC1EA,EAAMwkK,YAAcxkK,EAAMwkK,YAAY1/J,KAAK0rC,IAAuBxwC,IAC3DA,EA+NT,OA1OA2wC,IAAU0zH,EAAUC,GAcpBzwJ,IAAawwJ,EAAU,CAAC,CACtB/zK,IAAK,oBACL9B,MAAO,WACLqE,KAAK4xK,OAAS,EACd5xK,KAAK6xK,UAAY,EACjB7xK,KAAK8xK,gBAEN,CACDr0K,IAAK,wBACL9B,MAAO,SAA+B2M,EAAWirG,GAC/C,IAAI07D,EAAcjvK,KAAKwH,MACnBsB,EAAOmmK,EAAYnmK,KACnBsjK,EAAU6C,EAAY7C,QACtB2F,EAAU9C,EAAW,OACrB+C,EAAoB/C,EAAY+C,kBAChCpK,EAASqH,EAAYrH,OACrB0J,EAAarC,EAAYqC,WACzBvI,EAAOuI,EAAWvI,KAClB7hK,EAAOoqK,EAAWpqK,KAClB2F,EAAMykK,EAAWzkK,IACjBolK,EAAc3pK,EAAU8jK,QACxB8F,EAAa5pK,EAAS,OACtB6pK,EAAwB7pK,EAAU0pK,kBAClCI,EAAa9pK,EAAUs/J,OACvByK,EAAiB/pK,EAAUgpK,WAC3BgB,EAAWD,EAAetJ,KAC1BwJ,EAAWF,EAAenrK,KAC1BsrK,EAAUH,EAAexlK,IACzBxE,GAAe,EAcnB,MAZY,UAARS,GAAoBsjK,GAAW6F,IACjC5pK,GAAe,GAGL,UAARS,IACFT,IAAiBu/J,GAAUwK,IAGzBrJ,GAAQuJ,GAAYprK,GAAQqrK,GAAYR,GAAWG,GAAcrlK,GAAO2lK,GAAWR,GAAqBG,IAC1G9pK,GAAe,GAGVA,IAER,CACD5K,IAAK,cACL9B,MAAO,WACL,IAAKqE,KAAKoN,UAIR,OAFApN,KAAKyyK,IAAM,OACXzyK,KAAK0yK,UAAY,GAInB,IAAIlhK,EAASxR,KAAKoN,UAAUulK,cAExBC,EAAwB5yK,KAAKoN,UAAUylK,wBACvCJ,EAAMG,EAAsBH,IAC5B7F,EAASgG,EAAsBhG,OAG/BkG,EADwBthK,EAAOqhK,wBACGJ,IAGlCM,EADwB/yK,KAAK2sJ,MAAMkmB,wBACCjG,OAExC5sK,KAAKyyK,IAAMA,EAAMK,EAAYthK,EAAOwhK,UAGlChzK,KAAK0yK,UADO,GAAV9F,EACe,EAEAA,EAASmG,IAG7B,CACDt1K,IAAK,eACL9B,MAAO,SAAsBq3K,GAC3B,IAAIpB,EAASoB,EAAYhzK,KAAKyyK,IAG9B,IADAb,GADAA,EAASA,EAAS5xK,KAAK6xK,UAAY7xK,KAAK6xK,UAAYD,GAClC5xK,KAAK0yK,UAAY1yK,KAAK0yK,UAAYd,IACtC5xK,KAAK4xK,OAOnB,OALK5xK,KAAKwH,MAAMwqK,oBACdhyK,KAAK2sJ,MAAMx6F,MAAMsgH,IAAM,GAAG1xK,OAAO6wK,EAAQ,OAG3C5xK,KAAK4xK,OAASA,GACP,IAER,CACDn0K,IAAK,YACL9B,MAAO,WACL,IAAIupD,EAASllD,KAETmvK,EAAenvK,KAAKwH,MACpBsB,EAAOqmK,EAAarmK,KACpB8+J,EAASuH,EAAavH,OACtBqF,EAASkC,EAAalC,OACtBb,EAAU+C,EAAa/C,QAE3B,GAAY,UAARtjK,EAAkB,CACpB,IAAI0iI,EAASxrI,KAAKwH,MAAMgkI,OACpBynC,EAAiBhG,GAAUf,EAAW1/J,IAAI4/J,GAkB9C,GAhBI6G,EAAez4K,SACjBotK,EAASqL,EAAe/oK,KAAI,SAAU8pH,GACpC,IAAIuzC,EAAQ/7B,EAAOhvH,QAAO,SAAUxZ,GAClC,OAAOA,EAAEgxH,KAAOA,KACf,GAEH,OAAIuzC,GAIGvzC,KACNx3G,QAAO,SAAUw3G,GAClB,QAAS1vG,EAAQ0vG,EAAI,KAAM,KAAM9uE,EAAOzhD,UAItB,IAAlBmkK,EAAOptK,QAAgBy4K,EAAez4K,OAAS,EACjD,OAAO,KAQX,OAJIotK,IACFA,EAASA,EAAO1pK,MAAM,IAGjB0pK,IAER,CACDnqK,IAAK,gBACL9B,MAAO,SAAuB60K,GACfxwK,KAAKkzK,aAEFlzK,KAAKoN,YAIrBpN,KAAKoN,UAAU+kD,MAAMq+G,QAAUA,KAEhC,CACD/yK,IAAK,kBACL9B,MAAO,SAAyBwM,GAC9BnI,KAAKoN,UAAYjF,IAElB,CACD1K,IAAK,cACL9B,MAAO,SAAqBwM,GAC1BnI,KAAK2sJ,MAAQxkJ,IAEd,CACD1K,IAAK,SACL9B,MAAO,WACL,IAAIysD,EAASpoD,KAETmzK,EAAenzK,KAAKwH,MACpBwsH,EAAKm/C,EAAan/C,GAClBlrH,EAAOqqK,EAAarqK,KACpBkpK,EAAoBmB,EAAanB,kBACjCV,EAAa6B,EAAa7B,WAC1BvvJ,EAAOoxJ,EAAapxJ,KACpB2sJ,EAAWyE,EAAazE,SACxBC,EAAgBwE,EAAaxE,cAC7B/G,EAAS5nK,KAAKkzK,YACdE,EAAc,GACdC,EAAkB,GAClBC,EAAkB,GAEjB1L,IACH0L,EAAkB,CAChB9C,QAAS,SAIRwB,IACHoB,EAAc,CACZxG,OAAQ,IAEVyG,EAAkB,CAChBl1G,SAAU,aAId,IAAIwuF,EAAQ5qI,EAAKkpJ,WAAWj3C,IAAOlrH,EACnC,OAAO2jK,IAAM9jK,cAAc,UAAW,CACpCJ,IAAKvI,KAAK0xK,gBACVriK,UAAW,sBACX,aAAcs9I,EACdx6F,MAAOmhH,GACN7G,IAAM9jK,cAAc,MAAO,CAC5BwpD,MAAOihH,EACP,YAAatqK,EACbuG,UAAW,6BACVo9J,IAAM9jK,cAAc,OAAQ,CAC7BwpD,MAAOkhH,EACP9qK,IAAKvI,KAAK2xK,YACV,eAAe,GAGdhlB,IAAS8f,IAAM9jK,cAAc,KAAM,CACpC0G,UAAW,4BACVu4J,GAAUA,EAAO19J,KAAI,SAAUq9J,GAChC,OAAOkF,IAAM9jK,cAAc,KAAM,CAC/BlL,IAAK8pK,EAAMH,aAAeG,EAAMH,YAAYnlK,KAAK,MAAQslK,GACxD8I,GAxOX,SAAuBxwJ,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EAwOtfD,CAAc,CAC3B2nJ,MAAOA,EACP9jK,KAAM2kD,EAAO3kD,MACZ6tK,SACA1J,IAAWA,EAAOptK,QAAUiyK,IAAM9jK,cAAc0oK,GAAU,CAC7DtvJ,KAAMA,EACN2sJ,SAAUA,EACVC,cAAeA,EACflrK,KAAMzD,KAAKyD,KACX6tK,WAAYA,SAKXE,EA3OT,CA4OE/E,IAAMxkK,WAGRupK,GAAS/B,UAEP,CACA7H,OAAQvU,IAAU91J,MAClBy0K,kBAAmB3e,IAAUp0G,KAC7Bn2C,KAAMuqJ,IAAUv2J,OAAO41J,WACvB,OAAUW,IAAUp0G,KAAKyzG,WACzB0Z,QAAS/Y,IAAU3tJ,OAAOgtJ,WAC1B4e,WAAYje,IAAUx1J,OAAO60J,WAC7Bua,OAAQ5Z,IAAUR,QAAQQ,IAAUv2J,QACpC4xK,SAAUrb,IAAUhyB,KACpBstC,cAAetb,IAAUv2J,OAAO41J,YAElC8e,GAAS9B,aAAe,CACtB9H,OAAQ,GACRoK,mBAAmB,GC3QrB,IAAIuB,GAEJ,SAAUzE,GAGR,SAASyE,EAAM/rK,GACb,IAAI2F,EAQJ,OANA2T,IAAgB9gB,KAAMuzK,IAEtBpmK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgB0yI,GAAOt4K,KAAK+E,KAAMwH,KACrEQ,MAAQ,CACZwrK,QAAQ,GAEHrmK,EA8BT,OAzCA2wC,IAAUy1H,EAAOzE,GAcjB9tJ,IAAauyJ,EAAO,CAAC,CACnB91K,IAAK,cACL9B,MAAO,SAAqBqH,GAC1B,IAAI+lK,EAAO1mK,SAASW,EAAE42C,cAAcR,aAAa,cAC7CmB,EAAWv6C,KAAKwH,MAAM+yC,SAErBv6C,KAAKgI,MAAMwrK,QAKdxzK,KAAK6L,SAAS,CACZ2nK,QAAQ,IAGNzK,GAAQ/oK,KAAKwH,MAAMuhK,MACrBxuH,EAASwuH,IATX/oK,KAAK6L,SAAS,CACZ2nK,QAAQ,MAYb,CACD/1K,IAAK,SACL9B,MAAO,WACL,OAAO,SAIJ43K,EA1CT,CA2CE9G,IAAM7kK,eAGR2rK,GAAM9D,UAEJ,CACAl1H,SAAU84G,IAAUhyB,KACpB0nC,KAAM1V,IAAU3tJ,OAAOgtJ,YAEzB6gB,GAAM7D,aAAe,CACnBn1H,SAAU,cCpDZ,IAAIk5H,GAEJ,SAAUC,GAGR,SAASD,EAAWjsK,GAClB,IAAI2F,EAMJ,OAJA2T,IAAgB9gB,KAAMyzK,IAEtBtmK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgB4yI,GAAYx4K,KAAK+E,KAAMwH,KAC1EwnK,YAAc7hK,EAAM6hK,YAAY/8J,KAAK0rC,IAAuBxwC,IAC3DA,EA4CT,OArDA2wC,IAAU21H,EAAYC,GAYtB1yJ,IAAayyJ,EAAY,CAAC,CACxBh2K,IAAK,SACL9B,MAAO,WAUL,IATA,IAAIszK,EAAcjvK,KAAKwH,MACnBuhK,EAAOkG,EAAYlG,KACnBuI,EAAarC,EAAYqC,WACzB7tK,EAAOwrK,EAAYxrK,KACnBgrK,EAAYQ,EAAYR,UACxB1sJ,EAAOktJ,EAAYltJ,KACnByxJ,EAASxzK,KAAKgI,MAAMwrK,OACpBG,EAAgB,GAEXrJ,EAAW,EAAGA,GAAY,EAAGA,IAAY,CAChD,IAAIz6J,EAAWy6J,IAAavB,EAC5B4K,EAAc/xK,KAAK6qK,IAAM9jK,cAAc,OAAQ,CAC7ClL,IAAK,aAAasD,OAAOupK,GACzBj7J,UAAW,gCAAgCtO,OAAO8O,EAAW,YAAc,KAC1E48J,IAAM9jK,cAAc,OAAQ,CAC7B6yC,QAASx7C,KAAKgvK,YACd,YAAa1E,EACbj7J,UAAW,wBAAwBtO,OAAOupK,IACzC+F,GAAY,CACb9I,MAAOkH,EACPhrK,KAAMA,EACNslK,KAAMuB,EACNgD,kBAAmBgE,EAAWhE,kBAC9B,OAAUgE,EAAU,OACpBzkK,IAAKykK,EAAWzkK,IAChB6gK,UAAW4D,EAAW5D,UACtBxmK,KAAM,QAIV,OAAOulK,IAAM9jK,cAAc,MAAO,CAChC0G,UAAW,kCAAkCtO,OAAOyyK,EAAS,UAAY,KACxE/G,IAAM9jK,cAAc,MAAO,CAC5B0G,UAAW,uBAAuBtO,OAAOyyK,EAAS,UAAY,KAC7DzxJ,EAAK6xJ,UAAWD,OAIhBF,EAtDT,CAuDEF,IAGFE,GAAWhE,UAET,CACAl1H,SAAU84G,IAAUhyB,KACpB0nC,KAAM1V,IAAU3tJ,OAAOgtJ,WACvB4e,WAAYje,IAAUx1J,OAAO60J,WAC7B4X,SAAUjX,IAAU3tJ,OACpB+oK,UAAWpb,IAAUv2J,OAAO41J,WAC5B3wI,KAAMsxI,IAAUx1J,QAElB41K,GAAW/D,aAAe,CACxBn1H,SAAU,aACV+vH,SAAU,MCxEZ,IAAIuJ,GAEJ,SAAUH,GAGR,SAASG,EAASrsK,GAChB,IAAI2F,EAOJ,OALA2T,IAAgB9gB,KAAM6zK,IAEtB1mK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgBgzI,GAAU54K,KAAK+E,KAAMwH,KACxEwnK,YAAc7hK,EAAM6hK,YAAY/8J,KAAK0rC,IAAuBxwC,IAClEA,EAAM2mK,cAAgB3mK,EAAM2mK,cAAc7hK,KAAK0rC,IAAuBxwC,IAC/DA,EA0DT,OApEA2wC,IAAU+1H,EAAUH,GAapB1yJ,IAAa6yJ,EAAU,CAAC,CACtBp2K,IAAK,gBACL9B,MAAO,SAAuByS,GAEN,KAAlBA,EAAM2lK,SAAoC,KAAlB3lK,EAAM2lK,UAChC3lK,EAAMU,iBACN9O,KAAKgvK,YAAY5gK,MAGpB,CACD3Q,IAAK,SACL9B,MAAO,WAOL,IANA,IAAIszK,EAAcjvK,KAAKwH,MACnBuhK,EAAOkG,EAAYlG,KACnBhnJ,EAAOktJ,EAAYltJ,KACnByxJ,EAASxzK,KAAKgI,MAAMwrK,OACpBG,EAAgB,GAEXrJ,EAAW,EAAGA,GAAY,EAAGA,IAAY,CAChD,IAAIz6J,EAAWy6J,IAAavB,EACxBiL,EAAUR,GAAU3jK,EACxB8jK,EAAc/xK,KAAK6qK,IAAM9jK,cAAc,OAAQm/F,IAAS,CACtDrqG,IAAK,aAAasD,OAAOupK,GACzBj7J,UAAW,yBAAyBtO,OAAO8O,EAAW,YAAc,IACpE,aAAckS,EAAKkyJ,UAAU3J,GAC7B,eAAgB0J,GACfR,EAAS,CACVU,KAAM,YACJ,IAAKzH,IAAM9jK,cAAc,OAAQm/F,IAAS,CAC5CtsD,QAASx7C,KAAKgvK,YACdmF,UAAWn0K,KAAK8zK,cAChBI,KAAM,UACLrkK,EAAW,CACZ,iBAAiB,EACjB,kBAAmB2jK,GACjB,GAAIA,EAAS,CACf,iBAAkB3jK,GAChB,GAAI,CACNukK,SAAUJ,EAAU,IAAM,GAC1B,aAAcjyJ,EAAKkyJ,UAAU3J,GAC7Bt+I,MAAOjK,EAAKkyJ,UAAU3J,GACtB,YAAaA,EACbj7J,UAAW,wCAAwCtO,OAAOupK,QAI9D,OAAOmC,IAAM9jK,cAAc,UAAW,CACpC0G,UAAW,2BAA2BtO,OAAOyyK,EAAS,UAAY,IAClE,aAAczxJ,EAAK6xJ,UAClBnH,IAAM9jK,cAAc,MAAO6qK,EAAS,CACrCU,KAAM,WACJ,GAAIP,QAILE,EArET,CAsEEN,IC5EF,SAASj0J,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAE9U,SAASoH,GAAcC,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,ED6E7gBg0J,GAASpE,UAEP,CACAl1H,SAAU84G,IAAUhyB,KACpB0nC,KAAM1V,IAAU3tJ,OAAOgtJ,WACvB3wI,KAAMsxI,IAAUx1J,QAElBg2K,GAASnE,aAAe,CACtBn1H,SAAU,cC5EZ,IAAI85H,GAEJ,SAAUvF,GAGR,SAASuF,EAAQ7sK,GACf,IAAI2F,EASJ,OAPA2T,IAAgB9gB,KAAMq0K,IAEtBlnK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgBwzI,GAASp5K,KAAK+E,KAAMwH,KACvE/D,KAAO+D,EAAM/D,KACnB0J,EAAMnF,MAAQ,CACZu/J,MAAO,MAEFp6J,EA2FT,OAvGA2wC,IAAUu2H,EAASvF,GAenB9tJ,IAAaqzJ,EAAS,CAAC,CACrB52K,IAAK,SACL9B,MAAO,WACL,IAAI4rK,EAAQvnK,KAAKgI,MAAMu/J,MACnB0H,EAAcjvK,KAAKwH,MACnB8pK,EAAarC,EAAYqC,WACzBgD,EAAarF,EAAYqF,WACzBnG,EAAgBc,EAAYd,cAC5BniJ,EAAQijJ,EAAYjjJ,MACpBuoJ,EAAYtF,EAAY1H,MACxBxlJ,EAAOktJ,EAAYltJ,KACnBmsJ,EAAce,EAAYf,YAE9B,GAAI3G,GAAS2G,EAAa,CACxB,IAAIjF,EAAY3kJ,EAAQijJ,EAAO,KAAM,KAAMvnK,KAAKyD,MAC5C+wK,EAAuBvL,EAAU9B,UAEjCsN,EAAiB,GACjBC,EAAkB,GAStB,YAXyC,IAAzBF,EAAkC,GAAKA,GAG7CrqK,SAAQ,SAAUkgK,GACtBoK,EAAe7kK,QAAQy6J,EAASr6J,gBAAkB,IAItDykK,EAAe7yK,KAAKyoK,EAASr6J,eAC7B0kK,EAAgB9yK,KAAKyoK,OAEhBoC,IAAM9jK,cAAc,MAAO,CAChC0G,UAAW,sBACVo9J,IAAM9jK,cAAc,MAAO,CAC5B0G,UAAW,2BACX,cAAe,QACdghK,GAAYzwJ,GAAc,CAC3BniB,IAAK8pK,EAAMvzC,GACXuzC,MAAOA,EACP9jK,KAAMzD,KAAKyD,MACV6tK,KAAe7E,IAAM9jK,cAAc,MAAO,CAC3C0G,UAAW,0BACX,cAAe,QACdo9J,IAAM9jK,cAAc,MAAO,CAC5B0G,UAAW,2BACVk4J,EAAMz+J,MAAO2jK,IAAM9jK,cAAc,MAAO,CACzC0G,UAAW,iCACV45J,EAAU7B,YAAYl9J,KAAI,SAAUyqK,GACrC,OAAOlI,IAAM9jK,cAAc,OAAQ,CACjClL,IAAKk3K,EACLtlK,UAAW,gCACV,IAAKslK,EAAY,SACjBlI,IAAM9jK,cAAc,MAAO,CAC9B0G,UAAW,gCACVqlK,EAAgBxqK,KAAI,SAAUmgK,GAC/B,OAAOoC,IAAM9jK,cAAc,OAAQ,CACjClL,IAAK4sK,EACLh7J,UAAW,+BACVg7J,SAGL,OAAOoC,IAAM9jK,cAAc,MAAO,CAChC0G,UAAW,sBACVo9J,IAAM9jK,cAAc,MAAO,CAC5B0G,UAAW,2BACX,cAAe,QACdklK,GAAaA,EAAU/5K,QAAU61K,GAAYzwJ,GAAc,CAC5D2nJ,MAAOgN,EACP9wK,KAAMzD,KAAKyD,MACV6tK,KAAe7E,IAAM9jK,cAAc,MAAO,CAC3C0G,UAAW,0BACX,cAAe,QACdo9J,IAAM9jK,cAAc,OAAQ,CAC7B0G,UAAW,0BACV2c,IAASmiJ,GAAiB1B,IAAM9jK,cAAc,MAAO,CACtD0G,UAAW,2BAA2BtO,OAAOuzK,EAAW7F,UAAY,UAAY,KAC/E6F,EAAW7F,UAAYhC,IAAM9jK,cAAc8qK,GAAY,CACxD1K,KAAMuL,EAAWvL,KACjBuI,WAAYA,EACZ7tK,KAAMzD,KAAKyD,KACXgrK,UAAW6F,EAAW7F,UACtB1sJ,KAAMA,EACNw4B,SAAU+5H,EAAW/5H,WAClBkyH,IAAM9jK,cAAckrK,GAAU,CACjC9K,KAAMuL,EAAWvL,KACjBhnJ,KAAMA,EACNw4B,SAAU+5H,EAAW/5H,iBAMtB85H,EAxGT,CAyGE5H,IAAM7kK,eAGRysK,GAAQ5E,UAEN,CACAtB,cAAe9a,IAAUp0G,KACzBjzB,MAAOqnI,IAAUv2J,OAAO41J,WACxB6U,MAAOlU,IAAUv2J,OAAO41J,WACxB4e,WAAYje,IAAUx1J,OAAO60J,WAC7B4hB,WAAYjhB,IAAUx1J,OAAO60J,YAE/B2hB,GAAQ3E,aAAe,CACrBvB,eAAe,EACf5zH,SAAU,cChIZ,IAAIy5E,GAAK,EAEL4gD,GAEJ,SAAU9F,GAGR,SAAS8F,EAAOptK,GACd,IAAI2F,EhBsNkBk0H,EACpBwzC,EACAC,EgBvMF,OAfAh0J,IAAgB9gB,KAAM40K,IAEtBznK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgB+zI,GAAQ35K,KAAK+E,KAAMwH,KACtEQ,MAAQ,CACZ+sK,KAAMnG,GAAM/1H,OACZm8H,aAAa,EACbhhD,KAAMA,IAER7mH,EAAM1J,KAAO+D,EAAM/D,KACnB0J,EAAM8+J,WAAa,IAAIjC,EAAiB78J,EAAM1J,MAC9C0J,EAAM8nK,OAAS9nK,EAAM8nK,OAAOhjK,KAAK0rC,IAAuBxwC,IACxDA,EAAMy2G,MAAQz2G,EAAMy2G,MAAM3xG,KAAK0rC,IAAuBxwC,IACtDA,EAAM+nK,YAAc/nK,EAAM+nK,YAAYjjK,KAAK0rC,IAAuBxwC,IAElEA,EAAMgoK,chBsMgB9zC,EgBtMgBl0H,EAAMgoK,aAAaljK,KAAK0rC,IAAuBxwC,IhBuMnF0nK,EAA4C,mBAAxBO,oBAAqCA,oBAAsB94J,WAC/Ew4J,GAAU,EACP,WACDA,IAIJA,GAAU,EACVD,GAAW,WACTC,GAAU,EACVzzC,UgBhNKl0H,EAyFT,OA7GA2wC,IAAU82H,EAAQ9F,GAuBlB9tJ,IAAa4zJ,EAAQ,CAAC,CACpBn3K,IAAK,oBACL9B,MAAO,WAGDqE,KAAK21C,OAAS31C,KAAK21C,MAAMh6C,OAC3BqE,KAAK64C,OAAO74C,KAAK21C,MAAMh6C,SAG1B,CACD8B,IAAK,SACL9B,MAAO,SAAgBA,GACR,IAATA,EAAaqE,KAAK6L,SAAS,CAC7BkpK,KAAMnG,GAAM/1H,OACZm8H,aAAa,IACPh1K,KAAK6L,SAAS,CACpBkpK,KAAMnG,GAAK,OACXoG,aAAa,IAEfh1K,KAAKwH,MAAM6tK,SAASr1K,KAAKisK,WAAWpzH,OAAOl9C,EAAO,CAChD+uK,mBAAoB1qK,KAAKwH,MAAMkjK,mBAC/BC,WAAY3qK,KAAKwH,MAAMmjK,WACvBC,QAAS5qK,KAAKwH,MAAMojK,QACpBtV,QAASt1J,KAAKwH,MAAM8tJ,QACpB9pB,OAAQxrI,KAAKwH,MAAMgkI,YAGtB,CACD/tI,IAAK,QACL9B,MAAO,WACmB,IAApBqE,KAAK21C,MAAMh6C,QACfqE,KAAK21C,MAAMh6C,MAAQ,GACnBqE,KAAK21C,MAAM2/H,QACXt1K,KAAK64C,OAAO,OAEb,CACDp7C,IAAK,eACL9B,MAAO,WACLqE,KAAK64C,OAAO74C,KAAK21C,MAAMh6C,SAExB,CACD8B,IAAK,cACL9B,MAAO,SAAqBqH,GACR,KAAdA,EAAE+wK,SACJ/zK,KAAK4jH,UAGR,CACDnmH,IAAK,SACL9B,MAAO,SAAgBwM,GACrBnI,KAAK21C,MAAQxtC,IAEd,CACD1K,IAAK,SACL9B,MAAO,WACL,IAAIszK,EAAcjvK,KAAKwH,MACnBua,EAAOktJ,EAAYltJ,KACnBusJ,EAAYW,EAAYX,UACxBiH,EAAcv1K,KAAKgI,MACnB+sK,EAAOQ,EAAYR,KACnBC,EAAcO,EAAYP,YAC1BhhD,EAAKuhD,EAAYvhD,GACjBwhD,EAAU,qBAAqBz0K,OAAOizH,GAC1C,OAAOy4C,IAAM9jK,cAAc,UAAW,CACpC0G,UAAW,oBACX,aAAc0S,EAAK82B,QAClB4zH,IAAM9jK,cAAc,QAAS,CAC9BqrH,GAAIwhD,EACJjtK,IAAKvI,KAAKi1K,OACV/rK,KAAM,SACNqxC,SAAUv6C,KAAKm1K,aACfM,YAAa1zJ,EAAK82B,OAClBy1H,UAAWA,IACT7B,IAAM9jK,cAAc,QAAS,CAC/B0G,UAAW,qBACXqmK,QAASF,GACRzzJ,EAAK82B,QAAS4zH,IAAM9jK,cAAc,SAAU,CAC7C0G,UAAW,yBACXmsC,QAASx7C,KAAK4jH,MACd+xD,QAAS31K,KAAKk1K,YACd,aAAcnzJ,EAAK6hG,MACnBgyD,UAAWZ,GACVD,UAIAH,EA9GT,CA+GEnI,IAAM7kK,eCtHR,SAAS0X,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAE9U,SAASoH,GAAcC,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EDuH7gB+0J,GAAOnF,UAEL,CACA4F,SAAUhiB,IAAUhyB,KACpBspC,WAAYtX,IAAU3tJ,OACtBglK,mBAAoBrX,IAAUhyB,KAC9BitC,UAAWjb,IAAUp0G,MAEvB21H,GAAOlF,aAAe,CACpB2F,SAAU,aACV1K,WAAY,GACZD,mBAAoB,KACpB4D,WAAW,GCpHb,IAAIuH,GAAO,CACTh9H,OAAQ,SACR+qE,MAAO,QAEP2tD,SAAU,iBACVqC,SAAU,gCACV3I,WAAY,CACVpyH,OAAQ,iBACRo0H,OAAQ,kBACRF,OAAQ,mBACRD,OAAQ,mBACRD,MAAO,eACPL,SAAU,WACVQ,OAAQ,kBACRnkC,QAAS,UACTppH,QAAS,UACTm4B,MAAO,QACP4zF,OAAQ,UAEV4jC,gBAAiB,mBAEjB6E,UAAW,CACTloH,EAAG,oBACHC,EAAG,kBACHC,EAAG,yBACHC,EAAG,mBACHC,EAAG,wBACHC,EAAG,mBAIH0pH,GAEJ,SAAUhH,GAGR,SAASgH,EAAatuK,GACpB,IAAI2F,EAEJ2T,IAAgB9gB,KAAM81K,IAEtB3oK,EAAQ4wC,IAA2B/9C,KAAM6gC,IAAgBi1I,GAAc76K,KAAK+E,KAAMwH,KAC5EuuK,OAAS,GACf5oK,EAAM6oK,gBAAkB,CACtBhiD,GAAI,SACJlrH,KAAM,SACN8+J,OAAQ,MAEVz6J,EAAM8oK,gBAAkB,CACtBjiD,GAAI,SACJlrH,KAAM,SACN8+J,OAAQ,KACRyH,QAAQ,GAGN7nK,EAAM/D,KAAKkkK,YACbD,EAAWlgK,EAAM/D,MAGnB0J,EAAM1J,KAAO+D,EAAM/D,KACnB0J,EAAM4U,KAAO0nJ,EAAUoM,GAAMruK,EAAMua,MACnC5U,EAAMyhK,MAAQnF,EAAUmF,EAAOpnK,EAAMonK,OACrCzhK,EAAMnF,MAAQ,CACZkuK,aAAa,GAEf/oK,EAAM89J,WAAa,GACnB,IAAIkL,EAAgB,GAAGp1K,OAAOoM,EAAM1J,KAAKwnK,YAEzC,GAAIzjK,EAAMgkI,OAAOhxI,OAAS,EAAG,CAC3B,IAAI47K,EAAmB,GACnBC,EAA0B,EAC9B7uK,EAAMgkI,OAAOrhI,SAAQ,SAAUo9J,GACxB6O,EAAiB7O,EAAMqB,kBAC1BwN,EAAiB7O,EAAMqB,gBAAkB,CACvC50C,GAAIuzC,EAAMqB,eAAiB,UAAU7nK,OAAOwmK,EAAMqB,gBAAkB,SACpE9/J,KAAMy+J,EAAMqB,gBAAkB,SAC9BhB,OAAQ,GACRyH,OAAoC,IAA5BgH,GAEVA,KAGF,IAAInL,EAAWkL,EAAiB7O,EAAMqB,gBAElC0N,EAAc12J,GAAc,GAAI2nJ,EAAO,CAEzCvzC,GAAIuzC,EAAMH,YAAY,GACtB57B,QAAQ,IAGV0/B,EAAStD,OAAOhmK,KAAK00K,GAErBnpK,EAAM4oK,OAAOn0K,KAAK00K,MAEpBH,EAAgBA,EAAcp1K,OAAOjG,OAAO0d,KAAK49J,GAAkBlsK,KAAI,SAAUzM,GAC/E,OAAO24K,EAAiB34K,OAI5B0P,EAAMopK,YAAa,EAEE/3K,MAAjBgJ,EAAMojK,SACRuL,EAAcn7H,MAAK,SAAUtzC,EAAGC,GAC9B,OAAIH,EAAMojK,QAAQh7J,QAAQlI,EAAEssH,IAAMxsH,EAAMojK,QAAQh7J,QAAQjI,EAAEqsH,IACjD,GAGD,KAIZ,IAAK,IAAIwiD,EAAgB,EAAGA,EAAgBL,EAAc37K,OAAQg8K,IAAiB,CACjF,IAAItL,EAAWiL,EAAcK,GACzBrL,GAAa3jK,EAAMojK,UAAWpjK,EAAMojK,QAAQpwK,QAASgN,EAAMojK,QAAQh7J,QAAQs7J,EAASl3C,KAAO,EAC3Fo3C,KAAa5jK,EAAM8tJ,UAAW9tJ,EAAM8tJ,QAAQ96J,SAASgN,EAAM8tJ,QAAQ1lJ,QAAQs7J,EAASl3C,KAAO,EAE/F,GAAKm3C,IAAcC,EAInB,GAAI5jK,EAAMkjK,mBAAoB,CAI5B,IAHA,IAAI+L,EAAY,GACZ7O,EAASsD,EAAStD,OAEbqE,EAAa,EAAGA,EAAarE,EAAOptK,OAAQyxK,IAAc,CACjE,IAAI1E,EAAQK,EAAOqE,GAEfzkK,EAAMkjK,mBAAmBv9J,EAAM1J,KAAKmkK,OAAOL,IAAUA,IACvDkP,EAAU70K,KAAK2lK,GAInB,GAAIkP,EAAUj8K,OAAQ,CACpB,IAAIk8K,EAAc,CAChB9O,OAAQ6O,EACR3tK,KAAMoiK,EAASpiK,KACfkrH,GAAIk3C,EAASl3C,IAGf7mH,EAAM89J,WAAWrpK,KAAK80K,SAGxBvpK,EAAM89J,WAAWrpK,KAAKspK,GAI1B,IAAIyL,GAAgBnvK,EAAMojK,UAAWpjK,EAAMojK,QAAQpwK,QAASgN,EAAMojK,QAAQh7J,QAAQzC,EAAM6oK,gBAAgBhiD,KAAO,EAC3G4iD,KAAgBpvK,EAAM8tJ,UAAW9tJ,EAAM8tJ,QAAQ96J,SAASgN,EAAM8tJ,QAAQ1lJ,QAAQzC,EAAM6oK,gBAAgBhiD,KAAO,EA6B/G,OA3BI2iD,IAAkBC,IACpBzpK,EAAMopK,YAAa,EAEnBppK,EAAM89J,WAAWjuG,QAAQ7vD,EAAM6oK,kBAG7B7oK,EAAM89J,WAAW,KACnB99J,EAAM89J,WAAW,GAAGjsE,OAAQ,GAG9B7xF,EAAM89J,WAAWjuG,QAAQ7vD,EAAM8oK,iBAE/B9oK,EAAM0pK,cAAgB1pK,EAAM0pK,cAAc5kK,KAAK0rC,IAAuBxwC,IACtEA,EAAM2pK,kBAAoB3pK,EAAM2pK,kBAAkB7kK,KAAK0rC,IAAuBxwC,IAC9EA,EAAM4pK,aAAe5pK,EAAM4pK,aAAa9kK,KAAK0rC,IAAuBxwC,IACpEA,EAAM6pK,aAAe7pK,EAAM6pK,aAAa/kK,KAAK0rC,IAAuBxwC,IACpEA,EAAM8pK,aAAe9pK,EAAM8pK,aAAahlK,KAAK0rC,IAAuBxwC,IACpEA,EAAM+pK,aAAe/pK,EAAM+pK,aAAajlK,KAAK0rC,IAAuBxwC,IACpEA,EAAMgqK,kBAAoBhqK,EAAMgqK,kBAAkBllK,KAAK0rC,IAAuBxwC,IAC9EA,EAAMiqK,gBAAkBjqK,EAAMiqK,gBAAgBnlK,KAAK0rC,IAAuBxwC,IAC1EA,EAAMkqK,iBAAmBlqK,EAAMkqK,iBAAiBplK,KAAK0rC,IAAuBxwC,IAC5EA,EAAMmqK,iBAAmBnqK,EAAMmqK,iBAAiBrlK,KAAK0rC,IAAuBxwC,IAC5EA,EAAMoqK,kBAAoBpqK,EAAMoqK,kBAAkBtlK,KAAK0rC,IAAuBxwC,IAC9EA,EAAMqqK,cAAgBrqK,EAAMqqK,cAAcvlK,KAAK0rC,IAAuBxwC,IACtEA,EAAMsqK,iBAAmBtqK,EAAMsqK,iBAAiBxlK,KAAK0rC,IAAuBxwC,IAC5EA,EAAM2mK,cAAgB3mK,EAAM2mK,cAAc7hK,KAAK0rC,IAAuBxwC,IACtEA,EAAMuqK,2BAA6BvqK,EAAMuqK,2BAA2BzlK,KAAK0rC,IAAuBxwC,IACzFA,EAudT,OArmBA2wC,IAAUg4H,EAAchH,GAiJxB9tJ,IAAa80J,EAAc,CAAC,CAC1Br4K,IAAK,oBACL9B,MAAO,WACL,IAAIupD,EAASllD,KAETA,KAAKgI,MAAMkuK,cACbl2K,KAAK23K,qBACL33K,KAAK43K,mBAAqBt7J,YAAW,WACnC4oC,EAAOr5C,SAAS,CACdqqK,aAAa,MAEd,OAGN,CACDz4K,IAAK,qBACL9B,MAAO,WACLqE,KAAK63K,uBACL73K,KAAKk3K,iBAEN,CACDz5K,IAAK,uBACL9B,MAAO,WACLqE,KAAKi2K,gBAAgBrO,OAAS,KAC9B1rJ,aAAalc,KAAK83K,cAClB57J,aAAalc,KAAK43K,oBAEd53K,KAAK+3K,gBACP/3K,KAAK+3K,eAAexrJ,eAAevsB,KAAK03K,8BAG3C,CACDj6K,IAAK,qBACL9B,MAAO,WACL,IAAIq8K,EAAoBnqK,SAASlF,cAAc,OAChC,CAAC,GAAI,WAAY,OAAQ,QAAS,OACxCwB,SAAQ,SAAUke,GACzB,OAAO2vJ,EAAkB7lH,MAAMgM,SAAW,GAAGp9D,OAAOsnB,EAAQ,aAE9DroB,KAAKgyK,oBAAsBgG,EAAkB7lH,MAAMgM,SAAS3jE,SAE7D,CACDiD,IAAK,oBACL9B,MAAO,WACL,MAAwB,QAApBqE,KAAKwH,MAAM6mK,MAAwBruK,KAAKwH,MAAM6mK,MAC9CruK,KAAKgI,MAAMqmK,MAAcruK,KAAKgI,MAAMqmK,MACd,mBAAf4J,WAAkCrI,GAAmBvB,OAE3DruK,KAAK+3K,iBACR/3K,KAAK+3K,eAAiBE,WAAW,gCACjCj4K,KAAK+3K,eAAe1rJ,YAAYrsB,KAAK03K,6BAGnC13K,KAAK+3K,eAAeG,MAAM/6K,MAAM,QAAgByyK,GAAmBvB,MAChEruK,KAAK+3K,eAAetgI,QAAU,OAAS,WAE/C,CACDh6C,IAAK,6BACL9B,MAAO,WACLqE,KAAK6L,SAAS,CACZwiK,MAAOruK,KAAK+3K,eAAetgI,QAAU,OAAS,YAGjD,CACDh6C,IAAK,kBACL9B,MAAO,SAAyB4rK,GAC9B,IAAI4Q,EAAUn4K,KAAKm4K,QAEnB,GAAKA,EAAL,CAKA,IAAIlP,EAAYjpK,KAAK+1K,OAAOv5J,QAAO,SAAU85J,GAC3C,OAAOA,EAAYtiD,KAAOuzC,EAAMvzC,MAC/B,GAEH,IAAK,IAAIv2H,KAAOwrK,EACVA,EAAUnrK,eAAeL,KAC3B8pK,EAAM9pK,GAAOwrK,EAAUxrK,IAI3B06K,EAAQtsK,SAAS,CACf07J,MAAOA,IAETrrJ,aAAalc,KAAK83K,iBAEnB,CACDr6K,IAAK,mBACL9B,MAAO,SAA0B4rK,GAC/B,IAAI4Q,EAAUn4K,KAAKm4K,QAEdA,IAILn4K,KAAK83K,aAAex7J,YAAW,WAC7B67J,EAAQtsK,SAAS,CACf07J,MAAO,SAER,OAEJ,CACD9pK,IAAK,mBACL9B,MAAO,SAA0B4rK,EAAOvkK,GACtChD,KAAKwH,MAAMg0C,QAAQ+rH,EAAOvkK,GAC1BhD,KAAKu3K,kBAAkBhQ,KAExB,CACD9pK,IAAK,oBACL9B,MAAO,SAA2B4rK,GAChC,IAAIn/G,EAASpoD,KAEbA,KAAKwH,MAAMsmK,SAASvG,GACfvnK,KAAKu2K,YAAev2K,KAAKwH,MAAMylK,QAAQf,EAAWplI,IAAIygI,GAC3D,IAAI18J,EAAY7K,KAAKo4K,aAAa,cAElC,GAAIvtK,EAAW,CACb,IAAI6nK,EAAY7nK,EAAU6nK,UAEtB1yK,KAAKwH,MAAM+mK,yBACb1jK,EAAUkB,cAGZgQ,uBAAsB,WACfqsC,EAAOiwH,SACZxtK,EAAUinK,cACNY,GAAa7nK,EAAU6nK,YAE3BtqH,EAAOyvH,uBAEPzvH,EAAO+uH,oBAEH/uH,EAAO6tH,gBAAgBrO,QACzB/8J,EAAUytK,cAAc,gBAK/B,CACD76K,IAAK,eACL9B,MAAO,WACAqE,KAAKu4K,kBACRv4K,KAAKu4K,iBAAkB,EACvBx8J,sBAAsB/b,KAAKm3K,sBAG9B,CACD15K,IAAK,oBACL9B,MAAO,WAGL,GAFAqE,KAAKu4K,iBAAkB,EAElBv4K,KAAKq4K,OAAV,CAIA,IAAIG,EAAiB,KAErB,GAAIx4K,KAAKi2K,gBAAgBrO,OACvB4Q,EAAiBx4K,KAAKi2K,oBACjB,CAML,IALA,IACIjD,EADShzK,KAAKq4K,OACKrF,UACnByF,EAAgBzF,GAAahzK,KAAKgzK,WAAa,GAC/C0F,EAAS,EAEJp3K,EAAI,EAAGohB,EAAI1iB,KAAKirK,WAAWzwK,OAAQ8G,EAAIohB,EAAGphB,IAAK,CACtD,IAAIq3K,EAAKF,EAAgBz4K,KAAKirK,WAAWzwK,OAAS,EAAI8G,EAAIA,EACtD4pK,EAAWlrK,KAAKirK,WAAW0N,GAC3B9tK,EAAY7K,KAAKo4K,aAAa,YAAYr3K,OAAO43K,IAErD,GAAI9tK,EAAW,CACb,IAAIqwC,EAASrwC,EAAUqsK,aAAalE,KAE/B0F,GAAU7tK,EAAU4nK,IAAMiG,IACzB7tK,EAAU4nK,IAAM,IAClBiG,EAAS7tK,EAAU4nK,KAInBv3H,IAAWs9H,IACbA,EAAiBtN,IAKnB8H,EAAY0F,EACdF,EAAiBx4K,KAAKirK,WAAWzuJ,QAAO,SAAU0uJ,GAChD,SAA6B,IAApBA,EAASmE,WACjB,GACM2D,EAAYhzK,KAAK44K,cAAgB54K,KAAK64K,eAC/CL,EAAiBx4K,KAAKirK,WAAWjrK,KAAKirK,WAAWzwK,OAAS,IAI9D,GAAIg+K,EAAgB,CAClB,IAAIM,EAAU94K,KAAK84K,QAEfC,EADkBP,EACa1vK,KAE/BgwK,EAAQ9wK,MAAM6H,UAAYkpK,GAC5BD,EAAQjtK,SAAS,CACfgE,SAAUkpK,IAKhB/4K,KAAKgzK,UAAYA,KAElB,CACDv1K,IAAK,eACL9B,MAAO,SAAsBisK,GAC3B5nK,KAAKi2K,gBAAgBrO,OAASA,EAE9B,IAAK,IAAItmK,EAAI,EAAGohB,EAAI1iB,KAAKirK,WAAWzwK,OAAQ8G,EAAIohB,EAAGphB,IAAK,CACtD,IAAIuJ,EAAY7K,KAAKo4K,aAAa,YAAYr3K,OAAOO,IAErD,GAAIuJ,GAAqC,UAAxBA,EAAUrD,MAAMsB,KAAkB,CACjD,IAAI0nK,EAAU5I,EAAS,OAAS,UAChC/8J,EAAUytK,cAAc9H,IAI5BxwK,KAAK+L,cAED/L,KAAKq4K,SACPr4K,KAAKq4K,OAAOrF,UAAY,GAG1BhzK,KAAKk3K,iBAEN,CACDz5K,IAAK,oBACL9B,MAAO,SAA2BuvK,EAAU5pK,GAC1C,IAGI03K,EAHAnuK,EAAY7K,KAAKo4K,aAAa,YAAYr3K,OAAOO,IACjD+2K,EAASr4K,KAAKq4K,OACJr4K,KAAK84K,QAGnBE,EAAoB,WAClB,GAAInuK,EAAW,CACb,IAAI4nK,EAAM5nK,EAAU4nK,IAEhBvH,EAASlsE,MACXyzE,EAAM,EAENA,GAAO,EAGT4F,EAAOrF,UAAYP,IAInBzyK,KAAKi2K,gBAAgBrO,QACvB5nK,KAAKg3K,aAAa,MAClBh3K,KAAK64C,OAAO+qE,QACZ7nG,sBAAsBi9J,IAEtBA,MAGH,CACDv7K,IAAK,mBACL9B,MAAO,SAA0BotK,GAC/B,IAAIkQ,EAAW,CACblQ,KAAMA,GAEJgF,EAAe/tK,KAAKwH,MAAMumK,aAC9B/tK,KAAK6L,SAASotK,GACdlvJ,EAAMllB,OAAOo0K,GACblL,EAAahF,KAEd,CACDtrK,IAAK,gBACL9B,MAAO,SAAuBqH,GAC5B,IAAIk2K,GAAU,EAEd,OAAQl2K,EAAE+wK,SACR,KAAK,GACH,IAAIxM,EAEAvnK,KAAKi2K,gBAAgBrO,QAAU5nK,KAAKi2K,gBAAgBrO,OAAOptK,SAAW+sK,EAAQyB,EAAiBhpK,KAAKi2K,gBAAgBrO,OAAO,GAAI5nK,KAAKgI,MAAM+gK,KAAM/oK,KAAKwH,MAAMqF,IAAK7M,KAAKwH,MAAM/D,SAC7KzD,KAAKu3K,kBAAkBhQ,GACvB2R,GAAU,GAMZA,GACFl2K,EAAE8L,mBAGL,CACDrR,IAAK,uBACL9B,MAAO,WACL,IAAK,IAAI2F,EAAI,EAAGohB,EAAI1iB,KAAKirK,WAAWzwK,OAAQ8G,EAAIohB,EAAGphB,IAAK,CACtD,IAAIuJ,EAAY7K,KAAKo4K,aAAa,YAAYr3K,OAAOO,IACjDuJ,GAAWA,EAAUinK,cAG3B,GAAI9xK,KAAKq4K,OAAQ,CACf,IAAIx4J,EAAS7f,KAAKq4K,OAClBr4K,KAAK64K,aAAeh5J,EAAOg5J,aAC3B74K,KAAK44K,aAAe/4J,EAAO+4J,gBAG9B,CACDn7K,IAAK,gBACL9B,MAAO,WACL,OAAOqE,KAAKgI,MAAMkuK,YAAcl2K,KAAKirK,WAAW/sK,MAAM,EAAG,GAAK8B,KAAKirK,aAEpE,CACDxtK,IAAK,gBACL9B,MAAO,SAAuBwM,GAC5BnI,KAAK84K,QAAU3wK,IAEhB,CACD1K,IAAK,eACL9B,MAAO,SAAsBwM,GAC3BnI,KAAK64C,OAAS1wC,IAEf,CACD1K,IAAK,gBACL9B,MAAO,SAAuBwM,GAC5BnI,KAAKm4K,QAAUhwK,IAEhB,CACD1K,IAAK,eACL9B,MAAO,SAAsBwM,GAC3BnI,KAAKq4K,OAASlwK,IAEf,CACD1K,IAAK,iBACL9B,MAAO,SAAwBmN,EAAMX,GAC9BnI,KAAKo4K,eACRp4K,KAAKo4K,aAAe,IAGtBp4K,KAAKo4K,aAAatvK,GAAQX,IAE3B,CACD1K,IAAK,SACL9B,MAAO,WACL,IAAIwtD,EAASnpD,KAETivK,EAAcjvK,KAAKwH,MACnB4kK,EAAU6C,EAAY7C,QACtB4B,EAAYiB,EAAYjB,UACxBnhK,EAAMoiK,EAAYpiK,IAClB6gK,EAAYuB,EAAYvB,UACxBC,EAAesB,EAAYtB,aAC3BC,EAAYqB,EAAYrB,UACxBz7G,EAAQ88G,EAAY98G,MACpBnmC,EAAQijJ,EAAYjjJ,MACpBu7I,EAAQ0H,EAAY1H,MACpB0G,EAAQgB,EAAYhB,MACpB8D,EAAU9C,EAAW,OACrB3B,EAAoB2B,EAAY3B,kBAChC5C,EAAqBuE,EAAYvE,mBACjCwD,EAAce,EAAYf,YAC1BC,EAAgBc,EAAYd,cAC5BC,EAAea,EAAYb,aAC3BX,EAAYwB,EAAYxB,UACxB7C,EAAUqE,EAAYrE,QACtBtV,EAAU2Z,EAAY3Z,QACtB2X,EAASgC,EAAYhC,OACrBqB,EAAYW,EAAYX,UACxBG,EAAYQ,EAAYR,UACxBC,EAAWO,EAAYP,SACvBC,EAAgBM,EAAYN,cAC5B5yK,EAAQqwK,GAAW4B,EAAY,IAAM,GAAK,EjBvWpD,WACE,GAAuB,oBAAZngK,SAAyB,OAAO,EAC3C,IAAI2iC,EAAM3iC,SAASlF,cAAc,OACjC6nC,EAAI2hB,MAAMp2D,MAAQ,QAClBy0C,EAAI2hB,MAAMy6G,OAAS,QACnBp8H,EAAI2hB,MAAMsV,SAAW,SACrBj3B,EAAI2hB,MAAMgM,SAAW,WACrB3tB,EAAI2hB,MAAMsgH,IAAM,UAChB5kK,SAAS22F,KAAKx2F,YAAYwiC,GAC1B,IAAI2oI,EAAiB3oI,EAAI4oI,YAAc5oI,EAAI6oI,YAE3C,OADAxrK,SAAS22F,KAAK/2F,YAAY+iC,GACnB2oI,EiB4V+CG,GAC9CjL,EAAQruK,KAAKu5K,oBACbxQ,EAAO/oK,KAAKwH,MAAMuhK,MAAQ/oK,KAAKgI,MAAM+gK,MAAQh/I,EAAMvd,IAAI,SAAWxM,KAAKwH,MAAMqoK,YACjF,OAAOpD,IAAM9jK,cAAc,UAAW,CACpCwpD,MAAOvyC,GAAc,CACnB7jB,MAAOA,GACNo2D,GACH9iD,UAAW,yBAAyBtO,OAAOstK,GAC3C,aAAcriJ,EACdmoJ,UAAWn0K,KAAK8zK,eACfrH,IAAM9jK,cAAc,MAAO,CAC5B0G,UAAW,kBACVo9J,IAAM9jK,cAAckmK,GAAS,CAC9BtmK,IAAKvI,KAAK62K,cACVpzK,KAAMzD,KAAKyD,KACXse,KAAM/hB,KAAK+hB,KACXksJ,MAAOA,EACPhD,WAAYjrK,KAAKirK,WACjBiE,cAAelvK,KAAK82K,kBACpBlI,MAAO5uK,KAAK4uK,SACTnC,IAAM9jK,cAAcisK,GAAQ,CAC/BrsK,IAAKvI,KAAK+2K,aACV1B,SAAUr1K,KAAKg3K,aACfvzK,KAAMzD,KAAKyD,KACXse,KAAM/hB,KAAK+hB,KACX2oJ,mBAAoBA,EACpBE,QAASA,EACTtV,QAASA,EACT9pB,OAAQxrI,KAAK+1K,OACbzH,UAAWA,IACT7B,IAAM9jK,cAAc,MAAO,CAC7BJ,IAAKvI,KAAKi3K,aACV5nK,UAAW,oBACXmqK,SAAUx5K,KAAKk3K,cACdl3K,KAAKy5K,gBAAgBvvK,KAAI,SAAUghK,EAAU5pK,GAC9C,OAAOmrK,IAAM9jK,cAAc6oK,GAAU,CACnCjpK,IAAK4gD,EAAOuwH,eAAeznK,KAAKk3C,EAAQ,YAAYpoD,OAAOO,IAC3D7D,IAAKytK,EAASpiK,KACdkrH,GAAIk3C,EAASl3C,GACblrH,KAAMoiK,EAASpiK,KACf8+J,OAAQsD,EAAStD,OACjBwE,QAASA,EACT,OAAU2F,EACVC,kBAAmB7oH,EAAO6oH,kBAC1BvuK,KAAM0lD,EAAO1lD,KACbse,KAAMonC,EAAOpnC,KACbkrJ,OAAQ/B,EAASl3C,IAAM7qE,EAAO6sH,gBAAgBhiD,GAAKi5C,OAASzuK,EAC5DgtI,OAAQ0/B,EAASl3C,IAAM7qE,EAAO6sH,gBAAgBhiD,GAAK7qE,EAAO4sH,YAASv3K,EACnE8yK,WAAY,CACV,OAAUS,EACVhJ,KAAMA,EACN7hK,KAAM8mK,EACNnhK,IAAKA,EACL6gK,UAAWA,EACXC,aAAcA,EACdC,UAAWA,EACXL,UAAWwE,EACXvE,QAASY,EACTd,kBAAmBA,EACnBG,UAAWA,EACXL,OAAQjkH,EAAOiuH,gBACf/J,QAASlkH,EAAOkuH,iBAChB77H,QAAS2N,EAAOmuH,kBAElB5I,SAAUA,EACVC,cAAeA,SAEbT,GAAeC,IAAkB1B,IAAM9jK,cAAc,MAAO,CAChE0G,UAAW,kBACVo9J,IAAM9jK,cAAc0rK,GAAS,CAC9B9rK,IAAKvI,KAAKw3K,cACV/zK,KAAMzD,KAAKyD,KACXuoB,MAAOA,EACPu7I,MAAOA,EACP4G,cAAeA,EACfD,YAAaA,EACboD,WAAY,CACV,OAAUS,EACV7qK,KAAM,GACN6hK,KAAMA,EACNl8J,IAAKA,EACL6gK,UAAWA,EACXC,aAAcA,EACdC,UAAWA,EACXN,kBAAmBA,GAErBgH,WAAY,CACVvL,KAAMA,EACNxuH,SAAUv6C,KAAKy3K,iBACfhJ,UAAWA,GAEb1sJ,KAAM/hB,KAAK+hB,aAKV+zJ,EAtmBT,CAumBErJ,IAAM7kK,eCzpBR,SAAS0X,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,ED4pB9Us9J,GAAarG,UAEX7vJ,GAAc,GAAIiuJ,GAAiB,CACnCpqK,KAAM4vJ,IAAUx1J,OAAO60J,aAEzBojB,GAAapG,aAAe9vJ,GAAc,GAAIgwJ,ICvpB9C,IAAI+J,GAEJ,SAAU7K,GAGR,SAAS6K,IAGP,OAFA74J,IAAgB9gB,KAAM25K,GAEf57H,IAA2B/9C,KAAM6gC,IAAgB84I,GAAQv5K,MAAMJ,KAAMpF,YAU9E,OAfAkjD,IAAU67H,EAAQ7K,GAQlB9tJ,IAAa24J,EAAQ,CAAC,CACpBl8K,IAAK,SACL9B,MAAO,WACL,OAAO8wK,IAAM9jK,cAAcmtK,GAAchuE,IAAS,GAAI9nG,KAAKwH,MAAOxH,KAAKgI,YAIpE2xK,EAhBT,CAiBElN,IAAM7kK,eCnCR,SAAS0X,GAAQzhB,EAAQ0hB,GAAkB,IAAI/G,EAAO1d,OAAO0d,KAAK3a,GAAS,GAAI/C,OAAO0kB,sBAAuB,CAAE,IAAIC,EAAU3kB,OAAO0kB,sBAAsB3hB,GAAa0hB,IAAgBE,EAAUA,EAAQjD,QAAO,SAAUkD,GAAO,OAAO5kB,OAAO6kB,yBAAyB9hB,EAAQ6hB,GAAKxZ,eAAgBsS,EAAK5W,KAAKxB,MAAMoY,EAAMiH,GAAY,OAAOjH,EAE9U,SAASoH,GAAcC,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EDoC7gB85J,GAAOlK,UAEL5B,GACF8L,GAAOjK,aAjCP,SAAuB7vJ,GAAU,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CAAE,IAAIqW,EAAyB,MAAhB/c,UAAU0G,GAAa1G,UAAU0G,GAAK,GAAQA,EAAI,EAAKge,GAAQxkB,OAAO6c,IAAS,GAAMxN,SAAQ,SAAU1M,GAAOqiB,IAAgBD,EAAQpiB,EAAKka,EAAOla,OAAsB3C,OAAOilB,0BAA6BjlB,OAAOklB,iBAAiBH,EAAQ/kB,OAAOilB,0BAA0BpI,IAAmB2H,GAAQxkB,OAAO6c,IAASxN,SAAQ,SAAU1M,GAAO3C,OAAOW,eAAeokB,EAAQpiB,EAAK3C,OAAO6kB,yBAAyBhI,EAAQla,OAAe,OAAOoiB,EAiCvfD,CAAc,GAAIgwJ,GAAoB,CAC1DnsK,KAAMA,IChCR,IAAIm2K,GAAQ,SAASA,EAAMpyK,GACzB,IAAK,IAAIggB,KAAKoyJ,EAAMlK,aACFlxK,MAAZgJ,EAAMggB,IAA4ChpB,MAAzBo7K,EAAMlK,aAAaloJ,KAC9ChgB,EAAMggB,GAAKoyJ,EAAMlK,aAAaloJ,IAIlC,OAAO6oJ,GAAYzwJ,GAAc,GAAIpY,KAGvCoyK,GAAMnK,UAEJtC,GACFyM,GAAMlK,aAAe9vJ,GAAc,GAAI+vJ,GAAmB,CACxDlsK,KAAMA,K,6BC1BO,SAASqkG,IAetB,OAdAA,EAAWhtG,OAAOyM,QAAU,SAAUsY,GACpC,IAAK,IAAIve,EAAI,EAAGA,EAAI1G,UAAUJ,OAAQ8G,IAAK,CACzC,IAAIqW,EAAS/c,UAAU0G,GAEvB,IAAK,IAAI7D,KAAOka,EACV7c,OAAOC,UAAU+C,eAAe7C,KAAK0c,EAAQla,KAC/CoiB,EAAOpiB,GAAOka,EAAOla,IAK3B,OAAOoiB,IAGOzf,MAAMJ,KAAMpF,W","file":"4.chunk.0fe87.js","sourcesContent":["export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildFormatLongFn;\n\nfunction buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildLocalizeFn;\n\nfunction buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchFn;\n\nfunction buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchPatternFn;\n\nfunction buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nmodule.exports = exports.default;",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","\nconst EMPTY = {};\n\nexport function assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (let i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nexport function exec(url, route, opts) {\n\tlet reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tlet p = c[1].split('&');\n\t\tfor (let i=0; i b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nexport function prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nexport function segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nexport function rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nexport function rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport class PureComponent extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\t// Some third-party libraries check if this property is present\n\t\tthis.isPureReactComponent = true;\n\t}\n\n\tshouldComponentUpdate(props, state) {\n\t\treturn (\n\t\t\tshallowDiffers(this.props, props) || shallowDiffers(this.state, state)\n\t\t);\n\t}\n}\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionalComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function forwardRef(fn) {\n\t// We always have ref in props.ref, except for\n\t// mobx-react. It will call this function directly\n\t// and always pass ref as the second argument.\n\tfunction Forwarded(props, ref) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\tref = props.ref || ref;\n\t\treturn fn(\n\t\t\tclone,\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\n\t\t);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (!children) return null;\n\treturn toChildArray(children).reduce(\n\t\t(acc, value, index) => acc.concat(fn(value, index)),\n\t\t[]\n\t);\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tchildren = toChildArray(children);\n\t\tif (children.length !== 1) {\n\t\t\tthrow new Error('Children.only() expects only one child.');\n\t\t}\n\t\treturn children[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode._component);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nfunction detachedClone(vnode) {\n\tif (vnode) {\n\t\tvnode = assign({}, vnode);\n\t\tvnode._component = null;\n\t\tvnode._children = vnode._children && vnode._children.map(detachedClone);\n\t}\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children = vnode._children && vnode._children.map(removeOriginal);\n\t}\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @param {Promise} promise The thrown promise\n * @param {Component} suspendingComponent The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingComponent) {\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent.componentWillUnmount =\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._suspendedComponentWillUnmount =\n\t\tsuspendingComponent.componentWillUnmount;\n\tsuspendingComponent.componentWillUnmount = () => {\n\t\tonResolved();\n\n\t\tif (suspendingComponent._suspendedComponentWillUnmount) {\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount();\n\t\t}\n\t};\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\tc._vnode._children[0] = removeOriginal(c.state._suspended);\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\tif (!c._pendingSuspensionCount++) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children)\n\t\t\tthis._vnode._children[0] = detachedClone(this._detachOnNextRender);\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tstate._suspended && props.fallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('../src/internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tconst list = this;\n\tlist._map.forEach((node, child) => {\n\t\tresolve(list, child, node);\n\t});\n};\n","import { createElement, hydrate, render, __u as _unmount } from 'preact';\n\nclass ContextProvider {\n\tgetChildContext() {\n\t\treturn this.props.context;\n\t}\n\trender(props) {\n\t\treturn props.children;\n\t}\n}\n\n/**\n * Portal component\n * @param {object | null | undefined} props\n */\nfunction Portal(props) {\n\tlet _this = this;\n\tlet container = props.container;\n\tlet wrap = createElement(\n\t\tContextProvider,\n\t\t{ context: _this.context },\n\t\tprops.vnode\n\t);\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\tif (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t\t_this._hasMounted = false;\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props.vnode) {\n\t\tif (!_this._hasMounted) {\n\t\t\t// Create a placeholder that we can use to insert into.\n\t\t\t_this._temp = document.createTextNode('');\n\t\t\t// Hydrate existing nodes to keep the dom intact, when rendering\n\t\t\t// wrap into the container.\n\t\t\thydrate('', container);\n\t\t\t// Append to the container (this matches React's behavior)\n\t\t\tcontainer.appendChild(_this._temp);\n\t\t\t// At this point we have mounted and should set our container.\n\t\t\t_this._hasMounted = true;\n\t\t\t_this._container = container;\n\t\t\t// Render our wrapping element into temp.\n\t\t\trender(wrap, container, _this._temp);\n\t\t\t_this._children = _this._temp._children;\n\t\t} else {\n\t\t\t// When we have mounted and the vnode is present it means the\n\t\t\t// props have changed or a parent is triggering a rerender.\n\t\t\t// This implies we only need to call render. But we need to keep\n\t\t\t// the old tree around, otherwise will treat the vnodes as new and\n\t\t\t// will wrongly call `componentDidMount` on them\n\t\t\tcontainer._children = _this._children;\n\t\t\trender(wrap, container);\n\t\t\t_this._children = container._children;\n\t\t}\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._hasMounted) {\n\t\tif (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t}\n\t// Set the wrapping element for future unmounting.\n\t_this._wrap = wrap;\n\n\t_this.componentWillUnmount = () => {\n\t\tif (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t};\n\n\treturn null;\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { vnode, container });\n}\n","import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\nimport { applyEventNormalization } from './events';\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\twhile (parent.firstChild) {\n\t\t\tparent.removeChild(parent.firstChild);\n\t\t}\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = () => {};\n\tlet stoppedPropagating = false,\n\t\tdefaultPrevented = false;\n\n\tconst origStopPropagation = e.stopPropagation;\n\te.stopPropagation = () => {\n\t\torigStopPropagation.call(e);\n\t\tstoppedPropagating = true;\n\t};\n\n\tconst origPreventDefault = e.preventDefault;\n\te.preventDefault = () => {\n\t\torigPreventDefault.call(e);\n\t\tdefaultPrevented = true;\n\t};\n\n\te.isPropagationStopped = () => stoppedPropagating;\n\te.isDefaultPrevented = () => defaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\n// Patch in `UNSAFE_*` lifecycle hooks\nfunction setSafeDescriptor(proto, key) {\n\tif (proto['UNSAFE_' + key] && !proto[key]) {\n\t\tObject.defineProperty(proto, key, {\n\t\t\tconfigurable: false,\n\t\t\tget() {\n\t\t\t\treturn this['UNSAFE_' + key];\n\t\t\t},\n\t\t\t// This `set` is only used if a user sets a lifecycle like cWU\n\t\t\t// after setting a lifecycle like UNSAFE_cWU. I doubt anyone\n\t\t\t// actually does this in practice so not testing it\n\t\t\t/* istanbul ignore next */\n\t\t\tset(v) {\n\t\t\t\tthis['UNSAFE_' + key] = v;\n\t\t\t}\n\t\t});\n\t}\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\n\tif (type) {\n\t\t// Alias `class` prop to `className` if available\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) props.class = props.className;\n\t\t\tObject.defineProperty(props, 'className', classNameDescriptor);\n\t\t}\n\n\t\t// Apply DOM VNode compat\n\t\tif (typeof type != 'function') {\n\t\t\t// Apply defaultValue to value\n\t\t\tif (props.defaultValue && props.value !== undefined) {\n\t\t\t\tif (!props.value && props.value !== 0) {\n\t\t\t\t\tprops.value = props.defaultValue;\n\t\t\t\t}\n\t\t\t\tdelete props.defaultValue;\n\t\t\t}\n\n\t\t\t// Add support for array select values: \n\t\t\tif (Array.isArray(props.value) && props.multiple && type === 'select') {\n\t\t\t\ttoChildArray(props.children).forEach(child => {\n\t\t\t\t\tif (props.value.indexOf(child.props.value) != -1) {\n\t\t\t\t\t\tchild.props.selected = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tdelete props.value;\n\t\t\t}\n\n\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t// value will be used as the file name and the file will be called\n\t\t\t// \"true\" upon downloading it.\n\t\t\tif (props.download === true) {\n\t\t\t\tprops.download = '';\n\t\t\t}\n\n\t\t\t// Normalize DOM vnode properties.\n\t\t\tlet shouldSanitize, attrs, i;\n\t\t\tfor (i in props) if ((shouldSanitize = CAMEL_PROPS.test(i))) break;\n\t\t\tif (shouldSanitize) {\n\t\t\t\tattrs = vnode.props = {};\n\t\t\t\tfor (i in props) {\n\t\t\t\t\tattrs[\n\t\t\t\t\t\tCAMEL_PROPS.test(i) ? i.replace(/[A-Z0-9]/, '-$&').toLowerCase() : i\n\t\t\t\t\t] = props[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Events\n\t\tapplyEventNormalization(vnode);\n\n\t\t// Component base class compat\n\t\t// We can't just patch the base component class, because components that use\n\t\t// inheritance and are transpiled down to ES5 will overwrite our patched\n\t\t// getters and setters. See #1941\n\t\tif (\n\t\t\ttypeof type == 'function' &&\n\t\t\t!type._patchedLifecycles &&\n\t\t\ttype.prototype\n\t\t) {\n\t\t\tsetSafeDescriptor(type.prototype, 'componentWillMount');\n\t\t\tsetSafeDescriptor(type.prototype, 'componentWillReceiveProps');\n\t\t\tsetSafeDescriptor(type.prototype, 'componentWillUpdate');\n\t\t\ttype._patchedLifecycles = true;\n\t\t}\n\t}\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n","/**\n * Normalize event handlers like react does. Most famously it uses `onChange` for any input element.\n * @param {import('./internal').VNode} vnode The vnode to normalize events on\n */\nexport function applyEventNormalization({ type, props }) {\n\tif (!props || typeof type != 'string') return;\n\tlet newProps = {};\n\n\tfor (let i in props) {\n\t\tif (/^on(Ani|Tra|Tou)/.test(i)) {\n\t\t\tprops[i.toLowerCase()] = props[i];\n\t\t\tdelete props[i];\n\t\t}\n\t\tnewProps[i.toLowerCase()] = i;\n\t}\n\tif (newProps.ondoubleclick) {\n\t\tprops.ondblclick = props[newProps.ondoubleclick];\n\t\tdelete props[newProps.ondoubleclick];\n\t}\n\tif (newProps.onbeforeinput) {\n\t\tprops.onbeforeinput = props[newProps.onbeforeinput];\n\t\tdelete props[newProps.onbeforeinput];\n\t}\n\t// for *textual inputs* (incl textarea), normalize `onChange` -> `onInput`:\n\tif (\n\t\tnewProps.onchange &&\n\t\t(type === 'textarea' ||\n\t\t\t(type.toLowerCase() === 'input' && !/^fil|che|ra/i.test(props.type)))\n\t) {\n\t\tlet normalized = newProps.oninput || 'oninput';\n\t\tif (!props[normalized]) {\n\t\t\tprops[normalized] = props[newProps.onchange];\n\t\t\tdelete props[newProps.onchange];\n\t\t}\n\t}\n}\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));","// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ');\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\n","import lookup from 'void-elements'\nconst attrRE = /\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g\n\nexport default function stringify(tag) {\n const res = {\n type: 'tag',\n name: '',\n voidElement: false,\n attrs: {},\n children: [],\n }\n\n const tagMatch = tag.match(/<\\/?([^\\s]+?)[/\\s>]/)\n if (tagMatch) {\n res.name = tagMatch[1]\n if (\n lookup[tagMatch[1]] ||\n tag.charAt(tag.length - 2) === '/'\n ) {\n res.voidElement = true\n }\n\n // handle comment tag\n if (res.name.startsWith('!--')) {\n const endIndex = tag.indexOf('-->')\n return {\n type: 'comment',\n comment: endIndex !== -1 ? tag.slice(4, endIndex) : '',\n }\n }\n }\n\n const reg = new RegExp(attrRE)\n let result = null\n for (;;) {\n result = reg.exec(tag)\n\n if (result === null) {\n break\n }\n\n if (!result[0].trim()) {\n continue\n }\n\n if (result[1]) {\n const attr = result[1].trim()\n let arr = [attr, '']\n\n if (attr.indexOf('=') > -1) {\n arr = attr.split('=')\n }\n\n res.attrs[arr[0]] = arr[1]\n reg.lastIndex--\n } else if (result[2]) {\n res.attrs[result[2]] = result[3].trim().substring(1, result[3].length - 1)\n }\n }\n\n return res\n}\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith(''\n return buff\n }\n}\n\nexport default function (doc) {\n return doc.reduce(function (token, rootEl) {\n return token + stringify('', rootEl)\n }, '')\n}\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconsole.log('f');\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"format\"],\n _excluded2 = [\"children\", \"count\", \"parent\", \"i18nKey\", \"context\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useContext, isValidElement, cloneElement, createElement } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { getI18n, I18nContext, getDefaults } from './context';\nimport { warn, warnOnce } from './utils';\n\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n var base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node.props ? node.props.children : node.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"\");\n }\n } else if (child === null) {\n warn(\"Trans: the passed in value is invalid - seems you passed in a null child.\");\n } else if (_typeof(child) === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, _excluded);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var ast = HTML.parse(\"<0>\".concat(targetString, \"\"));\n\n var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) child.children = inner;\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), isVoid ? undefined : inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;\n var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n var _content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _content));\n } else {\n mem.push(_content);\n }\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n context = _ref.context,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded2);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n if (context) tOptions.context = context;\n\n var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? tOptions.interpolation : {\n interpolation: _objectSpread(_objectSpread({}, tOptions.interpolation), {}, {\n prefix: '#$?',\n suffix: '?$#'\n })\n };\n\n var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {\n count: count\n }, values), interpolationOverride), {}, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"forwardedRef\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation';\nimport { getDisplayName } from './utils';\nexport function withTranslation(ns) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function Extend(WrappedComponent) {\n function I18nextWithTranslation(_ref) {\n var forwardedRef = _ref.forwardedRef,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var _useTranslation = useTranslation(ns, _objectSpread(_objectSpread({}, rest), {}, {\n keyPrefix: options.keyPrefix\n })),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n var passDownProps = _objectSpread(_objectSpread({}, rest), {}, {\n t: t,\n i18n: i18n,\n tReady: ready\n });\n\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n\n return createElement(WrappedComponent, passDownProps);\n }\n\n I18nextWithTranslation.displayName = \"withI18nextTranslation(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n\n var forwardRef = function forwardRef(props, ref) {\n return createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n };\n\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n };\n}","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSameUTCWeek;\n\nvar _index = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n (0, _index2.default)(2, arguments);\n var dateLeftStartOfWeek = (0, _index.default)(dirtyDateLeft, options);\n var dateRightStartOfWeek = (0, _index.default)(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}\n\nmodule.exports = exports.default;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","import startOfWeek from '../startOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","import toDate from '../toDate/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 1, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWeekend\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * var result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\n\nexport default function isWeekend(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day === 0 || day === 6;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarMonths from '../differenceInCalendarMonths/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastMonthNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import getWeekYear from '../getWeekYear/index.js';\nimport startOfWeek from '../startOfWeek/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the start of a week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * var result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * var result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek(firstWeek, dirtyOptions);\n return date;\n}","import startOfWeek from '../startOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week?\n *\n * @description\n * Are the given dates in the same week?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the dates are in the same week\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n * weekStartsOn: 1\n * })\n * //=> false\n */\n\nexport default function isSameWeek(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions);\n var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(\"RocketChatUiKit\",[],e):\"object\"==typeof exports?exports.RocketChatUiKit=e():t.RocketChatUiKit=e()}(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var u=e[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,n),u.l=!0,u.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var u in t)n.d(r,u,function(e){return t[e]}.bind(null,u));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(t,e,n){\"use strict\";var r,u;n.r(e),n.d(e,\"version\",(function(){return T})),n.d(e,\"ELEMENT_TYPES\",(function(){return r})),n.d(e,\"BLOCK_CONTEXT\",(function(){return u})),n.d(e,\"UiKitParserText\",(function(){return f})),n.d(e,\"UiKitParserMessage\",(function(){return l})),n.d(e,\"UiKitParserModal\",(function(){return s})),n.d(e,\"uiKitText\",(function(){return O})),n.d(e,\"uiKitMessage\",(function(){return I})),n.d(e,\"uiKitModal\",(function(){return p})),n.d(e,\"ElementType\",(function(){return r})),n.d(e,\"BlockContext\",(function(){return u})),n.d(e,\"isElement\",(function(){return o})),function(t){t.PLAIN_TEXT=\"plain_text\",t.MARKDOWN=\"mrkdwn\",t.DIVIDER=\"divider\",t.SECTION=\"section\",t.INPUT=\"input\",t.CONDITIONAL=\"conditional\",t.IMAGE=\"image\",t.ACTIONS=\"actions\",t.CONTEXT=\"context\",t.BUTTON=\"button\",t.OVERFLOW=\"overflow\",t.PLAIN_TEXT_INPUT=\"plain_text_input\",t.CONVERSATION_SELECT=\"conversations_select\",t.CHANNEL_SELECT=\"channels_select\",t.USER_SELECT=\"users_select\",t.STATIC_SELECT=\"static_select\",t.MULTI_STATIC_SELECT=\"multi_static_select\",t.DATEPICKER=\"datepicker\"}(r||(r={})),function(t){t[t.BLOCK=0]=\"BLOCK\",t[t.SECTION=1]=\"SECTION\",t[t.ACTION=2]=\"ACTION\",t[t.FORM=3]=\"FORM\",t[t.CONTEXT=4]=\"CONTEXT\"}(u||(u={}));var i,o=function(t){return null!==t&&\"object\"==typeof t&&\"type\"in t&&Object.values(r).includes(t.type)},c=(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),T=\"0.14.1\",E=function(t,e,n,i){switch(t.type){case r.PLAIN_TEXT:return\"function\"==typeof n.text?n.text(t,e,i):n.plainText(t,e,i);case r.MARKDOWN:return\"function\"==typeof n.text?n.text(t,e,i):n.mrkdwn(t,e,i);case r.DIVIDER:return e!==u.BLOCK?null:n.divider(t,u.BLOCK,i);case r.SECTION:return e!==u.BLOCK?null:n.section(t,u.BLOCK,i);case r.IMAGE:return u.BLOCK,n.image(t,e,i);case r.ACTIONS:return e!==u.BLOCK?null:n.actions(t,u.BLOCK,i);case r.CONTEXT:return e!==u.BLOCK?null:n.context(t,u.BLOCK,i);case r.INPUT:return e!==u.BLOCK?null:n.input(t,u.BLOCK,i);case r.OVERFLOW:return n.overflow(t,e,i);case r.BUTTON:return n.button(t,e,i);case r.STATIC_SELECT:return n.staticSelect(t,e,i);case r.MULTI_STATIC_SELECT:return n.multiStaticSelect(t,e,i);case r.DATEPICKER:return n.datePicker(t,e,i);case r.PLAIN_TEXT_INPUT:return n.plainInput(t,e,i)}return n[t.type]?n[t.type](t,e,i):null},C=function(t,e){return function(n,r,u,i){return e&&!e.includes(n.type)?null:E(n,r,t,i)}},a=function(t){return function(e,n){return function(i){var c;return Array.isArray(i)?(c=Array.prototype).concat.apply(c,i.filter(o).map((function(t){if(t.type===r.CONDITIONAL){var e=t;return function(t,e){return void 0===t&&(t=void 0),!!t&&!(Array.isArray(e.engine)&&!e.engine.includes(t.engine))}(n,e.when)?e.render:[]}return[t]}))).filter((function(e){return!t||t.includes(e.type)})).map((function(t,n){return E(t,u.BLOCK,e,n)})):[]}}},f=function(){var t=this;this.text=function(e,n,u){return e.type===r.PLAIN_TEXT?t.plainText(e,n,u):e.type===r.MARKDOWN?t.mrkdwn(e,n,u):null}},l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.renderAccessories=C(e,[r.BUTTON,r.IMAGE,r.MULTI_STATIC_SELECT,r.STATIC_SELECT,r.CONVERSATION_SELECT,r.USER_SELECT,r.CHANNEL_SELECT,r.USER_SELECT,r.DATEPICKER,r.OVERFLOW]),e.renderActions=C(e,[r.BUTTON,r.STATIC_SELECT,r.MULTI_STATIC_SELECT,r.CONVERSATION_SELECT,r.CHANNEL_SELECT,r.USER_SELECT,r.USER_SELECT,r.DATEPICKER]),e.renderContext=C(e,[r.IMAGE,r.PLAIN_TEXT,r.MARKDOWN]),e}return c(e,t),e}(f),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.renderInputs=C(e,[r.STATIC_SELECT,r.PLAIN_TEXT_INPUT,r.MULTI_STATIC_SELECT,r.CONVERSATION_SELECT,r.CHANNEL_SELECT,r.USER_SELECT,r.USER_SELECT,r.DATEPICKER]),e}return c(e,t),e}(l),O=a([r.PLAIN_TEXT,r.MARKDOWN]),I=a([r.DIVIDER,r.SECTION,r.IMAGE,r.ACTIONS,r.CONTEXT]),p=a([r.DIVIDER,r.SECTION,r.IMAGE,r.ACTIONS,r.CONTEXT,r.INPUT]);console.log(\"ui-kit version: 0.14.1\")}])}));","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate(), dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n result.setFullYear(dirtyDate.getUTCFullYear());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSunday\n * @category Weekday Helpers\n * @summary Is the given date Sunday?\n *\n * @description\n * Is the given date Sunday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 21 September 2014 Sunday?\n * var result = isSunday(new Date(2014, 8, 21))\n * //=> true\n */\n\nexport default function isSunday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 0;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * var result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\n\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}","import startOfWeek from '../startOfWeek/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * var result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = compareLocalAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `eachDay` to `eachDayOfInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * eachDay(new Date(2014, 0, 10), new Date(2014, 0, 20))\n *\n * // v2.0.0 onward\n *\n * eachDayOfInterval(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) }\n * )\n * ```\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * var result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\n\nexport default function eachDayOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = options && 'step' in options ? Number(options.step) : 1;\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return dates;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import eachDayOfInterval from '../eachDayOfInterval/index.js';\nimport isSunday from '../isSunday/index.js';\nimport isWeekend from '../isWeekend/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekendOfInterval\n * @category Interval Helpers\n * @summary List all the Saturdays and Sundays in the given date interval.\n *\n * @description\n * Get all the Saturdays and Sundays in the given date interval.\n *\n * @param {Interval} interval - the given interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} an array containing all the Saturdays and Sundays\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Lists all Saturdays and Sundays in the given date interval\n * var result = eachWeekendOfInterval({\n * start: new Date(2018, 8, 17),\n * end: new Date(2018, 8, 30)\n * })\n * //=> [\n * // Sat Sep 22 2018 00:00:00,\n * // Sun Sep 23 2018 00:00:00,\n * // Sat Sep 29 2018 00:00:00,\n * // Sun Sep 30 2018 00:00:00\n * // ]\n */\n\nexport default function eachWeekendOfInterval(interval) {\n requiredArgs(1, arguments);\n var dateInterval = eachDayOfInterval(interval);\n var weekends = [];\n var index = 0;\n\n while (index < dateInterval.length) {\n var date = dateInterval[index++];\n\n if (isWeekend(date)) {\n weekends.push(date);\n if (isSunday(date)) index = index + 5;\n }\n }\n\n return weekends;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import compareAsc from '../compareAsc/index.js';\nimport differenceInMonths from '../differenceInMonths/index.js';\nimport differenceInSeconds from '../differenceInSeconds/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport toDate from '../toDate/index.js';\nimport cloneObject from '../_lib/cloneObject/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport toDate from '../toDate/index.js';\nimport differenceInSeconds from '../differenceInSeconds/index.js';\nimport cloneObject from '../_lib/cloneObject/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_YEAR = 525600;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * var result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * var result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * var result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = roundingMethodFn((seconds - offsetInSeconds) / 60);\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (minutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (minutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(minutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import startOfWeek from '../startOfWeek/index.js';\nimport startOfWeekYear from '../startOfWeekYear/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * var result = getISOWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport default function getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek(date, options).getTime() - startOfWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import startOfWeek from '../startOfWeek/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the local week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * var result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * var result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * var result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\n\nexport default function getWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfWeek\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the last day of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function lastDayOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + diff);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import isWeekend from '../isWeekend/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport isSunday from '../isSunday/index.js';\nimport isSaturday from '../isSaturday/index.js';\n/**\n * @name addBusinessDays\n * @category Day Helpers\n * @summary Add the specified number of business days (mon - fri) to the given date.\n *\n * @description\n * Add the specified number of business days (mon - fri) to the given date, ignoring weekends.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of business days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the business days added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 10 business days to 1 September 2014:\n * var result = addBusinessDays(new Date(2014, 8, 1), 10)\n * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days)\n */\n\nexport default function addBusinessDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var startedOnWeekend = isWeekend(date);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) return new Date(NaN);\n var hours = date.getHours();\n var sign = amount < 0 ? -1 : 1;\n var fullWeeks = toInteger(amount / 5);\n date.setDate(date.getDate() + fullWeeks * 7); // Get remaining days not part of a full week\n\n var restDays = Math.abs(amount % 5); // Loops over remaining days\n\n while (restDays > 0) {\n date.setDate(date.getDate() + sign);\n if (!isWeekend(date)) restDays -= 1;\n } // If the date is a weekend day and we reduce a dividable of\n // 5 from it, we land on a weekend date.\n // To counter this, we add days accordingly to land on the next business day\n\n\n if (startedOnWeekend && isWeekend(date) && amount !== 0) {\n // If we're reducing days, we want to add days until we land on a weekday\n // If we're adding days we want to reduce days until we land on a weekday\n if (isSaturday(date)) date.setDate(date.getDate() + (sign < 0 ? 2 : -1));\n if (isSunday(date)) date.setDate(date.getDate() + (sign < 0 ? 1 : -2));\n } // Restore hours to avoid DST lag\n\n\n date.setHours(hours);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSaturday\n * @category Weekday Helpers\n * @summary Is the given date Saturday?\n *\n * @description\n * Is the given date Saturday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Saturday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 27 September 2014 Saturday?\n * var result = isSaturday(new Date(2014, 8, 27))\n * //=> true\n */\n\nexport default function isSaturday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 6;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport getISOWeekYear from '../getISOWeekYear/index.js';\nimport setISOWeekYear from '../setISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `addISOYears` to `addISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the ISO week-numbering years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * var result = addISOWeekYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jun 26 2015 00:00:00\n */\n\nexport default function addISOWeekYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return setISOWeekYear(dirtyDate, getISOWeekYear(dirtyDate) + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `setISOYear` to `setISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `setWeekYear`.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} isoWeekYear - the ISO week-numbering year of the new date\n * @returns {Date} the new date with the ISO week-numbering year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * var result = setISOWeekYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\n\nexport default function setISOWeekYear(dirtyDate, dirtyISOWeekYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeekYear = toInteger(dirtyISOWeekYear);\n var diff = differenceInCalendarDays(date, startOfISOWeekYear(date));\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(isoWeekYear, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n date = startOfISOWeekYear(fourthOfJanuary);\n date.setDate(date.getDate() + diff);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * var result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\n\nexport default function addSeconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * 1000);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name areIntervalsOverlapping\n * @category Interval Helpers\n * @summary Is the given time interval overlapping with another time interval?\n *\n * @description\n * Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `areRangesOverlapping` to `areIntervalsOverlapping`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * areRangesOverlapping(\n * new Date(2014, 0, 10), new Date(2014, 0, 20),\n * new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n *\n * // v2.0.0 onward\n *\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * ```\n *\n * @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link docs/types/Interval}\n * @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.inclusive=false] - whether the comparison is inclusive or not\n * @returns {Boolean} whether the time intervals are overlapping\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For overlapping time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> true\n *\n * @example\n * // For non-overlapping time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> false\n *\n * @example\n * // For adjacent time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }\n * )\n * //=> false\n *\n * @example\n * // Using the inclusive option:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }\n * )\n * //=> false\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },\n * { inclusive: true }\n * )\n * //=> true\n */\n\nexport default function areIntervalsOverlapping(dirtyIntervalLeft, dirtyIntervalRight) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var intervalLeft = dirtyIntervalLeft || {};\n var intervalRight = dirtyIntervalRight || {};\n var leftStartTime = toDate(intervalLeft.start).getTime();\n var leftEndTime = toDate(intervalLeft.end).getTime();\n var rightStartTime = toDate(intervalRight.start).getTime();\n var rightEndTime = toDate(intervalRight.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {\n throw new RangeError('Invalid interval');\n }\n\n if (options.inclusive) {\n return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime;\n }\n\n return leftStartTime < rightEndTime && rightStartTime < leftEndTime;\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `differenceInCalendarISOYears` to `differenceInCalendarISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO week-numbering years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * var result = differenceInCalendarISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarISOWeekYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n return getISOWeekYear(dirtyDateLeft) - getISOWeekYear(dirtyDateRight);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addISOWeekYears from '../addISOWeekYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `subISOYears` to `subISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `setWeekYear`.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the ISO week-numbering years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * var result = subISOWeekYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\n\nexport default function subISOWeekYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addISOWeekYears(dirtyDate, -amount);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are from 10:01:59 to 10:00:00\n * var result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarYears from '../differenceInCalendarYears/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\n\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear('1584');\n dateRight.setFullYear('1584'); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastYearNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import addHours from '../addHours/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachHourOfInterval\n * @category Interval Helpers\n * @summary Return the array of hours within the specified time interval.\n *\n * @description\n * Return the array of hours within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of hours from the hour of the interval start to the hour of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each hour between 6 October 2014, 12:00 and 10 October 2014, 15:00\n * var result = eachHourOfInterval({\n * start: new Date(2014, 9, 6, 12),\n * end: new Date(2014, 9, 6, 15)\n * })\n * //=> [\n * // Mon Oct 06 2014 12:00:00,\n * // Mon Oct 06 2014 13:00:00,\n * // Mon Oct 06 2014 14:00:00,\n * // Mon Oct 06 2014 15:00:00\n * // ]\n */\n\nexport default function eachHourOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var startTime = startDate.getTime();\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setMinutes(0, 0, 0);\n var step = options && 'step' in options ? Number(options.step) : 1;\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate = addHours(currentDate, step);\n }\n\n return dates;\n}","import addWeeks from '../addWeeks/index.js';\nimport startOfWeek from '../startOfWeek/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date[]} the array with starts of weeks from the week of the interval start to the week of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be 0, 1, ..., 6\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * var result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\n\nexport default function eachWeekOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var startDateWeek = startOfWeek(startDate, options);\n var endDateWeek = startOfWeek(endDate, options); // Some timezones switch DST at midnight, making start of day unreliable in these timezones, 3pm is a safe bet\n\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n endTime = endDateWeek.getTime();\n var weeks = [];\n var currentWeek = startDateWeek;\n\n while (currentWeek.getTime() <= endTime) {\n currentWeek.setHours(0);\n weeks.push(toDate(currentWeek));\n currentWeek = addWeeks(currentWeek, 1);\n currentWeek.setHours(15);\n }\n\n return weeks;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * var result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\n\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfDecade\n * @category Decade Helpers\n * @summary Return the end of a decade for the given date.\n *\n * @description\n * Return the end of a decade for the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a decade\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // The end of a decade for 12 May 1984 00:00:00:\n * var result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))\n * //=> Dec 31 1989 23:59:59.999\n */\n\nexport default function endOfDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = 9 + Math.floor(year / 10) * 10;\n date.setFullYear(decade, 11, 31);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import defaultLocale from '../locale/en-US/index.js';\nvar defaultFormat = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds'];\n/**\n * @name formatDuration\n * @category Common Helpers\n * @summary Formats a duration in human-readable format\n *\n * @description\n * Return human-readable duration string i.e. \"9 months 2 days\"\n *\n * @param {Duration} duration - the duration to format\n * @param {Object} [options] - an object with options.\n\n * @param {string[]} [options.format=['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds']] - the array of units to format\n * @param {boolean} [options.zero=false] - should be zeros be included in the output?\n * @param {string} [options.delimiter=' '] - delimiter string\n * @returns {string} the formatted date string\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Format full duration\n * formatDuration({\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> '2 years 9 months 1 week 7 days 5 hours 9 minutes 30 seconds\n *\n * @example\n * // Format partial duration\n * formatDuration({ months: 9, days: 2 })\n * //=> '9 months 2 days'\n *\n * @example\n * // Customize the format\n * formatDuration(\n * {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * },\n * { format: ['months', 'weeks'] }\n * ) === '9 months 1 week'\n *\n * @example\n * // Customize the zeros presence\n * formatDuration({ years: 0, months: 9 })\n * //=> '9 months'\n * formatDuration({ years: 0, months: 9 }, null, { zero: true })\n * //=> '0 years 9 months'\n *\n * @example\n * // Customize the delimiter\n * formatDuration({ years: 2, months: 9, weeks: 3 }, { delimiter: ', ' })\n * //=> '2 years, 9 months, 3 weeks'\n */\n\nexport default function formatDuration(duration) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \".concat(arguments.length, \" present\"));\n }\n\n var format = options.format || defaultFormat;\n var locale = options.locale || defaultLocale;\n var zero = options.zero || false;\n var delimiter = options.delimiter || ' ';\n var result = format.reduce(function (acc, unit) {\n var token = \"x\".concat(unit.replace(/(^.)/, function (m) {\n return m.toUpperCase();\n }));\n var addChunk = typeof duration[unit] === 'number' && (zero || duration[unit]);\n return addChunk ? acc.concat(locale.formatDistance(token, duration[unit])) : acc;\n }, []).join(delimiter);\n return result;\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with time zone, or both.\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.represenation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\n\nexport default function formatISO(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var format = options.format == null ? 'extended' : String(options.format);\n var representation = options.representation == null ? 'complete' : String(options.representation);\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var tzOffset = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n // Add the timezone.\n var offset = originalDate.getTimezoneOffset();\n\n if (offset !== 0) {\n var absoluteOffset = Math.abs(offset);\n var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = offset < 0 ? '+' : '-';\n tzOffset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n tzOffset = 'Z';\n }\n\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with 'T'\n\n var separator = result === '' ? '' : 'T'; // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n\n var time = [hour, minute, second].join(timeDelimiter); // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(time).concat(tzOffset);\n }\n\n return result;\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\n/**\n * @name formatISO9075\n * @category Common Helpers\n * @summary Format the date according to the ISO 9075 standard (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_get-format).\n *\n * @description\n * Return the formatted date string in ISO 9075 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time, or both.\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.represenation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18 19:00:52'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075, short format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918 190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, date only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, time only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52'\n */\n\nexport default function formatISO9075(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var format = options.format == null ? 'extended' : String(options.format);\n var representation = options.representation == null ? 'complete' : String(options.representation);\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with a space\n\n var separator = result === '' ? '' : ' '; // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(hour).concat(timeDelimiter).concat(minute).concat(timeDelimiter).concat(second);\n }\n\n return result;\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name formatRFC3339\n * @category Common Helpers\n * @summary Format the date according to the ISO 3339 standard (https://tools.ietf.org/html/rfc3339#section-5.6).\n *\n * @description\n * Return the formatted date string in ISO 3339 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {0|1|2|3} [options.fractionDigits=0] - number of digits after the decimal point after seconds\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.fractionDigits` must be between 0 and 3\n *\n * @example\n * // Represent 18 September 2019 in ISO 3339 format:\n * const result = formatRFC3339(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 3339 format, 2 digits of second fraction:\n * const result = formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), { fractionDigits: 2 })\n * //=> '2019-09-18T19:00:52.23Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 3339 format, 3 digits of second fraction\n * const result = formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), { fractionDigits: 3 })\n * //=> '2019-09-18T19:00:52.234Z'\n */\n\nexport default function formatRFC3339(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 arguments required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var fractionDigits = options.fractionDigits == null ? 0 : toInteger(options.fractionDigits); // Test if fractionDigits is between 0 and 3 _and_ is not NaN\n\n if (!(fractionDigits >= 0 && fractionDigits <= 3)) {\n throw new RangeError('fractionDigits must be between 0 and 3 inclusively');\n }\n\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = originalDate.getFullYear();\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2);\n var fractionalSecond = '';\n\n if (fractionDigits > 0) {\n var milliseconds = originalDate.getMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, fractionDigits - 3));\n fractionalSecond = '.' + addLeadingZeros(fractionalSeconds, fractionDigits);\n }\n\n var offset = '';\n var tzOffset = originalDate.getTimezoneOffset();\n\n if (tzOffset !== 0) {\n var absoluteOffset = Math.abs(tzOffset);\n var hourOffset = addLeadingZeros(absoluteOffset / 60, 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = tzOffset < 0 ? '+' : '-';\n offset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n offset = 'Z';\n }\n\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day, \"T\").concat(hour, \":\").concat(minute, \":\").concat(second).concat(fractionalSecond).concat(offset);\n}","import differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport format from '../format/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result |\n * |---------------------------|---------------------------|\n * | Previous 6 days | last Sunday at 04:30 AM |\n * | Last day | yesterday at 04:30 AM |\n * | Same day | today at 04:30 AM |\n * | Next day | tomorrow at 04:30 AM |\n * | Next 6 days | Sunday at 04:30 AM |\n * | Other | 12/31/2017 |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to format\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {String} the date in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.locale` must contain `formatRelative` property\n */\n\nexport default function formatRelative(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var baseDate = toDate(dirtyBaseDate);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n if (!locale.formatRelative) {\n throw new RangeError('locale must contain formatRelative property');\n }\n\n var diff = differenceInCalendarDays(date, baseDate);\n\n if (isNaN(diff)) {\n throw new RangeError('Invalid time value');\n }\n\n var token;\n\n if (diff < -6) {\n token = 'other';\n } else if (diff < -1) {\n token = 'lastWeek';\n } else if (diff < 0) {\n token = 'yesterday';\n } else if (diff < 1) {\n token = 'today';\n } else if (diff < 2) {\n token = 'tomorrow';\n } else if (diff < 7) {\n token = 'nextWeek';\n } else {\n token = 'other';\n }\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var utcBaseDate = subMilliseconds(baseDate, getTimezoneOffsetInMilliseconds(baseDate));\n var formatStr = locale.formatRelative(token, utcDate, utcBaseDate, options);\n return format(date, formatStr, options);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isLeapYear\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the leap year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * var result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\n\nexport default function isLeapYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * var result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\n\nexport default function getISODay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}","import toDate from '../toDate/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import getDate from '../getDate/index.js';\nimport getDay from '../getDay/index.js';\nimport startOfMonth from '../startOfMonth/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getWeekOfMonth\n * @category Week Helpers\n * @summary Get the week of the month of the given date.\n *\n * @description\n * Get the week of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the week of month\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Which week of the month is 9 November 2017?\n * var result = getWeekOfMonth(new Date(2017, 10, 9))\n * //=> 2\n */\n\nexport default function getWeekOfMonth(date, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var currentDayOfMonth = getDate(date);\n\n if (isNaN(currentDayOfMonth)) {\n return currentDayOfMonth;\n }\n\n var startWeekDay = getDay(startOfMonth(date));\n var lastDayOfFirstWeek = 0;\n\n if (startWeekDay >= weekStartsOn) {\n lastDayOfFirstWeek = weekStartsOn + 7 - startWeekDay;\n } else {\n lastDayOfFirstWeek = weekStartsOn - startWeekDay;\n }\n\n var weekNumber = 1;\n\n if (currentDayOfMonth > lastDayOfFirstWeek) {\n var remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek;\n weekNumber = weekNumber + Math.ceil(remainingDaysAfterFirstWeek / 7);\n }\n\n return weekNumber;\n}","import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index.js';\nimport lastDayOfMonth from '../lastDayOfMonth/index.js';\nimport startOfMonth from '../startOfMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getWeeksInMonth\n * @category Week Helpers\n * @summary Get the number of calendar weeks a month spans.\n *\n * @description\n * Get the number of calendar weeks the month in the given date spans.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks does February 2015 span?\n * var result = getWeeksInMonth(new Date(2015, 1, 8))\n * //=> 4\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks does July 2017 span?\n * var result = getWeeksInMonth(new Date(2017, 6, 5), { weekStartsOn: 1 })\n * //=> 6\n */\n\nexport default function getWeeksInMonth(date, options) {\n requiredArgs(1, arguments);\n return differenceInCalendarWeeks(lastDayOfMonth(date), startOfMonth(date), options) + 1;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * var result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\n\nexport default function lastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import subDays from '../subDays/index.js';\nimport subMonths from '../subMonths/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\n\nexport default function sub(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = 'years' in duration ? toInteger(duration.years) : 0;\n var months = 'months' in duration ? toInteger(duration.months) : 0;\n var weeks = 'weeks' in duration ? toInteger(duration.weeks) : 0;\n var days = 'days' in duration ? toInteger(duration.days) : 0;\n var hours = 'hours' in duration ? toInteger(duration.hours) : 0;\n var minutes = 'minutes' in duration ? toInteger(duration.minutes) : 0;\n var seconds = 'seconds' in duration ? toInteger(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = subMonths(toDate(dirtyDate), months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * var result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * var result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * var result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * var result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import parse from '../parse/index.js';\nimport isValid from '../isValid/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isMatch\n * @category Common Helpers\n * @summary validates the date string against given formats\n *\n * @description\n * Return the true if given date is string correct against the given format else\n * will return false.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * isMatch('23 AM', 'HH a')\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `isMatch` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `isMatch` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `isMatch` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `isMatch('50', 'yy') //=> true`\n *\n * `isMatch('75', 'yy') //=> true`\n *\n * while `uu` will use the year as is:\n *\n * `isMatch('50', 'uu') //=> true`\n *\n * `isMatch('75', 'uu') //=> true`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be checked in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are matched (e.g. when matching string 'January 1st' without a year),\n * the values will be taken from today's using `new Date()` date which works as a context of parsing.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n *\n *\n * @param {String} dateString - the date string to verify\n * @param {String} formatString - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Boolean}\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Match 11 February 2014 from middle-endian format:\n * var result = isMatch('02/11/2014', 'MM/dd/yyyy')\n * //=> true\n *\n * @example\n * // Match 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = isMatch('28-a de februaro', \"do 'de' MMMM\", {\n * locale: eo\n * })\n * //=> true\n */\n\nexport default function isMatch(dateString, formatString, dirtyOptions) {\n requiredArgs(2, arguments);\n return isValid(parse(dateString, formatString, new Date(), dirtyOptions));\n}","import startOfHour from '../startOfHour/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameHour\n * @category Hour Helpers\n * @summary Are the given dates in the same hour?\n *\n * @description\n * Are the given dates in the same hour?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same hour\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * var result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 6, 30))\n * //=> true\n */\n\nexport default function isSameHour(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfHour = startOfHour(dirtyDateLeft);\n var dateRightStartOfHour = startOfHour(dirtyDateRight);\n return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * var result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\n\nexport default function startOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(0, 0, 0);\n return date;\n}","import isSameWeek from '../isSameWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameISOWeek\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week?\n *\n * @description\n * Are the given dates in the same ISO week?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * var result = isSameISOWeek(new Date(2014, 8, 1), new Date(2014, 8, 7))\n * //=> true\n */\n\nexport default function isSameISOWeek(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n return isSameWeek(dirtyDateLeft, dirtyDateRight, {\n weekStartsOn: 1\n });\n}","import startOfMinute from '../startOfMinute/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameMinute\n * @category Minute Helpers\n * @summary Are the given dates in the same minute?\n *\n * @description\n * Are the given dates in the same minute?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same minute\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n * // in the same minute?\n * var result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n */\n\nexport default function isSameMinute(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft);\n var dateRightStartOfMinute = startOfMinute(dirtyDateRight);\n return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * var result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\n\nexport default function startOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from '../startOfQuarter/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import startOfSecond from '../startOfSecond/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameSecond\n * @category Second Helpers\n * @summary Are the given dates in the same second?\n *\n * @description\n * Are the given dates in the same second?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same second\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n * // in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n */\n\nexport default function isSameSecond(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft);\n var dateRightStartOfSecond = startOfSecond(dirtyDateRight);\n return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * var result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\n\nexport default function startOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isSameDay from '../isSameDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfQuarter\n * @category Quarter Helpers\n * @summary Return the last day of a year quarter for the given date.\n *\n * @description\n * Return the last day of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the last day of a quarter\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // The last day of a quarter for 2 September 2014 11:55:00:\n * var result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\n\nexport default function lastDayOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name roundToNearestMinutes\n * @category Minute Helpers\n * @summary Rounds the given date to the nearest minute\n *\n * @description\n * Rounds the given date to the nearest minute (or number of minutes).\n * Rounds up when the given date is exactly between the nearest round minutes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to round\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.nearestTo=1] - nearest number of minutes to round to. E.g. `15` to round to quarter hours.\n * @returns {Date} the new date rounded to the closest minute\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.nearestTo` must be between 1 and 30\n *\n * @example\n * // Round 10 July 2014 12:12:34 to nearest minute:\n * var result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34))\n * //=> Thu Jul 10 2014 12:13:00\n *\n * @example\n * // Round 10 July 2014 12:07:30 to nearest quarter hour:\n * var result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { nearestTo: 15 })\n * // rounds up because given date is exactly between 12:00:00 and 12:15:00\n * //=> Thu Jul 10 2014 12:15:00\n */\n\nexport default function roundToNearestMinutes(dirtyDate, options) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only none provided present');\n }\n\n var nearestTo = options && 'nearestTo' in options ? toInteger(options.nearestTo) : 1;\n\n if (nearestTo < 1 || nearestTo > 30) {\n throw new RangeError('`options.nearestTo` must be between 1 and 30');\n }\n\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds(); // relevant if nearestTo is 1, which is the default case\n\n var minutes = date.getMinutes() + seconds / 60;\n var roundedMinutes = Math.floor(minutes / nearestTo) * nearestTo;\n var remainderMinutes = minutes % nearestTo;\n var addedMinutes = Math.round(remainderMinutes / nearestTo) * nearestTo;\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), roundedMinutes + addedMinutes);\n}","import addDays from '../addDays/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * var result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * var result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function setDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate, options);\n var day = toInteger(dirtyDay);\n var currentDay = date.getDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var delta = 7 - weekStartsOn;\n var diff = day < 0 || day > 6 ? day - (currentDay + delta) % 7 : (dayIndex + delta) % 7 - (currentDay + delta) % 7;\n return addDays(date, diff, options);\n}","import getWeek from '../getWeek/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} week - the week of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the new date with the local week set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * var result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * var result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\n\nexport default function setWeek(dirtyDate, dirtyWeek, dirtyOptions) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getWeek(date, dirtyOptions) - week;\n date.setDate(date.getDate() - diff * 7);\n return date;\n}","import differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport startOfWeekYear from '../startOfWeekYear/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Set the local week-numbering year to the given date.\n *\n * @description\n * Set the local week-numbering year to the given date,\n * saving the week number and the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} weekYear - the local week-numbering year of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the new date with the local week-numbering year set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Set the local week-numbering year 2004 to 2 January 2010 with default options:\n * var result = setWeekYear(new Date(2010, 0, 2), 2004)\n * //=> Sat Jan 03 2004 00:00:00\n *\n * @example\n * // Set the local week-numbering year 2004 to 2 January 2010,\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * var result = setWeekYear(new Date(2010, 0, 2), 2004, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sat Jan 01 2005 00:00:00\n */\n\nexport default function setWeekYear(dirtyDate, dirtyWeekYear, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var date = toDate(dirtyDate);\n var weekYear = toInteger(dirtyWeekYear);\n var diff = differenceInCalendarDays(date, startOfWeekYear(date, dirtyOptions));\n var firstWeek = new Date(0);\n firstWeek.setFullYear(weekYear, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n date = startOfWeekYear(firstWeek, dirtyOptions);\n date.setDate(date.getDate() + diff);\n return date;\n}","/**\n * Maximum allowed time.\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Minimum allowed time.\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numberValues = {\n locale: {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n number: {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n } // CLDR #1585 - #1592\n\n};\nvar eraValues = {\n narrow: ['ईसा-पूर्व', 'ईस्वी'],\n abbreviated: ['ईसा-पूर्व', 'ईस्वी'],\n wide: ['ईसा-पूर्व', 'ईसवी सन'] // CLDR #1593 - #1616\n\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ति1', 'ति2', 'ति3', 'ति4'],\n wide: ['पहली तिमाही', 'दूसरी तिमाही', 'तीसरी तिमाही', 'चौथी तिमाही'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n // https://www.unicode.org/cldr/charts/32/summary/hi.html\n // CLDR #1617 - #1688\n\n};\nvar monthValues = {\n narrow: ['ज', 'फ़', 'मा', 'अ', 'मई', 'जू', 'जु', 'अग', 'सि', 'अक्तू', 'न', 'दि'],\n abbreviated: ['जन', 'फ़र', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुल', 'अग', 'सित', 'अक्तू', 'नव', 'दिस'],\n wide: ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'] // CLDR #1689 - #1744\n\n};\nvar dayValues = {\n narrow: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],\n short: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],\n abbreviated: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],\n wide: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'पूर्वाह्न',\n pm: 'अपराह्न',\n midnight: 'मध्यरात्रि',\n noon: 'दोपहर',\n morning: 'सुबह',\n afternoon: 'दोपहर',\n evening: 'शाम',\n night: 'रात'\n },\n abbreviated: {\n am: 'पूर्वाह्न',\n pm: 'अपराह्न',\n midnight: 'मध्यरात्रि',\n noon: 'दोपहर',\n morning: 'सुबह',\n afternoon: 'दोपहर',\n evening: 'शाम',\n night: 'रात'\n },\n wide: {\n am: 'पूर्वाह्न',\n pm: 'अपराह्न',\n midnight: 'मध्यरात्रि',\n noon: 'दोपहर',\n morning: 'सुबह',\n afternoon: 'दोपहर',\n evening: 'शाम',\n night: 'रात'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'पूर्वाह्न',\n pm: 'अपराह्न',\n midnight: 'मध्यरात्रि',\n noon: 'दोपहर',\n morning: 'सुबह',\n afternoon: 'दोपहर',\n evening: 'शाम',\n night: 'रात'\n },\n abbreviated: {\n am: 'पूर्वाह्न',\n pm: 'अपराह्न',\n midnight: 'मध्यरात्रि',\n noon: 'दोपहर',\n morning: 'सुबह',\n afternoon: 'दोपहर',\n evening: 'शाम',\n night: 'रात'\n },\n wide: {\n am: 'पूर्वाह्न',\n pm: 'अपराह्न',\n midnight: 'मध्यरात्रि',\n noon: 'दोपहर',\n morning: 'सुबह',\n afternoon: 'दोपहर',\n evening: 'शाम',\n night: 'रात'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = localize.localeToNumber(dirtyNumber);\n var localeNumber = localize.numberToLocale(number);\n var rem10 = number % 10;\n\n switch (rem10) {\n case 2:\n case 3:\n case 4:\n case 6:\n case 1:\n case 5:\n case 7:\n case 8:\n case 9:\n case 0:\n return localeNumber;\n }\n}\n\nfunction localeToNumber(locale) {\n var number = locale.toString().replace(/[१२३४५६७८९०]/g, function (match) {\n return numberValues.number[match];\n });\n return Number(number);\n}\n\nfunction numberToLocale(number) {\n return number.toString().replace(/\\d/g, function (match) {\n return numberValues.locale[match];\n });\n}\n\nvar localize = {\n localeToNumber: localeToNumber,\n numberToLocale: numberToLocale,\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","/**\n * @module log\n * Basic log handling with ability to override when used within another module.\n */\n\nimport { ILogger } from '../interfaces'\n\n/** Temp logging, should override form adapter's log */\nclass InternalLog implements ILogger {\n debug (...args: any[]) {\n // console.log(...args)\n }\n info (...args: any[]) {\n // console.log(...args)\n }\n warning (...args: any[]) {\n // console.warn(...args)\n }\n warn (...args: any[]) { // legacy method\n return this.warning(...args)\n }\n error (...args: any[]) {\n // console.error(...args)\n }\n}\n\n/** Default basic console logging */\nexport let logger: ILogger = new InternalLog()\n\n/** Substitute logging handler */\nexport function replaceLog (externalLog: ILogger) {\n logger = externalLog\n}\n\n/** Null all log outputs */\nexport function silence () {\n replaceLog({\n debug: () => null,\n info: () => null,\n warn: () => null,\n warning: () => null,\n error: () => null\n })\n}\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import addDays from '../addDays/index.js';\nimport addMonths from '../addMonths/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * var result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\n\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = 'years' in duration ? toInteger(duration.years) : 0;\n var months = 'months' in duration ? toInteger(duration.months) : 0;\n var weeks = 'weeks' in duration ? toInteger(duration.weeks) : 0;\n var days = 'days' in duration ? toInteger(duration.days) : 0;\n var hours = 'hours' in duration ? toInteger(duration.hours) : 0;\n var minutes = 'minutes' in duration ? toInteger(duration.minutes) : 0;\n var seconds = 'seconds' in duration ? toInteger(duration.seconds) : 0; // Add years and months\n\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date; // Add weeks and days\n\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name closestIndexTo\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now, `closestIndexTo` doesn't throw an exception\n * when the second argument is not an array, and returns Invalid Date instead.\n *\n * @param {Date|Number} dateToCompare - the date to compare with\n * @param {Date[]|Number[]} datesArray - the array to search\n * @returns {Number} an index of the date closest to the given date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * var dateToCompare = new Date(2015, 8, 6)\n * var datesArray = [\n * new Date(2015, 0, 1),\n * new Date(2016, 0, 1),\n * new Date(2017, 0, 1)\n * ]\n * var result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\n\nexport default function closestIndexTo(dirtyDateToCompare, dirtyDatesArray) {\n requiredArgs(2, arguments);\n var dateToCompare = toDate(dirtyDateToCompare);\n\n if (isNaN(dateToCompare)) {\n return NaN;\n }\n\n var timeToCompare = dateToCompare.getTime();\n var datesArray; // `dirtyDatesArray` is undefined or null\n\n if (dirtyDatesArray == null) {\n datesArray = []; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n } else if (typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array\n } else {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n }\n\n var result;\n var minDistance;\n datesArray.forEach(function (dirtyDate, index) {\n var currentDate = toDate(dirtyDate);\n\n if (isNaN(currentDate)) {\n result = NaN;\n minDistance = NaN;\n return;\n }\n\n var distance = Math.abs(timeToCompare - currentDate.getTime());\n\n if (result == null || distance < minDistance) {\n result = index;\n minDistance = distance;\n }\n });\n return result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name closestTo\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now, `closestTo` doesn't throw an exception\n * when the second argument is not an array, and returns Invalid Date instead.\n *\n * @param {Date|Number} dateToCompare - the date to compare with\n * @param {Date[]|Number[]} datesArray - the array to search\n * @returns {Date} the date from the array closest to the given date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * var dateToCompare = new Date(2015, 8, 6)\n * var result = closestTo(dateToCompare, [\n * new Date(2000, 0, 1),\n * new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\n\nexport default function closestTo(dirtyDateToCompare, dirtyDatesArray) {\n requiredArgs(2, arguments);\n var dateToCompare = toDate(dirtyDateToCompare);\n\n if (isNaN(dateToCompare)) {\n return new Date(NaN);\n }\n\n var timeToCompare = dateToCompare.getTime();\n var datesArray; // `dirtyDatesArray` is undefined or null\n\n if (dirtyDatesArray == null) {\n datesArray = []; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n } else if (typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array\n } else {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n }\n\n var result;\n var minDistance;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (isNaN(currentDate)) {\n result = new Date(NaN);\n minDistance = NaN;\n return;\n }\n\n var distance = Math.abs(timeToCompare - currentDate.getTime());\n\n if (result == null || distance < minDistance) {\n result = currentDate;\n minDistance = distance;\n }\n });\n return result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareDesc\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\n\nexport default function compareDesc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff > 0) {\n return -1;\n } else if (diff < 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import isValid from '../isValid/index.js';\nimport isWeekend from '../isWeekend/index.js';\nimport toDate from '../toDate/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport addDays from '../addDays/index.js';\nimport isSameDay from '../isSameDay/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInBusinessDays\n * @category Day Helpers\n * @summary Get the number of business days between the given dates.\n *\n * @description\n * Get the number of business day periods between the given dates.\n * Business days being days that arent in the weekend.\n * Like `differenceInCalendarDays`, the function removes the times from\n * the dates before calculating the difference.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of business days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many business days are between\n * // 10 January 2014 and 20 July 2014?\n * var result = differenceInBusinessDays(\n * new Date(2014, 6, 20),\n * new Date(2014, 0, 10)\n * )\n * //=> 136\n */\n\nexport default function differenceInBusinessDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n if (!isValid(dateLeft) || !isValid(dateRight)) return new Date(NaN);\n var calendarDifference = differenceInCalendarDays(dateLeft, dateRight);\n var sign = calendarDifference < 0 ? -1 : 1;\n var weeks = toInteger(calendarDifference / 7);\n var result = weeks * 5;\n dateRight = addDays(dateRight, weeks * 7); // the loop below will run at most 6 times to account for the remaining days that don't makeup a full week\n\n while (!isSameDay(dateLeft, dateRight)) {\n // sign is used to account for both negative and positive differences\n result += isWeekend(dateRight) ? 0 : sign;\n dateRight = addDays(dateRight, sign);\n }\n\n return result === 0 ? 0 : result;\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarISOWeeks\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO weeks\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * var result = differenceInCalendarISOWeeks(\n * new Date(2014, 6, 21),\n * new Date(2014, 6, 6)\n * )\n * //=> 3\n */\n\nexport default function differenceInCalendarISOWeeks(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfISOWeekLeft = startOfISOWeek(dirtyDateLeft);\n var startOfISOWeekRight = startOfISOWeek(dirtyDateRight);\n var timestampLeft = startOfISOWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfISOWeekLeft);\n var timestampRight = startOfISOWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfISOWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import getQuarter from '../getQuarter/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarQuarters\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar quarters\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\n\nexport default function differenceInCalendarQuarters(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight);\n return yearDiff * 4 + quarterDiff;\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarISOWeekYears from '../differenceInCalendarISOWeekYears/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport subISOWeekYears from '../subISOWeekYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `differenceInISOYears` to `differenceInISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full ISO week-numbering years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * var result = differenceInISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 1\n */\n\nexport default function differenceInISOWeekYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarISOWeekYears(dateLeft, dateRight));\n dateLeft = subISOWeekYears(dateLeft, sign * difference); // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n // if last calendar ISO year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastISOWeekYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastISOWeekYearNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import differenceInMonths from '../differenceInMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInQuarters\n * @category Quarter Helpers\n * @summary Get the number of full quarters between the given dates.\n *\n * @description\n * Get the number of full quarters between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full quarters\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))\n * //=> 2\n */\n\nexport default function differenceInQuarters(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMonths(dirtyDateLeft, dirtyDateRight) / 3;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInDays from '../differenceInDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between two dates. Fractional weeks are\n * truncated towards zero.\n *\n * One \"full week\" is the distance between a local time in one day to the same\n * local time 7 days earlier or later. A full week can sometimes be less than\n * or more than 7*24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 7*24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/(7*24))|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full weeks\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n *\n * // How many full weeks are between\n * // 1 March 2020 0:00 and 6 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 8 weeks (54 days),\n * // even if DST starts and the period has\n * // only 54*24-1 hours.\n * var result = differenceInWeeks(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 6)\n * )\n * //=> 8\n */\n\nexport default function differenceInWeeks(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachMonthOfInterval\n * @category Interval Helpers\n * @summary Return the array of months within the specified time interval.\n *\n * @description\n * Return the array of months within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} the array with starts of months from the month of the interval start to the month of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each month between 6 February 2014 and 10 August 2014:\n * var result = eachMonthOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Sat Feb 01 2014 00:00:00,\n * // Sat Mar 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Thu May 01 2014 00:00:00,\n * // Sun Jun 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // Fri Aug 01 2014 00:00:00\n * // ]\n */\n\nexport default function eachMonthOfInterval(dirtyInterval) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setDate(1);\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setMonth(currentDate.getMonth() + 1);\n }\n\n return dates;\n}","import addQuarters from '../addQuarters/index.js';\nimport startOfQuarter from '../startOfQuarter/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} the array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * var result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\n\nexport default function eachQuarterOfInterval(dirtyInterval) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var startDateQuarter = startOfQuarter(startDate);\n var endDateQuarter = startOfQuarter(endDate);\n endTime = endDateQuarter.getTime();\n var quarters = [];\n var currentQuarter = startDateQuarter;\n\n while (currentQuarter.getTime() <= endTime) {\n quarters.push(toDate(currentQuarter));\n currentQuarter = addQuarters(currentQuarter, 1);\n }\n\n return quarters;\n}","import eachWeekendOfInterval from '../eachWeekendOfInterval/index.js';\nimport startOfMonth from '../startOfMonth/index.js';\nimport endOfMonth from '../endOfMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekendOfMonth\n * @category Month Helpers\n * @summary List all the Saturdays and Sundays in the given month.\n *\n * @description\n * Get all the Saturdays and Sundays in the given month.\n *\n * @param {Date|Number} date - the given month\n * @returns {Date[]} an array containing all the Saturdays and Sundays\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The passed date is invalid\n *\n * @example\n * // Lists all Saturdays and Sundays in the given month\n * var result = eachWeekendOfMonth(new Date(2022, 1, 1))\n * //=> [\n * // Sat Feb 05 2022 00:00:00,\n * // Sun Feb 06 2022 00:00:00,\n * // Sat Feb 12 2022 00:00:00,\n * // Sun Feb 13 2022 00:00:00,\n * // Sat Feb 19 2022 00:00:00,\n * // Sun Feb 20 2022 00:00:00,\n * // Sat Feb 26 2022 00:00:00,\n * // Sun Feb 27 2022 00:00:00\n * // ]\n */\n\nexport default function eachWeekendOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var startDate = startOfMonth(dirtyDate);\n if (isNaN(startDate)) throw new RangeError('The passed date is invalid');\n var endDate = endOfMonth(dirtyDate);\n return eachWeekendOfInterval({\n start: startDate,\n end: endDate\n });\n}","import eachWeekendOfInterval from '../eachWeekendOfInterval/index.js';\nimport startOfYear from '../startOfYear/index.js';\nimport endOfYear from '../endOfYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekendOfYear\n * @category Year Helpers\n * @summary List all the Saturdays and Sundays in the year.\n *\n * @description\n * Get all the Saturdays and Sundays in the year.\n *\n * @param {Date|Number} date - the given year\n * @returns {Date[]} an array containing all the Saturdays and Sundays\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The passed date is invalid\n *\n * @example\n * // Lists all Saturdays and Sundays in the year\n * var result = eachWeekendOfYear(new Date(2020, 1, 1))\n * //=> [\n * // Sat Jan 03 2020 00:00:00,\n * // Sun Jan 04 2020 00:00:00,\n * // ...\n * // Sun Dec 27 2020 00:00:00\n * // ]\n * ]\n */\n\nexport default function eachWeekendOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var startDate = startOfYear(dirtyDate);\n if (isNaN(startDate)) throw new RangeError('The passed date is invalid');\n var endDate = endOfYear(dirtyDate);\n return eachWeekendOfInterval({\n start: startDate,\n end: endDate\n });\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachYearOfInterval\n * @category Interval Helpers\n * @summary Return the array of yearly timestamps within the specified time interval.\n *\n * @description\n * Return the array of yearly timestamps within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} the array with starts of yearly timestamps from the month of the interval start to the month of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each year between 6 February 2014 and 10 August 2017:\n * var result = eachYearOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2017, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Thu Jan 01 2015 00:00:00,\n * // Fri Jan 01 2016 00:00:00,\n * // Sun Jan 01 2017 00:00:00\n * // ]\n */\n\nexport default function eachYearOfInterval(dirtyInterval) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setMonth(0, 1);\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setFullYear(currentDate.getFullYear() + 1);\n }\n\n return dates;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfHour\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * var result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\n\nexport default function endOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(59, 59, 999);\n return date;\n}","import endOfWeek from '../endOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * var result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return endOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `endOfISOYear` to `endOfISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * var result = endOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\n\nexport default function endOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuaryOfNextYear);\n date.setMilliseconds(date.getMilliseconds() - 1);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfMinute\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * var result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\n\nexport default function endOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * var result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfSecond\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * var result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\n\nexport default function endOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(999);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name formatISODuration\n * @category Common Helpers\n * @summary Format a duration object according as ISO 8601 duration string\n *\n * @description\n * Format a duration object according to the ISO 8601 duration standard (https://www.digi.com/resources/documentation/digidocs/90001437-13/reference/r_iso_8601_duration_format.htm)\n *\n * @param {Duration} duration - the duration to format\n *\n * @returns {String} The ISO 8601 duration string\n * @throws {TypeError} Requires 1 argument\n * @throws {Error} Argument must be an object\n *\n * @example\n * // Format the given duration as ISO 8601 string\n * formatISODuration({\n * years: 39,\n * months: 2,\n * days: 20,\n * hours: 7,\n * minutes: 5,\n * seconds: 0\n * })\n * //=> 'P39Y2M20DT0H0M0S'\n */\n\nexport default function formatISODuration(duration) {\n requiredArgs(1, arguments);\n if (typeof duration !== 'object') throw new Error('Duration must be an object');\n var _duration$years = duration.years,\n years = _duration$years === void 0 ? 0 : _duration$years,\n _duration$months = duration.months,\n months = _duration$months === void 0 ? 0 : _duration$months,\n _duration$days = duration.days,\n days = _duration$days === void 0 ? 0 : _duration$days,\n _duration$hours = duration.hours,\n hours = _duration$hours === void 0 ? 0 : _duration$hours,\n _duration$minutes = duration.minutes,\n minutes = _duration$minutes === void 0 ? 0 : _duration$minutes,\n _duration$seconds = duration.seconds,\n seconds = _duration$seconds === void 0 ? 0 : _duration$seconds;\n return \"P\".concat(years, \"Y\").concat(months, \"M\").concat(days, \"DT\").concat(hours, \"H\").concat(minutes, \"M\").concat(seconds, \"S\");\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\nvar days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n/**\n * @name formatRFC7231\n * @category Common Helpers\n * @summary Format the date according to the RFC 7231 standard (https://tools.ietf.org/html/rfc7231#section-7.1.1.1).\n *\n * @description\n * Return the formatted date string in RFC 7231 format.\n * The result will always be in UTC timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in RFC 7231 format:\n * const result = formatRFC7231(new Date(2019, 8, 18, 19, 0, 52))\n * //=> 'Wed, 18 Sep 2019 19:00:52 GMT'\n */\n\nexport default function formatRFC7231(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 arguments required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var dayName = days[originalDate.getUTCDay()];\n var dayOfMonth = addLeadingZeros(originalDate.getUTCDate(), 2);\n var monthName = months[originalDate.getUTCMonth()];\n var year = originalDate.getUTCFullYear();\n var hour = addLeadingZeros(originalDate.getUTCHours(), 2);\n var minute = addLeadingZeros(originalDate.getUTCMinutes(), 2);\n var second = addLeadingZeros(originalDate.getUTCSeconds(), 2); // Result variables.\n\n return \"\".concat(dayName, \", \").concat(dayOfMonth, \" \").concat(monthName, \" \").concat(year, \" \").concat(hour, \":\").concat(minute, \":\").concat(second, \" GMT\");\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name fromUnixTime\n * @category Timestamp Helpers\n * @summary Create a date from a Unix timestamp.\n *\n * @description\n * Create a date from a Unix timestamp.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Number} unixTime - the given Unix timestamp\n * @returns {Date} the date\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Create the date 29 February 2012 11:45:05:\n * var result = fromUnixTime(1330515905)\n * //=> Wed Feb 29 2012 11:45:05\n */\n\nexport default function fromUnixTime(dirtyUnixTime) {\n requiredArgs(1, arguments);\n var unixTime = toInteger(dirtyUnixTime);\n return toDate(unixTime * 1000);\n}","import toDate from '../toDate/index.js';\nimport startOfYear from '../startOfYear/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\n\nexport default function getDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = differenceInCalendarDays(date, startOfYear(date));\n var dayOfYear = diff + 1;\n return dayOfYear;\n}","import toDate from '../toDate/index.js';\nimport isLeapYear from '../isLeapYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInYear\n * @category Year Helpers\n * @summary Get the number of days in a year of the given date.\n *\n * @description\n * Get the number of days in a year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in 2012?\n * var result = getDaysInYear(new Date(2012, 0, 1))\n * //=> 366\n */\n\nexport default function getDaysInYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n\n if (isNaN(date)) {\n return NaN;\n }\n\n return isLeapYear(date) ? 366 : 365;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDecade\n * @category Decade Helpers\n * @summary Get the decade of the given date.\n *\n * @description\n * Get the decade of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year of decade\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which decade belongs 27 November 1942?\n * var result = getDecade(new Date(1942, 10, 27))\n * //=> 1940\n */\n\nexport default function getDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = Math.floor(year / 10) * 10;\n return decade;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeeksInYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * @description\n * Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of ISO weeks in a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many weeks are in ISO week-numbering year 2015?\n * var result = getISOWeeksInYear(new Date(2015, 1, 11))\n * //=> 53\n */\n\nexport default function getISOWeeksInYear(dirtyDate) {\n requiredArgs(1, arguments);\n var thisYear = startOfISOWeekYear(dirtyDate);\n var nextYear = startOfISOWeekYear(addWeeks(thisYear, 60));\n var diff = nextYear.valueOf() - thisYear.valueOf(); // Round the number of weeks to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMilliseconds\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the milliseconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * var result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\n\nexport default function getMilliseconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var milliseconds = date.getMilliseconds();\n return milliseconds;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000;\n/**\n * @name getOverlappingDaysInIntervals\n * @category Interval Helpers\n * @summary Get the number of days that overlap in two time intervals\n *\n * @description\n * Get the number of days that overlap in two time intervals\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getOverlappingDaysInRanges` to `getOverlappingDaysInIntervals`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * getOverlappingDaysInRanges(\n * new Date(2014, 0, 10), new Date(2014, 0, 20),\n * new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n *\n * // v2.0.0 onward\n *\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * ```\n *\n * @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link docs/Interval}\n * @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link docs/Interval}\n * @returns {Number} the number of days that overlap in two time intervals\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For overlapping time intervals adds 1 for each started overlapping day:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping time intervals returns 0:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> 0\n */\n\nexport default function getOverlappingDaysInIntervals(dirtyIntervalLeft, dirtyIntervalRight) {\n requiredArgs(2, arguments);\n var intervalLeft = dirtyIntervalLeft || {};\n var intervalRight = dirtyIntervalRight || {};\n var leftStartTime = toDate(intervalLeft.start).getTime();\n var leftEndTime = toDate(intervalLeft.end).getTime();\n var rightStartTime = toDate(intervalRight.start).getTime();\n var rightEndTime = toDate(intervalRight.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var isOverlapping = leftStartTime < rightEndTime && rightStartTime < leftEndTime;\n\n if (!isOverlapping) {\n return 0;\n }\n\n var overlapStartDate = rightStartTime < leftStartTime ? leftStartTime : rightStartTime;\n var overlapEndDate = rightEndTime > leftEndTime ? leftEndTime : rightEndTime;\n var differenceInMs = overlapEndDate - overlapStartDate;\n return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import getTime from '../getTime/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getUnixTime\n * @category Timestamp Helpers\n * @summary Get the seconds timestamp of the given date.\n *\n * @description\n * Get the seconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05 CET:\n * var result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 1330512305\n */\n\nexport default function getUnixTime(dirtyDate) {\n requiredArgs(1, arguments);\n return Math.floor(getTime(dirtyDate) / 1000);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","import compareAsc from '../compareAsc/index.js';\nimport differenceInYears from '../differenceInYears/index.js';\nimport differenceInMonths from '../differenceInMonths/index.js';\nimport differenceInDays from '../differenceInDays/index.js';\nimport differenceInHours from '../differenceInHours/index.js';\nimport differenceInMinutes from '../differenceInMinutes/index.js';\nimport differenceInSeconds from '../differenceInSeconds/index.js';\nimport isValid from '../isValid/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport toDate from '../toDate/index.js';\nimport sub from '../sub/index.js';\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @param {Interval} interval - the interval to convert to duration\n *\n * @returns {Duration} The duration Object\n * @throws {TypeError} Requires 2 arguments\n * @throws {RangeError} `start` must not be Invalid Date\n * @throws {RangeError} `end` must not be Invalid Date\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\n\nexport default function intervalToDuration(_ref) {\n var start = _ref.start,\n end = _ref.end;\n requiredArgs(1, arguments);\n var dateLeft = toDate(start);\n var dateRight = toDate(end);\n\n if (!isValid(dateLeft)) {\n throw new RangeError('Start Date is invalid');\n }\n\n if (!isValid(dateRight)) {\n throw new RangeError('End Date is invalid');\n }\n\n var duration = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n var sign = compareAsc(dateLeft, dateRight);\n duration.years = Math.abs(differenceInYears(dateLeft, dateRight));\n var remainingMonths = sub(dateLeft, {\n years: sign * duration.years\n });\n duration.months = Math.abs(differenceInMonths(remainingMonths, dateRight));\n var remainingDays = sub(remainingMonths, {\n months: sign * duration.months\n });\n duration.days = Math.abs(differenceInDays(remainingDays, dateRight));\n var remainingHours = sub(remainingDays, {\n days: sign * duration.days\n });\n duration.hours = Math.abs(differenceInHours(remainingHours, dateRight));\n var remainingMinutes = sub(remainingHours, {\n hours: sign * duration.hours\n });\n duration.minutes = Math.abs(differenceInMinutes(remainingMinutes, dateRight));\n var remainingSeconds = sub(remainingMinutes, {\n minutes: sign * duration.minutes\n });\n duration.seconds = Math.abs(differenceInSeconds(remainingSeconds, dateRight));\n return duration;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","/**\n * @name isExists\n * @category Common Helpers\n * @summary Is the given date exists?\n *\n * @description\n * Checks if the given arguments convert to an existing date.\n *\n * @param {Number} year of the date to check\n * @param {Number} month of the date to check\n * @param {Number} day of the date to check\n * @returns {Boolean} the date exists\n * @throws {TypeError} 3 arguments required\n *\n * @example\n * // For the valid date:\n * var result = isExists(2018, 0, 31)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isExists(2018, 1, 31)\n * //=> false\n */\nexport default function isExists(year, month, day) {\n if (arguments.length < 3) {\n throw new TypeError('3 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = new Date(year, month, day);\n return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isFirstDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the first day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * var result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\n\nexport default function isFirstDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDate() === 1;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isFriday\n * @category Weekday Helpers\n * @summary Is the given date Friday?\n *\n * @description\n * Is the given date Friday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Friday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 26 September 2014 Friday?\n * var result = isFriday(new Date(2014, 8, 26))\n * //=> true\n */\n\nexport default function isFriday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 5;\n}","import toDate from '../toDate/index.js';\nimport endOfDay from '../endOfDay/index.js';\nimport endOfMonth from '../endOfMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isMonday\n * @category Weekday Helpers\n * @summary Is the given date Monday?\n *\n * @description\n * Is the given date Monday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Monday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 22 September 2014 Monday?\n * var result = isMonday(new Date(2014, 8, 22))\n * //=> true\n */\n\nexport default function isMonday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 1;\n}","import startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isSameISOYear` to `isSameISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week-numbering year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * var result = isSameISOWeekYear(new Date(2003, 11, 29), new Date(2005, 0, 2))\n * //=> true\n */\n\nexport default function isSameISOWeekYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfYear = startOfISOWeekYear(dirtyDateLeft);\n var dateRightStartOfYear = startOfISOWeekYear(dirtyDateRight);\n return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThursday\n * @category Weekday Helpers\n * @summary Is the given date Thursday?\n *\n * @description\n * Is the given date Thursday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Thursday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 25 September 2014 Thursday?\n * var result = isThursday(new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isThursday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 4;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isTuesday\n * @category Weekday Helpers\n * @summary Is the given date Tuesday?\n *\n * @description\n * Is the given date Tuesday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Tuesday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 23 September 2014 Tuesday?\n * var result = isTuesday(new Date(2014, 8, 23))\n * //=> true\n */\n\nexport default function isTuesday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 2;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWednesday\n * @category Weekday Helpers\n * @summary Is the given date Wednesday?\n *\n * @description\n * Is the given date Wednesday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Wednesday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 24 September 2014 Wednesday?\n * var result = isWednesday(new Date(2014, 8, 24))\n * //=> true\n */\n\nexport default function isWednesday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 3;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\n\nexport default function isWithinInterval(dirtyDate, dirtyInterval) {\n requiredArgs(2, arguments);\n var interval = dirtyInterval || {};\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfDecade\n * @category Decade Helpers\n * @summary Return the last day of a decade for the given date.\n *\n * @description\n * Return the last day of a decade for the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a decade\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a decade for 21 December 2012 21:12:00:\n * var result = lastDayOfDecade(new Date(2012, 11, 21, 21, 12, 00))\n * //=> Wed Dec 31 2019 00:00:00\n */\n\nexport default function lastDayOfDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = 9 + Math.floor(year / 10) * 10;\n date.setFullYear(decade + 1, 0, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import lastDayOfWeek from '../lastDayOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the last day of an ISO week for the given date.\n *\n * @description\n * Return the last day of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of an ISO week for 2 September 2014 11:55:00:\n * var result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function lastDayOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return lastDayOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the last day of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the last day of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `lastDayOfISOYear` to `lastDayOfISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of an ISO week-numbering year for 2 July 2005:\n * var result = lastDayOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 00:00:00\n */\n\nexport default function lastDayOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year + 1, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n date.setDate(date.getDate() - 1);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfYear\n * @category Year Helpers\n * @summary Return the last day of a year for the given date.\n *\n * @description\n * Return the last day of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a year for 2 September 2014 11:55:00:\n * var result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 00:00:00\n */\n\nexport default function lastDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/lightFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport isValid from '../isValid/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM | a..aaa | AM, PM |\n * | | aaaa | a.m., p.m. |\n * | | aaaaa | a, p |\n * | Calendar year | y | 44, 1, 1900, 2017 |\n * | | yy | 44, 01, 00, 17 |\n * | | yyy | 044, 001, 000, 017 |\n * | | yyyy | 0044, 0001, 1900, 2017 |\n * | Month (formatting) | M | 1, 2, ..., 12 |\n * | | MM | 01, 02, ..., 12 |\n * | Day of month | d | 1, 2, ..., 31 |\n * | | dd | 01, 02, ..., 31 |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 |\n * | | hh | 01, 02, ..., 11, 12 |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 |\n * | | HH | 00, 01, 02, ..., 23 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | Fraction of second | S | 0, 1, ..., 9 |\n * | | SS | 00, 01, ..., 99 |\n * | | SSS | 000, 0001, ..., 999 |\n * | | SSSS | ... |\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * var result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '1987-02-11'\n */\n\nexport default function lightFormat(dirtyDate, dirtyFormatStr) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var result = formatStr.match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n return formatter(utcDate, substring, null, {});\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var maxDate = max(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var maxDate = max(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name min\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var minDate = min(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var minDate = min(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * var result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name parseJSON\n * @category Common Helpers\n * @summary Parse a JSON date string\n *\n * @description\n * Converts a complete ISO date string in UTC time, the typical format for transmitting\n * a date in JSON, to a JavaScript `Date` instance.\n *\n * This is a minimal implementation for converting dates retrieved from a JSON API to\n * a `Date` instance which can be used with other functions in the `date-fns` library.\n * The following formats are supported:\n *\n * - `2000-03-15T05:20:10.123Z`: The output of `.toISOString()` and `JSON.stringify(new Date())`\n * - `2000-03-15T05:20:10Z`: Without milliseconds\n * - `2000-03-15T05:20:10+00:00`: With a zero offset, the default JSON encoded format in some other languages\n * - `2000-03-15T05:20:10+0000`: With a zero offset without a colon\n * - `2000-03-15T05:20:10`: Without a trailing 'Z' symbol\n * - `2000-03-15T05:20:10.1234567`: Up to 7 digits in milliseconds field. Only first 3 are taken into account since JS does not allow fractional milliseconds\n * - `2000-03-15 05:20:10`: With a space instead of a 'T' separator for APIs returning a SQL date without reformatting\n *\n * For convenience and ease of use these other input types are also supported\n * via [toDate]{@link https://date-fns.org/docs/toDate}:\n *\n * - A `Date` instance will be cloned\n * - A `number` will be treated as a timestamp\n *\n * Any other input type or invalid date strings will return an `Invalid Date`.\n *\n * @param {String|Number|Date} argument A fully formed ISO8601 date string to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n */\n\nexport default function parseJSON(argument) {\n requiredArgs(1, arguments);\n\n if (typeof argument === 'string') {\n var parts = argument.match(/(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{0,7}))?(?:Z|\\+00:?00)?/);\n\n if (parts) {\n return new Date(Date.UTC(+parts[1], parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +((parts[7] || '0') + '00').substring(0, 3)));\n }\n\n return new Date(NaN);\n }\n\n return toDate(argument);\n}","import toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * var result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * var result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\n\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n\n if (typeof values !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n\n var date = toDate(dirtyDate); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setDate\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} dayOfMonth - the day of the month of the new date\n * @returns {Date} the new date with the day of the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * var result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\n\nexport default function setDate(dirtyDate, dirtyDayOfMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = toInteger(dirtyDayOfMonth);\n date.setDate(dayOfMonth);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setDayOfYear\n * @category Day Helpers\n * @summary Set the day of the year to the given date.\n *\n * @description\n * Set the day of the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} dayOfYear - the day of the year of the new date\n * @returns {Date} the new date with the day of the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd day of the year to 2 July 2014:\n * var result = setDayOfYear(new Date(2014, 6, 2), 2)\n * //=> Thu Jan 02 2014 00:00:00\n */\n\nexport default function setDayOfYear(dirtyDate, dirtyDayOfYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dayOfYear = toInteger(dirtyDayOfYear);\n date.setMonth(0);\n date.setDate(dayOfYear);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport addDays from '../addDays/index.js';\nimport getISODay from '../getISODay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} day - the day of the ISO week of the new date\n * @returns {Date} the new date with the day of the ISO week set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function setISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = getISODay(date);\n var diff = day - currentDay;\n return addDays(date, diff);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getISOWeek from '../getISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} isoWeek - the ISO week of the new date\n * @returns {Date} the new date with the ISO week set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * var result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\n\nexport default function setISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getISOWeek(date) - isoWeek;\n date.setDate(date.getDate() - diff * 7);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * var result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\n\nexport default function setMilliseconds(dirtyDate, dirtyMilliseconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var milliseconds = toInteger(dirtyMilliseconds);\n date.setMilliseconds(milliseconds);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDecade\n * @category Decade Helpers\n * @summary Return the start of a decade for the given date.\n *\n * @description\n * Return the start of a decade for the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a decade\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a decade for 21 October 2015 00:00:00:\n * var result = startOfDecade(new Date(2015, 9, 21, 00, 00, 00))\n * //=> Jan 01 2010 00:00:00\n */\n\nexport default function startOfDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = Math.floor(year / 10) * 10;\n date.setFullYear(decade, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addBusinessDays from '../addBusinessDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subBusinessDays\n * @category Day Helpers\n * @summary Substract the specified number of business days (mon - fri) to the given date.\n *\n * @description\n * Substract the specified number of business days (mon - fri) to the given date, ignoring weekends.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of business days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the business days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Substract 10 business days from 1 September 2014:\n * var result = subBusinessDays(new Date(2014, 8, 1), 10)\n * //=> Mon Aug 18 2014 00:00:00 (skipped weekend days)\n */\n\nexport default function subBusinessDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addBusinessDays(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addHours from '../addHours/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMinutes from '../addMinutes/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addQuarters from '../addQuarters/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * var result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\n\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addSeconds from '../addSeconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subSeconds\n * @category Second Helpers\n * @summary Subtract the specified number of seconds from the given date.\n *\n * @description\n * Subtract the specified number of seconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 seconds from 10 July 2014 12:45:00:\n * var result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:44:30\n */\n\nexport default function subSeconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addSeconds(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addYears from '../addYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\n\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numberValues = {\n locale: {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n number: {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n }\n};\nvar eraValues = {\n narrow: ['খ্রিঃপূঃ', 'খ্রিঃ'],\n abbreviated: ['খ্রিঃপূর্ব', 'খ্রিঃ'],\n wide: ['খ্রিস্টপূর্ব', 'খ্রিস্টাব্দ']\n};\nvar quarterValues = {\n narrow: ['১', '২', '৩', '৪'],\n abbreviated: ['১ত্রৈ', '২ত্রৈ', '৩ত্রৈ', '৪ত্রৈ'],\n wide: ['১ম ত্রৈমাসিক', '২য় ত্রৈমাসিক', '৩য় ত্রৈমাসিক', '৪র্থ ত্রৈমাসিক']\n};\nvar monthValues = {\n narrow: ['জানু', 'ফেব্রু', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],\n abbreviated: ['জানু', 'ফেব্রু', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],\n wide: ['জানুয়ারি', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর']\n};\nvar dayValues = {\n narrow: ['র', 'সো', 'ম', 'বু', 'বৃ', 'শু', 'শ'],\n short: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহ', 'শুক্র', 'শনি'],\n abbreviated: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহ', 'শুক্র', 'শনি'],\n wide: ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার ', 'শুক্রবার', 'শনিবার']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'পূ',\n pm: 'অপ',\n midnight: 'মধ্যরাত',\n noon: 'মধ্যাহ্ন',\n morning: 'সকাল',\n afternoon: 'বিকাল',\n evening: 'সন্ধ্যা',\n night: 'রাত'\n },\n abbreviated: {\n am: 'পূর্বাহ্ন',\n pm: 'অপরাহ্ন',\n midnight: 'মধ্যরাত',\n noon: 'মধ্যাহ্ন',\n morning: 'সকাল',\n afternoon: 'বিকাল',\n evening: 'সন্ধ্যা',\n night: 'রাত'\n },\n wide: {\n am: 'পূর্বাহ্ন',\n pm: 'অপরাহ্ন',\n midnight: 'মধ্যরাত',\n noon: 'মধ্যাহ্ন',\n morning: 'সকাল',\n afternoon: 'বিকাল',\n evening: 'সন্ধ্যা',\n night: 'রাত'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'পূ',\n pm: 'অপ',\n midnight: 'মধ্যরাত',\n noon: 'মধ্যাহ্ন',\n morning: 'সকাল',\n afternoon: 'বিকাল',\n evening: 'সন্ধ্যা',\n night: 'রাত'\n },\n abbreviated: {\n am: 'পূর্বাহ্ন',\n pm: 'অপরাহ্ন',\n midnight: 'মধ্যরাত',\n noon: 'মধ্যাহ্ন',\n morning: 'সকাল',\n afternoon: 'বিকাল',\n evening: 'সন্ধ্যা',\n night: 'রাত'\n },\n wide: {\n am: 'পূর্বাহ্ন',\n pm: 'অপরাহ্ন',\n midnight: 'মধ্যরাত',\n noon: 'মধ্যাহ্ন',\n morning: 'সকাল',\n afternoon: 'বিকাল',\n evening: 'সন্ধ্যা',\n night: 'রাত'\n }\n};\n\nfunction dateOrdinalNumber(number, localeNumber) {\n if (number > 18 && number <= 31) {\n return localeNumber + 'শে';\n } else {\n switch (number) {\n case 1:\n return localeNumber + 'লা';\n\n case 2:\n case 3:\n return localeNumber + 'রা';\n\n case 4:\n return localeNumber + 'ঠা';\n\n default:\n return localeNumber + 'ই';\n }\n }\n}\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = localize.localeToNumber(dirtyNumber);\n var localeNumber = localize.numberToLocale(number);\n var unit = dirtyOptions.unit;\n\n if (unit === 'date') {\n return dateOrdinalNumber(number, localeNumber);\n }\n\n if (number > 10 || number === 0) return localeNumber + 'তম';\n var rem10 = number % 10;\n\n switch (rem10) {\n case 2:\n case 3:\n return localeNumber + 'য়';\n\n case 4:\n return localeNumber + 'র্থ';\n\n case 6:\n return localeNumber + 'ষ্ঠ';\n\n case 1:\n case 5:\n case 7:\n case 8:\n case 9:\n case 0:\n return localeNumber + 'ম';\n }\n}\n\nfunction localeToNumber(locale) {\n var number = locale.toString().replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberValues.number[match];\n });\n return Number(number);\n}\n\nfunction numberToLocale(number) {\n return number.toString().replace(/\\d/g, function (match) {\n return numberValues.locale[match];\n });\n}\n\nvar localize = {\n localeToNumber: localeToNumber,\n numberToLocale: numberToLocale,\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'dernier à' p\",\n yesterday: \"'hier à' p\",\n today: \"'aujourd’hui à' p\",\n tomorrow: \"'demain à' p'\",\n nextWeek: \"eeee 'prochain à' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (number === 0) {\n return number;\n }\n\n if (unit === 'year' || unit === 'hour' || unit === 'week') {\n if (number === 1) {\n suffix = 'ère';\n } else {\n suffix = 'ème';\n }\n } else {\n if (number === 1) {\n suffix = 'er';\n } else {\n suffix = 'ème';\n }\n }\n\n return number + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n var self = this;\n var chains = [ '' ];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n","// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * fence infostring\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe=true) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe=true) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler = (event?: T) => void;\nexport type WildcardHandler = (type: EventType, event?: any) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList = Array;\nexport type WildCardEventHandlerList = Array;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap = Map;\n\nexport interface Emitter {\n\tall: EventHandlerMap;\n\n\ton(type: EventType, handler: Handler): void;\n\ton(type: '*', handler: WildcardHandler): void;\n\n\toff(type: EventType, handler: Handler): void;\n\toff(type: '*', handler: WildcardHandler): void;\n\n\temit(type: EventType, event?: T): void;\n\temit(type: '*', event?: any): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt(all?: EventHandlerMap): Emitter {\n\tall = all || new Map();\n\n\treturn {\n\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton(type: EventType, handler: Handler) {\n\t\t\tconst handlers = all.get(type);\n\t\t\tconst added = handlers && handlers.push(handler);\n\t\t\tif (!added) {\n\t\t\t\tall.set(type, [handler]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff(type: EventType, handler: Handler) {\n\t\t\tconst handlers = all.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing \"*\" handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit(type: EventType, evt: T) {\n\t\t\t((all.get(type) || []) as EventHandlerList).slice().map((handler) => { handler(evt); });\n\t\t\t((all.get('*') || []) as WildCardEventHandlerList).slice().map((handler) => { handler(type, evt); });\n\t\t}\n\t};\n}\n","function EventEmitter() {\n this._listeners = {};\n}\n\nEventEmitter.prototype.on = function _on(type, listener) {\n if (!Array.isArray(this._listeners[type])) {\n this._listeners[type] = [];\n }\n\n if (this._listeners[type].indexOf(listener) === -1) {\n this._listeners[type].push(listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.once = function _once(type, listener) {\n var self = this;\n\n function __once() {\n for (var args = [], i = 0; i < arguments.length; i += 1) {\n args[i] = arguments[i];\n }\n\n self.off(type, __once);\n listener.apply(self, args);\n }\n\n __once.listener = listener;\n\n return this.on(type, __once);\n};\n\nEventEmitter.prototype.off = function _off(type, listener) {\n if (!Array.isArray(this._listeners[type])) {\n return this;\n }\n\n if (typeof listener === 'undefined') {\n this._listeners[type] = [];\n return this;\n }\n\n var index = this._listeners[type].indexOf(listener);\n\n if (index === -1) {\n for (var i = 0; i < this._listeners[type].length; i += 1) {\n if (this._listeners[type][i].listener === listener) {\n index = i;\n break;\n }\n }\n }\n\n this._listeners[type].splice(index, 1);\n return this;\n};\n\nEventEmitter.prototype.emit = function _emit(type) {\n if (!Array.isArray(this._listeners[type])) {\n return this;\n }\n\n for (var args = [], i = 1; i < arguments.length; i += 1) {\n args[i - 1] = arguments[i];\n }\n\n this._listeners[type].forEach(function __emit(listener) {\n listener.apply(this, args);\n }, this);\n\n return this;\n};\n\nmodule.exports.EventEmitter = EventEmitter;\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n\t\t\t\tconst newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url, hash] = splitOnFirst(input, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url.split('?')[0] || '',\n\t\t\tquery: parse(extract(input), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(input.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(input.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, input.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(input.url);\n\tif (input.fragmentIdentifier) {\n\t\thash = `#${encode(input.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import assign from '../assign/index.js';\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"minder as 'n sekonde\",\n other: 'minder as {{count}} sekondes'\n },\n xSeconds: {\n one: '1 sekonde',\n other: '{{count}} sekondes'\n },\n halfAMinute: \"'n halwe minuut\",\n lessThanXMinutes: {\n one: \"minder as 'n minuut\",\n other: 'minder as {{count}} minute'\n },\n xMinutes: {\n one: \"'n minuut\",\n other: '{{count}} minute'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} ure'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} ure'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dae'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weke'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weke'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maande'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maande'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer as 1 jaar',\n other: 'meer as {{count}} jaar'\n },\n almostXYears: {\n one: 'byna 1 jaar',\n other: 'byna {{count}} jaar'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'oor ' + result;\n } else {\n return result + ' gelede';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'yyyy/MM/dd'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'verlede' eeee 'om' p\",\n yesterday: \"'gister om' p\",\n today: \"'vandag om' p\",\n tomorrow: \"'môre om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\n\nfunction formatRelative(token) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['vC', 'nC'],\n abbreviated: ['vC', 'nC'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1ste kwartaal', '2de kwartaal', '3de kwartaal', '4de kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],\n wide: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'W', 'D', 'V', 'S'],\n short: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'],\n abbreviated: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],\n wide: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'vm',\n pm: 'nm',\n midnight: 'middernag',\n noon: 'middaguur',\n morning: 'oggend',\n afternoon: 'middag',\n evening: 'laat middag',\n night: 'aand'\n },\n abbreviated: {\n am: 'vm',\n pm: 'nm',\n midnight: 'middernag',\n noon: 'middaguur',\n morning: 'oggend',\n afternoon: 'middag',\n evening: 'laat middag',\n night: 'aand'\n },\n wide: {\n am: 'vm',\n pm: 'nm',\n midnight: 'middernag',\n noon: 'middaguur',\n morning: 'oggend',\n afternoon: 'middag',\n evening: 'laat middag',\n night: 'aand'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm',\n pm: 'nm',\n midnight: 'middernag',\n noon: 'uur die middag',\n morning: 'uur die oggend',\n afternoon: 'uur die middag',\n evening: 'uur die aand',\n night: 'uur die aand'\n },\n abbreviated: {\n am: 'vm',\n pm: 'nm',\n midnight: 'middernag',\n noon: 'uur die middag',\n morning: 'uur die oggend',\n afternoon: 'uur die middag',\n evening: 'uur die aand',\n night: 'uur die aand'\n },\n wide: {\n am: 'vm',\n pm: 'nm',\n midnight: 'middernag',\n noon: 'uur die middag',\n morning: 'uur die oggend',\n afternoon: 'uur die middag',\n evening: 'uur die aand',\n night: 'uur die aand'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n var rem100 = number % 100;\n\n if (rem100 < 20) {\n switch (rem100) {\n case 1:\n case 8:\n return number + 'ste';\n\n default:\n return number + 'de';\n }\n }\n\n return number + 'ste';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(ste|de)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?C\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234](st|d)e kwartaal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(Jan|Feb|Mrt|Apr|Mei|Jun|Jul|Aug|Sep|Okt|Nov|Dec)\\.?/i,\n wide: /^(Januarie|Februarie|Maart|April|Mei|Junie|Julie|Augustus|September|Oktober|November|Desember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^J/i, /^F/i, /^M/i, /^A/i, /^M/i, /^J/i, /^J/i, /^A/i, /^S/i, /^O/i, /^N/i, /^D/i],\n any: [/^Jan/i, /^Feb/i, /^Mrt/i, /^Apr/i, /^Mei/i, /^Jun/i, /^Jul/i, /^Aug/i, /^Sep/i, /^Okt/i, /^Nov/i, /^Dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdwv]/i,\n short: /^(So|Ma|Di|Wo|Do|Vr|Sa)/i,\n abbreviated: /^(Son|Maa|Din|Woe|Don|Vry|Sat)/i,\n wide: /^(Sondag|Maandag|Dinsdag|Woensdag|Donderdag|Vrydag|Saterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^S/i, /^M/i, /^D/i, /^W/i, /^D/i, /^V/i, /^S/i],\n any: [/^So/i, /^Ma/i, /^Di/i, /^Wo/i, /^Do/i, /^Vr/i, /^Sa/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(vm|nm|middernag|(?:uur )?die (oggend|middag|aand))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^vm/i,\n pm: /^nm/i,\n midnight: /^middernag/i,\n noon: /^middaguur/i,\n morning: /oggend/i,\n afternoon: /middag/i,\n evening: /laat middag/i,\n night: /aand/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'أقل من ثانية واحدة',\n two: 'أقل من ثانتين',\n threeToTen: 'أقل من {{count}} ثواني',\n other: 'أقل من {{count}} ثانية'\n },\n xSeconds: {\n one: 'ثانية واحدة',\n two: 'ثانتين',\n threeToTen: '{{count}} ثواني',\n other: '{{count}} ثانية'\n },\n halfAMinute: 'نصف دقيقة',\n lessThanXMinutes: {\n one: 'أقل من دقيقة',\n two: 'أقل من دقيقتين',\n threeToTen: 'أقل من {{count}} دقائق',\n other: 'أقل من {{count}} دقيقة'\n },\n xMinutes: {\n one: 'دقيقة واحدة',\n two: 'دقيقتين',\n threeToTen: '{{count}} دقائق',\n other: '{{count}} دقيقة'\n },\n aboutXHours: {\n one: 'ساعة واحدة تقريباً',\n two: 'ساعتين تقريباً',\n threeToTen: '{{count}} ساعات تقريباً',\n other: '{{count}} ساعة تقريباً'\n },\n xHours: {\n one: 'ساعة واحدة',\n two: 'ساعتين',\n threeToTen: '{{count}} ساعات',\n other: '{{count}} ساعة'\n },\n xDays: {\n one: 'يوم واحد',\n two: 'يومين',\n threeToTen: '{{count}} أيام',\n other: '{{count}} يوم'\n },\n aboutXWeeks: {\n one: 'أسبوع واحد تقريباً',\n two: 'أسبوعين تقريباً',\n threeToTen: '{{count}} أسابيع تقريباً',\n other: '{{count}} أسبوع تقريباً'\n },\n xWeeks: {\n one: 'أسبوع واحد',\n two: 'أسبوعين',\n threeToTen: '{{count}} أسابيع',\n other: '{{count}} أسبوع'\n },\n aboutXMonths: {\n one: 'شهر واحد تقريباً',\n two: 'شهرين تقريباً',\n threeToTen: '{{count}} أشهر تقريباً',\n other: '{{count}} شهر تقريباً'\n },\n xMonths: {\n one: 'شهر واحد',\n two: 'شهرين',\n threeToTen: '{{count}} أشهر',\n other: '{{count}} شهر'\n },\n aboutXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n },\n xYears: {\n one: 'عام واحد',\n two: 'عامين',\n threeToTen: '{{count}} أعوام',\n other: '{{count}} عام'\n },\n overXYears: {\n one: 'أكثر من عام',\n two: 'أكثر من عامين',\n threeToTen: 'أكثر من {{count}} أعوام',\n other: 'أكثر من {{count}} عام'\n },\n almostXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2) {\n result = formatDistanceLocale[token].two;\n } else if (count <= 10) {\n result = formatDistanceLocale[token].threeToTen.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'في خلال ' + result;\n } else {\n return 'منذ ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'عند' {{time}}\",\n long: \"{{date}} 'عند' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'أخر' eeee 'عند' p\",\n yesterday: \"'أمس عند' p\",\n today: \"'اليوم عند' p\",\n tomorrow: \"'غداً عند' p\",\n nextWeek: \"eeee 'عند' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ق', 'ب'],\n abbreviated: ['ق.م.', 'ب.م.'],\n wide: ['قبل الميلاد', 'بعد الميلاد']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ر1', 'ر2', 'ر3', 'ر4'],\n wide: ['الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع']\n};\nvar monthValues = {\n narrow: ['ج', 'ف', 'م', 'أ', 'م', 'ج', 'ج', 'أ', 'س', 'أ', 'ن', 'د'],\n abbreviated: ['جانـ', 'فيفـ', 'مارس', 'أفريل', 'مايـ', 'جوانـ', 'جويـ', 'أوت', 'سبتـ', 'أكتـ', 'نوفـ', 'ديسـ'],\n wide: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']\n};\nvar dayValues = {\n narrow: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n short: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n abbreviated: ['أحد', 'اثنـ', 'ثلا', 'أربـ', 'خميـ', 'جمعة', 'سبت'],\n wide: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'في الصباح',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'في الصباح',\n evening: 'في المساء',\n night: 'في الليل'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n return String(dirtyNumber);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ق|ب)/i,\n abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?م\\.?\\s?|a\\.?\\s?d\\.?|c\\.?\\s?)/i,\n wide: /^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i\n};\nvar parseEraPatterns = {\n any: [/^قبل/i, /^بعد/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ر[1234]/i,\n wide: /^الربع [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[جفمأسند]/i,\n abbreviated: /^(جان|فيف|مار|أفر|ماي|جوا|جوي|أوت|سبت|أكت|نوف|ديس)/i,\n wide: /^(جانفي|فيفري|مارس|أفريل|ماي|جوان|جويلية|أوت|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ج/i, /^ف/i, /^م/i, /^أ/i, /^م/i, /^ج/i, /^ج/i, /^أ/i, /^س/i, /^أ/i, /^ن/i, /^د/i],\n any: [/^جان/i, /^فيف/i, /^مار/i, /^أفر/i, /^ماي/i, /^جوا/i, /^جوي/i, /^أوت/i, /^سبت/i, /^أكت/i, /^نوف/i, /^ديس/i]\n};\nvar matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,\n wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [/^الأحد/i, /^الاثنين/i, /^الثلاثاء/i, /^الأربعاء/i, /^الخميس/i, /^الجمعة/i, /^السبت/i],\n any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'أقل من ثانية واحدة',\n two: 'أقل من ثانتين',\n threeToTen: 'أقل من {{count}} ثواني',\n other: 'أقل من {{count}} ثانية'\n },\n xSeconds: {\n one: 'ثانية واحدة',\n two: 'ثانتين',\n threeToTen: '{{count}} ثواني',\n other: '{{count}} ثانية'\n },\n halfAMinute: 'نصف دقيقة',\n lessThanXMinutes: {\n one: 'أقل من دقيقة',\n two: 'أقل من دقيقتين',\n threeToTen: 'أقل من {{count}} دقائق',\n other: 'أقل من {{count}} دقيقة'\n },\n xMinutes: {\n one: 'دقيقة واحدة',\n two: 'دقيقتين',\n threeToTen: '{{count}} دقائق',\n other: '{{count}} دقيقة'\n },\n aboutXHours: {\n one: 'ساعة واحدة تقريباً',\n two: 'ساعتين تقريباً',\n threeToTen: '{{count}} ساعات تقريباً',\n other: '{{count}} ساعة تقريباً'\n },\n xHours: {\n one: 'ساعة واحدة',\n two: 'ساعتين',\n threeToTen: '{{count}} ساعات',\n other: '{{count}} ساعة'\n },\n xDays: {\n one: 'يوم واحد',\n two: 'يومين',\n threeToTen: '{{count}} أيام',\n other: '{{count}} يوم'\n },\n aboutXWeeks: {\n one: 'أسبوع واحد تقريباً',\n two: 'أسبوعين تقريباً',\n threeToTen: '{{count}} أسابيع تقريباً',\n other: '{{count}} أسبوع تقريباً'\n },\n xWeeks: {\n one: 'أسبوع واحد',\n two: 'أسبوعين',\n threeToTen: '{{count}} أسابيع',\n other: '{{count}} أسبوع'\n },\n aboutXMonths: {\n one: 'شهر واحد تقريباً',\n two: 'شهرين تقريباً',\n threeToTen: '{{count}} أشهر تقريباً',\n other: '{{count}} شهر تقريباً'\n },\n xMonths: {\n one: 'شهر واحد',\n two: 'شهرين',\n threeToTen: '{{count}} أشهر',\n other: '{{count}} شهر'\n },\n aboutXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n },\n xYears: {\n one: 'عام واحد',\n two: 'عامين',\n threeToTen: '{{count}} أعوام',\n other: '{{count}} عام'\n },\n overXYears: {\n one: 'أكثر من عام',\n two: 'أكثر من عامين',\n threeToTen: 'أكثر من {{count}} أعوام',\n other: 'أكثر من {{count}} عام'\n },\n almostXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2) {\n result = formatDistanceLocale[token].two;\n } else if (count <= 10) {\n result = formatDistanceLocale[token].threeToTen.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'في خلال ' + result;\n } else {\n return 'منذ ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'عند' {{time}}\",\n long: \"{{date}} 'عند' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'أخر' eeee 'عند' p\",\n yesterday: \"'أمس عند' p\",\n today: \"'اليوم عند' p\",\n tomorrow: \"'غداً عند' p\",\n nextWeek: \"eeee 'عند' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ق', 'ب'],\n abbreviated: ['ق.م.', 'ب.م.'],\n wide: ['قبل الميلاد', 'بعد الميلاد']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ر1', 'ر2', 'ر3', 'ر4'],\n wide: ['الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع']\n};\nvar monthValues = {\n narrow: ['ي', 'ف', 'م', 'أ', 'م', 'ي', 'ي', 'غ', 'ش', 'أ', 'ن', 'د'],\n abbreviated: ['ينا', 'فبر', 'مارس', 'أبريل', 'ماي', 'يونـ', 'يولـ', 'غشت', 'شتنـ', 'أكتـ', 'نونـ', 'دجنـ'],\n wide: ['يناير', 'فبراير', 'مارس', 'أبريل', 'ماي', 'يونيو', 'يوليوز', 'غشت', 'شتنبر', 'أكتوبر', 'نونبر', 'دجنبر']\n};\nvar dayValues = {\n narrow: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n short: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n abbreviated: ['أحد', 'اثنـ', 'ثلا', 'أربـ', 'خميـ', 'جمعة', 'سبت'],\n wide: ['الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'في الصباح',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'في الصباح',\n evening: 'في المساء',\n night: 'في الليل'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n return String(dirtyNumber);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ق|ب)/i,\n abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?م\\.?\\s?|a\\.?\\s?d\\.?|c\\.?\\s?)/i,\n wide: /^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i\n};\nvar parseEraPatterns = {\n any: [/^قبل/i, /^بعد/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ر[1234]/i,\n wide: /^الربع [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[يفمأمسند]/i,\n abbreviated: /^(ين|ف|مار|أب|ماي|يون|يول|غش|شت|أك|ن|د)/i,\n wide: /^(ين|ف|مار|أب|ماي|يون|يول|غش|شت|أك|ن|د)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ي/i, /^ف/i, /^م/i, /^أ/i, /^م/i, /^ي/i, /^ي/i, /^غ/i, /^ش/i, /^أ/i, /^ن/i, /^د/i],\n any: [/^ين/i, /^فب/i, /^مار/i, /^أب/i, /^ماي/i, /^يون/i, /^يول/i, /^غشت/i, /^ش/i, /^أك/i, /^ن/i, /^د/i]\n};\nvar matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|إثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|إثن|ثلا|أرب|خمي|جمعة|سبت)/i,\n wide: /^(الأحد|الإثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [/^الأحد/i, /^الإثنين/i, /^الثلاثاء/i, /^الأربعاء/i, /^الخميس/i, /^الجمعة/i, /^السبت/i],\n any: [/^أح/i, /^إث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'أقل من ثانية واحدة',\n two: 'أقل من ثانتين',\n threeToTen: 'أقل من {{count}} ثواني',\n other: 'أقل من {{count}} ثانية'\n },\n xSeconds: {\n one: 'ثانية واحدة',\n two: 'ثانتين',\n threeToTen: '{{count}} ثواني',\n other: '{{count}} ثانية'\n },\n halfAMinute: 'نصف دقيقة',\n lessThanXMinutes: {\n one: 'أقل من دقيقة',\n two: 'أقل من دقيقتين',\n threeToTen: 'أقل من {{count}} دقائق',\n other: 'أقل من {{count}} دقيقة'\n },\n xMinutes: {\n one: 'دقيقة واحدة',\n two: 'دقيقتين',\n threeToTen: '{{count}} دقائق',\n other: '{{count}} دقيقة'\n },\n aboutXHours: {\n one: 'ساعة واحدة تقريباً',\n two: 'ساعتين تقريباً',\n threeToTen: '{{count}} ساعات تقريباً',\n other: '{{count}} ساعة تقريباً'\n },\n xHours: {\n one: 'ساعة واحدة',\n two: 'ساعتين',\n threeToTen: '{{count}} ساعات',\n other: '{{count}} ساعة'\n },\n xDays: {\n one: 'يوم واحد',\n two: 'يومين',\n threeToTen: '{{count}} أيام',\n other: '{{count}} يوم'\n },\n aboutXWeeks: {\n one: 'أسبوع واحد تقريباً',\n two: 'أسبوعين تقريباً',\n threeToTen: '{{count}} أسابيع تقريباً',\n other: '{{count}} أسبوع تقريباً'\n },\n xWeeks: {\n one: 'أسبوع واحد',\n two: 'أسبوعين',\n threeToTen: '{{count}} أسابيع',\n other: '{{count}} أسبوع'\n },\n aboutXMonths: {\n one: 'شهر واحد تقريباً',\n two: 'شهرين تقريباً',\n threeToTen: '{{count}} أشهر تقريباً',\n other: '{{count}} شهر تقريباً'\n },\n xMonths: {\n one: 'شهر واحد',\n two: 'شهرين',\n threeToTen: '{{count}} أشهر',\n other: '{{count}} شهر'\n },\n aboutXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n },\n xYears: {\n one: 'عام واحد',\n two: 'عامين',\n threeToTen: '{{count}} أعوام',\n other: '{{count}} عام'\n },\n overXYears: {\n one: 'أكثر من عام',\n two: 'أكثر من عامين',\n threeToTen: 'أكثر من {{count}} أعوام',\n other: 'أكثر من {{count}} عام'\n },\n almostXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2) {\n result = formatDistanceLocale[token].two;\n } else if (count <= 10) {\n result = formatDistanceLocale[token].threeToTen.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'في خلال ' + result;\n } else {\n return 'منذ ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'عند' {{time}}\",\n long: \"{{date}} 'عند' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'أخر' eeee 'عند' p\",\n yesterday: \"'أمس عند' p\",\n today: \"'اليوم عند' p\",\n tomorrow: \"'غداً عند' p\",\n nextWeek: \"eeee 'عند' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ق', 'ب'],\n abbreviated: ['ق.م.', 'ب.م.'],\n wide: ['قبل الميلاد', 'بعد الميلاد']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ر1', 'ر2', 'ر3', 'ر4'],\n wide: ['الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع']\n};\nvar monthValues = {\n narrow: ['ي', 'ف', 'م', 'أ', 'م', 'ي', 'ي', 'أ', 'س', 'أ', 'ن', 'د'],\n abbreviated: ['ينا', 'فبر', 'مارس', 'أبريل', 'مايو', 'يونـ', 'يولـ', 'أغسـ', 'سبتـ', 'أكتـ', 'نوفـ', 'ديسـ'],\n wide: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']\n};\nvar dayValues = {\n narrow: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n short: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n abbreviated: ['أحد', 'اثنـ', 'ثلا', 'أربـ', 'خميـ', 'جمعة', 'سبت'],\n wide: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'في الصباح',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'في الصباح',\n evening: 'في المساء',\n night: 'في الليل'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n return String(dirtyNumber);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ق|ب)/i,\n abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?م\\.?\\s?|a\\.?\\s?d\\.?|c\\.?\\s?)/i,\n wide: /^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i\n};\nvar parseEraPatterns = {\n any: [/^قبل/i, /^بعد/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ر[1234]/i,\n wide: /^الربع [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[يفمأمسند]/i,\n abbreviated: /^(ين|ف|مار|أب|ماي|يون|يول|أغ|س|أك|ن|د)/i,\n wide: /^(ين|ف|مار|أب|ماي|يون|يول|أغ|س|أك|ن|د)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ي/i, /^ف/i, /^م/i, /^أ/i, /^م/i, /^ي/i, /^ي/i, /^أ/i, /^س/i, /^أ/i, /^ن/i, /^د/i],\n any: [/^ين/i, /^ف/i, /^مار/i, /^أب/i, /^ماي/i, /^يون/i, /^يول/i, /^أغ/i, /^س/i, /^أك/i, /^ن/i, /^د/i]\n};\nvar matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,\n wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [/^الأحد/i, /^الاثنين/i, /^الثلاثاء/i, /^الأربعاء/i, /^الخميس/i, /^الجمعة/i, /^السبت/i],\n any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'bir saniyədən az',\n other: '{{count}} bir saniyədən az'\n },\n xSeconds: {\n one: '1 saniyə',\n other: '{{count}} saniyə'\n },\n halfAMinute: 'yarım dəqiqə',\n lessThanXMinutes: {\n one: 'bir dəqiqədən az',\n other: '{{count}} bir dəqiqədən az'\n },\n xMinutes: {\n one: 'bir dəqiqə',\n other: '{{count}} dəqiqə'\n },\n aboutXHours: {\n one: 'təxminən 1 saat',\n other: 'təxminən {{count}} saat'\n },\n xHours: {\n one: '1 saat',\n other: '{{count}} saat'\n },\n xDays: {\n one: '1 gün',\n other: '{{count}} gün'\n },\n aboutXWeeks: {\n one: 'təxminən 1 həftə',\n other: 'təxminən {{count}} həftə'\n },\n xWeeks: {\n one: '1 həftə',\n other: '{{count}} həftə'\n },\n aboutXMonths: {\n one: 'təxminən 1 ay',\n other: 'təxminən {{count}} ay'\n },\n xMonths: {\n one: '1 ay',\n other: '{{count}} ay'\n },\n aboutXYears: {\n one: 'təxminən 1 il',\n other: 'təxminən {{count}} il'\n },\n xYears: {\n one: '1 il',\n other: '{{count}} il'\n },\n overXYears: {\n one: '1 ildən çox',\n other: '{{count}} ildən çox'\n },\n almostXYears: {\n one: 'demək olar ki 1 il',\n other: 'demək olar ki {{count}} il'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' əvvəl';\n } else {\n return result + ' sonra';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, do MMMM y 'il'\",\n long: \"do MMMM y 'il'\",\n medium: \"d MMM y 'il'\",\n short: 'dd.MM.yyyy'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} {{time}} - 'də'\",\n long: \"{{date}} {{time}} - 'də'\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'sonuncu' eeee p -'də'\",\n yesterday: \"'dünən' p -'də'\",\n today: \"'bugün' p -'də'\",\n tomorrow: \"'sabah' p -'də'\",\n nextWeek: \"eeee p -'də'\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: [\"Hz. İsa'dan öncə\", 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1ci kvartal', '2ci kvartal', '3cü kvartal', '4cü kvartal'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['Y', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyun', 'İyul', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],\n wide: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr']\n};\nvar dayValues = {\n narrow: ['B.', 'B.e', 'Ç.a', 'Ç.', 'C.a', 'C.', 'Ş.'],\n short: ['B.', 'B.e', 'Ç.a', 'Ç.', 'C.a', 'C.', 'Ş.'],\n abbreviated: ['Baz', 'Baz.e', 'Çər.a', 'Çər', 'Cüm.a', 'Cüm', 'Şə'],\n wide: ['Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'gecəyarı',\n noon: 'gün',\n morning: 'səhər',\n afternoon: 'gündüz',\n evening: 'axşam',\n night: 'gecə'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'gecəyarı',\n noon: 'gün',\n morning: 'səhər',\n afternoon: 'gündüz',\n evening: 'axşam',\n night: 'gecə'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'gecəyarı',\n noon: 'gün',\n morning: 'səhər',\n afternoon: 'gündüz',\n evening: 'axşam',\n night: 'gecə'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'gecəyarı',\n noon: 'gün',\n morning: 'səhər',\n afternoon: 'gündüz',\n evening: 'axşam',\n night: 'gecə'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'gecəyarı',\n noon: 'gün',\n morning: 'səhər',\n afternoon: 'gündüz',\n evening: 'axşam',\n night: 'gecə'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'gecəyarı',\n noon: 'gün',\n morning: 'səhər',\n afternoon: 'gündüz',\n evening: 'axşam',\n night: 'gecə'\n }\n};\nvar suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n};\n\nfunction getSuffix(number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return suffixes[a] || suffixes[b] || suffixes[c];\n}\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n var suffix = getSuffix(number);\n return number + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?(ci|inci|nci|uncu|üncü|ncı))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)$/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)$/i,\n wide: /^(Hz. İsa'dan öncə|ümumi eradan əvvəl|anno domini|ümumi dövr)$/i\n};\nvar parseEraPatterns = {\n any: [/^b$/i, /^(a|c)$/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]$/i,\n abbreviated: /^K[1234]$/i,\n wide: /^[1234](ci)? kvartal$/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[(?-i)yfmaisond]$/i,\n abbreviated: /^(Yan|Fev|Mar|Apr|May|İyun|İyul|Avq|Sen|Okt|Noy|Dek)$/i,\n wide: /^(Yanvar|Fevral|Mart|Aprel|May|İyun|İyul|Avgust|Sentyabr|Oktyabr|Noyabr|Dekabr)$/i\n};\nvar parseMonthPatterns = {\n narrow: [/^[(?-i)y]$/i, /^[(?-i)f]$/i, /^[(?-i)m]$/i, /^[(?-i)a]$/i, /^[(?-i)m]$/i, /^[(?-i)i]$/i, /^[(?-i)i]$/i, /^[(?-i)a]$/i, /^[(?-i)s]$/i, /^[(?-i)o]$/i, /^[(?-i)n]$/i, /^[(?-i)d]$/i],\n abbreviated: [/^Yan$/i, /^Fev$/i, /^Mar$/i, /^Apr$/i, /^May$/i, /^İyun$/i, /^İyul$/i, /^Avg$/i, /^Sen$/i, /^Okt$/i, /^Noy$/i, /^Dek$/i],\n wide: [/^Yanvar$/i, /^Fevral$/i, /^Mart$/i, /^Aprel$/i, /^May$/i, /^İyun$/i, /^İyul$/i, /^Avgust$/i, /^Sentyabr$/i, /^Oktyabr$/i, /^Noyabr$/i, /^Dekabr$/i]\n};\nvar matchDayPatterns = {\n narrow: /^(B\\.|B\\.e|Ç\\.a|Ç\\.|C\\.a|C\\.|Ş\\.)$/i,\n short: /^(B\\.|B\\.e|Ç\\.a|Ç\\.|C\\.a|C\\.|Ş\\.)$/i,\n abbreviated: /^(Baz\\.e|Çər|Çər\\.a|Cüm|Cüm\\.a|Şə)$/i,\n wide: /^(Bazar|Bazar ertəsi|Çərşənbə axşamı|Çərşənbə|Cümə axşamı|Cümə|Şənbə)$/i\n};\nvar parseDayPatterns = {\n narrow: [/^B\\.$/i, /^B\\.e$/i, /^Ç\\.a$/i, /^Ç\\.$/i, /^C\\.a$/i, /^C\\.$/i, /^Ş\\.$/i],\n abbreviated: [/^Baz\\.e$/i, /^Çər$/i, /^Çər\\.a$/i, /^Cüm$/i, /^Cüm\\.a$/i, /^Şə$/i],\n wide: [/^Bazar$/i, /^Bazar ertəsi$/i, /^Çərşənbə axşamı$/i, /^Çərşənbə$/i, /^Cümə axşamı$/i, /^Cümə$/i, /^Şənbə$/i],\n any: [/^B\\.$/i, /^B\\.e$/i, /^Ç\\.a$/i, /^Ç\\.$/i, /^C\\.a$/i, /^C\\.$/i, /^Ş\\.$/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i,\n any: /^(am|pm|a\\.m\\.|p\\.m\\.|AM|PM|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a$/i,\n pm: /^p$/i,\n midnight: /^gecəyarı$/i,\n noon: /^gün$/i,\n morning: /səhər$/i,\n afternoon: /gündüz$/i,\n evening: /axşam$/i,\n night: /gecə$/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction declension(scheme, count) {\n // scheme for count=1 exists\n if (scheme.one !== undefined && count === 1) {\n return scheme.one;\n }\n\n var rem10 = count % 10;\n var rem100 = count % 100; // 1, 21, 31, ...\n\n if (rem10 === 1 && rem100 !== 11) {\n return scheme.singularNominative.replace('{{count}}', count); // 2, 3, 4, 22, 23, 24, 32 ...\n } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n return scheme.singularGenitive.replace('{{count}}', count); // 5, 6, 7, 8, 9, 10, 11, ...\n } else {\n return scheme.pluralGenitive.replace('{{count}}', count);\n }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n return function (count, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n if (scheme.future) {\n return declension(scheme.future, count);\n } else {\n return 'праз ' + declension(scheme.regular, count);\n }\n } else {\n if (scheme.past) {\n return declension(scheme.past, count);\n } else {\n return declension(scheme.regular, count) + ' таму';\n }\n }\n } else {\n return declension(scheme.regular, count);\n }\n };\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: buildLocalizeTokenFn({\n regular: {\n one: 'менш за секунду',\n singularNominative: 'менш за {{count}} секунду',\n singularGenitive: 'менш за {{count}} секунды',\n pluralGenitive: 'менш за {{count}} секунд'\n },\n future: {\n one: 'менш, чым праз секунду',\n singularNominative: 'менш, чым праз {{count}} секунду',\n singularGenitive: 'менш, чым праз {{count}} секунды',\n pluralGenitive: 'менш, чым праз {{count}} секунд'\n }\n }),\n xSeconds: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} секунда',\n singularGenitive: '{{count}} секунды',\n pluralGenitive: '{{count}} секунд'\n },\n past: {\n singularNominative: '{{count}} секунду таму',\n singularGenitive: '{{count}} секунды таму',\n pluralGenitive: '{{count}} секунд таму'\n },\n future: {\n singularNominative: 'праз {{count}} секунду',\n singularGenitive: 'праз {{count}} секунды',\n pluralGenitive: 'праз {{count}} секунд'\n }\n }),\n halfAMinute: function (_, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'праз паўхвіліны';\n } else {\n return 'паўхвіліны таму';\n }\n }\n\n return 'паўхвіліны';\n },\n lessThanXMinutes: buildLocalizeTokenFn({\n regular: {\n one: 'менш за хвіліну',\n singularNominative: 'менш за {{count}} хвіліну',\n singularGenitive: 'менш за {{count}} хвіліны',\n pluralGenitive: 'менш за {{count}} хвілін'\n },\n future: {\n one: 'менш, чым праз хвіліну',\n singularNominative: 'менш, чым праз {{count}} хвіліну',\n singularGenitive: 'менш, чым праз {{count}} хвіліны',\n pluralGenitive: 'менш, чым праз {{count}} хвілін'\n }\n }),\n xMinutes: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} хвіліна',\n singularGenitive: '{{count}} хвіліны',\n pluralGenitive: '{{count}} хвілін'\n },\n past: {\n singularNominative: '{{count}} хвіліну таму',\n singularGenitive: '{{count}} хвіліны таму',\n pluralGenitive: '{{count}} хвілін таму'\n },\n future: {\n singularNominative: 'праз {{count}} хвіліну',\n singularGenitive: 'праз {{count}} хвіліны',\n pluralGenitive: 'праз {{count}} хвілін'\n }\n }),\n aboutXHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'каля {{count}} гадзіны',\n singularGenitive: 'каля {{count}} гадзін',\n pluralGenitive: 'каля {{count}} гадзін'\n },\n future: {\n singularNominative: 'прыблізна праз {{count}} гадзіну',\n singularGenitive: 'прыблізна праз {{count}} гадзіны',\n pluralGenitive: 'прыблізна праз {{count}} гадзін'\n }\n }),\n xHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} гадзіна',\n singularGenitive: '{{count}} гадзіны',\n pluralGenitive: '{{count}} гадзін'\n },\n past: {\n singularNominative: '{{count}} гадзіну таму',\n singularGenitive: '{{count}} гадзіны таму',\n pluralGenitive: '{{count}} гадзін таму'\n },\n future: {\n singularNominative: 'праз {{count}} гадзіну',\n singularGenitive: 'праз {{count}} гадзіны',\n pluralGenitive: 'праз {{count}} гадзін'\n }\n }),\n xDays: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} дзень',\n singularGenitive: '{{count}} дні',\n pluralGenitive: '{{count}} дзён'\n }\n }),\n aboutXWeeks: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'каля {{count}} месяца',\n // TODO\n singularGenitive: 'каля {{count}} месяцаў',\n // TODO\n pluralGenitive: 'каля {{count}} месяцаў' // TODO\n\n },\n future: {\n singularNominative: 'прыблізна праз {{count}} месяц',\n // TODO\n singularGenitive: 'прыблізна праз {{count}} месяцы',\n // TODO\n pluralGenitive: 'прыблізна праз {{count}} месяцаў' // TODO\n\n }\n }),\n xWeeks: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} месяц',\n singularGenitive: '{{count}} месяцы',\n pluralGenitive: '{{count}} месяцаў'\n }\n }),\n aboutXMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'каля {{count}} месяца',\n singularGenitive: 'каля {{count}} месяцаў',\n pluralGenitive: 'каля {{count}} месяцаў'\n },\n future: {\n singularNominative: 'прыблізна праз {{count}} месяц',\n singularGenitive: 'прыблізна праз {{count}} месяцы',\n pluralGenitive: 'прыблізна праз {{count}} месяцаў'\n }\n }),\n xMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} месяц',\n singularGenitive: '{{count}} месяцы',\n pluralGenitive: '{{count}} месяцаў'\n }\n }),\n aboutXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'каля {{count}} года',\n singularGenitive: 'каля {{count}} гадоў',\n pluralGenitive: 'каля {{count}} гадоў'\n },\n future: {\n singularNominative: 'прыблізна праз {{count}} год',\n singularGenitive: 'прыблізна праз {{count}} гады',\n pluralGenitive: 'прыблізна праз {{count}} гадоў'\n }\n }),\n xYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} год',\n singularGenitive: '{{count}} гады',\n pluralGenitive: '{{count}} гадоў'\n }\n }),\n overXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'больш за {{count}} год',\n singularGenitive: 'больш за {{count}} гады',\n pluralGenitive: 'больш за {{count}} гадоў'\n },\n future: {\n singularNominative: 'больш, чым праз {{count}} год',\n singularGenitive: 'больш, чым праз {{count}} гады',\n pluralGenitive: 'больш, чым праз {{count}} гадоў'\n }\n }),\n almostXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'амаль {{count}} год',\n singularGenitive: 'амаль {{count}} гады',\n pluralGenitive: 'амаль {{count}} гадоў'\n },\n future: {\n singularNominative: 'амаль праз {{count}} год',\n singularGenitive: 'амаль праз {{count}} гады',\n pluralGenitive: 'амаль праз {{count}} гадоў'\n }\n })\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n return formatDistanceLocale[token](count, options);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d MMMM y 'г.'\",\n long: \"d MMMM y 'г.'\",\n medium: \"d MMM y 'г.'\",\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar accusativeWeekdays = ['нядзелю', 'панядзелак', 'аўторак', 'сераду', 'чацвер', 'пятніцу', 'суботу'];\n\nfunction lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 5:\n case 6:\n return \"'у мінулую \" + weekday + \" а' p\";\n\n case 1:\n case 2:\n case 4:\n return \"'у мінулы \" + weekday + \" а' p\";\n }\n}\n\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n return \"'у \" + weekday + \" а' p\";\n}\n\nfunction nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 5:\n case 6:\n return \"'у наступную \" + weekday + \" а' p\";\n\n case 1:\n case 2:\n case 4:\n return \"'у наступны \" + weekday + \" а' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'учора а' p\",\n today: \"'сёння а' p\",\n tomorrow: \"'заўтра а' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['да н.э.', 'н.э.'],\n abbreviated: ['да н. э.', 'н. э.'],\n wide: ['да нашай эры', 'нашай эры']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-ы кв.', '2-і кв.', '3-і кв.', '4-ы кв.'],\n wide: ['1-ы квартал', '2-і квартал', '3-і квартал', '4-ы квартал']\n};\nvar monthValues = {\n narrow: ['С', 'Л', 'С', 'К', 'М', 'Ч', 'Л', 'Ж', 'В', 'К', 'Л', 'С'],\n abbreviated: ['студз.', 'лют.', 'сак.', 'крас.', 'май', 'чэрв.', 'ліп.', 'жн.', 'вер.', 'кастр.', 'ліст.', 'снеж.'],\n wide: ['студзень', 'люты', 'сакавік', 'красавік', 'май', 'чэрвень', 'ліпень', 'жнівень', 'верасень', 'кастрычнік', 'лістапад', 'снежань']\n};\nvar formattingMonthValues = {\n narrow: ['С', 'Л', 'С', 'К', 'М', 'Ч', 'Л', 'Ж', 'В', 'К', 'Л', 'С'],\n abbreviated: ['студз.', 'лют.', 'сак.', 'крас.', 'мая', 'чэрв.', 'ліп.', 'жн.', 'вер.', 'кастр.', 'ліст.', 'снеж.'],\n wide: ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'мая', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня']\n};\nvar dayValues = {\n narrow: ['Н', 'П', 'А', 'С', 'Ч', 'П', 'С'],\n short: ['нд', 'пн', 'аў', 'ср', 'чц', 'пт', 'сб'],\n abbreviated: ['нядз', 'пан', 'аўт', 'сер', 'чац', 'пят', 'суб'],\n wide: ['нядзеля', 'панядзелак', 'аўторак', 'серада', 'чацвер', 'пятніца', 'субота']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'поўн.',\n noon: 'поўд.',\n morning: 'ран.',\n afternoon: 'дзень',\n evening: 'веч.',\n night: 'ноч'\n },\n abbreviated: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'поўн.',\n noon: 'поўд.',\n morning: 'ран.',\n afternoon: 'дзень',\n evening: 'веч.',\n night: 'ноч'\n },\n wide: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'поўнач',\n noon: 'поўдзень',\n morning: 'раніца',\n afternoon: 'дзень',\n evening: 'вечар',\n night: 'ноч'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'поўн.',\n noon: 'поўд.',\n morning: 'ран.',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночы'\n },\n abbreviated: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'поўн.',\n noon: 'поўд.',\n morning: 'ран.',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночы'\n },\n wide: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'поўнач',\n noon: 'поўдзень',\n morning: 'раніцы',\n afternoon: 'дня',\n evening: 'вечара',\n night: 'ночы'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var number = Number(dirtyNumber);\n var suffix;\n /** Though it's an incorrect ordinal form of a date we use it here for consistency with other similar locales (ru, uk)\n * For date-month combinations should be used `d` formatter.\n * Correct: `d MMMM` (4 верасня)\n * Incorrect: `do MMMM` (4-га верасня)\n *\n * But following the consistency leads to mistakes for literal uses of `do` formatter (ordinal day of month).\n * So for phrase \"5th day of month\" (`do дзень месяца`)\n * library will produce: `5-га дзень месяца`\n * but correct spelling should be: `5-ы дзень месяца`\n *\n * So I guess there should be a stand-alone and a formatting version of \"day of month\" formatters\n */\n\n if (unit === 'date') {\n suffix = '-га';\n } else if (unit === 'hour' || unit === 'minute' || unit === 'second') {\n suffix = '-я';\n } else {\n suffix = (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? '-і' : '-ы';\n }\n\n return number + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'any',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?(е|я|га|і|ы|ае|ая|яя|шы|гі|ці|ты|мы))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^((да )?н\\.?\\s?э\\.?)/i,\n abbreviated: /^((да )?н\\.?\\s?э\\.?)/i,\n wide: /^(да нашай эры|нашай эры|наша эра)/i\n};\nvar parseEraPatterns = {\n any: [/^д/i, /^н/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](-?[ыі]?)? кв.?/i,\n wide: /^[1234](-?[ыі]?)? квартал/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[слкмчжв]/i,\n abbreviated: /^(студз|лют|сак|крас|ма[йя]|чэрв|ліп|жн|вер|кастр|ліст|снеж)\\.?/i,\n wide: /^(студзен[ья]|лют(ы|ага)|сакавіка?|красавіка?|ма[йя]|чэрвен[ья]|ліпен[ья]|жні(вень|ўня)|верас(ень|ня)|кастрычніка?|лістапада?|снеж(ань|ня))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^с/i, /^л/i, /^с/i, /^к/i, /^м/i, /^ч/i, /^л/i, /^ж/i, /^в/i, /^к/i, /^л/i, /^с/i],\n any: [/^ст/i, /^лю/i, /^са/i, /^кр/i, /^ма/i, /^ч/i, /^ліп/i, /^ж/i, /^в/i, /^ка/i, /^ліс/i, /^сн/i]\n};\nvar matchDayPatterns = {\n narrow: /^[нпасч]/i,\n short: /^(нд|ня|пн|па|аў|ат|ср|се|чц|ча|пт|пя|сб|су)\\.?/i,\n abbreviated: /^(нядз?|ндз|пнд|пан|аўт|срд|сер|чцв|чац|птн|пят|суб).?/i,\n wide: /^(нядзел[яі]|панядзел(ак|ка)|аўтор(ак|ка)|серад[аы]|чацв(ер|ярга)|пятніц[аы]|субот[аы])/i\n};\nvar parseDayPatterns = {\n narrow: [/^н/i, /^п/i, /^а/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n any: [/^н/i, /^п[ан]/i, /^а/i, /^с[ер]/i, /^ч/i, /^п[ят]/i, /^с[уб]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^([дп]п|поўн\\.?|поўд\\.?|ран\\.?|дзень|дня|веч\\.?|ночы?)/i,\n abbreviated: /^([дп]п|поўн\\.?|поўд\\.?|ран\\.?|дзень|дня|веч\\.?|ночы?)/i,\n wide: /^([дп]п|поўнач|поўдзень|раніц[аы]|дзень|дня|вечара?|ночы?)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^дп/i,\n pm: /^пп/i,\n midnight: /^поўн/i,\n noon: /^поўд/i,\n morning: /^р/i,\n afternoon: /^д[зн]/i,\n evening: /^в/i,\n night: /^н/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'по-малко от секунда',\n other: 'по-малко от {{count}} секунди'\n },\n xSeconds: {\n one: '1 секунда',\n other: '{{count}} секунди'\n },\n halfAMinute: 'половин минута',\n lessThanXMinutes: {\n one: 'по-малко от минута',\n other: 'по-малко от {{count}} минути'\n },\n xMinutes: {\n one: '1 минута',\n other: '{{count}} минути'\n },\n aboutXHours: {\n one: 'около час',\n other: 'около {{count}} часа'\n },\n xHours: {\n one: '1 час',\n other: '{{count}} часа'\n },\n xDays: {\n one: '1 ден',\n other: '{{count}} дни'\n },\n aboutXWeeks: {\n one: 'около седмица',\n other: 'около {{count}} седмици'\n },\n xWeeks: {\n one: '1 седмица',\n other: '{{count}} седмици'\n },\n aboutXMonths: {\n one: 'около месец',\n other: 'около {{count}} месеца'\n },\n xMonths: {\n one: '1 месец',\n other: '{{count}} месеца'\n },\n aboutXYears: {\n one: 'около година',\n other: 'около {{count}} години'\n },\n xYears: {\n one: '1 година',\n other: '{{count}} години'\n },\n overXYears: {\n one: 'над година',\n other: 'над {{count}} години'\n },\n almostXYears: {\n one: 'почти година',\n other: 'почти {{count}} години'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'след ' + result;\n } else {\n return 'преди ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, dd MMMM yyyy',\n long: 'dd MMMM yyyy',\n medium: 'dd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Adapted from the `ru` translation\nvar weekdays = ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота'];\n\nfunction lastWeek(day) {\n var weekday = weekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 6:\n return \"'миналата \" + weekday + \" в' p\";\n\n case 1:\n case 2:\n case 4:\n case 5:\n return \"'миналия \" + weekday + \" в' p\";\n }\n}\n\nfunction thisWeek(day) {\n var weekday = weekdays[day];\n\n if (day === 2\n /* Tue */\n ) {\n return \"'във \" + weekday + \" в' p\";\n } else {\n return \"'в \" + weekday + \" в' p\";\n }\n}\n\nfunction nextWeek(day) {\n var weekday = weekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 6:\n return \"'следващата \" + weekday + \" в' p\";\n\n case 1:\n case 2:\n case 4:\n case 5:\n return \"'следващия \" + weekday + \" в' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'вчера в' p\",\n today: \"'днес в' p\",\n tomorrow: \"'утре в' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['пр.н.е.', 'н.е.'],\n abbreviated: ['преди н. е.', 'н. е.'],\n wide: ['преди новата ера', 'новата ера']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-во тримес.', '2-ро тримес.', '3-то тримес.', '4-то тримес.'],\n wide: ['1-во тримесечие', '2-ро тримесечие', '3-то тримесечие', '4-то тримесечие']\n};\nvar monthValues = {\n abbreviated: ['яну', 'фев', 'мар', 'апр', 'май', 'юни', 'юли', 'авг', 'сеп', 'окт', 'ное', 'дек'],\n wide: ['януари', 'февруари', 'март', 'април', 'май', 'юни', 'юли', 'август', 'септември', 'октомври', 'ноември', 'декември']\n};\nvar dayValues = {\n narrow: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'],\n short: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n abbreviated: ['нед', 'пон', 'вто', 'сря', 'чет', 'пет', 'съб'],\n wide: ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота']\n};\nvar dayPeriodValues = {\n wide: {\n am: 'преди обяд',\n pm: 'след обяд',\n midnight: 'в полунощ',\n noon: 'на обяд',\n morning: 'сутринта',\n afternoon: 'следобед',\n evening: 'вечерта',\n night: 'през нощта'\n }\n};\n\nfunction isFeminine(unit) {\n return unit === 'year' || unit === 'week' || unit === 'minute' || unit === 'second';\n}\n\nfunction isNeuter(unit) {\n return unit === 'quarter';\n}\n\nfunction numberWithSuffix(number, unit, masculine, feminine, neuter) {\n var suffix = isNeuter(unit) ? neuter : isFeminine(unit) ? feminine : masculine;\n return number + '-' + suffix;\n}\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var number = Number(dirtyNumber);\n\n if (number === 0) {\n return numberWithSuffix(0, unit, 'ев', 'ева', 'ево');\n } else if (number % 1000 === 0) {\n return numberWithSuffix(number, unit, 'ен', 'на', 'но');\n } else if (number % 100 === 0) {\n return numberWithSuffix(number, unit, 'тен', 'тна', 'тно');\n }\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return numberWithSuffix(number, unit, 'ви', 'ва', 'во');\n\n case 2:\n return numberWithSuffix(number, unit, 'ри', 'ра', 'ро');\n\n case 7:\n case 8:\n return numberWithSuffix(number, unit, 'ми', 'ма', 'мо');\n }\n }\n\n return numberWithSuffix(number, unit, 'ти', 'та', 'то');\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?[врмт][аи]|-?т?(ен|на)|-?(ев|ева))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^((пр)?н\\.?\\s?е\\.?)/i,\n abbreviated: /^((пр)?н\\.?\\s?е\\.?)/i,\n wide: /^(преди новата ера|новата ера|нова ера)/i\n};\nvar parseEraPatterns = {\n any: [/^п/i, /^н/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](-?[врт]?o?)? тримес.?/i,\n wide: /^[1234](-?[врт]?о?)? тримесечие/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchDayPatterns = {\n narrow: /^[нпвсч]/i,\n short: /^(нд|пн|вт|ср|чт|пт|сб)/i,\n abbreviated: /^(нед|пон|вто|сря|чет|пет|съб)/i,\n wide: /^(неделя|понеделник|вторник|сряда|четвъртък|петък|събота)/i\n};\nvar parseDayPatterns = {\n narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n any: [/^н[ед]/i, /^п[он]/i, /^вт/i, /^ср/i, /^ч[ет]/i, /^п[ет]/i, /^с[ъб]/i]\n};\nvar matchMonthPatterns = {\n abbreviated: /^(яну|фев|мар|апр|май|юни|юли|авг|сеп|окт|ное|дек)/i,\n wide: /^(януари|февруари|март|април|май|юни|юли|август|септември|октомври|ноември|декември)/i\n};\nvar parseMonthPatterns = {\n any: [/^я/i, /^ф/i, /^мар/i, /^ап/i, /^май/i, /^юн/i, /^юл/i, /^ав/i, /^се/i, /^окт/i, /^но/i, /^де/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(преди о|след о|в по|на о|през|веч|сут|следо)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^преди о/i,\n pm: /^след о/i,\n midnight: /^в пол/i,\n noon: /^на об/i,\n morning: /^сут/i,\n afternoon: /^следо/i,\n evening: /^веч/i,\n night: /^през н/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nvar _index = _interopRequireDefault(require(\"../localize/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'প্রায় ১ সেকেন্ড',\n other: 'প্রায় {{count}} সেকেন্ড'\n },\n xSeconds: {\n one: '১ সেকেন্ড',\n other: '{{count}} সেকেন্ড'\n },\n halfAMinute: 'আধ মিনিট',\n lessThanXMinutes: {\n one: 'প্রায় ১ মিনিট',\n other: 'প্রায় {{count}} মিনিট'\n },\n xMinutes: {\n one: '১ মিনিট',\n other: '{{count}} মিনিট'\n },\n aboutXHours: {\n one: 'প্রায় ১ ঘন্টা',\n other: 'প্রায় {{count}} ঘন্টা'\n },\n xHours: {\n one: '১ ঘন্টা',\n other: '{{count}} ঘন্টা'\n },\n xDays: {\n one: '১ দিন',\n other: '{{count}} দিন'\n },\n aboutXWeeks: {\n one: 'প্রায় ১ সপ্তাহ',\n other: 'প্রায় {{count}} সপ্তাহ'\n },\n xWeeks: {\n one: '১ সপ্তাহ',\n other: '{{count}} সপ্তাহ'\n },\n aboutXMonths: {\n one: 'প্রায় ১ মাস',\n other: 'প্রায় {{count}} মাস'\n },\n xMonths: {\n one: '১ মাস',\n other: '{{count}} মাস'\n },\n aboutXYears: {\n one: 'প্রায় ১ বছর',\n other: 'প্রায় {{count}} বছর'\n },\n xYears: {\n one: '১ বছর',\n other: '{{count}} বছর'\n },\n overXYears: {\n one: '১ বছরের বেশি',\n other: '{{count}} বছরের বেশি'\n },\n almostXYears: {\n one: 'প্রায় ১ বছর',\n other: 'প্রায় {{count}} বছর'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', _index.default.numberToLocale(count));\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' এর মধ্যে';\n } else {\n return result + ' আগে';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} {{time}} 'সময়'\",\n long: \"{{date}} {{time}} 'সময়'\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'গত' eeee 'সময়' p\",\n yesterday: \"'গতকাল' 'সময়' p\",\n today: \"'আজ' 'সময়' p\",\n tomorrow: \"'আগামীকাল' 'সময়' p\",\n nextWeek: \"eeee 'সময়' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(ম|য়|র্থ|ষ্ঠ|শে|ই|তম)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(খ্রিঃপূঃ|খ্রিঃ)/i,\n abbreviated: /^(খ্রিঃপূর্ব|খ্রিঃ)/i,\n wide: /^(খ্রিস্টপূর্ব|খ্রিস্টাব্দ)/i\n};\nvar parseEraPatterns = {\n narrow: [/^খ্রিঃপূঃ/i, /^খ্রিঃ/i],\n abbreviated: [/^খ্রিঃপূর্ব/i, /^খ্রিঃ/i],\n wide: [/^খ্রিস্টপূর্ব/i, /^খ্রিস্টাব্দ/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[১২৩৪]/i,\n abbreviated: /^[১২৩৪]ত্রৈ/i,\n wide: /^[১২৩৪](ম|য়|র্থ)? ত্রৈমাসিক/i\n};\nvar parseQuarterPatterns = {\n any: [/১/i, /২/i, /৩/i, /৪/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(জানু|ফেব্রু|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্ট|অক্টো|নভে|ডিসে)/i,\n abbreviated: /^(জানু|ফেব্রু|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্ট|অক্টো|নভে|ডিসে)/i,\n wide: /^(জানুয়ারি|ফেব্রুয়ারি|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্টেম্বর|অক্টোবর|নভেম্বর|ডিসেম্বর)/i\n};\nvar parseMonthPatterns = {\n any: [/^জানু/i, /^ফেব্রু/i, /^মার্চ/i, /^এপ্রিল/i, /^মে/i, /^জুন/i, /^জুলাই/i, /^আগস্ট/i, /^সেপ্ট/i, /^অক্টো/i, /^নভে/i, /^ডিসে/i]\n};\nvar matchDayPatterns = {\n narrow: /^(র|সো|ম|বু|বৃ|শু|শ)+/i,\n short: /^(রবি|সোম|মঙ্গল|বুধ|বৃহ|শুক্র|শনি)+/i,\n abbreviated: /^(রবি|সোম|মঙ্গল|বুধ|বৃহ|শুক্র|শনি)+/i,\n wide: /^(রবিবার|সোমবার|মঙ্গলবার|বুধবার|বৃহস্পতিবার |শুক্রবার|শনিবার)+/i\n};\nvar parseDayPatterns = {\n narrow: [/^র/i, /^সো/i, /^ম/i, /^বু/i, /^বৃ/i, /^শু/i, /^শ/i],\n short: [/^রবি/i, /^সোম/i, /^মঙ্গল/i, /^বুধ/i, /^বৃহ/i, /^শুক্র/i, /^শনি/i],\n abbreviated: [/^রবি/i, /^সোম/i, /^মঙ্গল/i, /^বুধ/i, /^বৃহ/i, /^শুক্র/i, /^শনি/i],\n wide: [/^রবিবার/i, /^সোমবার/i, /^মঙ্গলবার/i, /^বুধবার/i, /^বৃহস্পতিবার /i, /^শুক্রবার/i, /^শনিবার/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(পূ|অপ|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,\n abbreviated: /^(পূর্বাহ্ন|অপরাহ্ন|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,\n wide: /^(পূর্বাহ্ন|অপরাহ্ন|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^পূ/i,\n pm: /^অপ/i,\n midnight: /^মধ্যরাত/i,\n noon: /^মধ্যাহ্ন/i,\n morning: /সকাল/i,\n afternoon: /বিকাল/i,\n evening: /সন্ধ্যা/i,\n night: /রাত/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\n/**\n * Davant de les xifres que es diuen amb vocal inicial, 1 i 11, s'apostrofen els articles el i la i la preposició de igual que si estiguessin escrits amb lletres.\n * l'1 de juliol ('l'u')\n * l'11 de novembre ('l'onze')\n * l'11a clàusula del contracte ('l'onzena')\n * la contractació d'11 jugadors ('d'onze')\n * l'aval d'11.000 socis ('d'onze mil')\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=apostrofaci%25F3+davant+xifres&action=Principal&method=detall_completa&numPagina=1&idHit=11236&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=11236&titol=apostrofaci%F3%20davant%20de%20xifres%20%2F%20apostrofaci%F3%20davant%20de%201%20i%2011&numeroResultat=1&clickLink=detall&tipusCerca=cerca.normes\n */\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menys d'un segon\",\n eleven: \"menys d'onze segons\",\n other: 'menys de {{count}} segons'\n },\n xSeconds: {\n one: '1 segon',\n other: '{{count}} segons'\n },\n halfAMinute: 'mig minut',\n lessThanXMinutes: {\n one: \"menys d'un minut\",\n eleven: \"menys d'onze minuts\",\n other: 'menys de {{count}} minuts'\n },\n xMinutes: {\n one: '1 minut',\n other: '{{count}} minuts'\n },\n aboutXHours: {\n one: 'aproximadament una hora',\n other: 'aproximadament {{count}} hores'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} hores'\n },\n xDays: {\n one: '1 dia',\n other: '{{count}} dies'\n },\n aboutXWeeks: {\n one: 'aproximadament una setmana',\n other: 'aproximadament {{count}} setmanes'\n },\n xWeeks: {\n one: '1 setmana',\n other: '{{count}} setmanes'\n },\n aboutXMonths: {\n one: 'aproximadament un mes',\n other: 'aproximadament {{count}} mesos'\n },\n xMonths: {\n one: '1 mes',\n other: '{{count}} mesos'\n },\n aboutXYears: {\n one: 'aproximadament un any',\n other: 'aproximadament {{count}} anys'\n },\n xYears: {\n one: '1 any',\n other: '{{count}} anys'\n },\n overXYears: {\n one: \"més d'un any\",\n eleven: \"més d'onze anys\",\n other: 'més de {{count}} anys'\n },\n almostXYears: {\n one: 'gairebé un any',\n other: 'gairebé {{count}} anys'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 11 && formatDistanceLocale[token].eleven) {\n result = formatDistanceLocale[token].eleven;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'en ' + result;\n } else {\n return 'fa ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM y\",\n long: \"d 'de' MMMM y\",\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'a les' {{time}}\",\n long: \"{{date}} 'a les' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'el' eeee 'passat a la' LT\",\n yesterday: \"'ahir a la' p\",\n today: \"'avui a la' p\",\n tomorrow: \"'demà a la' p\",\n nextWeek: \"eeee 'a la' p\",\n other: 'P'\n};\nvar formatRelativeLocalePlural = {\n lastWeek: \"'el' eeee 'passat a les' p\",\n yesterday: \"'ahir a les' p\",\n today: \"'avui a les' p\",\n tomorrow: \"'demà a les' p\",\n nextWeek: \"eeee 'a les' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n if (date.getUTCHours() !== 1) {\n return formatRelativeLocalePlural[token];\n }\n\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * General information\n * Reference: https://aplicacions.llengua.gencat.cat\n * Reference: https://www.uoc.edu/portal/ca/servei-linguistic/convencions/abreviacions/simbols/simbols-habituals.html\n */\n\n/**\n * Abans de Crist: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=abans+de+crist&action=Principal&method=detall_completa&numPagina=1&idHit=6876&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=6876&titol=abans%20de%20Crist%20(abreviatura)%20/%20abans%20de%20Crist%20(sigla)&numeroResultat=1&clickLink=detall&tipusCerca=cerca.fitxes\n * Desprest de Crist: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=despr%E9s+de+crist&action=Principal&method=detall_completa&numPagina=1&idHit=6879&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=6879&titol=despr%E9s%20de%20Crist%20(sigla)%20/%20despr%E9s%20de%20Crist%20(abreviatura)&numeroResultat=1&clickLink=detall&tipusCerca=cerca.fitxes\n */\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a. de C.', 'd. de C.'],\n wide: ['abans de Crist', 'després de Crist']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1r trimestre', '2n trimestre', '3r trimestre', '4t trimestre']\n /**\n * Dins d'un text convé fer servir la forma sencera dels mesos, ja que sempre és més clar el mot sencer que l'abreviatura, encara que aquesta sigui força coneguda.\n * Cal reservar, doncs, les abreviatures per a les llistes o classificacions, els gràfics, les taules o quadres estadístics, els textos publicitaris, etc.\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=abreviacions+mesos&action=Principal&method=detall_completa&numPagina=1&idHit=8402&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=8402&titol=abreviatures%20dels%20mesos%20de%20l%27any&numeroResultat=5&clickLink=detall&tipusCerca=cerca.fitxes\n */\n\n};\nvar monthValues = {\n narrow: ['GN', 'FB', 'MÇ', 'AB', 'MG', 'JN', 'JL', 'AG', 'ST', 'OC', 'NV', 'DS'],\n\n /**\n * Les abreviatures dels mesos de l'any es formen seguint una de les normes generals de formació d'abreviatures.\n * S'escriu la primera síl·laba i les consonants de la síl·laba següent anteriors a la primera vocal.\n * Els mesos de març, maig i juny no s'abreugen perquè són paraules d'una sola síl·laba.\n */\n abbreviated: ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'],\n wide: ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre']\n /**\n * Les abreviatures dels dies de la setmana comencen totes amb la lletra d.\n * Tot seguit porten la consonant següent a la i, excepte en el cas de dimarts, dimecres i diumenge, en què aquesta consonant és la m i, per tant, hi podria haver confusió.\n * Per evitar-ho, s'ha substituït la m per una t (en el cas de dimarts), una c (en el cas de dimecres) i una g (en el cas de diumenge), respectivament.\n *\n * Seguint la norma general d'ús de les abreviatures, les dels dies de la setmana sempre porten punt final.\n * Igualment, van amb la primera lletra en majúscula quan la paraula sencera també hi aniria.\n * En canvi, van amb la primera lletra en minúscula quan la inicial de la paraula sencera també hi aniria.\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=abreviatures+dies&action=Principal&method=detall_completa&numPagina=1&idHit=8387&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=8387&titol=abreviatures%20dels%20dies%20de%20la%20setmana&numeroResultat=1&clickLink=detall&tipusCerca=cerca.tot\n */\n\n};\nvar dayValues = {\n narrow: ['dg.', 'dl.', 'dt.', 'dm.', 'dj.', 'dv.', 'ds.'],\n short: ['dg.', 'dl.', 'dt.', 'dm.', 'dj.', 'dv.', 'ds.'],\n abbreviated: ['dg.', 'dl.', 'dt.', 'dm.', 'dj.', 'dv.', 'ds.'],\n wide: ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', 'divendres', 'dissabte']\n /**\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?action=Principal&method=detall&input_cercar=parts+del+dia&numPagina=1&database=FITXES_PUB&idFont=12801&idHit=12801&tipusFont=Fitxes+de+l%27Optimot&numeroResultat=1&databases_avansada=&categories_avansada=&clickLink=detall&titol=Nom+de+les+parts+del+dia&tematica=&tipusCerca=cerca.fitxes\n */\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'mitjanit',\n noon: 'migdia',\n morning: 'matí',\n afternoon: 'tarda',\n evening: 'vespre',\n night: 'nit'\n },\n abbreviated: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'mitjanit',\n noon: 'migdia',\n morning: 'matí',\n afternoon: 'tarda',\n evening: 'vespre',\n night: 'nit'\n },\n wide: {\n am: 'ante meridiem',\n pm: 'post meridiem',\n midnight: 'mitjanit',\n noon: 'migdia',\n morning: 'matí',\n afternoon: 'tarda',\n evening: 'vespre',\n night: 'nit'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'de la mitjanit',\n noon: 'del migdia',\n morning: 'del matí',\n afternoon: 'de la tarda',\n evening: 'del vespre',\n night: 'de la nit'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'de la mitjanit',\n noon: 'del migdia',\n morning: 'del matí',\n afternoon: 'de la tarda',\n evening: 'del vespre',\n night: 'de la nit'\n },\n wide: {\n am: 'ante meridiem',\n pm: 'post meridiem',\n midnight: 'de la mitjanit',\n noon: 'del migdia',\n morning: 'del matí',\n afternoon: 'de la tarda',\n evening: 'del vespre',\n night: 'de la nit'\n }\n /**\n * Quan van en singular, els nombres ordinals es representen, en forma d’abreviatura, amb la xifra seguida de l’última lletra del mot desplegat.\n * És optatiu posar punt després de la lletra.\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/pdf/abrevia.pdf#page=18\n *\n * @param {Number} dirtyNumber\n * @param {Object} [_dirtyOptions]\n */\n\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'r';\n\n case 2:\n return number + 'n';\n\n case 3:\n return number + 'r';\n\n case 4:\n return number + 't';\n }\n }\n\n return number + 'è';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(è|r|n|r|t)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(aC|dC)/i,\n abbreviated: /^(a. de C.|d. de C.)/i,\n wide: /^(abans de Crist|despr[eé]s de Crist)/i\n};\nvar parseEraPatterns = {\n narrow: [/^aC/i, /^dC/i],\n abbreviated: [/^(a. de C.)/i, /^(d. de C.)/i],\n wide: [/^(abans de Crist)/i, /^(despr[eé]s de Crist)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](è|r|n|r|t)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(GN|FB|MÇ|AB|MG|JN|JL|AG|ST|OC|NV|DS)/i,\n abbreviated: /^(gen.|febr.|març|abr.|maig|juny|jul.|ag.|set.|oct.|nov.|des.)/i,\n wide: /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^GN/i, /^FB/i, /^MÇ/i, /^AB/i, /^MG/i, /^JN/i, /^JL/i, /^AG/i, /^ST/i, /^OC/i, /^NV/i, /^DS/i],\n abbreviated: [/^gen./i, /^febr./i, /^març/i, /^abr./i, /^maig/i, /^juny/i, /^jul./i, /^ag./i, /^set./i, /^oct./i, /^nov./i, /^des./i],\n wide: [/^gener/i, /^febrer/i, /^març/i, /^abril/i, /^maig/i, /^juny/i, /^juliol/i, /^agost/i, /^setembre/i, /^octubre/i, /^novembre/i, /^desembre/i]\n};\nvar matchDayPatterns = {\n narrow: /^(dg\\.|dl\\.|dt\\.|dm\\.|dj\\.|dv\\.|ds\\.)/i,\n short: /^(dg\\.|dl\\.|dt\\.|dm\\.|dj\\.|dv\\.|ds\\.)/i,\n abbreviated: /^(dg\\.|dl\\.|dt\\.|dm\\.|dj\\.|dv\\.|ds\\.)/i,\n wide: /^(diumenge|dilluns|dimarts|dimecres|dijous|divendres|dissabte)/i\n};\nvar parseDayPatterns = {\n narrow: [/^dg./i, /^dl./i, /^dt./i, /^dm./i, /^dj./i, /^dv./i, /^ds./i],\n abbreviated: [/^dg./i, /^dl./i, /^dt./i, /^dm./i, /^dj./i, /^dv./i, /^ds./i],\n wide: [/^diumenge/i, /^dilluns/i, /^dimarts/i, /^dimecres/i, /^dijous/i, /^divendres/i, /^disssabte/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(del|de la) (matí|tarda|vespre|nit))/i,\n abbreviated: /^([ap]\\.?\\s?m\\.?|mitjanit|migdia|(del|de la) (matí|tarda|vespre|nit))/i,\n wide: /^(ante meridiem|post meridiem|mitjanit|migdia|(del|de la) (matí|tarda|vespre|nit))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mitjanit/i,\n noon: /^migdia/i,\n morning: /matí/i,\n afternoon: /tarda/i,\n evening: /vespre/i,\n night: /nit/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'méně než vteřina',\n past: 'před méně než vteřinou',\n future: 'za méně než vteřinu'\n },\n few: {\n regular: 'méně než {{count}} vteřiny',\n past: 'před méně než {{count}} vteřinami',\n future: 'za méně než {{count}} vteřiny'\n },\n many: {\n regular: 'méně než {{count}} vteřin',\n past: 'před méně než {{count}} vteřinami',\n future: 'za méně než {{count}} vteřin'\n }\n },\n xSeconds: {\n one: {\n regular: 'vteřina',\n past: 'před vteřinou',\n future: 'za vteřinu'\n },\n few: {\n regular: '{{count}} vteřiny',\n past: 'před {{count}} vteřinami',\n future: 'za {{count}} vteřiny'\n },\n many: {\n regular: '{{count}} vteřin',\n past: 'před {{count}} vteřinami',\n future: 'za {{count}} vteřin'\n }\n },\n halfAMinute: {\n other: {\n regular: 'půl minuty',\n past: 'před půl minutou',\n future: 'za půl minuty'\n }\n },\n lessThanXMinutes: {\n one: {\n regular: 'méně než minuta',\n past: 'před méně než minutou',\n future: 'za méně než minutu'\n },\n few: {\n regular: 'méně než {{count}} minuty',\n past: 'před méně než {{count}} minutami',\n future: 'za méně než {{count}} minuty'\n },\n many: {\n regular: 'méně než {{count}} minut',\n past: 'před méně než {{count}} minutami',\n future: 'za méně než {{count}} minut'\n }\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'před minutou',\n future: 'za minutu'\n },\n few: {\n regular: '{{count}} minuty',\n past: 'před {{count}} minutami',\n future: 'za {{count}} minuty'\n },\n many: {\n regular: '{{count}} minut',\n past: 'před {{count}} minutami',\n future: 'za {{count}} minut'\n }\n },\n aboutXHours: {\n one: {\n regular: 'přibližně hodina',\n past: 'přibližně před hodinou',\n future: 'přibližně za hodinu'\n },\n few: {\n regular: 'přibližně {{count}} hodiny',\n past: 'přibližně před {{count}} hodinami',\n future: 'přibližně za {{count}} hodiny'\n },\n many: {\n regular: 'přibližně {{count}} hodin',\n past: 'přibližně před {{count}} hodinami',\n future: 'přibližně za {{count}} hodin'\n }\n },\n xHours: {\n one: {\n regular: 'hodina',\n past: 'před hodinou',\n future: 'za hodinu'\n },\n few: {\n regular: '{{count}} hodiny',\n past: 'před {{count}} hodinami',\n future: 'za {{count}} hodiny'\n },\n many: {\n regular: '{{count}} hodin',\n past: 'před {{count}} hodinami',\n future: 'za {{count}} hodin'\n }\n },\n xDays: {\n one: {\n regular: 'den',\n past: 'před dnem',\n future: 'za den'\n },\n few: {\n regular: '{{count}} dny',\n past: 'před {{count}} dny',\n future: 'za {{count}} dny'\n },\n many: {\n regular: '{{count}} dní',\n past: 'před {{count}} dny',\n future: 'za {{count}} dní'\n }\n },\n aboutXWeeks: {\n one: {\n regular: 'přibližně týden',\n past: 'přibližně před týdnem',\n future: 'přibližně za týden'\n },\n few: {\n regular: 'přibližně {{count}} týdny',\n past: 'přibližně před {{count}} týdny',\n future: 'přibližně za {{count}} týdny'\n },\n many: {\n regular: 'přibližně {{count}} týdnů',\n past: 'přibližně před {{count}} týdny',\n future: 'přibližně za {{count}} týdnů'\n }\n },\n xWeeks: {\n one: {\n regular: 'týden',\n past: 'před týdnem',\n future: 'za týden'\n },\n few: {\n regular: '{{count}} týdny',\n past: 'před {{count}} týdny',\n future: 'za {{count}} týdny'\n },\n many: {\n regular: '{{count}} týdnů',\n past: 'před {{count}} týdny',\n future: 'za {{count}} týdnů'\n }\n },\n aboutXMonths: {\n one: {\n regular: 'přibližně měsíc',\n past: 'přibližně před měsícem',\n future: 'přibližně za měsíc'\n },\n few: {\n regular: 'přibližně {{count}} měsíce',\n past: 'přibližně před {{count}} měsíci',\n future: 'přibližně za {{count}} měsíce'\n },\n many: {\n regular: 'přibližně {{count}} měsíců',\n past: 'přibližně před {{count}} měsíci',\n future: 'přibližně za {{count}} měsíců'\n }\n },\n xMonths: {\n one: {\n regular: 'měsíc',\n past: 'před měsícem',\n future: 'za měsíc'\n },\n few: {\n regular: '{{count}} měsíce',\n past: 'před {{count}} měsíci',\n future: 'za {{count}} měsíce'\n },\n many: {\n regular: '{{count}} měsíců',\n past: 'před {{count}} měsíci',\n future: 'za {{count}} měsíců'\n }\n },\n aboutXYears: {\n one: {\n regular: 'přibližně rok',\n past: 'přibližně před rokem',\n future: 'přibližně za rok'\n },\n few: {\n regular: 'přibližně {{count}} roky',\n past: 'přibližně před {{count}} roky',\n future: 'přibližně za {{count}} roky'\n },\n many: {\n regular: 'přibližně {{count}} roků',\n past: 'přibližně před {{count}} roky',\n future: 'přibližně za {{count}} roků'\n }\n },\n xYears: {\n one: {\n regular: 'rok',\n past: 'před rokem',\n future: 'za rok'\n },\n few: {\n regular: '{{count}} roky',\n past: 'před {{count}} roky',\n future: 'za {{count}} roky'\n },\n many: {\n regular: '{{count}} roků',\n past: 'před {{count}} roky',\n future: 'za {{count}} roků'\n }\n },\n overXYears: {\n one: {\n regular: 'více než rok',\n past: 'před více než rokem',\n future: 'za více než rok'\n },\n few: {\n regular: 'více než {{count}} roky',\n past: 'před více než {{count}} roky',\n future: 'za více než {{count}} roky'\n },\n many: {\n regular: 'více než {{count}} roků',\n past: 'před více než {{count}} roky',\n future: 'za více než {{count}} roků'\n }\n },\n almostXYears: {\n one: {\n regular: 'skoro rok',\n past: 'skoro před rokem',\n future: 'skoro za rok'\n },\n few: {\n regular: 'skoro {{count}} roky',\n past: 'skoro před {{count}} roky',\n future: 'skoro za {{count}} roky'\n },\n many: {\n regular: 'skoro {{count}} roků',\n past: 'skoro před {{count}} roky',\n future: 'skoro za {{count}} roků'\n }\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var scheme = formatDistanceLocale[token]; // cs pluralization\n\n var pluralToken;\n\n if (typeof scheme.other === 'object') {\n pluralToken = 'other';\n } else if (count === 1) {\n pluralToken = 'one';\n } else if (count > 1 && count < 5 || count === 0) {\n pluralToken = 'few';\n } else {\n pluralToken = 'many';\n } // times\n\n\n var suffixExist = options.addSuffix === true;\n var comparison = options.comparison;\n var timeToken;\n\n if (suffixExist && comparison === -1) {\n timeToken = 'past';\n } else if (suffixExist && comparison === 1) {\n timeToken = 'future';\n } else {\n timeToken = 'regular';\n }\n\n return scheme[pluralToken][timeToken].replace('{{count}}', count);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d. MMMM yyyy',\n long: 'd. MMMM yyyy',\n medium: 'd.M.yyyy',\n short: 'd.M.yy'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'v' {{time}}\",\n long: \"{{date}} 'v' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar accusativeWeekdays = ['neděli', 'pondělí', 'úterý', 'středu', 'čtvrtek', 'pátek', 'sobotu'];\nvar formatRelativeLocale = {\n lastWeek: \"'poslední' eeee 've' p\",\n yesterday: \"'včera v' p\",\n today: \"'dnes v' p\",\n tomorrow: \"'zítra v' p\",\n nextWeek: function (date, _baseDate, _options) {\n var day = date.getUTCDay();\n return \"'v \" + accusativeWeekdays[day] + \" o' p\";\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['př. n. l.', 'n. l.'],\n abbreviated: ['př. n. l.', 'n. l.'],\n wide: ['před naším letopočtem', 'našeho letopočtu']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. čtvrtletí', '2. čtvrtletí', '3. čtvrtletí', '4. čtvrtletí'],\n wide: ['1. čtvrtletí', '2. čtvrtletí', '3. čtvrtletí', '4. čtvrtletí']\n};\nvar monthValues = {\n narrow: ['L', 'Ú', 'B', 'D', 'K', 'Č', 'Č', 'S', 'Z', 'Ř', 'L', 'P'],\n abbreviated: ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'],\n wide: ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec']\n};\nvar formattingMonthValues = {\n narrow: ['L', 'Ú', 'B', 'D', 'K', 'Č', 'Č', 'S', 'Z', 'Ř', 'L', 'P'],\n abbreviated: ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'],\n wide: ['ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince']\n};\nvar dayValues = {\n narrow: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],\n short: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],\n abbreviated: ['ned', 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob'],\n wide: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'večer',\n night: 'noc'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'večer',\n night: 'noc'\n },\n wide: {\n am: 'dopoledne',\n pm: 'odpoledne',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'večer',\n night: 'noc'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'večer',\n night: 'noc'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'večer',\n night: 'noc'\n },\n wide: {\n am: 'dopoledne',\n pm: 'odpoledne',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'večer',\n night: 'noc'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p[řr]ed Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n abbreviated: /^(pe[řr]ed Kr\\.|pe[řr]ed n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n wide: /^(p[řr]ed Kristem|pred na[šs][íi]m letopo[čc]tem|po Kristu|na[šs]eho letopo[čc]tu)/i\n};\nvar parseEraPatterns = {\n any: [/^p[řr]/i, /^(po|n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\. [čc]tvrtlet[íi]/i,\n wide: /^[1234]\\. [čc]tvrtlet[íi]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[lúubdkčcszřrlp]/i,\n abbreviated: /^(led|[úu]no|b[řr]e|dub|kv[ěe]|[čc]vn|[čc]vc|srp|z[áa][řr]|[řr][íi]j|lis|pro)/i,\n wide: /^(leden|ledna|[úu]nora?|b[řr]ezen|b[řr]ezna|duben|dubna|kv[ěe]ten|kv[ěe]tna|[čc]erven(ec|ce)?|[čc]ervna|srpen|srpna|z[áa][řr][íi]|[řr][íi]jen|[řr][íi]jna|listopad(a|u)?|prosinec|prosince)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^l/i, /^[úu]/i, /^b/i, /^d/i, /^k/i, /^[čc]/i, /^[čc]/i, /^s/i, /^z/i, /^[řr]/i, /^l/i, /^p/i],\n any: [/^led/i, /^[úu]n/i, /^b[řr]e/i, /^dub/i, /^kv[ěe]/i, /^[čc]vn|[čc]erven(?!\\w)|[čc]ervna/i, /^[čc]vc|[čc]erven(ec|ce)/i, /^srp/i, /^z[áa][řr]/i, /^[řr][íi]j/i, /^lis/i, /^pro/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npuúsčps]/i,\n short: /^(ne|po|[úu]t|st|[čc]t|p[áa]|so)/i,\n abbreviated: /^(ne|po|[úu]t|st|[čc]t|p[áa]|so)/i,\n wide: /^(ned[ěe]le|pond[ěe]l[íi]|[úu]ter[ýy]|st[řr]eda|[čc]tvrtek|p[áa]tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^[úu]/i, /^s/i, /^[čc]/i, /^p/i, /^s/i],\n any: [/^ne/i, /^po/i, /^ut/i, /^st/i, /^[čc]t/i, /^p/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^dopoledne|dop\\.?|odpoledne|odp\\.?|půlnoc|poledne|r[áa]no|odpoledne|ve[čc]er|(v )?noci/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^dop/i,\n pm: /^odp/i,\n midnight: /^p[ůu]lnoc/i,\n noon: /^poledne/i,\n morning: /r[áa]no/i,\n afternoon: /odpoledne/i,\n evening: /ve[čc]er/i,\n night: /noc/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'llai na eiliad',\n other: 'llai na {{count}} eiliad'\n },\n xSeconds: {\n one: '1 eiliad',\n other: '{{count}} eiliad'\n },\n halfAMinute: 'hanner munud',\n lessThanXMinutes: {\n one: 'llai na munud',\n two: 'llai na 2 funud',\n other: 'llai na {{count}} munud'\n },\n xMinutes: {\n one: '1 funud',\n two: '2 funud',\n other: '{{count}} munud'\n },\n aboutXHours: {\n one: 'tua 1 awr',\n other: 'tua {{count}} awr'\n },\n xHours: {\n one: '1 awr',\n other: '{{count}} awr'\n },\n xDays: {\n one: '1 diwrnod',\n other: '{{count}} diwrnod'\n },\n aboutXWeeks: {\n one: 'tua 1 wythnos',\n two: 'tua pythefnos',\n other: 'tua {{count}} wythnos'\n },\n xWeeks: {\n one: '1 wythnos',\n two: 'pythefnos',\n other: '{{count}} wythnos'\n },\n aboutXMonths: {\n one: 'tua 1 mis',\n two: 'tua 2 fis',\n other: 'tua {{count}} mis'\n },\n xMonths: {\n one: '1 mis',\n two: '2 fis',\n other: '{{count}} mis'\n },\n aboutXYears: {\n one: 'tua 1 flwyddyn',\n two: 'tua 2 flynedd',\n other: 'tua {{count}} mlynedd'\n },\n xYears: {\n one: '1 flwyddyn',\n two: '2 flynedd',\n other: '{{count}} mlynedd'\n },\n overXYears: {\n one: 'dros 1 flwyddyn',\n two: 'dros 2 flynedd',\n other: 'dros {{count}} mlynedd'\n },\n almostXYears: {\n one: 'bron 1 flwyddyn',\n two: 'bron 2 flynedd',\n other: 'bron {{count}} mlynedd'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2 && !!formatDistanceLocale[token].two) {\n result = formatDistanceLocale[token].two;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'mewn ' + result;\n } else {\n return result + ' yn ôl';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'am' {{time}}\",\n long: \"{{date}} 'am' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'diwethaf am' p\",\n yesterday: \"'ddoe am' p\",\n today: \"'heddiw am' p\",\n tomorrow: \"'yfory am' p\",\n nextWeek: \"eeee 'am' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['C', 'O'],\n abbreviated: ['CC', 'OC'],\n wide: ['Cyn Crist', 'Ar ôl Crist']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Ch1', 'Ch2', 'Ch3', 'Ch4'],\n wide: ['Chwarter 1af', '2ail chwarter', '3ydd chwarter', '4ydd chwarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['I', 'Ch', 'Ma', 'E', 'Mi', 'Me', 'G', 'A', 'Md', 'H', 'T', 'Rh'],\n abbreviated: ['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Aws', 'Med', 'Hyd', 'Tach', 'Rhag'],\n wide: ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr']\n};\nvar dayValues = {\n narrow: ['S', 'Ll', 'M', 'M', 'I', 'G', 'S'],\n short: ['Su', 'Ll', 'Ma', 'Me', 'Ia', 'Gw', 'Sa'],\n abbreviated: ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],\n wide: ['dydd Sul', 'dydd Llun', 'dydd Mawrth', 'dydd Mercher', 'dydd Iau', 'dydd Gwener', 'dydd Sadwrn']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'b',\n pm: 'h',\n midnight: 'hn',\n noon: 'hd',\n morning: 'bore',\n afternoon: 'prynhawn',\n evening: \"gyda'r nos\",\n night: 'nos'\n },\n abbreviated: {\n am: 'yb',\n pm: 'yh',\n midnight: 'hanner nos',\n noon: 'hanner dydd',\n morning: 'bore',\n afternoon: 'prynhawn',\n evening: \"gyda'r nos\",\n night: 'nos'\n },\n wide: {\n am: 'y.b.',\n pm: 'y.h.',\n midnight: 'hanner nos',\n noon: 'hanner dydd',\n morning: 'bore',\n afternoon: 'prynhawn',\n evening: \"gyda'r nos\",\n night: 'nos'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'b',\n pm: 'h',\n midnight: 'hn',\n noon: 'hd',\n morning: 'yn y bore',\n afternoon: 'yn y prynhawn',\n evening: \"gyda'r nos\",\n night: 'yn y nos'\n },\n abbreviated: {\n am: 'yb',\n pm: 'yh',\n midnight: 'hanner nos',\n noon: 'hanner dydd',\n morning: 'yn y bore',\n afternoon: 'yn y prynhawn',\n evening: \"gyda'r nos\",\n night: 'yn y nos'\n },\n wide: {\n am: 'y.b.',\n pm: 'y.h.',\n midnight: 'hanner nos',\n noon: 'hanner dydd',\n morning: 'yn y bore',\n afternoon: 'yn y prynhawn',\n evening: \"gyda'r nos\",\n night: 'yn y nos'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n\n if (number < 20) {\n switch (number) {\n case 0:\n return number + 'fed';\n\n case 1:\n return number + 'af';\n\n case 2:\n return number + 'ail';\n\n case 3:\n case 4:\n return number + 'ydd';\n\n case 5:\n case 6:\n return number + 'ed';\n\n case 7:\n case 8:\n case 9:\n case 10:\n case 12:\n case 15:\n case 18:\n return number + 'fed';\n\n case 11:\n case 13:\n case 14:\n case 16:\n case 17:\n case 19:\n return number + 'eg';\n }\n } else if (number >= 50 && number <= 60 || number === 80 || number >= 100) {\n return number + 'fed';\n }\n\n return number + 'ain';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(af|ail|ydd|ed|fed|eg|ain)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(c|o)/i,\n abbreviated: /^(c\\.?\\s?c\\.?|o\\.?\\s?c\\.?)/i,\n wide: /^(cyn christ|ar ôl crist|ar ol crist)/i\n};\nvar parseEraPatterns = {\n wide: [/^c/i, /^(ar ôl crist|ar ol crist)/i],\n any: [/^c/i, /^o/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ch[1234]/i,\n wide: /^(chwarter 1af)|([234](ail|ydd)? chwarter)/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(i|ch|m|e|g|a|h|t|rh)/i,\n abbreviated: /^(ion|chwe|maw|ebr|mai|meh|gor|aws|med|hyd|tach|rhag)/i,\n wide: /^(ionawr|chwefror|mawrth|ebrill|mai|mehefin|gorffennaf|awst|medi|hydref|tachwedd|rhagfyr)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^i/i, /^ch/i, /^m/i, /^e/i, /^m/i, /^m/i, /^g/i, /^a/i, /^m/i, /^h/i, /^t/i, /^rh/i],\n any: [/^io/i, /^ch/i, /^maw/i, /^e/i, /^mai/i, /^meh/i, /^g/i, /^a/i, /^med/i, /^h/i, /^t/i, /^rh/i]\n};\nvar matchDayPatterns = {\n narrow: /^(s|ll|m|i|g)/i,\n short: /^(su|ll|ma|me|ia|gw|sa)/i,\n abbreviated: /^(sul|llun|maw|mer|iau|gwe|sad)/i,\n wide: /^dydd (sul|llun|mawrth|mercher|iau|gwener|sadwrn)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^ll/i, /^m/i, /^m/i, /^i/i, /^g/i, /^s/i],\n wide: [/^dydd su/i, /^dydd ll/i, /^dydd ma/i, /^dydd me/i, /^dydd i/i, /^dydd g/i, /^dydd sa/i],\n any: [/^su/i, /^ll/i, /^ma/i, /^me/i, /^i/i, /^g/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(b|h|hn|hd|(yn y|y|yr|gyda'r) (bore|prynhawn|nos|hwyr))/i,\n any: /^(y\\.?\\s?[bh]\\.?|hanner nos|hanner dydd|(yn y|y|yr|gyda'r) (bore|prynhawn|nos|hwyr))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^b|(y\\.?\\s?b\\.?)/i,\n pm: /^h|(y\\.?\\s?h\\.?)|(yr hwyr)/i,\n midnight: /^hn|hanner nos/i,\n noon: /^hd|hanner dydd/i,\n morning: /bore/i,\n afternoon: /prynhawn/i,\n evening: /^gyda'r nos$/i,\n night: /blah/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'mindre end ét sekund',\n other: 'mindre end {{count}} sekunder'\n },\n xSeconds: {\n one: '1 sekund',\n other: '{{count}} sekunder'\n },\n halfAMinute: 'ét halvt minut',\n lessThanXMinutes: {\n one: 'mindre end ét minut',\n other: 'mindre end {{count}} minutter'\n },\n xMinutes: {\n one: '1 minut',\n other: '{{count}} minutter'\n },\n aboutXHours: {\n one: 'cirka 1 time',\n other: 'cirka {{count}} timer'\n },\n xHours: {\n one: '1 time',\n other: '{{count}} timer'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dage'\n },\n aboutXWeeks: {\n one: 'cirka 1 uge',\n other: 'cirka {{count}} uger'\n },\n xWeeks: {\n one: '1 uge',\n other: '{{count}} uger'\n },\n aboutXMonths: {\n one: 'cirka 1 måned',\n other: 'cirka {{count}} måneder'\n },\n xMonths: {\n one: '1 måned',\n other: '{{count}} måneder'\n },\n aboutXYears: {\n one: 'cirka 1 år',\n other: 'cirka {{count}} år'\n },\n xYears: {\n one: '1 år',\n other: '{{count}} år'\n },\n overXYears: {\n one: 'over 1 år',\n other: 'over {{count}} år'\n },\n almostXYears: {\n one: 'næsten 1 år',\n other: 'næsten {{count}} år'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'om ' + result;\n } else {\n return result + ' siden';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE 'den' d. MMMM y\",\n long: 'd. MMMM y',\n medium: 'd. MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl'. {{time}}\",\n long: \"{{date}} 'kl'. {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'sidste' eeee 'kl.' p\",\n yesterday: \"'i går kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"'på' eeee 'kl.' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['fvt', 'vt'],\n abbreviated: ['f.v.t.', 'v.t.'],\n wide: ['før vesterlandsk tidsregning', 'vesterlandsk tidsregning']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. kvt.', '2. kvt.', '3. kvt.', '4. kvt.'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'] // Note that 'Days - abbreviated - Formatting' has periods at the end.\n // https://www.unicode.org/cldr/charts/32/summary/da.html#1760\n // This makes grammatical sense in danish, as most abbreviations have periods.\n\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],\n short: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],\n abbreviated: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'],\n wide: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'morgen',\n afternoon: 'eftermiddag',\n evening: 'aften',\n night: 'nat'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'morgen',\n afternoon: 'eftermiddag',\n evening: 'aften',\n night: 'nat'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'morgen',\n afternoon: 'eftermiddag',\n evening: 'aften',\n night: 'nat'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'om morgenen',\n afternoon: 'om eftermiddagen',\n evening: 'om aftenen',\n night: 'om natten'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'om morgenen',\n afternoon: 'om eftermiddagen',\n evening: 'om aftenen',\n night: 'om natten'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'om morgenen',\n afternoon: 'om eftermiddagen',\n evening: 'om aftenen',\n night: 'om natten'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(fKr|fvt|eKr|vt)/i,\n abbreviated: /^(f\\.Kr\\.?|f\\.v\\.t\\.?|e\\.Kr\\.?|v\\.t\\.)/i,\n wide: /^(f.Kr.|før vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i\n};\nvar parseEraPatterns = {\n any: [/^f/i, /^(v|e)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]. kvt\\./i,\n wide: /^[1234]\\.? kvartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mar.|apr.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^maj/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(søn.|man.|tir.|ons.|tor.|fre.|lør.)/i,\n abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^o/i, /^t/i, /^f/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /midnat/i,\n noon: /middag/i,\n morning: /morgen/i,\n afternoon: /eftermiddag/i,\n evening: /aften/i,\n night: /nat/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als eine Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als einer Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: 'eine Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: 'einer Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'eine halbe Minute',\n withPreposition: 'einer halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als eine Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als einer Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: 'eine Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: 'einer Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa eine Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa einer Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: 'eine Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: 'einer Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: 'ein Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: 'einem Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa ein Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa einem Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: 'ein Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: 'einem Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa ein Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa einem Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: 'ein Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: 'einem Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa ein Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa einem Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: 'ein Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: 'einem Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als ein Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als einem Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast ein Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast einem Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var usageGroup = options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n var result;\n\n if (typeof usageGroup === 'string') {\n result = usageGroup;\n } else if (count === 1) {\n result = usageGroup.one;\n } else {\n result = usageGroup.other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM. y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'] // Note: in German, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'] // https://www.unicode.org/cldr/charts/32/summary/de.html#1881\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mär|apr|mai|jun|jul|aug|sep|okt|nov|dez)/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'λιγότερο από ένα δευτερόλεπτο',\n other: 'λιγότερο από {{count}} δευτερόλεπτα'\n },\n xSeconds: {\n one: '1 δευτερόλεπτο',\n other: '{{count}} δευτερόλεπτα'\n },\n halfAMinute: 'μισό λεπτό',\n lessThanXMinutes: {\n one: 'λιγότερο από ένα λεπτό',\n other: 'λιγότερο από {{count}} λεπτά'\n },\n xMinutes: {\n one: '1 λεπτό',\n other: '{{count}} λεπτά'\n },\n aboutXHours: {\n one: 'περίπου 1 ώρα',\n other: 'περίπου {{count}} ώρες'\n },\n xHours: {\n one: '1 ώρα',\n other: '{{count}} ώρες'\n },\n xDays: {\n one: '1 ημέρα',\n other: '{{count}} ημέρες'\n },\n aboutXWeeks: {\n one: 'περίπου 1 εβδομάδα',\n other: 'περίπου {{count}} εβδομάδες'\n },\n xWeeks: {\n one: '1 εβδομάδα',\n other: '{{count}} εβδομάδες'\n },\n aboutXMonths: {\n one: 'περίπου 1 μήνας',\n other: 'περίπου {{count}} μήνες'\n },\n xMonths: {\n one: '1 μήνας',\n other: '{{count}} μήνες'\n },\n aboutXYears: {\n one: 'περίπου 1 χρόνο',\n other: 'περίπου {{count}} χρόνια'\n },\n xYears: {\n one: '1 χρόνο',\n other: '{{count}} χρόνια'\n },\n overXYears: {\n one: 'πάνω από 1 χρόνο',\n other: 'πάνω από {{count}} χρόνια'\n },\n almostXYears: {\n one: 'περίπου 1 χρόνο',\n other: 'περίπου {{count}} χρόνια'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'σε ' + result;\n } else {\n return result + ' πριν';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'd/M/yy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: '{{date}} - {{time}}',\n long: '{{date}} - {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'την προηγούμενη' eeee 'στις' p\",\n yesterday: \"'χθες στις' p\",\n today: \"'σήμερα στις' p\",\n tomorrow: \"'αύριο στις' p\",\n nextWeek: \"eeee 'στις' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['πΧ', 'μΧ'],\n abbreviated: ['π.Χ.', 'μ.Χ.'],\n wide: ['προ Χριστού', 'μετά Χριστόν']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Τ1', 'Τ2', 'Τ3', 'Τ4'],\n wide: ['1ο τρίμηνο', '2ο τρίμηνο', '3ο τρίμηνο', '4ο τρίμηνο']\n};\nvar monthValues = {\n narrow: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', 'Ο', 'Ν', 'Δ'],\n abbreviated: ['Ιαν', 'Φεβ', 'Μάρ', 'Απρ', 'Μάι', 'Ιούν', 'Ιούλ', 'Αύγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'],\n wide: ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος']\n};\nvar formattingMonthValues = {\n narrow: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', 'Ο', 'Ν', 'Δ'],\n abbreviated: ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαΐ', 'Ιουν', 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'],\n wide: ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', 'Νοεμβρίου', 'Δεκεμβρίου']\n};\nvar dayValues = {\n narrow: ['Κ', 'Δ', 'T', 'Τ', 'Π', 'Π', 'Σ'],\n short: ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πέ', 'Πα', 'Σά'],\n abbreviated: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', 'Σάβ'],\n wide: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'πμ',\n pm: 'μμ',\n midnight: 'μεσάνυχτα',\n noon: 'μεσημέρι',\n morning: 'πρωί',\n afternoon: 'απόγευμα',\n evening: 'βράδυ',\n night: 'νύχτα'\n },\n abbreviated: {\n am: 'π.μ.',\n pm: 'μ.μ.',\n midnight: 'μεσάνυχτα',\n noon: 'μεσημέρι',\n morning: 'πρωί',\n afternoon: 'απόγευμα',\n evening: 'βράδυ',\n night: 'νύχτα'\n },\n wide: {\n am: 'π.μ.',\n pm: 'μ.μ.',\n midnight: 'μεσάνυχτα',\n noon: 'μεσημέρι',\n morning: 'πρωί',\n afternoon: 'απόγευμα',\n evening: 'βράδυ',\n night: 'νύχτα'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (unit === 'year' || unit === 'month') {\n suffix = 'ος';\n } else if (unit === 'week' || unit === 'dayOfYear' || unit === 'day' || unit === 'hour' || unit === 'date') {\n suffix = 'η';\n } else {\n suffix = 'ο';\n }\n\n return dirtyNumber + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(ος|η|ο)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(πΧ|μΧ)/i,\n abbreviated: /^(π\\.?\\s?χ\\.?|π\\.?\\s?κ\\.?\\s?χ\\.?|μ\\.?\\s?χ\\.?|κ\\.?\\s?χ\\.?)/i,\n wide: /^(προ Χριστο(ύ|υ)|πριν απ(ό|ο) την Κοιν(ή|η) Χρονολογ(ί|ι)α|μετ(ά|α) Χριστ(ό|ο)ν|Κοιν(ή|η) Χρονολογ(ί|ι)α)/i\n};\nvar parseEraPatterns = {\n any: [/^π/i, /^(μ|κ)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^τ[1234]/i,\n wide: /^[1234]ο? τρ(ί|ι)μηνο/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[ιφμαμιιασονδ]/i,\n abbreviated: /^(ιαν|φεβ|μ[άα]ρ|απρ|μ[άα][ιΐ]|ιο[ύυ]ν|ιο[ύυ]λ|α[ύυ]γ|σεπ|οκτ|νο[έε]|δεκ)/i,\n wide: /^(μ[άα][ιΐ]|α[ύυ]γο[υύ]στ)(ος|ου)|(ιανου[άα]ρ|φεβρου[άα]ρ|μ[άα]ρτ|απρ[ίι]λ|ιο[ύυ]ν|ιο[ύυ]λ|σεπτ[έε]μβρ|οκτ[ώω]βρ|νο[έε]μβρ|δεκ[έε]μβρ)(ιος|ίου)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ι/i, /^φ/i, /^μ/i, /^α/i, /^μ/i, /^ι/i, /^ι/i, /^α/i, /^σ/i, /^ο/i, /^ν/i, /^δ/i],\n any: [/^ια/i, /^φ/i, /^μ[άα]ρ/i, /^απ/i, /^μ[άα][ιΐ]/i, /^ιο[ύυ]ν/i, /^ιο[ύυ]λ/i, /^α[ύυ]/i, /^σ/i, /^ο/i, /^ν/i, /^δ/i]\n};\nvar matchDayPatterns = {\n narrow: /^[κδτπσ]/i,\n short: /^(κυ|δε|τρ|τε|π[εέ]|π[αά]|σ[αά])/i,\n abbreviated: /^(κυρ|δευ|τρι|τετ|πεμ|παρ|σαβ)/i,\n wide: /^(κυριακ(ή|η)|δευτ(έ|ε)ρα|τρ(ί|ι)τη|τετ(ά|α)ρτη|π(έ|ε)μπτη|παρασκευ(ή|η)|σ(ά|α)ββατο)/i\n};\nvar parseDayPatterns = {\n narrow: [/^κ/i, /^δ/i, /^τ/i, /^τ/i, /^π/i, /^π/i, /^σ/i],\n any: [/^κ/i, /^δ/i, /^τρ/i, /^τε/i, /^π[εέ]/i, /^π[αά]/i, /^σ/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(πμ|μμ|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i,\n any: /^([πμ]\\.?\\s?μ\\.?|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^πμ|π\\.\\s?μ\\./i,\n pm: /^μμ|μ\\.\\s?μ\\./i,\n midnight: /^μεσάν/i,\n noon: /^μεσημ(έ|ε)/i,\n morning: /πρω(ί|ι)/i,\n afternoon: /απ(ό|ο)γευμα/i,\n evening: /βρ(ά|α)δυ/i,\n night: /ν(ύ|υ)χτα/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: 'a second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: 'a minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about an hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: 'an hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: 'a day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about a week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: 'a week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about a month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: 'a month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about a year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: 'a year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over a year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost a year',\n other: 'almost {{count}} years'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, yyyy',\n long: 'MMMM do, yyyy',\n medium: 'MMM d, yyyy',\n short: 'yyyy-MM-dd'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM, yyyy',\n medium: 'd MMM, yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'malpli ol sekundo',\n other: 'malpli ol {{count}} sekundoj'\n },\n xSeconds: {\n one: '1 sekundo',\n other: '{{count}} sekundoj'\n },\n halfAMinute: 'duonminuto',\n lessThanXMinutes: {\n one: 'malpli ol minuto',\n other: 'malpli ol {{count}} minutoj'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutoj'\n },\n aboutXHours: {\n one: 'proksimume 1 horo',\n other: 'proksimume {{count}} horoj'\n },\n xHours: {\n one: '1 horo',\n other: '{{count}} horoj'\n },\n xDays: {\n one: '1 tago',\n other: '{{count}} tagoj'\n },\n aboutXMonths: {\n one: 'proksimume 1 monato',\n other: 'proksimume {{count}} monatoj'\n },\n xWeeks: {\n one: '1 semajno',\n other: '{{count}} semajnoj'\n },\n aboutXWeeks: {\n one: 'proksimume 1 semajno',\n other: 'proksimume {{count}} semajnoj'\n },\n xMonths: {\n one: '1 monato',\n other: '{{count}} monatoj'\n },\n aboutXYears: {\n one: 'proksimume 1 jaro',\n other: 'proksimume {{count}} jaroj'\n },\n xYears: {\n one: '1 jaro',\n other: '{{count}} jaroj'\n },\n overXYears: {\n one: 'pli ol 1 jaro',\n other: 'pli ol {{count}} jaroj'\n },\n almostXYears: {\n one: 'preskaŭ 1 jaro',\n other: 'preskaŭ {{count}} jaroj'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'post ' + result;\n } else {\n return 'antaŭ ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, do 'de' MMMM y\",\n long: 'y-MMMM-dd',\n medium: 'y-MMM-dd',\n short: 'yyyy-MM-dd'\n};\nvar timeFormats = {\n full: \"Ho 'horo kaj' m:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'pasinta' eeee 'je' p\",\n yesterday: \"'hieraŭ je' p\",\n today: \"'hodiaŭ je' p\",\n tomorrow: \"'morgaŭ je' p\",\n nextWeek: \"eeee 'je' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['aK', 'pK'],\n abbreviated: ['a.K.E.', 'p.K.E.'],\n wide: ['antaŭ Komuna Erao', 'Komuna Erao']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1-a kvaronjaro', '2-a kvaronjaro', '3-a kvaronjaro', '4-a kvaronjaro']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aŭg', 'sep', 'okt', 'nov', 'dec'],\n wide: ['januaro', 'februaro', 'marto', 'aprilo', 'majo', 'junio', 'julio', 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'Ĵ', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'ĵa', 've', 'sa'],\n abbreviated: ['dim', 'lun', 'mar', 'mer', 'ĵaŭ', 'ven', 'sab'],\n wide: ['dimanĉo', 'lundo', 'mardo', 'merkredo', 'ĵaŭdo', 'vendredo', 'sabato']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'noktomezo',\n noon: 'tagmezo',\n morning: 'matene',\n afternoon: 'posttagmeze',\n evening: 'vespere',\n night: 'nokte'\n },\n abbreviated: {\n am: 'a.t.m.',\n pm: 'p.t.m.',\n midnight: 'noktomezo',\n noon: 'tagmezo',\n morning: 'matene',\n afternoon: 'posttagmeze',\n evening: 'vespere',\n night: 'nokte'\n },\n wide: {\n am: 'antaŭtagmeze',\n pm: 'posttagmeze',\n midnight: 'noktomezo',\n noon: 'tagmezo',\n morning: 'matene',\n afternoon: 'posttagmeze',\n evening: 'vespere',\n night: 'nokte'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '-a';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?a)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([ap]k)/i,\n abbreviated: /^([ap]\\.?\\s?k\\.?\\s?e\\.?)/i,\n wide: /^((antaǔ |post )?komuna erao)/i\n};\nvar parseEraPatterns = {\n any: [/^a/i, /^[kp]/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^k[1234]/i,\n wide: /^[1234](-?a)? kvaronjaro/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|maj|jun|jul|a(ŭ|ux|uh|u)g|sep|okt|nov|dec)/i,\n wide: /^(januaro|februaro|marto|aprilo|majo|junio|julio|a(ŭ|ux|uh|u)gusto|septembro|oktobro|novembro|decembro)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^maj/i, /^jun/i, /^jul/i, /^a(u|ŭ)/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmĵjvs]/i,\n short: /^(di|lu|ma|me|(ĵ|jx|jh|j)a|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|(ĵ|jx|jh|j)a(ŭ|ux|uh|u)|ven|sab)/i,\n wide: /^(diman(ĉ|cx|ch|c)o|lundo|mardo|merkredo|(ĵ|jx|jh|j)a(ŭ|ux|uh|u)do|vendredo|sabato)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^(j|ĵ)/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^(j|ĵ)/i, /^v/i, /^s/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^([ap]|(posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo])/i,\n abbreviated: /^([ap][.\\s]?t[.\\s]?m[.\\s]?|(posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo])/i,\n wide: /^(anta(ŭ|ux)tagmez|posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo]/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^noktom/i,\n noon: /^t/i,\n morning: /^m/i,\n afternoon: /^posttagmeze/i,\n evening: /^v/i,\n night: /^n/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de un segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'medio minuto',\n lessThanXMinutes: {\n one: 'menos de un minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'alrededor de 1 hora',\n other: 'alrededor de {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 día',\n other: '{{count}} días'\n },\n aboutXWeeks: {\n one: 'alrededor de 1 semana',\n other: 'alrededor de {{count}} semanas'\n },\n xWeeks: {\n one: '1 semana',\n other: '{{count}} semanas'\n },\n aboutXMonths: {\n one: 'alrededor de 1 mes',\n other: 'alrededor de {{count}} meses'\n },\n xMonths: {\n one: '1 mes',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'alrededor de 1 año',\n other: 'alrededor de {{count}} años'\n },\n xYears: {\n one: '1 año',\n other: '{{count}} años'\n },\n overXYears: {\n one: 'más de 1 año',\n other: 'más de {{count}} años'\n },\n almostXYears: {\n one: 'casi 1 año',\n other: 'casi {{count}} años'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'en ' + result;\n } else {\n return 'hace ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'a las' {{time}}\",\n long: \"{{date}} 'a las' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'el' eeee 'pasado a la' LT\",\n yesterday: \"'ayer a la' p\",\n today: \"'hoy a la' p\",\n tomorrow: \"'mañana a la' p\",\n nextWeek: \"eeee 'a la' p\",\n other: 'P'\n};\nvar formatRelativeLocalePlural = {\n lastWeek: \"'el' eeee 'pasado a las' p\",\n yesterday: \"'ayer a las' p\",\n today: \"'hoy a las' p\",\n tomorrow: \"'mañana a las' p\",\n nextWeek: \"eeee 'a las' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n if (date.getUTCHours() !== 1) {\n return formatRelativeLocalePlural[token];\n }\n\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['AC', 'DC'],\n abbreviated: ['AC', 'DC'],\n wide: ['antes de cristo', 'después de cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['e', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n wide: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre']\n};\nvar dayValues = {\n narrow: ['d', 'l', 'm', 'm', 'j', 'v', 's'],\n short: ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sa'],\n abbreviated: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],\n wide: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes de la era com[uú]n)/i, /^(despu[eé]s de cristo|era com[uú]n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[efmajsond]/i,\n abbreviated: /^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,\n wide: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^e/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^en/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmjvs]/i,\n short: /^(do|lu|ma|mi|ju|vi|sa)/i,\n abbreviated: /^(dom|lun|mar|mie|jue|vie|sab)/i,\n wide: /^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^do/i, /^lu/i, /^ma/i, /^mi/i, /^ju/i, /^vi/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,\n any: /^([ap]\\.?\\s?m\\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn/i,\n noon: /^md/i,\n morning: /mañana/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noche/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'vähem kui üks sekund',\n other: 'vähem kui {{count}} sekundit'\n },\n withPreposition: {\n one: 'vähem kui ühe sekundi',\n other: 'vähem kui {{count}} sekundi'\n }\n },\n xSeconds: {\n standalone: {\n one: 'üks sekund',\n other: '{{count}} sekundit'\n },\n withPreposition: {\n one: 'ühe sekundi',\n other: '{{count}} sekundi'\n }\n },\n halfAMinute: {\n standalone: 'pool minutit',\n withPreposition: 'poole minuti'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'vähem kui üks minut',\n other: 'vähem kui {{count}} minutit'\n },\n withPreposition: {\n one: 'vähem kui ühe minuti',\n other: 'vähem kui {{count}} minuti'\n }\n },\n xMinutes: {\n standalone: {\n one: 'üks minut',\n other: '{{count}} minutit'\n },\n withPreposition: {\n one: 'ühe minuti',\n other: '{{count}} minuti'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'umbes üks tund',\n other: 'umbes {{count}} tundi'\n },\n withPreposition: {\n one: 'umbes ühe tunni',\n other: 'umbes {{count}} tunni'\n }\n },\n xHours: {\n standalone: {\n one: 'üks tund',\n other: '{{count}} tundi'\n },\n withPreposition: {\n one: 'ühe tunni',\n other: '{{count}} tunni'\n }\n },\n xDays: {\n standalone: {\n one: 'üks päev',\n other: '{{count}} päeva'\n },\n withPreposition: {\n one: 'ühe päeva',\n other: '{{count}} päeva'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'umbes üks nädal',\n other: 'umbes {{count}} nädalat'\n },\n withPreposition: {\n one: 'umbes ühe nädala',\n other: 'umbes {{count}} nädala'\n }\n },\n xWeeks: {\n standalone: {\n one: 'üks nädal',\n other: '{{count}} nädalat'\n },\n withPreposition: {\n one: 'ühe nädala',\n other: '{{count}} nädala'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'umbes üks kuu',\n other: 'umbes {{count}} kuud'\n },\n withPreposition: {\n one: 'umbes ühe kuu',\n other: 'umbes {{count}} kuu'\n }\n },\n xMonths: {\n standalone: {\n one: 'üks kuu',\n other: '{{count}} kuud'\n },\n withPreposition: {\n one: 'ühe kuu',\n other: '{{count}} kuu'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'umbes üks aasta',\n other: 'umbes {{count}} aastat'\n },\n withPreposition: {\n one: 'umbes ühe aasta',\n other: 'umbes {{count}} aasta'\n }\n },\n xYears: {\n standalone: {\n one: 'üks aasta',\n other: '{{count}} aastat'\n },\n withPreposition: {\n one: 'ühe aasta',\n other: '{{count}} aasta'\n }\n },\n overXYears: {\n standalone: {\n one: 'rohkem kui üks aasta',\n other: 'rohkem kui {{count}} aastat'\n },\n withPreposition: {\n one: 'rohkem kui ühe aasta',\n other: 'rohkem kui {{count}} aasta'\n }\n },\n almostXYears: {\n standalone: {\n one: 'peaaegu üks aasta',\n other: 'peaaegu {{count}} aastat'\n },\n withPreposition: {\n one: 'peaaegu ühe aasta',\n other: 'peaaegu {{count}} aasta'\n }\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var usageGroup = options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n var result;\n\n if (typeof usageGroup === 'string') {\n result = usageGroup;\n } else if (count === 1) {\n result = usageGroup.one;\n } else {\n result = usageGroup.other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' pärast';\n } else {\n return result + ' eest';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'eeee, d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kell' {{time}}\",\n long: \"{{date}} 'kell' {{time}}\",\n medium: '{{date}}. {{time}}',\n short: '{{date}}. {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'eelmine' eeee 'kell' p\",\n yesterday: \"'eile kell' p\",\n today: \"'täna kell' p\",\n tomorrow: \"'homme kell' p\",\n nextWeek: \"'järgmine' eeee 'kell' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['e.m.a', 'm.a.j'],\n abbreviated: ['e.m.a', 'm.a.j'],\n wide: ['enne meie ajaarvamist', 'meie ajaarvamise järgi']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar monthValues = {\n narrow: ['J', 'V', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'],\n wide: ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember']\n};\nvar dayValues = {\n narrow: ['P', 'E', 'T', 'K', 'N', 'R', 'L'],\n short: ['P', 'E', 'T', 'K', 'N', 'R', 'L'],\n abbreviated: ['pühap.', 'esmasp.', 'teisip.', 'kolmap.', 'neljap.', 'reede.', 'laup.'],\n wide: ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', 'neljapäev', 'reede', 'laupäev']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'kesköö',\n noon: 'keskpäev',\n morning: 'hommik',\n afternoon: 'pärastlõuna',\n evening: 'õhtu',\n night: 'öö'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'kesköö',\n noon: 'keskpäev',\n morning: 'hommik',\n afternoon: 'pärastlõuna',\n evening: 'õhtu',\n night: 'öö'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'kesköö',\n noon: 'keskpäev',\n morning: 'hommik',\n afternoon: 'pärastlõuna',\n evening: 'õhtu',\n night: 'öö'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'keskööl',\n noon: 'keskpäeval',\n morning: 'hommikul',\n afternoon: 'pärastlõunal',\n evening: 'õhtul',\n night: 'öösel'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'keskööl',\n noon: 'keskpäeval',\n morning: 'hommikul',\n afternoon: 'pärastlõunal',\n evening: 'õhtul',\n night: 'öösel'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'keskööl',\n noon: 'keskpäeval',\n morning: 'hommikul',\n afternoon: 'pärastlõunal',\n evening: 'õhtul',\n night: 'öösel'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n formattingValues: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n formattingValues: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n formattingValues: formattingDayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^\\d+\\./i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(e\\.m\\.a|m\\.a\\.j|eKr|pKr)/i,\n abbreviated: /^(e\\.m\\.a|m\\.a\\.j|eKr|pKr)/i,\n wide: /^(enne meie ajaarvamist|meie ajaarvamise järgi|enne Kristust|pärast Kristust)/i\n};\nvar parseEraPatterns = {\n any: [/^e/i, /^(m|p)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234](\\.)? kvartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jvmasond]/i,\n abbreviated: /^('jaan|veebr|märts|apr|mai|juuni|juuli|aug|sept|okt|nov|dets')/i,\n wide: /^('jaanuar|veebruar|märts|aprill|mai|juuni|juuli|august|september|oktoober|november|detsember')/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^v/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^v/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[petknrl]/i,\n short: /^[petknrl]/i,\n abbreviated: /^(püh?|esm?|tei?|kolm?|nel?|ree?|laup?)\\.?/i,\n wide: /^('pühapäev|esmaspäev|teisipäev|kolmapäev|neljapäev|reede|laupäev')/i\n};\nvar parseDayPatterns = {\n any: [/^p/i, /^e/i, /^t/i, /^k/i, /^n/i, /^r/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|kesköö|keskpäev|hommik|pärastlõuna|õhtu|öö)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^keskö/i,\n noon: /^keskp/i,\n morning: /hommik/i,\n afternoon: /pärastlõuna/i,\n evening: /õhtu/i,\n night: /öö/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'segundo bat baino gutxiago',\n other: '{{count}} segundo baino gutxiago'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundo'\n },\n halfAMinute: 'minutu erdi',\n lessThanXMinutes: {\n one: 'minutu bat baino gutxiago',\n other: '{{count}} minutu baino gutxiago'\n },\n xMinutes: {\n one: '1 minutu',\n other: '{{count}} minutu'\n },\n aboutXHours: {\n one: '1 ordu gutxi gorabehera',\n other: '{{count}} ordu gutxi gorabehera'\n },\n xHours: {\n one: '1 ordu',\n other: '{{count}} ordu'\n },\n xDays: {\n one: '1 egun',\n other: '{{count}} egun'\n },\n aboutXWeeks: {\n one: 'aste 1 inguru',\n other: '{{count}} aste inguru'\n },\n xWeeks: {\n one: '1 aste',\n other: '{{count}} astean'\n },\n aboutXMonths: {\n one: '1 hilabete gutxi gorabehera',\n other: '{{count}} hilabete gutxi gorabehera'\n },\n xMonths: {\n one: '1 hilabete',\n other: '{{count}} hilabete'\n },\n aboutXYears: {\n one: '1 urte gutxi gorabehera',\n other: '{{count}} urte gutxi gorabehera'\n },\n xYears: {\n one: '1 urte',\n other: '{{count}} urte'\n },\n overXYears: {\n one: '1 urte baino gehiago',\n other: '{{count}} urte baino gehiago'\n },\n almostXYears: {\n one: 'ia 1 urte',\n other: 'ia {{count}} urte'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'en ' + result;\n } else {\n return 'duela ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM y\",\n long: \"d 'de' MMMM y\",\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'tan' {{time}}\",\n long: \"{{date}} 'tan' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'joan den' eeee, LT\",\n yesterday: \"'atzo,' p\",\n today: \"'gaur,' p\",\n tomorrow: \"'bihar,' p\",\n nextWeek: 'eeee, p',\n other: 'P'\n};\nvar formatRelativeLocalePlural = {\n lastWeek: \"'joan den' eeee, p\",\n yesterday: \"'atzo,' p\",\n today: \"'gaur,' p\",\n tomorrow: \"'bihar,' p\",\n nextWeek: 'eeee, p',\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n if (date.getUTCHours() !== 1) {\n return formatRelativeLocalePlural[token];\n }\n\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['k.a.', 'k.o.'],\n abbreviated: ['k.a.', 'k.o.'],\n wide: ['kristo aurretik', 'kristo ondoren']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1H', '2H', '3H', '4H'],\n wide: ['1. hiruhilekoa', '2. hiruhilekoa', '3. hiruhilekoa', '4. hiruhilekoa']\n};\nvar monthValues = {\n narrow: ['u', 'o', 'm', 'a', 'm', 'e', 'u', 'a', 'i', 'u', 'a', 'a'],\n abbreviated: ['urt', 'ots', 'mar', 'api', 'mai', 'eka', 'uzt', 'abu', 'ira', 'urr', 'aza', 'abe'],\n wide: ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua']\n};\nvar dayValues = {\n narrow: ['i', 'a', 'a', 'a', 'o', 'o', 'l'],\n short: ['ig', 'al', 'as', 'az', 'og', 'or', 'lr'],\n abbreviated: ['iga', 'ast', 'ast', 'ast', 'ost', 'ost', 'lar'],\n wide: ['igandea', 'astelehena', 'asteartea', 'asteazkena', 'osteguna', 'ostirala', 'larunbata']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'ge',\n noon: 'eg',\n morning: 'goiza',\n afternoon: 'arratsaldea',\n evening: 'arratsaldea',\n night: 'gaua'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'gauerdia',\n noon: 'eguerdia',\n morning: 'goiza',\n afternoon: 'arratsaldea',\n evening: 'arratsaldea',\n night: 'gaua'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'gauerdia',\n noon: 'eguerdia',\n morning: 'goiza',\n afternoon: 'arratsaldea',\n evening: 'arratsaldea',\n night: 'gaua'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'ge',\n noon: 'eg',\n morning: 'goizean',\n afternoon: 'arratsaldean',\n evening: 'arratsaldean',\n night: 'gauean'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'gauerdia',\n noon: 'eguerdia',\n morning: 'goizean',\n afternoon: 'arratsaldean',\n evening: 'arratsaldean',\n night: 'gauean'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'gauerdia',\n noon: 'eguerdia',\n morning: 'goizean',\n afternoon: 'arratsaldean',\n evening: 'arratsaldean',\n night: 'gauean'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(k.a.|k.o.)/i,\n abbreviated: /^(k.a.|k.o.)/i,\n wide: /^(kristo aurretik|kristo ondoren)/i\n};\nvar parseEraPatterns = {\n narrow: [/^k.a./i, /^k.o./i],\n abbreviated: [/^(k.a.)/i, /^(k.o.)/i],\n wide: [/^(kristo aurretik)/i, /^(kristo ondoren)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]H/i,\n wide: /^[1234](.)? hiruhilekoa/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[uomaei]/i,\n abbreviated: /^(urt|ots|mar|api|mai|eka|uzt|abu|ira|urr|aza|abe)/i,\n wide: /^(urtarrila|otsaila|martxoa|apirila|maiatza|ekaina|uztaila|abuztua|iraila|urria|azaroa|abendua)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^u/i, /^o/i, /^m/i, /^a/i, /^m/i, /^e/i, /^u/i, /^a/i, /^i/i, /^u/i, /^a/i, /^a/i],\n any: [/^urt/i, /^ots/i, /^mar/i, /^api/i, /^mai/i, /^eka/i, /^uzt/i, /^abu/i, /^ira/i, /^urr/i, /^aza/i, /^abe/i]\n};\nvar matchDayPatterns = {\n narrow: /^[iaol]/i,\n short: /^(ig|al|as|az|og|or|lr)/i,\n abbreviated: /^(iga|ast|ast|ast|ost|ost|lar)/i,\n wide: /^(igandea|astelehena|asteartea|asteazkena|osteguna|ostirala|larunbata)/i\n};\nvar parseDayPatterns = {\n narrow: [/^i/i, /^a/i, /^a/i, /^a/i, /^o/i, /^o/i, /^l/i],\n short: [/^ig/i, /^al/i, /^as/i, /^az/i, /^og/i, /^or/i, /^lr/i],\n abbreviated: [/^iga/i, /^ast/i, /^ast/i, /^ast/i, /^ost/i, /^ost/i, /^lar/i],\n wide: [/^igandea/i, /^astelehena/i, /^asteartea/i, /^asteazkena/i, /^osteguna/i, /^ostirala/i, /^larunbata/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|ge|eg|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i,\n any: /^([ap]\\.?\\s?m\\.?|gauerdia|eguerdia|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^ge/i,\n noon: /^eg/i,\n morning: /goiz/i,\n afternoon: /arratsaldea/i,\n evening: /arratsaldea/i,\n night: /gau/i\n },\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^gauerdia/i,\n noon: /^eguerdia/i,\n morning: /goiz/i,\n afternoon: /arratsaldea/i,\n evening: /arratsaldea/i,\n night: /gau/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'کمتر از یک ثانیه',\n other: 'کمتر از {{count}} ثانیه'\n },\n xSeconds: {\n one: '1 ثانیه',\n other: '{{count}} ثانیه'\n },\n halfAMinute: 'نیم دقیقه',\n lessThanXMinutes: {\n one: 'کمتر از یک دقیقه',\n other: 'کمتر از {{count}} دقیقه'\n },\n xMinutes: {\n one: '1 دقیقه',\n other: '{{count}} دقیقه'\n },\n aboutXHours: {\n one: 'حدود 1 ساعت',\n other: 'حدود {{count}} ساعت'\n },\n xHours: {\n one: '1 ساعت',\n other: '{{count}} ساعت'\n },\n xDays: {\n one: '1 روز',\n other: '{{count}} روز'\n },\n aboutXWeeks: {\n one: 'حدود 1 هفته',\n other: 'حدود {{count}} هفته'\n },\n xWeeks: {\n one: '1 هفته',\n other: '{{count}} هفته'\n },\n aboutXMonths: {\n one: 'حدود 1 ماه',\n other: 'حدود {{count}} ماه'\n },\n xMonths: {\n one: '1 ماه',\n other: '{{count}} ماه'\n },\n aboutXYears: {\n one: 'حدود 1 سال',\n other: 'حدود {{count}} سال'\n },\n xYears: {\n one: '1 سال',\n other: '{{count}} سال'\n },\n overXYears: {\n one: 'بیشتر از 1 سال',\n other: 'بیشتر از {{count}} سال'\n },\n almostXYears: {\n one: 'نزدیک 1 سال',\n other: 'نزدیک {{count}} سال'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'در ' + result;\n } else {\n return result + ' قبل';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE do MMMM y',\n long: 'do MMMM y',\n medium: 'd MMM y',\n short: 'yyyy/MM/dd'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'در' {{time}}\",\n long: \"{{date}} 'در' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'گذشته در' p\",\n yesterday: \"'دیروز در' p\",\n today: \"'امروز در' p\",\n tomorrow: \"'فردا در' p\",\n nextWeek: \"eeee 'در' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ق', 'ب'],\n abbreviated: ['ق.م.', 'ب.م.'],\n wide: ['قبل از میلاد', 'بعد از میلاد']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['س‌م1', 'س‌م2', 'س‌م3', 'س‌م4'],\n wide: ['سه‌ماهه 1', 'سه‌ماهه 2', 'سه‌ماهه 3', 'سه‌ماهه 4'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['ژ', 'ف', 'م', 'آ', 'م', 'ج', 'ج', 'آ', 'س', 'ا', 'ن', 'د'],\n abbreviated: ['ژانـ', 'فور', 'مارس', 'آپر', 'می', 'جون', 'جولـ', 'آگو', 'سپتـ', 'اکتـ', 'نوامـ', 'دسامـ'],\n wide: ['ژانویه', 'فوریه', 'مارس', 'آپریل', 'می', 'جون', 'جولای', 'آگوست', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر']\n};\nvar dayValues = {\n narrow: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n short: ['1ش', '2ش', '3ش', '4ش', '5ش', 'ج', 'ش'],\n abbreviated: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],\n wide: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ق',\n pm: 'ب',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'ص',\n afternoon: 'ب.ظ.',\n evening: 'ع',\n night: 'ش'\n },\n abbreviated: {\n am: 'ق.ظ.',\n pm: 'ب.ظ.',\n midnight: 'نیمه‌شب',\n noon: 'ظهر',\n morning: 'صبح',\n afternoon: 'بعدازظهر',\n evening: 'عصر',\n night: 'شب'\n },\n wide: {\n am: 'قبل‌ازظهر',\n pm: 'بعدازظهر',\n midnight: 'نیمه‌شب',\n noon: 'ظهر',\n morning: 'صبح',\n afternoon: 'بعدازظهر',\n evening: 'عصر',\n night: 'شب'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ق',\n pm: 'ب',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'ص',\n afternoon: 'ب.ظ.',\n evening: 'ع',\n night: 'ش'\n },\n abbreviated: {\n am: 'ق.ظ.',\n pm: 'ب.ظ.',\n midnight: 'نیمه‌شب',\n noon: 'ظهر',\n morning: 'صبح',\n afternoon: 'بعدازظهر',\n evening: 'عصر',\n night: 'شب'\n },\n wide: {\n am: 'قبل‌ازظهر',\n pm: 'بعدازظهر',\n midnight: 'نیمه‌شب',\n noon: 'ظهر',\n morning: 'صبح',\n afternoon: 'بعدازظهر',\n evening: 'عصر',\n night: 'شب'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n return String(dirtyNumber);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ق|ب)/i,\n abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?د\\.?\\s?م\\.?|م\\.?\\s?|د\\.?\\s?م\\.?)/i,\n wide: /^(قبل از میلاد|قبل از دوران مشترک|میلادی|دوران مشترک|بعد از میلاد)/i\n};\nvar parseEraPatterns = {\n any: [/^قبل/i, /^بعد/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^س‌م[1234]/i,\n wide: /^سه‌ماهه [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[جژفمآاماسند]/i,\n abbreviated: /^(جنو|ژانـ|ژانویه|فوریه|فور|مارس|آوریل|آپر|مه|می|ژوئن|جون|جول|جولـ|ژوئیه|اوت|آگو|سپتمبر|سپتامبر|اکتبر|اکتوبر|نوامبر|نوامـ|دسامبر|دسامـ|دسم)/i,\n wide: /^(ژانویه|جنوری|فبروری|فوریه|مارچ|مارس|آپریل|اپریل|ایپریل|آوریل|مه|می|ژوئن|جون|جولای|ژوئیه|آگست|اگست|آگوست|اوت|سپتمبر|سپتامبر|اکتبر|اکتوبر|نوامبر|نومبر|دسامبر|دسمبر)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^(ژ|ج)/i, /^ف/i, /^م/i, /^(آ|ا)/i, /^م/i, /^(ژ|ج)/i, /^(ج|ژ)/i, /^(آ|ا)/i, /^س/i, /^ا/i, /^ن/i, /^د/i],\n any: [/^ژا/i, /^ف/i, /^ما/i, /^آپ/i, /^(می|مه)/i, /^(ژوئن|جون)/i, /^(ژوئی|جول)/i, /^(اوت|آگ)/i, /^س/i, /^(اوک|اک)/i, /^ن/i, /^د/i]\n};\nvar matchDayPatterns = {\n narrow: /^[شیدسچپج]/i,\n short: /^(ش|ج|1ش|2ش|3ش|4ش|5ش)/i,\n abbreviated: /^(یکشنبه|دوشنبه|سه‌شنبه|چهارشنبه|پنج‌شنبه|جمعه|شنبه)/i,\n wide: /^(یکشنبه|دوشنبه|سه‌شنبه|چهارشنبه|پنج‌شنبه|جمعه|شنبه)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ی/i, /^دو/i, /^س/i, /^چ/i, /^پ/i, /^ج/i, /^ش/i],\n any: [/^(ی|1ش|یکشنبه)/i, /^(د|2ش|دوشنبه)/i, /^(س|3ش|سه‌شنبه)/i, /^(چ|4ش|چهارشنبه)/i, /^(پ|5ش|پنجشنبه)/i, /^(ج|جمعه)/i, /^(ش|شنبه)/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(ب|ق|ن|ظ|ص|ب.ظ.|ع|ش)/i,\n abbreviated: /^(ق.ظ.|ب.ظ.|نیمه‌شب|ظهر|صبح|بعدازظهر|عصر|شب)/i,\n wide: /^(قبل‌ازظهر|نیمه‌شب|ظهر|صبح|بعدازظهر|عصر|شب)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^(ق|ق.ظ.|قبل‌ازظهر)/i,\n pm: /^(ب|ب.ظ.|بعدازظهر)/i,\n midnight: /^(‌نیمه‌شب|ن)/i,\n noon: /^(ظ|ظهر)/i,\n morning: /(ص|صبح)/i,\n afternoon: /(ب|ب.ظ.|بعدازظهر)/i,\n evening: /(ع|عصر)/i,\n night: /(ش|شب)/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction futureSeconds(text) {\n return text.replace(/sekuntia?/, 'sekunnin');\n}\n\nfunction futureMinutes(text) {\n return text.replace(/minuuttia?/, 'minuutin');\n}\n\nfunction futureHours(text) {\n return text.replace(/tuntia?/, 'tunnin');\n}\n\nfunction futureDays(text) {\n return text.replace(/päivää?/, 'päivän');\n}\n\nfunction futureWeeks(text) {\n return text.replace(/(viikko|viikkoa)/, 'viikon');\n}\n\nfunction futureMonths(text) {\n return text.replace(/(kuukausi|kuukautta)/, 'kuukauden');\n}\n\nfunction futureYears(text) {\n return text.replace(/(vuosi|vuotta)/, 'vuoden');\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'alle sekunti',\n other: 'alle {{count}} sekuntia',\n futureTense: futureSeconds\n },\n xSeconds: {\n one: 'sekunti',\n other: '{{count}} sekuntia',\n futureTense: futureSeconds\n },\n halfAMinute: {\n one: 'puoli minuuttia',\n other: 'puoli minuuttia',\n futureTense: function (_text) {\n return 'puolen minuutin';\n }\n },\n lessThanXMinutes: {\n one: 'alle minuutti',\n other: 'alle {{count}} minuuttia',\n futureTense: futureMinutes\n },\n xMinutes: {\n one: 'minuutti',\n other: '{{count}} minuuttia',\n futureTense: futureMinutes\n },\n aboutXHours: {\n one: 'noin tunti',\n other: 'noin {{count}} tuntia',\n futureTense: futureHours\n },\n xHours: {\n one: 'tunti',\n other: '{{count}} tuntia',\n futureTense: futureHours\n },\n xDays: {\n one: 'päivä',\n other: '{{count}} päivää',\n futureTense: futureDays\n },\n aboutXWeeks: {\n one: 'noin viikko',\n other: 'noin {{count}} viikkoa',\n futureTense: futureWeeks\n },\n xWeeks: {\n one: 'viikko',\n other: '{{count}} viikkoa',\n futureTense: futureWeeks\n },\n aboutXMonths: {\n one: 'noin kuukausi',\n other: 'noin {{count}} kuukautta',\n futureTense: futureMonths\n },\n xMonths: {\n one: 'kuukausi',\n other: '{{count}} kuukautta',\n futureTense: futureMonths\n },\n aboutXYears: {\n one: 'noin vuosi',\n other: 'noin {{count}} vuotta',\n futureTense: futureYears\n },\n xYears: {\n one: 'vuosi',\n other: '{{count}} vuotta',\n futureTense: futureYears\n },\n overXYears: {\n one: 'yli vuosi',\n other: 'yli {{count}} vuotta',\n futureTense: futureYears\n },\n almostXYears: {\n one: 'lähes vuosi',\n other: 'lähes {{count}} vuotta',\n futureTense: futureYears\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var distance = formatDistanceLocale[token];\n var result = count === 1 ? distance.one : distance.other.replace('{{count}}', count);\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return distance.futureTense(result) + ' kuluttua';\n } else {\n return result + ' sitten';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'eeee d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. MMM y',\n short: 'd.M.y'\n};\nvar timeFormats = {\n full: 'HH.mm.ss zzzz',\n long: 'HH.mm.ss z',\n medium: 'HH.mm.ss',\n short: 'HH.mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'klo' {{time}}\",\n long: \"{{date}} 'klo' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'viime' eeee 'klo' p\",\n yesterday: \"'eilen klo' p\",\n today: \"'tänään klo' p\",\n tomorrow: \"'huomenna klo' p\",\n nextWeek: \"'ensi' eeee 'klo' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['eaa.', 'jaa.'],\n abbreviated: ['eaa.', 'jaa.'],\n wide: ['ennen ajanlaskun alkua', 'jälkeen ajanlaskun alun']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. kvartaali', '2. kvartaali', '3. kvartaali', '4. kvartaali']\n};\nvar monthValues = {\n narrow: ['T', 'H', 'M', 'H', 'T', 'K', 'H', 'E', 'S', 'L', 'M', 'J'],\n abbreviated: ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'],\n wide: ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu']\n};\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: monthValues.abbreviated,\n wide: monthValues.wide.map(function (name) {\n return name + 'ta';\n })\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'K', 'T', 'P', 'L'],\n short: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],\n abbreviated: ['sunn.', 'maan.', 'tiis.', 'kesk.', 'torst.', 'perj.', 'la'],\n wide: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai']\n};\nvar formattingDayValues = {\n narrow: dayValues.narrow,\n short: dayValues.short,\n abbreviated: dayValues.abbreviated,\n wide: dayValues.wide.map(function (name) {\n return name + 'na';\n })\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ap',\n pm: 'ip',\n midnight: 'keskiyö',\n noon: 'keskipäivä',\n morning: 'ap',\n afternoon: 'ip',\n evening: 'illalla',\n night: 'yöllä'\n },\n abbreviated: {\n am: 'ap',\n pm: 'ip',\n midnight: 'keskiyö',\n noon: 'keskipäivä',\n morning: 'ap',\n afternoon: 'ip',\n evening: 'illalla',\n night: 'yöllä'\n },\n wide: {\n am: 'ap',\n pm: 'ip',\n midnight: 'keskiyöllä',\n noon: 'keskipäivällä',\n morning: 'aamupäivällä',\n afternoon: 'iltapäivällä',\n evening: 'illalla',\n night: 'yöllä'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n formattingValues: formattingDayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(e|j)/i,\n abbreviated: /^(eaa.|jaa.)/i,\n wide: /^(ennen ajanlaskun alkua|jälkeen ajanlaskun alun)/i\n};\nvar parseEraPatterns = {\n any: [/^e/i, /^j/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]\\.? kvartaali/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[thmkeslj]/i,\n abbreviated: /^(tammi|helmi|maalis|huhti|touko|kesä|heinä|elo|syys|loka|marras|joulu)/i,\n wide: /^(tammikuu|helmikuu|maaliskuu|huhtikuu|toukokuu|kesäkuu|heinäkuu|elokuu|syyskuu|lokakuu|marraskuu|joulukuu)(ta)?/i\n};\nvar parseMonthPatterns = {\n narrow: [/^t/i, /^h/i, /^m/i, /^h/i, /^t/i, /^k/i, /^h/i, /^e/i, /^s/i, /^l/i, /^m/i, /^j/i],\n any: [/^ta/i, /^hel/i, /^maa/i, /^hu/i, /^to/i, /^k/i, /^hei/i, /^e/i, /^s/i, /^l/i, /^mar/i, /^j/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtkpl]/i,\n short: /^(su|ma|ti|ke|to|pe|la)/i,\n abbreviated: /^(sunn.|maan.|tiis.|kesk.|torst.|perj.|la)/i,\n wide: /^(sunnuntai|maanantai|tiistai|keskiviikko|torstai|perjantai|lauantai)(na)?/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^k/i, /^t/i, /^p/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^k/i, /^to/i, /^p/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(ap|ip|keskiyö|keskipäivä|aamupäivällä|iltapäivällä|illalla|yöllä)/i,\n any: /^(ap|ip|keskiyöllä|keskipäivällä|aamupäivällä|iltapäivällä|illalla|yöllä)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ap/i,\n pm: /^ip/i,\n midnight: /^keskiyö/i,\n noon: /^keskipäivä/i,\n morning: /aamupäivällä/i,\n afternoon: /iltapäivällä/i,\n evening: /illalla/i,\n night: /yöllä/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'yy-MM-dd'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'la semaine dernière à' p\",\n yesterday: \"'hier à' p\",\n today: \"'aujourd’hui à' p\",\n tomorrow: \"'demain à' p'\",\n nextWeek: \"eeee 'la semaine prochaine à' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (number === 0) {\n return number;\n }\n\n if (unit === 'year' || unit === 'hour' || unit === 'week') {\n if (number === 1) {\n suffix = 'ère';\n } else {\n suffix = 'ème';\n }\n } else {\n if (number === 1) {\n suffix = 'er';\n } else {\n suffix = 'ème';\n }\n }\n\n return number + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'nas lugha na diog',\n other: 'nas lugha na {{count}} diogan'\n },\n xSeconds: {\n one: '1 diog',\n other: '{{count}} diogan'\n },\n halfAMinute: 'leth mhionaid',\n lessThanXMinutes: {\n one: 'nas lugha na mionaid',\n other: 'nas lugha na {{count}} mionaidean'\n },\n xMinutes: {\n one: '1 mionaid',\n other: '{{count}} mionaidean'\n },\n aboutXHours: {\n one: 'mu uair de thìde',\n other: 'mu {{count}} uairean de thìde'\n },\n xHours: {\n one: '1 uair',\n other: '{{count}} uairean de thìde'\n },\n xDays: {\n one: '1 latha',\n other: '{{count}} làithean'\n },\n aboutXWeeks: {\n one: 'mu 1 seachdain',\n other: 'mu {{count}} seachdainean'\n },\n xWeeks: {\n one: '1 seachdain',\n other: '{{count}} seachdainean'\n },\n aboutXMonths: {\n one: 'mu mhìos',\n other: 'mu {{count}} mìosan'\n },\n xMonths: {\n one: '1 mìos',\n other: '{{count}} mìosan'\n },\n aboutXYears: {\n one: 'mu bhliadhna',\n other: 'mu {{count}} bliadhnaichean'\n },\n xYears: {\n one: '1 bhliadhna',\n other: '{{count}} bliadhna'\n },\n overXYears: {\n one: 'còrr is bliadhna',\n other: 'còrr is {{count}} bliadhnaichean'\n },\n almostXYears: {\n one: 'cha mhòr bliadhna',\n other: 'cha mhòr {{count}} bliadhnaichean'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'ann an ' + result;\n } else {\n return result + ' o chionn';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'aig' {{time}}\",\n long: \"{{date}} 'aig' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'mu dheireadh' eeee 'aig' p\",\n //FIX\n yesterday: \"'an-dè aig' p\",\n today: \"'an-diugh aig' p\",\n tomorrow: \"'a-màireach aig' p\",\n nextWeek: \"eeee 'aig' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['R', 'A'],\n abbreviated: ['RC', 'AD'],\n wide: ['ro Chrìosta', 'anno domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['C1', 'C2', 'C3', 'C4'],\n wide: [\"a' chiad chairteal\", 'an dàrna cairteal', 'an treas cairteal', 'an ceathramh cairteal'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['F', 'G', 'M', 'G', 'C', 'Ò', 'I', 'L', 'S', 'D', 'S', 'D'],\n abbreviated: ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],\n wide: ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'C', 'A', 'H', 'S'],\n short: ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'],\n abbreviated: ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n wide: ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'm',\n pm: 'f',\n midnight: 'm.o.',\n noon: 'm.l.',\n morning: 'madainn',\n afternoon: 'feasgar',\n evening: 'feasgar',\n night: 'oidhche'\n },\n abbreviated: {\n am: 'M.',\n pm: 'F.',\n midnight: 'meadhan oidhche',\n noon: 'meadhan là',\n morning: 'madainn',\n afternoon: 'feasgar',\n evening: 'feasgar',\n night: 'oidhche'\n },\n wide: {\n am: 'm.',\n pm: 'f.',\n midnight: 'meadhan oidhche',\n noon: 'meadhan là',\n morning: 'madainn',\n afternoon: 'feasgar',\n evening: 'feasgar',\n night: 'oidhche'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'm',\n pm: 'f',\n midnight: 'm.o.',\n noon: 'm.l.',\n morning: 'sa mhadainn',\n afternoon: 'feasgar',\n evening: 'feasgar',\n night: 'air an oidhche'\n },\n abbreviated: {\n am: 'M.',\n pm: 'F.',\n midnight: 'meadhan oidhche',\n noon: 'meadhan là',\n morning: 'sa mhadainn',\n afternoon: 'feasgar',\n evening: 'feasgar',\n night: 'air an oidhche'\n },\n wide: {\n am: 'm.',\n pm: 'f.',\n midnight: 'meadhan oidhche',\n noon: 'meadhan là',\n morning: 'sa mhadainn',\n afternoon: 'feasgar',\n evening: 'feasgar',\n night: 'air an oidhche'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'cd';\n\n case 2:\n return number + 'na';\n\n case 3:\n return number + 'tr';\n }\n }\n\n return number + 'mh';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(cd|na|tr|mh)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(r|a)/i,\n abbreviated: /^(r\\.?\\s?c\\.?|r\\.?\\s?a\\.?\\s?c\\.?|a\\.?\\s?d\\.?|a\\.?\\s?c\\.?)/i,\n wide: /^(ro Chrìosta|ron aois choitchinn|anno domini|aois choitcheann)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^c[1234]/i,\n wide: /^[1234](cd|na|tr|mh)? cairteal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[fgmcòilsd]/i,\n abbreviated: /^(faoi|gear|màrt|gibl|cèit|ògmh|iuch|lùn|sult|dàmh|samh|dùbh)/i,\n wide: /^(am faoilleach|an gearran|am màrt|an giblean|an cèitean|an t-Ògmhios|an t-Iuchar|an lùnastal|an t-Sultain|an dàmhair|an t-Samhain|an dùbhlachd)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^f/i, /^g/i, /^m/i, /^g/i, /^c/i, /^ò/i, /^i/i, /^l/i, /^s/i, /^d/i, /^s/i, /^d/i],\n any: [/^fa/i, /^ge/i, /^mà/i, /^gi/i, /^c/i, /^ò/i, /^i/i, /^l/i, /^su/i, /^d/i, /^sa/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmcahs]/i,\n short: /^(dò|lu|mà|ci|ar|ha|sa)/i,\n abbreviated: /^(did|dil|dim|dic|dia|dih|dis)/i,\n wide: /^(didòmhnaich|diluain|dimàirt|diciadain|diardaoin|dihaoine|disathairne)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^c/i, /^a/i, /^h/i, /^s/i],\n any: [/^d/i, /^l/i, /^m/i, /^c/i, /^a/i, /^h/i, /^s/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(san|aig) (madainn|feasgar|feasgar|oidhche))/i,\n any: /^([ap]\\.?\\s?m\\.?|meadhan oidhche|meadhan là|(san|aig) (madainn|feasgar|feasgar|oidhche))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^m/i,\n pm: /^f/i,\n midnight: /^meadhan oidhche/i,\n noon: /^meadhan là/i,\n morning: /sa mhadainn/i,\n afternoon: /feasgar/i,\n evening: /feasgar/i,\n night: /air an oidhche/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos dun segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'medio minuto',\n lessThanXMinutes: {\n one: 'menos dun minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'arredor dunha hora',\n other: 'arredor de {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 día',\n other: '{{count}} días'\n },\n aboutXWeeks: {\n one: 'arredor dunha semana',\n other: 'arredor de {{count}} semanas'\n },\n xWeeks: {\n one: '1 semana',\n other: '{{count}} semanas'\n },\n aboutXMonths: {\n one: 'arredor de 1 mes',\n other: 'arredor de {{count}} meses'\n },\n xMonths: {\n one: '1 mes',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'arredor dun ano',\n other: 'arredor de {{count}} anos'\n },\n xYears: {\n one: '1 ano',\n other: '{{count}} anos'\n },\n overXYears: {\n one: 'máis dun ano',\n other: 'máis de {{count}} anos'\n },\n almostXYears: {\n one: 'case un ano',\n other: 'case {{count}} anos'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'en ' + result;\n } else {\n return 'hai ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM y\",\n long: \"d 'de' MMMM y\",\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'ás' {{time}}\",\n long: \"{{date}} 'ás' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'o' eeee 'pasado á' LT\",\n yesterday: \"'onte á' p\",\n today: \"'hoxe á' p\",\n tomorrow: \"'mañá á' p\",\n nextWeek: \"eeee 'á' p\",\n other: 'P'\n};\nvar formatRelativeLocalePlural = {\n lastWeek: \"'o' eeee 'pasado ás' p\",\n yesterday: \"'onte ás' p\",\n today: \"'hoxe ás' p\",\n tomorrow: \"'mañá ás' p\",\n nextWeek: \"eeee 'ás' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n if (date.getUTCHours() !== 1) {\n return formatRelativeLocalePlural[token];\n }\n\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['AC', 'DC'],\n abbreviated: ['AC', 'DC'],\n wide: ['antes de cristo', 'despois de cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['e', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['xan', 'feb', 'mar', 'abr', 'mai', 'xun', 'xul', 'ago', 'set', 'out', 'nov', 'dec'],\n wide: ['xaneiro', 'febreiro', 'marzo', 'abril', 'maio', 'xuño', 'xullo', 'agosto', 'setembro', 'outubro', 'novembro', 'decembro']\n};\nvar dayValues = {\n narrow: ['d', 'l', 'm', 'm', 'j', 'v', 's'],\n short: ['do', 'lu', 'ma', 'me', 'xo', 've', 'sa'],\n abbreviated: ['dom', 'lun', 'mar', 'mer', 'xov', 'ven', 'sab'],\n wide: ['domingo', 'luns', 'martes', 'mércores', 'xoves', 'venres', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'mañá',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noite'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoite',\n noon: 'mediodía',\n morning: 'mañá',\n afternoon: 'tarde',\n evening: 'tardiña',\n night: 'noite'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoite',\n noon: 'mediodía',\n morning: 'mañá',\n afternoon: 'tarde',\n evening: 'tardiña',\n night: 'noite'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'da mañá',\n afternoon: 'da tarde',\n evening: 'da tardiña',\n night: 'da noite'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoite',\n noon: 'mediodía',\n morning: 'da mañá',\n afternoon: 'da tarde',\n evening: 'da tardiña',\n night: 'da noite'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoite',\n noon: 'mediodía',\n morning: 'da mañá',\n afternoon: 'da tarde',\n evening: 'da tardiña',\n night: 'da noite'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes da era com[uú]n|despois de cristo|era com[uú]n)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes da era com[uú]n)/i, /^(despois de cristo|era com[uú]n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[xfmasond]/i,\n abbreviated: /^(xan|feb|mar|abr|mai|xun|xul|ago|set|out|nov|dec)/i,\n wide: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^x/i, /^f/i, /^m/i, /^a/i, /^m/i, /^x/i, /^x/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^xan/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^xun/i, /^xul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmxvs]/i,\n short: /^(do|lu|ma|me|xo|ve|sa)/i,\n abbreviated: /^(dom|lun|mar|mer|xov|ven|sab)/i,\n wide: /^(domingo|luns|martes|m[eé]rcores|xoves|venres|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^x/i, /^v/i, /^s/i],\n any: [/^do/i, /^lu/i, /^ma/i, /^me/i, /^xo/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da|[aá]s) (mañ[aá]|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|medianoite|mediod[ií]a|(da|[aá]s) (mañ[aá]|tarde|noite))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn/i,\n noon: /^md/i,\n morning: /mañ[aá]/i,\n afternoon: /tarde/i,\n evening: /tardiña/i,\n night: /noite/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n// Source: https://www.unicode.org/cldr/charts/32/summary/gu.html\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'હમણાં',\n // CLDR #1461\n other: '​આશરે {{count}} સેકંડ'\n },\n xSeconds: {\n one: '1 સેકંડ',\n other: '{{count}} સેકંડ'\n },\n halfAMinute: 'અડધી મિનિટ',\n lessThanXMinutes: {\n one: 'આ મિનિટ',\n // CLDR #1448\n other: '​આશરે {{count}} મિનિટ'\n },\n xMinutes: {\n one: '1 મિનિટ',\n other: '{{count}} મિનિટ'\n },\n aboutXHours: {\n one: '​આશરે 1 કલાક',\n other: '​આશરે {{count}} કલાક'\n },\n xHours: {\n one: '1 કલાક',\n other: '{{count}} કલાક'\n },\n xDays: {\n one: '1 દિવસ',\n other: '{{count}} દિવસ'\n },\n aboutXWeeks: {\n one: 'આશરે 1 અઠવાડિયું',\n other: 'આશરે {{count}} અઠવાડિયા'\n },\n xWeeks: {\n one: '1 અઠવાડિયું',\n other: '{{count}} અઠવાડિયા'\n },\n aboutXMonths: {\n one: 'આશરે 1 મહિનો',\n other: 'આશરે {{count}} મહિના'\n },\n xMonths: {\n one: '1 મહિનો',\n other: '{{count}} મહિના'\n },\n aboutXYears: {\n one: 'આશરે 1 વર્ષ',\n other: 'આશરે {{count}} વર્ષ'\n },\n xYears: {\n one: '1 વર્ષ',\n other: '{{count}} વર્ષ'\n },\n overXYears: {\n one: '1 વર્ષથી વધુ',\n other: '{{count}} વર્ષથી વધુ'\n },\n almostXYears: {\n one: 'લગભગ 1 વર્ષ',\n other: 'લગભગ {{count}} વર્ષ'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + 'માં';\n } else {\n return result + ' પહેલાં';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//Source: https://www.unicode.org/cldr/charts/32/summary/gu.html\nvar dateFormats = {\n full: 'EEEE, d MMMM, y',\n // CLDR #1825\n long: 'd MMMM, y',\n // CLDR #1826\n medium: 'd MMM, y',\n // CLDR #1827\n short: 'd/M/yy' // CLDR #1828\n\n};\nvar timeFormats = {\n full: 'hh:mm:ss a zzzz',\n // CLDR #1829\n long: 'hh:mm:ss a z',\n // CLDR #1830\n medium: 'hh:mm:ss a',\n // CLDR #1831\n short: 'hh:mm a' // CLDR #1832\n\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n // CLDR #1833\n long: '{{date}} {{time}}',\n // CLDR #1834\n medium: '{{date}} {{time}}',\n // CLDR #1835\n short: '{{date}} {{time}}' // CLDR #1836\n\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n// Source: https://www.unicode.org/cldr/charts/32/summary/gu.html\nvar formatRelativeLocale = {\n lastWeek: \"'પાછલા' eeee p\",\n // CLDR #1384\n yesterday: \"'ગઈકાલે' p\",\n // CLDR #1409\n today: \"'આજે' p\",\n // CLDR #1410\n tomorrow: \"'આવતીકાલે' p\",\n // CLDR #1411\n nextWeek: 'eeee p',\n // CLDR #1386\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://www.unicode.org/cldr/charts/32/summary/gu.html\n// #1621 - #1630\nvar eraValues = {\n narrow: ['ઈસપૂ', 'ઈસ'],\n abbreviated: ['ઈ.સ.પૂર્વે', 'ઈ.સ.'],\n wide: ['ઈસવીસન પૂર્વે', 'ઈસવીસન'] // https://www.unicode.org/cldr/charts/32/summary/gu.html\n // #1631 - #1654\n\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1લો ત્રિમાસ', '2જો ત્રિમાસ', '3જો ત્રિમાસ', '4થો ત્રિમાસ'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n // https://www.unicode.org/cldr/charts/32/summary/gu.html\n // #1655 - #1726\n\n};\nvar monthValues = {\n narrow: ['જા', 'ફે', 'મા', 'એ', 'મે', 'જૂ', 'જુ', 'ઓ', 'સ', 'ઓ', 'ન', 'ડિ'],\n abbreviated: ['જાન્યુ', 'ફેબ્રુ', 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટે', 'ઓક્ટો', 'નવે', 'ડિસે'],\n wide: ['જાન્યુઆરી', 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઇ', 'ઓગસ્ટ', 'સપ્ટેમ્બર', 'ઓક્ટોબર', 'નવેમ્બર', 'ડિસેમ્બર'] // https://www.unicode.org/cldr/charts/32/summary/gu.html\n // #1727 - #1768\n\n};\nvar dayValues = {\n narrow: ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', 'શ'],\n short: ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', 'શ'],\n abbreviated: ['રવિ', 'સોમ', 'મંગળ', 'બુધ', 'ગુરુ', 'શુક્ર', 'શનિ'],\n wide: ['રવિવાર'\n /* Sunday */\n , 'સોમવાર'\n /* Monday */\n , 'મંગળવાર'\n /* Tuesday */\n , 'બુધવાર'\n /* Wednesday */\n , 'ગુરુવાર'\n /* Thursday */\n , 'શુક્રવાર'\n /* Friday */\n , 'શનિવાર'\n /* Saturday */\n ] // https://www.unicode.org/cldr/charts/32/summary/gu.html\n // #1783 - #1824\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'મ.રાત્રિ',\n noon: 'બ.',\n morning: 'સવારે',\n afternoon: 'બપોરે',\n evening: 'સાંજે',\n night: 'રાત્રે'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: '​મધ્યરાત્રિ',\n noon: 'બપોરે',\n morning: 'સવારે',\n afternoon: 'બપોરે',\n evening: 'સાંજે',\n night: 'રાત્રે'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: '​મધ્યરાત્રિ',\n noon: 'બપોરે',\n morning: 'સવારે',\n afternoon: 'બપોરે',\n evening: 'સાંજે',\n night: 'રાત્રે'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'મ.રાત્રિ',\n noon: 'બપોરે',\n morning: 'સવારે',\n afternoon: 'બપોરે',\n evening: 'સાંજે',\n night: 'રાત્રે'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'મધ્યરાત્રિ',\n noon: 'બપોરે',\n morning: 'સવારે',\n afternoon: 'બપોરે',\n evening: 'સાંજે',\n night: 'રાત્રે'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: '​મધ્યરાત્રિ',\n noon: 'બપોરે',\n morning: 'સવારે',\n afternoon: 'બપોરે',\n evening: 'સાંજે',\n night: 'રાત્રે'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(લ|જ|થ|ઠ્ઠ|મ)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ઈસપૂ|ઈસ)/i,\n abbreviated: /^(ઈ\\.સ\\.પૂર્વે|ઈ\\.સ\\.)/i,\n wide: /^(ઈસવીસન\\sપૂર્વે|ઈસવીસન)/i\n};\nvar parseEraPatterns = {\n any: [/^(ઈસપૂ|ઈસ)/i, /^(ઈ\\.સ\\.પૂર્વે|ઈ\\.સ\\.)/i, /^(ઈસવીસન\\sપૂર્વે|ઈસવીસન)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](લો|જો|થો)? ત્રિમાસ/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[જાફેમાએમેજૂજુઓસઓનડિ]/i,\n abbreviated: /^(જાન્યુ|ફેબ્રુ|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઈ|ઑગસ્ટ|સપ્ટે|ઓક્ટો|નવે|ડિસે)/i,\n wide: /^(જાન્યુઆરી|ફેબ્રુઆરી|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઇ|ઓગસ્ટ|સપ્ટેમ્બર|ઓક્ટોબર|નવેમ્બર|ડિસેમ્બર)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^જા/i, /^ફે/i, /^મા/i, /^એ/i, /^મે/i, /^જૂ/i, /^જુ/i, /^ઑગ/i, /^સ/i, /^ઓક્ટો/i, /^ન/i, /^ડિ/i],\n any: [/^જા/i, /^ફે/i, /^મા/i, /^એ/i, /^મે/i, /^જૂ/i, /^જુ/i, /^ઑગ/i, /^સ/i, /^ઓક્ટો/i, /^ન/i, /^ડિ/i]\n};\nvar matchDayPatterns = {\n narrow: /^(ર|સો|મં|બુ|ગુ|શુ|શ)/i,\n short: /^(ર|સો|મં|બુ|ગુ|શુ|શ)/i,\n abbreviated: /^(રવિ|સોમ|મંગળ|બુધ|ગુરુ|શુક્ર|શનિ)/i,\n wide: /^(રવિવાર|સોમવાર|મંગળવાર|બુધવાર|ગુરુવાર|શુક્રવાર|શનિવાર)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ર/i, /^સો/i, /^મં/i, /^બુ/i, /^ગુ/i, /^શુ/i, /^શ/i],\n any: [/^ર/i, /^સો/i, /^મં/i, /^બુ/i, /^ગુ/i, /^શુ/i, /^શ/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|મ\\.?|સ|બ|સાં|રા)/i,\n any: /^(a|p|મ\\.?|સ|બ|સાં|રા)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^મ\\.?/i,\n noon: /^બ/i,\n morning: /સ/i,\n afternoon: /બ/i,\n evening: /સાં/i,\n night: /રા/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'פחות משנייה',\n two: 'פחות משתי שניות',\n other: 'פחות מ־{{count}} שניות'\n },\n xSeconds: {\n one: 'שנייה',\n two: 'שתי שניות',\n other: '{{count}} שניות'\n },\n halfAMinute: 'חצי דקה',\n lessThanXMinutes: {\n one: 'פחות מדקה',\n two: 'פחות משתי דקות',\n other: 'פחות מ־{{count}} דקות'\n },\n xMinutes: {\n one: 'דקה',\n two: 'שתי דקות',\n other: '{{count}} דקות'\n },\n aboutXHours: {\n one: 'בערך שעה',\n two: 'בערך שעתיים',\n other: 'בערך {{count}} שעות'\n },\n xHours: {\n one: 'שעה',\n two: 'שעתיים',\n other: '{{count}} שעות'\n },\n xDays: {\n one: 'יום',\n two: 'יומיים',\n other: '{{count}} ימים'\n },\n aboutXWeeks: {\n one: 'בערך שבוע',\n two: 'בערך שבועיים',\n other: 'בערך {{count}} שבועות'\n },\n xWeeks: {\n one: 'שבוע',\n two: 'שבועיים',\n other: '{{count}} שבועות'\n },\n aboutXMonths: {\n one: 'בערך חודש',\n two: 'בערך חודשיים',\n other: 'בערך {{count}} חודשים'\n },\n xMonths: {\n one: 'חודש',\n two: 'חודשיים',\n other: '{{count}} חודשים'\n },\n aboutXYears: {\n one: 'בערך שנה',\n two: 'בערך שנתיים',\n other: 'בערך {{count}} שנים'\n },\n xYears: {\n one: 'שנה',\n two: 'שנתיים',\n other: '{{count}} שנים'\n },\n overXYears: {\n one: 'יותר משנה',\n two: 'יותר משנתיים',\n other: 'יותר מ־{{count}} שנים'\n },\n almostXYears: {\n one: 'כמעט שנה',\n two: 'כמעט שנתיים',\n other: 'כמעט {{count}} שנים'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {}; // Return word instead of `in one day` or `one day ago`\n\n if (token === 'xDays' && options.addSuffix && count <= 2) {\n var past = {\n 1: 'אתמול',\n 2: 'שלשום'\n };\n var future = {\n 1: 'מחר',\n 2: 'מחרתיים'\n };\n return options.comparison > 0 ? future[count] : past[count];\n }\n\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2) {\n result = formatDistanceLocale[token].two;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'בעוד ' + result;\n } else {\n return 'לפני ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d בMMMM y',\n long: 'd בMMMM y',\n medium: 'd בMMM y',\n short: 'd.M.y'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'בשעה' {{time}}\",\n long: \"{{date}} 'בשעה' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'שעבר בשעה' p\",\n yesterday: \"'אתמול בשעה' p\",\n today: \"'היום בשעה' p\",\n tomorrow: \"'מחר בשעה' p\",\n nextWeek: \"eeee 'בשעה' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['לפנה״ס', 'לספירה'],\n abbreviated: ['לפנה״ס', 'לספירה'],\n wide: ['לפני הספירה', 'לספירה']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['רבעון 1', 'רבעון 2', 'רבעון 3', 'רבעון 4']\n};\nvar monthValues = {\n narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n abbreviated: ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'],\n wide: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר']\n};\nvar dayValues = {\n narrow: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],\n short: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],\n abbreviated: ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'],\n wide: ['יום ראשון', 'יום שני', 'יום שלישי', 'יום רביעי', 'יום חמישי', 'יום שישי', 'יום שבת']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'לפנה״צ',\n pm: 'אחה״צ',\n midnight: 'חצות',\n noon: 'צהריים',\n morning: 'בוקר',\n afternoon: 'אחר הצהריים',\n evening: 'ערב',\n night: 'לילה'\n },\n abbreviated: {\n am: 'לפנה״צ',\n pm: 'אחה״צ',\n midnight: 'חצות',\n noon: 'צהריים',\n morning: 'בוקר',\n afternoon: 'אחר הצהריים',\n evening: 'ערב',\n night: 'לילה'\n },\n wide: {\n am: 'לפנה״צ',\n pm: 'אחה״צ',\n midnight: 'חצות',\n noon: 'צהריים',\n morning: 'בוקר',\n afternoon: 'אחר הצהריים',\n evening: 'ערב',\n night: 'לילה'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'לפנה״צ',\n pm: 'אחה״צ',\n midnight: 'חצות',\n noon: 'צהריים',\n morning: 'בבוקר',\n afternoon: 'בצהריים',\n evening: 'בערב',\n night: 'בלילה'\n },\n abbreviated: {\n am: 'לפנה״צ',\n pm: 'אחה״צ',\n midnight: 'חצות',\n noon: 'צהריים',\n morning: 'בבוקר',\n afternoon: 'אחר הצהריים',\n evening: 'בערב',\n night: 'בלילה'\n },\n wide: {\n am: 'לפנה״צ',\n pm: 'אחה״צ',\n midnight: 'חצות',\n noon: 'צהריים',\n morning: 'בבוקר',\n afternoon: 'אחר הצהריים',\n evening: 'בערב',\n night: 'בלילה'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber); // We only show words till 10\n\n if (number <= 0 || number > 10) return number;\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var isFemale = ['year', 'hour', 'minute', 'second'].indexOf(unit) >= 0;\n var male = ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שביעי', 'שמיני', 'תשיעי', 'עשירי'];\n var female = ['ראשונה', 'שנייה', 'שלישית', 'רביעית', 'חמישית', 'שישית', 'שביעית', 'שמינית', 'תשיעית', 'עשירית'];\n var index = number - 1;\n return isFemale ? female[index] : male[index];\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+|(ראשון|שני|שלישי|רביעי|חמישי|שישי|שביעי|שמיני|תשיעי|עשירי|ראשונה|שנייה|שלישית|רביעית|חמישית|שישית|שביעית|שמינית|תשיעית|עשירית))/i;\nvar parseOrdinalNumberPattern = /^(\\d+|רא|שנ|של|רב|ח|שי|שב|שמ|ת|ע)/i;\nvar matchEraPatterns = {\n narrow: /^ל(ספירה|פנה״ס)/i,\n abbreviated: /^ל(ספירה|פנה״ס)/i,\n wide: /^ל(פני ה)?ספירה/i\n};\nvar parseEraPatterns = {\n any: [/^לפ/i, /^לס/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^רבעון [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^\\d+/i,\n abbreviated: /^(ינו|פבר|מרץ|אפר|מאי|יוני|יולי|אוג|ספט|אוק|נוב|דצמ)׳?/i,\n wide: /^(ינואר|פברואר|מרץ|אפריל|מאי|יוני|יולי|אוגוסט|ספטמבר|אוקטובר|נובמבר|דצמבר)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^1$/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^7/i, /^8/i, /^9/i, /^10/i, /^11/i, /^12/i],\n any: [/^ינ/i, /^פ/i, /^מר/i, /^אפ/i, /^מא/i, /^יונ/i, /^יול/i, /^אוג/i, /^ס/i, /^אוק/i, /^נ/i, /^ד/i]\n};\nvar matchDayPatterns = {\n narrow: /^[אבגדהוש]׳/i,\n short: /^[אבגדהוש]׳/i,\n abbreviated: /^(שבת|יום (א|ב|ג|ד|ה|ו)׳)/i,\n wide: /^יום (ראשון|שני|שלישי|רביעי|חמישי|שישי|שבת)/i\n};\nvar parseDayPatterns = {\n abbreviated: [/א׳$/i, /ב׳$/i, /ג׳$/i, /ד׳$/i, /ה׳$/i, /ו׳$/i, /^ש/i],\n wide: [/ן$/i, /ני$/i, /לישי$/i, /עי$/i, /מישי$/i, /שישי$/i, /ת$/i],\n any: [/^א/i, /^ב/i, /^ג/i, /^ד/i, /^ה/i, /^ו/i, /^ש/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(אחר ה|ב)?(חצות|צהריים|בוקר|ערב|לילה|אחה״צ|לפנה״צ)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^לפ/i,\n pm: /^אחה/i,\n midnight: /^ח/i,\n noon: /^צ/i,\n morning: /בוקר/i,\n afternoon: /בצ|אחר/i,\n evening: /ערב/i,\n night: /לילה/i\n }\n};\nvar ordinalName = ['רא', 'שנ', 'של', 'רב', 'ח', 'שי', 'שב', 'שמ', 'ת', 'ע'];\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n var number = parseInt(value, 10);\n return isNaN(number) ? ordinalName.indexOf(value) + 1 : number;\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nvar _index = _interopRequireDefault(require(\"../localize/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Source: https://www.unicode.org/cldr/charts/32/summary/hi.html\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: '१ सेकंड से कम',\n // CLDR #1310\n other: '{{count}} सेकंड से कम'\n },\n xSeconds: {\n one: '१ सेकंड',\n other: '{{count}} सेकंड'\n },\n halfAMinute: 'आधा मिनट',\n lessThanXMinutes: {\n one: '१ मिनट से कम',\n other: '{{count}} मिनट से कम'\n },\n xMinutes: {\n one: '१ मिनट',\n // CLDR #1307\n other: '{{count}} मिनट'\n },\n aboutXHours: {\n one: 'लगभग १ घंटा',\n other: 'लगभग {{count}} घंटे'\n },\n xHours: {\n one: '१ घंटा',\n // CLDR #1304\n other: '{{count}} घंटे' // CLDR #4467\n\n },\n xDays: {\n one: '१ दिन',\n // CLDR #1286\n other: '{{count}} दिन'\n },\n aboutXWeeks: {\n one: 'लगभग १ सप्ताह',\n other: 'लगभग {{count}} सप्ताह'\n },\n xWeeks: {\n one: '१ सप्ताह',\n other: '{{count}} सप्ताह'\n },\n aboutXMonths: {\n one: 'लगभग १ महीना',\n other: 'लगभग {{count}} महीने'\n },\n xMonths: {\n one: '१ महीना',\n other: '{{count}} महीने'\n },\n aboutXYears: {\n one: 'लगभग १ वर्ष',\n other: 'लगभग {{count}} वर्ष' // CLDR #4823\n\n },\n xYears: {\n one: '१ वर्ष',\n other: '{{count}} वर्ष'\n },\n overXYears: {\n one: '१ वर्ष से अधिक',\n other: '{{count}} वर्ष से अधिक'\n },\n almostXYears: {\n one: 'लगभग १ वर्ष',\n other: 'लगभग {{count}} वर्ष'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', _index.default.numberToLocale(count));\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + 'मे ';\n } else {\n return result + ' पहले';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, do MMMM, y',\n // CLDR #1787\n long: 'do MMMM, y',\n // CLDR #1788\n medium: 'd MMM, y',\n // CLDR #1789\n short: 'dd/MM/yyyy' // CLDR #1790\n\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n // CLDR #1791\n long: 'h:mm:ss a z',\n // CLDR #1792\n medium: 'h:mm:ss a',\n // CLDR #1793\n short: 'h:mm a' // CLDR #1794\n\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'को' {{time}}\",\n // CLDR #1795\n long: \"{{date}} 'को' {{time}}\",\n // CLDR #1796\n medium: '{{date}}, {{time}}',\n // CLDR #1797\n short: '{{date}}, {{time}}' // CLDR #1798\n\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'पिछले' eeee p\",\n yesterday: \"'कल' p\",\n today: \"'आज' p\",\n tomorrow: \"'कल' p\",\n nextWeek: \"eeee 'को' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../localize/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^[०१२३४५६७८९]+/i;\nvar parseOrdinalNumberPattern = /^[०१२३४५६७८९]+/i;\nvar matchEraPatterns = {\n narrow: /^(ईसा-पूर्व|ईस्वी)/i,\n abbreviated: /^(ईसा\\.?\\s?पूर्व\\.?|ईसा\\.?)/i,\n wide: /^(ईसा-पूर्व|ईसवी पूर्व|ईसवी सन|ईसवी)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ति[1234]/i,\n wide: /^[1234](पहली|दूसरी|तीसरी|चौथी)? तिमाही/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[जफ़माअप्मईजूनजुअगसिअक्तनदि]/i,\n abbreviated: /^(जन|फ़र|मार्च|अप्|मई|जून|जुल|अग|सित|अक्तू|नव|दिस)/i,\n wide: /^(जनवरी|फ़रवरी|मार्च|अप्रैल|मई|जून|जुलाई|अगस्त|सितंबर|अक्तूबर|नवंबर|दिसंबर)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ज/i, /^फ़/i, /^मा/i, /^अप्/i, /^मई/i, /^जू/i, /^जु/i, /^अग/i, /^सि/i, /^अक्तू/i, /^न/i, /^दि/i],\n any: [/^जन/i, /^फ़/i, /^मा/i, /^अप्/i, /^मई/i, /^जू/i, /^जु/i, /^अग/i, /^सि/i, /^अक्तू/i, /^नव/i, /^दिस/i]\n};\nvar matchDayPatterns = {\n narrow: /^[रविसोममंगलबुधगुरुशुक्रशनि]/i,\n short: /^(रवि|सोम|मंगल|बुध|गुरु|शुक्र|शनि)/i,\n abbreviated: /^(रवि|सोम|मंगल|बुध|गुरु|शुक्र|शनि)/i,\n wide: /^(रविवार|सोमवार|मंगलवार|बुधवार|गुरुवार|शुक्रवार|शनिवार)/i\n};\nvar parseDayPatterns = {\n narrow: [/^रवि/i, /^सोम/i, /^मंगल/i, /^बुध/i, /^गुरु/i, /^शुक्र/i, /^शनि/i],\n any: [/^रवि/i, /^सोम/i, /^मंगल/i, /^बुध/i, /^गुरु/i, /^शुक्र/i, /^शनि/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(पू|अ|म|द.\\?|सु|दो|शा|रा)/i,\n any: /^(पूर्वाह्न|अपराह्न|म|द.\\?|सु|दो|शा|रा)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^पूर्वाह्न/i,\n pm: /^अपराह्न/i,\n midnight: /^मध्य/i,\n noon: /^दो/i,\n morning: /सु/i,\n afternoon: /दो/i,\n evening: /शा/i,\n night: /रा/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: _index3.default.localeToNumber\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n standalone: 'manje od 1 sekunde',\n withPrepositionAgo: 'manje od 1 sekunde',\n withPrepositionIn: 'manje od 1 sekundu'\n },\n dual: 'manje od {{count}} sekunde',\n other: 'manje od {{count}} sekundi'\n },\n xSeconds: {\n one: {\n standalone: '1 sekunda',\n withPrepositionAgo: '1 sekunde',\n withPrepositionIn: '1 sekundu'\n },\n dual: '{{count}} sekunde',\n other: '{{count}} sekundi'\n },\n halfAMinute: 'pola minute',\n lessThanXMinutes: {\n one: {\n standalone: 'manje od 1 minute',\n withPrepositionAgo: 'manje od 1 minute',\n withPrepositionIn: 'manje od 1 minutu'\n },\n dual: 'manje od {{count}} minute',\n other: 'manje od {{count}} minuta'\n },\n xMinutes: {\n one: {\n standalone: '1 minuta',\n withPrepositionAgo: '1 minute',\n withPrepositionIn: '1 minutu'\n },\n dual: '{{count}} minute',\n other: '{{count}} minuta'\n },\n aboutXHours: {\n one: {\n standalone: 'oko 1 sat',\n withPrepositionAgo: 'oko 1 sat',\n withPrepositionIn: 'oko 1 sat'\n },\n dual: 'oko {{count}} sata',\n other: 'oko {{count}} sati'\n },\n xHours: {\n one: {\n standalone: '1 sat',\n withPrepositionAgo: '1 sat',\n withPrepositionIn: '1 sat'\n },\n dual: '{{count}} sata',\n other: '{{count}} sati'\n },\n xDays: {\n one: {\n standalone: '1 dan',\n withPrepositionAgo: '1 dan',\n withPrepositionIn: '1 dan'\n },\n dual: '{{count}} dana',\n other: '{{count}} dana'\n },\n aboutXWeeks: {\n one: {\n standalone: 'oko 1 tjedan',\n withPrepositionAgo: 'oko 1 tjedan',\n withPrepositionIn: 'oko 1 tjedan'\n },\n dual: 'oko {{count}} tjedna',\n other: 'oko {{count}} tjedana'\n },\n xWeeks: {\n one: {\n standalone: '1 tjedan',\n withPrepositionAgo: '1 tjedan',\n withPrepositionIn: '1 tjedan'\n },\n dual: '{{count}} tjedna',\n other: '{{count}} tjedana'\n },\n aboutXMonths: {\n one: {\n standalone: 'oko 1 mjesec',\n withPrepositionAgo: 'oko 1 mjesec',\n withPrepositionIn: 'oko 1 mjesec'\n },\n dual: 'oko {{count}} mjeseca',\n other: 'oko {{count}} mjeseci'\n },\n xMonths: {\n one: {\n standalone: '1 mjesec',\n withPrepositionAgo: '1 mjesec',\n withPrepositionIn: '1 mjesec'\n },\n dual: '{{count}} mjeseca',\n other: '{{count}} mjeseci'\n },\n aboutXYears: {\n one: {\n standalone: 'oko 1 godinu',\n withPrepositionAgo: 'oko 1 godinu',\n withPrepositionIn: 'oko 1 godinu'\n },\n dual: 'oko {{count}} godine',\n other: 'oko {{count}} godina'\n },\n xYears: {\n one: {\n standalone: '1 godina',\n withPrepositionAgo: '1 godine',\n withPrepositionIn: '1 godinu'\n },\n dual: '{{count}} godine',\n other: '{{count}} godina'\n },\n overXYears: {\n one: {\n standalone: 'preko 1 godinu',\n withPrepositionAgo: 'preko 1 godinu',\n withPrepositionIn: 'preko 1 godinu'\n },\n dual: 'preko {{count}} godine',\n other: 'preko {{count}} godina'\n },\n almostXYears: {\n one: {\n standalone: 'gotovo 1 godinu',\n withPrepositionAgo: 'gotovo 1 godinu',\n withPrepositionIn: 'gotovo 1 godinu'\n },\n dual: 'gotovo {{count}} godine',\n other: 'gotovo {{count}} godina'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n result = formatDistanceLocale[token].one.withPrepositionIn;\n } else {\n result = formatDistanceLocale[token].one.withPrepositionAgo;\n }\n } else {\n result = formatDistanceLocale[token].one.standalone;\n }\n } else if (count % 10 > 1 && count % 10 < 5 && // if last digit is between 2 and 4\n String(count).substr(-2, 1) !== '1' // unless the 2nd to last digit is \"1\"\n ) {\n result = formatDistanceLocale[token].dual.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'za ' + result;\n } else {\n return 'prije ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d. MMMM y.',\n long: 'd. MMMM y.',\n medium: 'd. MMM y.',\n short: 'dd. MM. y.'\n};\nvar timeFormats = {\n full: 'HH:mm:ss (zzzz)',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'u' {{time}}\",\n long: \"{{date}} 'u' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'prošlu nedjelju u' p\";\n\n case 3:\n return \"'prošlu srijedu u' p\";\n\n case 6:\n return \"'prošlu subotu u' p\";\n\n default:\n return \"'prošli' EEEE 'u' p\";\n }\n },\n yesterday: \"'jučer u' p\",\n today: \"'danas u' p\",\n tomorrow: \"'sutra u' p\",\n nextWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'iduću nedjelju u' p\";\n\n case 3:\n return \"'iduću srijedu u' p\";\n\n case 6:\n return \"'iduću subotu u' p\";\n\n default:\n return \"'prošli' EEEE 'u' p\";\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number).concat('.');\n}\n\nvar eraValues = {\n narrow: ['pr.n.e.', 'AD'],\n abbreviated: ['pr. Kr.', 'po. Kr.'],\n wide: ['Prije Krista', 'Poslije Krista']\n};\nvar monthValues = {\n narrow: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.', '12.'],\n abbreviated: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', 'lis', 'stu', 'pro'],\n wide: ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac']\n};\nvar formattingMonthValues = {\n narrow: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.', '12.'],\n abbreviated: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', 'lis', 'stu', 'pro'],\n wide: ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenog', 'prosinca']\n};\nvar quarterValues = {\n narrow: ['1.', '2.', '3.', '4.'],\n abbreviated: ['1. kv.', '2. kv.', '3. kv.', '4. kv.'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar dayValues = {\n narrow: ['N', 'P', 'U', 'S', 'Č', 'P', 'S'],\n short: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'],\n abbreviated: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'],\n wide: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota']\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutro',\n afternoon: 'popodne',\n evening: 'navečer',\n night: 'noću'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutro',\n afternoon: 'popodne',\n evening: 'navečer',\n night: 'noću'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutro',\n afternoon: 'poslije podne',\n evening: 'navečer',\n night: 'noću'\n }\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutro',\n afternoon: 'popodne',\n evening: 'navečer',\n night: 'noću'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutro',\n afternoon: 'popodne',\n evening: 'navečer',\n night: 'noću'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutro',\n afternoon: 'poslije podne',\n evening: 'navečer',\n night: 'noću'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\./i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(pr\\.n\\.e\\.|AD)/i,\n abbreviated: /^(pr\\.\\s?Kr\\.|po\\.\\s?Kr\\.)/i,\n wide: /^(Prije Krista|prije nove ere|Poslije Krista|nova era)/i\n};\nvar parseEraPatterns = {\n any: [/^pr/i, /^(po|nova)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\.\\s?kv\\.?/i,\n wide: /^[1234]\\. kvartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(10|11|12|[123456789])\\./i,\n abbreviated: /^(sij|velj|(ožu|ozu)|tra|svi|lip|srp|kol|ruj|lis|stu|pro)/i,\n wide: /^((siječanj|siječnja|sijecanj|sijecnja)|(veljača|veljače|veljaca|veljace)|(ožujak|ožujka|ozujak|ozujka)|(travanj|travnja)|(svibanj|svibnja)|(lipanj|lipnja)|(srpanj|srpnja)|(kolovoz|kolovoza)|(rujan|rujna)|(listopad|listopada)|(studeni|studenog)|(prosinac|prosinca))/i\n};\nvar parseMonthPatterns = {\n narrow: [/(10|11|12|[123456789])/i],\n abbreviated: [/^sij/i, /^velj/i, /^(ožu|ozu)/i, /^tra/i, /^svi/i, /^lip/i, /^srp/i, /^kol/i, /^ruj/i, /^lis/i, /^stu/i, /^pro/i],\n wide: [/^sij/i, /^velj/i, /^(ožu|ozu)/i, /^tra/i, /^svi/i, /^lip/i, /^srp/i, /^kol/i, /^ruj/i, /^lis/i, /^stu/i, /^pro/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npusčc]/i,\n short: /^(ned|pon|uto|sri|(čet|cet)|pet|sub)/i,\n abbreviated: /^(ned|pon|uto|sri|(čet|cet)|pet|sub)/i,\n wide: /^(nedjelja|ponedjeljak|utorak|srijeda|(četvrtak|cetvrtak)|petak|subota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|ponoc|ponoć|(po)?podne|navecer|navečer|noću|poslije podne|ujutro)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^pono/i,\n noon: /^pod/i,\n morning: /jutro/i,\n afternoon: /(poslije\\s|po)+podne/i,\n evening: /(navece|naveče)/i,\n night: /(nocu|noću)/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'wide'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar translations = {\n about: 'körülbelül',\n over: 'több mint',\n almost: 'majdnem',\n lessthan: 'kevesebb mint'\n};\nvar withoutSuffixes = {\n xseconds: ' másodperc',\n halfaminute: 'fél perc',\n xminutes: ' perc',\n xhours: ' óra',\n xdays: ' nap',\n xweeks: ' hét',\n xmonths: ' hónap',\n xyears: ' év'\n};\nvar withSuffixes = {\n xseconds: {\n '-1': ' másodperccel ezelőtt',\n '1': ' másodperc múlva',\n '0': ' másodperce'\n },\n halfaminute: {\n '-1': 'fél perccel ezelőtt',\n '1': 'fél perc múlva',\n '0': 'fél perce'\n },\n xminutes: {\n '-1': ' perccel ezelőtt',\n '1': ' perc múlva',\n '0': ' perce'\n },\n xhours: {\n '-1': ' órával ezelőtt',\n '1': ' óra múlva',\n '0': ' órája'\n },\n xdays: {\n '-1': ' nappal ezelőtt',\n '1': ' nap múlva',\n '0': ' napja'\n },\n xweeks: {\n '-1': ' héttel ezelőtt',\n '1': ' hét múlva',\n '0': ' hete'\n },\n xmonths: {\n '-1': ' hónappal ezelőtt',\n '1': ' hónap múlva',\n '0': ' hónapja'\n },\n xyears: {\n '-1': ' évvel ezelőtt',\n '1': ' év múlva',\n '0': ' éve'\n }\n};\n\nfunction translate(number, addSuffix, key, comparison) {\n var translated = addSuffix ? withSuffixes[key][comparison] : withoutSuffixes[key];\n\n if (key === 'halfaminute') {\n return translated;\n }\n\n return number + translated;\n}\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var adverb = token.match(/about|over|almost|lessthan/i);\n var unit = token.replace(adverb, '');\n var result;\n result = translate(count, options.addSuffix, unit.toLowerCase(), options.comparison);\n\n if (adverb) {\n result = translations[adverb[0].toLowerCase()] + ' ' + result;\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'y. MMMM d., EEEE',\n long: 'y. MMMM d.',\n medium: 'y. MMM d.',\n short: 'y. MM. dd.'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar accusativeWeekdays = ['vasárnap', 'hétfőn', 'kedden', 'szerdán', 'csütörtökön', 'pénteken', 'szombaton'];\n\nfunction week(isFuture) {\n return function (date, _baseDate, _options) {\n var day = date.getUTCDay();\n return (isFuture ? '' : \"'múlt' \") + \"'\" + accusativeWeekdays[day] + \"'\" + \" p'-kor'\";\n };\n}\n\nvar formatRelativeLocale = {\n lastWeek: week(false),\n yesterday: \"'tegnap' p'-kor'\",\n today: \"'ma' p'-kor'\",\n tomorrow: \"'holnap' p'-kor'\",\n nextWeek: week(true),\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ie.', 'isz.'],\n abbreviated: ['i. e.', 'i. sz.'],\n wide: ['Krisztus előtt', 'időszámításunk szerint']\n};\nvar quarterValues = {\n narrow: ['1.', '2.', '3.', '4.'],\n abbreviated: ['1. n.év', '2. n.év', '3. n.év', '4. n.év'],\n wide: ['1. negyedév', '2. negyedév', '3. negyedév', '4. negyedév']\n};\nvar formattingQuarterValues = {\n narrow: ['I.', 'II.', 'III.', 'IV.'],\n abbreviated: ['I. n.év', 'II. n.év', 'III. n.év', 'IV. n.év'],\n wide: ['I. negyedév', 'II. negyedév', 'III. negyedév', 'IV. negyedév']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'A', 'Sz', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],\n wide: ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'],\n short: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n abbreviated: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n wide: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'du.',\n evening: 'este',\n night: 'éjjel'\n },\n abbreviated: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'du.',\n evening: 'este',\n night: 'éjjel'\n },\n wide: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'délután',\n evening: 'este',\n night: 'éjjel'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n formattingValues: formattingQuarterValues,\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ie\\.|isz\\.)/i,\n abbreviated: /^(i\\.\\s?e\\.?|b?\\s?c\\s?e|i\\.\\s?sz\\.?)/i,\n wide: /^(Krisztus előtt|időszámításunk előtt|időszámításunk szerint|i\\. sz\\.)/i\n};\nvar parseEraPatterns = {\n narrow: [/ie/i, /isz/i],\n abbreviated: [/^(i\\.?\\s?e\\.?|b\\s?ce)/i, /^(i\\.?\\s?sz\\.?|c\\s?e)/i],\n any: [/előtt/i, /(szerint|i. sz.)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]\\.?/i,\n abbreviated: /^[1234]?\\.?\\s?n\\.év/i,\n wide: /^([1234]|I|II|III|IV)?\\.?\\s?negyedév/i\n};\nvar parseQuarterPatterns = {\n any: [/1|I$/i, /2|II$/i, /3|III/i, /4|IV/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmaásond]|sz/i,\n abbreviated: /^(jan\\.?|febr\\.?|márc\\.?|ápr\\.?|máj\\.?|jún\\.?|júl\\.?|aug\\.?|szept\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n wide: /^(január|február|március|április|május|június|július|augusztus|szeptember|október|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a|á/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s|sz/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^már/i, /^áp/i, /^máj/i, /^jún/i, /^júl/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^([vhkpc]|sz|cs|sz)/i,\n short: /^([vhkp]|sze|cs|szo)/i,\n abbreviated: /^([vhkp]|sze|cs|szo)/i,\n wide: /^(vasárnap|hétfő|kedd|szerda|csütörtök|péntek|szombat)/i\n};\nvar parseDayPatterns = {\n narrow: [/^v/i, /^h/i, /^k/i, /^sz/i, /^c/i, /^p/i, /^sz/i],\n any: [/^v/i, /^h/i, /^k/i, /^sze/i, /^c/i, /^p/i, /^szo/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^((de|du)\\.?|éjfél|délután|dél|reggel|este|éjjel)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^de\\.?/i,\n pm: /^du\\.?/i,\n midnight: /^éjf/i,\n noon: /^dé/i,\n morning: /reg/i,\n afternoon: /^délu\\.?/i,\n evening: /es/i,\n night: /éjj/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'ավելի քիչ քան 1 վայրկյան',\n other: 'ավելի քիչ քան {{count}} վայրկյան'\n },\n xSeconds: {\n one: '1 վայրկյան',\n other: '{{count}} վայրկյան'\n },\n halfAMinute: 'կես րոպե',\n lessThanXMinutes: {\n one: 'ավելի քիչ քան 1 րոպե',\n other: 'ավելի քիչ քան {{count}} րոպե'\n },\n xMinutes: {\n one: '1 րոպե',\n other: '{{count}} րոպե'\n },\n aboutXHours: {\n one: 'մոտ 1 ժամ',\n other: 'մոտ {{count}} ժամ'\n },\n xHours: {\n one: '1 ժամ',\n other: '{{count}} ժամ'\n },\n xDays: {\n one: '1 օր',\n other: '{{count}} օր'\n },\n aboutXWeeks: {\n one: 'մոտ 1 շաբաթ',\n other: 'մոտ {{count}} շաբաթ'\n },\n xWeeks: {\n one: '1 շաբաթ',\n other: '{{count}} շաբաթ'\n },\n aboutXMonths: {\n one: 'մոտ 1 ամիս',\n other: 'մոտ {{count}} ամիս'\n },\n xMonths: {\n one: '1 ամիս',\n other: '{{count}} ամիս'\n },\n aboutXYears: {\n one: 'մոտ 1 տարի',\n other: 'մոտ {{count}} տարի'\n },\n xYears: {\n one: '1 տարի',\n other: '{{count}} տարի'\n },\n overXYears: {\n one: 'ավելի քան 1 տարի',\n other: 'ավելի քան {{count}} տարի'\n },\n almostXYears: {\n one: 'համարյա 1 տարի',\n other: 'համարյա {{count}} տարի'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' հետո';\n } else {\n return result + ' առաջ';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'd MMMM, y, EEEE',\n long: 'd MMMM, y',\n medium: 'd MMM, y',\n short: 'dd.MM.yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'ժ․'{{time}}\",\n long: \"{{date}} 'ժ․'{{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'նախորդ' eeee p'֊ին'\",\n yesterday: \"'երեկ' p'֊ին'\",\n today: \"'այսօր' p'֊ին'\",\n tomorrow: \"'վաղը' p'֊ին'\",\n nextWeek: \"'հաջորդ' eeee p'֊ին'\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['Ք', 'Մ'],\n abbreviated: ['ՔԱ', 'ՄԹ'],\n wide: ['Քրիստոսից առաջ', 'Մեր թվարկության']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Ք1', 'Ք2', 'Ք3', 'Ք4'],\n wide: ['1֊ին քառորդ', '2֊րդ քառորդ', '3֊րդ քառորդ', '4֊րդ քառորդ']\n};\nvar monthValues = {\n narrow: ['Հ', 'Փ', 'Մ', 'Ա', 'Մ', 'Հ', 'Հ', 'Օ', 'Ս', 'Հ', 'Ն', 'Դ'],\n abbreviated: ['հուն', 'փետ', 'մար', 'ապր', 'մայ', 'հուն', 'հուլ', 'օգս', 'սեպ', 'հոկ', 'նոյ', 'դեկ'],\n wide: ['հունվար', 'փետրվար', 'մարտ', 'ապրիլ', 'մայիս', 'հունիս', 'հուլիս', 'օգոստոս', 'սեպտեմբեր', 'հոկտեմբեր', 'նոյեմբեր', 'դեկտեմբեր']\n};\nvar dayValues = {\n narrow: ['Կ', 'Ե', 'Ե', 'Չ', 'Հ', 'Ո', 'Շ'],\n short: ['կր', 'եր', 'եք', 'չք', 'հգ', 'ուր', 'շբ'],\n abbreviated: ['կիր', 'երկ', 'երք', 'չոր', 'հնգ', 'ուրբ', 'շաբ'],\n wide: ['կիրակի', 'երկուշաբթի', 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'կեսգշ',\n noon: 'կեսօր',\n morning: 'առավոտ',\n afternoon: 'ցերեկ',\n evening: 'երեկո',\n night: 'գիշեր'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'կեսգիշեր',\n noon: 'կեսօր',\n morning: 'առավոտ',\n afternoon: 'ցերեկ',\n evening: 'երեկո',\n night: 'գիշեր'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'կեսգիշեր',\n noon: 'կեսօր',\n morning: 'առավոտ',\n afternoon: 'ցերեկ',\n evening: 'երեկո',\n night: 'գիշեր'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'կեսգշ',\n noon: 'կեսօր',\n morning: 'առավոտը',\n afternoon: 'ցերեկը',\n evening: 'երեկոյան',\n night: 'գիշերը'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'կեսգիշերին',\n noon: 'կեսօրին',\n morning: 'առավոտը',\n afternoon: 'ցերեկը',\n evening: 'երեկոյան',\n night: 'գիշերը'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'կեսգիշերին',\n noon: 'կեսօրին',\n morning: 'առավոտը',\n afternoon: 'ցերեկը',\n evening: 'երեկոյան',\n night: 'գիշերը'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 < 10) {\n if (rem100 % 10 === 1) {\n return number + '֊ին';\n }\n }\n\n return number + '֊րդ';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)((-|֊)?(ին|րդ))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(Ք|Մ)/i,\n abbreviated: /^(Ք\\.?\\s?Ա\\.?|Մ\\.?\\s?Թ\\.?\\s?Ա\\.?|Մ\\.?\\s?Թ\\.?|Ք\\.?\\s?Հ\\.?)/i,\n wide: /^(քրիստոսից առաջ|մեր թվարկությունից առաջ|մեր թվարկության|քրիստոսից հետո)/i\n};\nvar parseEraPatterns = {\n any: [/^(ք|մ)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ք[1234]/i,\n wide: /^[1234]((-|֊)?(ին|րդ)) քառորդ/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[հփմաօսնդ]/i,\n abbreviated: /^(հուն|փետ|մար|ապր|մայ|հուն|հուլ|օգս|սեպ|հոկ|նոյ|դեկ)/i,\n wide: /^(հունվար|փետրվար|մարտ|ապրիլ|մայիս|հունիս|հուլիս|օգոստոս|սեպտեմբեր|հոկտեմբեր|նոյեմբեր|դեկտեմբեր)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^հ/i, /^փ/i, /^մ/i, /^ա/i, /^մ/i, /^հ/i, /^հ/i, /^օ/i, /^ս/i, /^հ/i, /^ն/i, /^դ/i],\n any: [/^հու/i, /^փ/i, /^մար/i, /^ա/i, /^մայ/i, /^հուն/i, /^հուլ/i, /^օ/i, /^ս/i, /^հոկ/i, /^ն/i, /^դ/i]\n};\nvar matchDayPatterns = {\n narrow: /^[եչհոշկ]/i,\n short: /^(կր|եր|եք|չք|հգ|ուր|շբ)/i,\n abbreviated: /^(կիր|երկ|երք|չոր|հնգ|ուրբ|շաբ)/i,\n wide: /^(կիրակի|երկուշաբթի|երեքշաբթի|չորեքշաբթի|հինգշաբթի|ուրբաթ|շաբաթ)/i\n};\nvar parseDayPatterns = {\n narrow: [/^կ/i, /^ե/i, /^ե/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n short: [/^կ/i, /^եր/i, /^եք/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n abbreviated: [/^կ/i, /^երկ/i, /^երք/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n wide: [/^կ/i, /^երկ/i, /^երե/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^([ap]|կեսգշ|կեսօր|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i,\n any: /^([ap]\\.?\\s?m\\.?|կեսգիշեր(ին)?|կեսօր(ին)?|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /կեսգիշեր/i,\n noon: /կեսօր/i,\n morning: /առավոտ/i,\n afternoon: /ցերեկ/i,\n evening: /երեկո/i,\n night: /գիշեր/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'kurang dari 1 detik',\n other: 'kurang dari {{count}} detik'\n },\n xSeconds: {\n one: '1 detik',\n other: '{{count}} detik'\n },\n halfAMinute: 'setengah menit',\n lessThanXMinutes: {\n one: 'kurang dari 1 menit',\n other: 'kurang dari {{count}} menit'\n },\n xMinutes: {\n one: '1 menit',\n other: '{{count}} menit'\n },\n aboutXHours: {\n one: 'sekitar 1 jam',\n other: 'sekitar {{count}} jam'\n },\n xHours: {\n one: '1 jam',\n other: '{{count}} jam'\n },\n xDays: {\n one: '1 hari',\n other: '{{count}} hari'\n },\n aboutXWeeks: {\n one: 'sekitar 1 minggu',\n other: 'sekitar {{count}} minggu'\n },\n xWeeks: {\n one: '1 minggu',\n other: '{{count}} minggu'\n },\n aboutXMonths: {\n one: 'sekitar 1 bulan',\n other: 'sekitar {{count}} bulan'\n },\n xMonths: {\n one: '1 bulan',\n other: '{{count}} bulan'\n },\n aboutXYears: {\n one: 'sekitar 1 tahun',\n other: 'sekitar {{count}} tahun'\n },\n xYears: {\n one: '1 tahun',\n other: '{{count}} tahun'\n },\n overXYears: {\n one: 'lebih dari 1 tahun',\n other: 'lebih dari {{count}} tahun'\n },\n almostXYears: {\n one: 'hampir 1 tahun',\n other: 'hampir {{count}} tahun'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dalam waktu ' + result;\n } else {\n return result + ' yang lalu';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'd/M/yyyy'\n};\nvar timeFormats = {\n full: 'HH.mm.ss',\n long: 'HH.mm.ss',\n medium: 'HH.mm',\n short: 'HH.mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'pukul' {{time}}\",\n long: \"{{date}} 'pukul' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'lalu pukul' p\",\n yesterday: \"'Kemarin pukul' p\",\n today: \"'Hari ini pukul' p\",\n tomorrow: \"'Besok pukul' p\",\n nextWeek: \"eeee 'pukul' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// All data for localization are taken from this page\n// https://www.unicode.org/cldr/charts/32/summary/id.html\nvar eraValues = {\n narrow: ['SM', 'M'],\n abbreviated: ['SM', 'M'],\n wide: ['Sebelum Masehi', 'Masehi']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['Kuartal ke-1', 'Kuartal ke-2', 'Kuartal ke-3', 'Kuartal ke-4'] // Note: in Indonesian, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ags', 'Sep', 'Okt', 'Nov', 'Des'],\n wide: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']\n};\nvar dayValues = {\n narrow: ['M', 'S', 'S', 'R', 'K', 'J', 'S'],\n short: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],\n abbreviated: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],\n wide: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'siang',\n evening: 'sore',\n night: 'malam'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'siang',\n evening: 'sore',\n night: 'malam'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'siang',\n evening: 'sore',\n night: 'malam'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'siang',\n evening: 'sore',\n night: 'malam'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'siang',\n evening: 'sore',\n night: 'malam'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'siang',\n evening: 'sore',\n night: 'malam'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // Can't use \"pertama\", \"kedua\" because can't be parsed\n\n switch (number) {\n default:\n return 'ke-' + number;\n }\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^ke-(\\d+)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(sm|m)/i,\n abbreviated: /^(s\\.?\\s?m\\.?|s\\.?\\s?e\\.?\\s?u\\.?|m\\.?|e\\.?\\s?u\\.?)/i,\n wide: /^(sebelum masehi|sebelum era umum|masehi|era umum)/i\n};\nvar parseEraPatterns = {\n any: [/^s/i, /^(m|e)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K-?\\s[1234]/i,\n wide: /^Kuartal ke-?\\s?[1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|mei|jun|jul|agt|sep|okt|nov|des)/i,\n wide: /^(januari|februari|maret|april|mei|juni|juli|agustus|september|oktober|november|desember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^ma/i, /^ap/i, /^me/i, /^jun/i, /^jul/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[srkjm]/i,\n short: /^(min|sen|sel|rab|kam|jum|sab)/i,\n abbreviated: /^(min|sen|sel|rab|kam|jum|sab)/i,\n wide: /^(minggu|senin|selasa|rabu|kamis|jumat|sabtu)/i\n};\nvar parseDayPatterns = {\n narrow: [/^m/i, /^s/i, /^s/i, /^r/i, /^k/i, /^j/i, /^s/i],\n any: [/^m/i, /^sen/i, /^sel/i, /^r/i, /^k/i, /^j/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|tengah m|tengah h|(di(\\swaktu)?) (pagi|siang|sore|malam))/i,\n any: /^([ap]\\.?\\s?m\\.?|tengah malam|tengah hari|(di(\\swaktu)?) (pagi|siang|sore|malam))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^pm/i,\n midnight: /^tengah m/i,\n noon: /^tengah h/i,\n morning: /pagi/i,\n afternoon: /siang/i,\n evening: /sore/i,\n night: /malam/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minna en 1 sekúnda',\n other: 'minna en {{count}} sekúndur'\n },\n xSeconds: {\n one: '1 sekúnda',\n other: '{{count}} sekúndur'\n },\n halfAMinute: 'hálf mínúta',\n lessThanXMinutes: {\n one: 'minna en 1 mínúta',\n other: 'minna en {{count}} mínútur'\n },\n xMinutes: {\n one: '1 mínúta',\n other: '{{count}} mínútur'\n },\n aboutXHours: {\n one: 'u.þ.b. 1 klukkustund',\n other: 'u.þ.b. {{count}} klukkustundir'\n },\n xHours: {\n one: '1 klukkustund',\n other: '{{count}} klukkustundir'\n },\n xDays: {\n one: '1 dagur',\n other: '{{count}} dagar'\n },\n aboutXWeeks: {\n one: 'um viku',\n other: 'um {{count}} vikur'\n },\n xWeeks: {\n one: '1 viku',\n other: '{{count}} vikur'\n },\n aboutXMonths: {\n one: 'u.þ.b. 1 mánuður',\n other: 'u.þ.b. {{count}} mánuðir'\n },\n xMonths: {\n one: '1 mánuður',\n other: '{{count}} mánuðir'\n },\n aboutXYears: {\n one: 'u.þ.b. 1 ár',\n other: 'u.þ.b. {{count}} ár'\n },\n xYears: {\n one: '1 ár',\n other: '{{count}} ár'\n },\n overXYears: {\n one: 'meira en 1 ár',\n other: 'meira en {{count}} ár'\n },\n almostXYears: {\n one: 'næstum 1 ár',\n other: 'næstum {{count}} ár'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'í ' + result;\n } else {\n return result + ' síðan';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n long: 'do MMMM y',\n medium: 'do MMM y',\n short: 'd.MM.y'\n};\nvar timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'síðasta' dddd 'kl.' p\",\n yesterday: \"'í gær kl.' p\",\n today: \"'í dag kl.' p\",\n tomorrow: \"'á morgun kl.' p\",\n nextWeek: \"dddd 'kl.' p\",\n other: 'L'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['f.Kr.', 'e.Kr.'],\n abbreviated: ['f.Kr.', 'e.Kr.'],\n wide: ['fyrir Krist', 'eftir Krist']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1F', '2F', '3F', '4F'],\n wide: ['1. fjórðungur', '2. fjórðungur', '3. fjórðungur', '4. fjórðungur']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'Á', 'S', 'Ó', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'sept.', 'okt.', 'nóv.', 'des.'],\n wide: ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'Þ', 'M', 'F', 'F', 'L'],\n short: ['Su', 'Má', 'Þr', 'Mi', 'Fi', 'Fö', 'La'],\n abbreviated: ['sun.', 'mán.', 'þri.', 'mið.', 'fim.', 'fös.', 'lau'],\n wide: ['sunnudagur', 'mánudagur', 'þriðjudagur', 'miðvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'f',\n pm: 'e',\n midnight: 'miðnætti',\n noon: 'hádegi',\n morning: 'morgunn',\n afternoon: 'síðdegi',\n evening: 'kvöld',\n night: 'nótt'\n },\n abbreviated: {\n am: 'f.h.',\n pm: 'e.h.',\n midnight: 'miðnætti',\n noon: 'hádegi',\n morning: 'morgunn',\n afternoon: 'síðdegi',\n evening: 'kvöld',\n night: 'nótt'\n },\n wide: {\n am: 'fyrir hádegi',\n pm: 'eftir hádegi',\n midnight: 'miðnætti',\n noon: 'hádegi',\n morning: 'morgunn',\n afternoon: 'síðdegi',\n evening: 'kvöld',\n night: 'nótt'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'f',\n pm: 'e',\n midnight: 'á miðnætti',\n noon: 'á hádegi',\n morning: 'að morgni',\n afternoon: 'síðdegis',\n evening: 'um kvöld',\n night: 'um nótt'\n },\n abbreviated: {\n am: 'f.h.',\n pm: 'e.h.',\n midnight: 'á miðnætti',\n noon: 'á hádegi',\n morning: 'að morgni',\n afternoon: 'síðdegis',\n evening: 'um kvöld',\n night: 'um nótt'\n },\n wide: {\n am: 'fyrir hádegi',\n pm: 'eftir hádegi',\n midnight: 'á miðnætti',\n noon: 'á hádegi',\n morning: 'að morgni',\n afternoon: 'síðdegis',\n evening: 'um kvöld',\n night: 'um nótt'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(f\\.Kr\\.|e\\.Kr\\.)/i,\n abbreviated: /^(f\\.Kr\\.|e\\.Kr\\.)/i,\n wide: /^(fyrir Krist|eftir Krist)/i\n};\nvar parseEraPatterns = {\n any: [/^(f\\.Kr\\.|e\\.Kr\\.)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234] fjórðungur/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmásónd]/i,\n abbreviated: /^(jan\\.|feb\\.|mars\\.|apríl\\.|maí|júní|júlí|águst|sep\\.|oct\\.|nov\\.|dec\\.)/i,\n wide: /^(januar|februar|mars|apríl|maí|júní|júlí|águst|september|október|nóvember|desember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^á/i, /^s/i, /^ó/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^maí/i, /^jún/i, /^júl/i, /^áu/i, /^s/i, /^ó/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|má|þr|mi|fi|fö|la)/i,\n abbreviated: /^(sun|mán|þri|mið|fim|fös|lau)\\.?/i,\n wide: /^(sunnudagur|mánudagur|þriðjudagur|miðvikudagur|fimmtudagur|föstudagur|laugardagur)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^þ/i, /^m/i, /^f/i, /^f/i, /^l/i],\n any: [/^su/i, /^má/i, /^þr/i, /^mi/i, /^fi/i, /^fö/i, /^la/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(f|e|síðdegis|(á|að|um) (morgni|kvöld|nótt|miðnætti))/i,\n any: /^(fyrir hádegi|eftir hádegi|[ef]\\.?h\\.?|síðdegis|morgunn|(á|að|um) (morgni|kvöld|nótt|miðnætti))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^f/i,\n pm: /^e/i,\n midnight: /^mi/i,\n noon: /^há/i,\n morning: /morgunn/i,\n afternoon: /síðdegi/i,\n evening: /kvöld/i,\n night: /nótt/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'meno di un secondo',\n other: 'meno di {{count}} secondi'\n },\n xSeconds: {\n one: 'un secondo',\n other: '{{count}} secondi'\n },\n halfAMinute: 'alcuni secondi',\n lessThanXMinutes: {\n one: 'meno di un minuto',\n other: 'meno di {{count}} minuti'\n },\n xMinutes: {\n one: 'un minuto',\n other: '{{count}} minuti'\n },\n aboutXHours: {\n one: \"circa un'ora\",\n other: 'circa {{count}} ore'\n },\n xHours: {\n one: \"un'ora\",\n other: '{{count}} ore'\n },\n xDays: {\n one: 'un giorno',\n other: '{{count}} giorni'\n },\n aboutXWeeks: {\n one: 'circa una settimana',\n other: 'circa {{count}} settimane'\n },\n xWeeks: {\n one: 'una settimana',\n other: '{{count}} settimane'\n },\n aboutXMonths: {\n one: 'circa un mese',\n other: 'circa {{count}} mesi'\n },\n xMonths: {\n one: 'un mese',\n other: '{{count}} mesi'\n },\n aboutXYears: {\n one: 'circa un anno',\n other: 'circa {{count}} anni'\n },\n xYears: {\n one: 'un anno',\n other: '{{count}} anni'\n },\n overXYears: {\n one: 'più di un anno',\n other: 'più di {{count}} anni'\n },\n almostXYears: {\n one: 'quasi un anno',\n other: 'quasi {{count}} anni'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'tra ' + result;\n } else {\n return result + ' fa';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar weekdays = ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'];\n\nfunction lastWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica scorsa alle' p\";\n\n default:\n return \"'\" + weekdays[day] + \" scorso alle' p\";\n }\n}\n\nfunction thisWeek(day) {\n return \"'\" + weekdays[day] + \" alle' p\";\n}\n\nfunction nextWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica prossima alle' p\";\n\n default:\n return \"'\" + weekdays[day] + \" prossimo alle' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'ieri alle' p\",\n today: \"'oggi alle' p\",\n tomorrow: \"'domani alle' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a.C.', 'd.C.'],\n wide: ['avanti Cristo', 'dopo Cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],\n wide: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'G', 'V', 'S'],\n short: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n abbreviated: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n wide: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'm.',\n pm: 'p.',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'm.',\n pm: 'p.',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(aC|dC)/i,\n abbreviated: /^(a\\.?\\s?C\\.?|a\\.?\\s?e\\.?\\s?v\\.?|d\\.?\\s?C\\.?|e\\.?\\s?v\\.?)/i,\n wide: /^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i\n};\nvar parseEraPatterns = {\n any: [/^a/i, /^(d|e)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[gfmalsond]/i,\n abbreviated: /^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,\n wide: /^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^g/i, /^f/i, /^m/i, /^a/i, /^m/i, /^g/i, /^l/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ge/i, /^f/i, /^mar/i, /^ap/i, /^mag/i, /^gi/i, /^l/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmgvs]/i,\n short: /^(do|lu|ma|me|gi|ve|sa)/i,\n abbreviated: /^(dom|lun|mar|mer|gio|ven|sab)/i,\n wide: /^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^g/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^g/i, /^v/i, /^s/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|m\\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n any: /^([ap]\\.?\\s?m\\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mezza/i,\n noon: /^mezzo/i,\n morning: /mattina/i,\n afternoon: /pomeriggio/i,\n evening: /sera/i,\n night: /notte/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: '1秒未満',\n other: '{{count}}秒未満',\n oneWithSuffix: '約1秒',\n otherWithSuffix: '約{{count}}秒'\n },\n xSeconds: {\n one: '1秒',\n other: '{{count}}秒'\n },\n halfAMinute: '30秒',\n lessThanXMinutes: {\n one: '1分未満',\n other: '{{count}}分未満',\n oneWithSuffix: '約1分',\n otherWithSuffix: '約{{count}}分'\n },\n xMinutes: {\n one: '1分',\n other: '{{count}}分'\n },\n aboutXHours: {\n one: '約1時間',\n other: '約{{count}}時間'\n },\n xHours: {\n one: '1時間',\n other: '{{count}}時間'\n },\n xDays: {\n one: '1日',\n other: '{{count}}日'\n },\n aboutXWeeks: {\n one: '約1週間',\n other: '約{{count}}週間'\n },\n xWeeks: {\n one: '1週間',\n other: '{{count}}週間'\n },\n aboutXMonths: {\n one: '約1か月',\n other: '約{{count}}か月'\n },\n xMonths: {\n one: '1か月',\n other: '{{count}}か月'\n },\n aboutXYears: {\n one: '約1年',\n other: '約{{count}}年'\n },\n xYears: {\n one: '1年',\n other: '{{count}}年'\n },\n overXYears: {\n one: '1年以上',\n other: '{{count}}年以上'\n },\n almostXYears: {\n one: '1年近く',\n other: '{{count}}年近く'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n if (options.addSuffix && formatDistanceLocale[token].oneWithSuffix) {\n result = formatDistanceLocale[token].oneWithSuffix;\n } else {\n result = formatDistanceLocale[token].one;\n }\n } else {\n if (options.addSuffix && formatDistanceLocale[token].otherWithSuffix) {\n result = formatDistanceLocale[token].otherWithSuffix.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + '後';\n } else {\n return result + '前';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'y年M月d日EEEE',\n long: 'y年M月d日',\n medium: 'y/MM/dd',\n short: 'y/MM/dd'\n};\nvar timeFormats = {\n full: 'H時mm分ss秒 zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: '先週のeeeeのp',\n yesterday: '昨日のp',\n today: '今日のp',\n tomorrow: '明日のp',\n nextWeek: '翌週のeeeeのp',\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['BC', 'AC'],\n abbreviated: ['紀元前', '西暦'],\n wide: ['紀元前', '西暦']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['第1四半期', '第2四半期', '第3四半期', '第4四半期']\n};\nvar monthValues = {\n narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n abbreviated: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n wide: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']\n};\nvar dayValues = {\n narrow: ['日', '月', '火', '水', '木', '金', '土'],\n short: ['日', '月', '火', '水', '木', '金', '土'],\n abbreviated: ['日', '月', '火', '水', '木', '金', '土'],\n wide: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n abbreviated: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n wide: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n abbreviated: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n wide: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n\n if (unit === 'date') {\n return number + '日';\n }\n\n return number;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^第?\\d+(日)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(B\\.?C\\.?|A\\.?D\\.?)/i,\n abbreviated: /^(紀元[前後]|西暦)/i,\n wide: /^(紀元[前後]|西暦)/i\n};\nvar parseEraPatterns = {\n narrow: [/^B/i, /^A/i],\n any: [/^(紀元前)/i, /^(西暦|紀元後)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^Q[1234]/i,\n wide: /^第[1234一二三四1234]四半期/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|一|1)/i, /(2|二|2)/i, /(3|三|3)/i, /(4|四|4)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^([123456789]|1[012])/,\n abbreviated: /^([123456789]|1[012])月/i,\n wide: /^([123456789]|1[012])月/i\n};\nvar parseMonthPatterns = {\n any: [/^1\\D/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/]\n};\nvar matchDayPatterns = {\n narrow: /^[日月火水木金土]/,\n short: /^[日月火水木金土]/,\n abbreviated: /^[日月火水木金土]/,\n wide: /^[日月火水木金土]曜日/\n};\nvar parseDayPatterns = {\n any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/]\n};\nvar matchDayPeriodPatterns = {\n any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^(A|午前)/i,\n pm: /^(P|午後)/i,\n midnight: /^深夜|真夜中/i,\n noon: /^正午/i,\n morning: /^朝/i,\n afternoon: /^午後/i,\n evening: /^夜/i,\n night: /^深夜/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n past: '{{count}} წამზე ნაკლები ხნის წინ',\n present: '{{count}} წამზე ნაკლები',\n future: '{{count}} წამზე ნაკლებში'\n },\n xSeconds: {\n past: '{{count}} წამის წინ',\n present: '{{count}} წამი',\n future: '{{count}} წამში'\n },\n halfAMinute: {\n past: 'ნახევარი წუთის წინ',\n present: 'ნახევარი წუთი',\n future: 'ნახევარი წუთში'\n },\n lessThanXMinutes: {\n past: '{{count}} წუთზე ნაკლები ხნის წინ',\n present: '{{count}} წუთზე ნაკლები',\n future: '{{count}} წუთზე ნაკლებში'\n },\n xMinutes: {\n past: '{{count}} წუთის წინ',\n present: '{{count}} წუთი',\n future: '{{count}} წუთში'\n },\n aboutXHours: {\n past: 'დაახლოებით {{count}} საათის წინ',\n present: 'დაახლოებით {{count}} საათი',\n future: 'დაახლოებით {{count}} საათში'\n },\n xHours: {\n past: '{{count}} საათის წინ',\n present: '{{count}} საათი',\n future: '{{count}} საათში'\n },\n xDays: {\n past: '{{count}} დღის წინ',\n present: '{{count}} დღე',\n future: '{{count}} დღეში'\n },\n aboutXWeeks: {\n past: 'დაახლოებით {{count}} კვირას წინ',\n present: 'დაახლოებით {{count}} კვირა',\n future: 'დაახლოებით {{count}} კვირაში'\n },\n xWeeks: {\n past: '{{count}} კვირას კვირა',\n present: '{{count}} კვირა',\n future: '{{count}} კვირაში'\n },\n aboutXMonths: {\n past: 'დაახლოებით {{count}} თვის წინ',\n present: 'დაახლოებით {{count}} თვე',\n future: 'დაახლოებით {{count}} თვეში'\n },\n xMonths: {\n past: '{{count}} თვის წინ',\n present: '{{count}} თვე',\n future: '{{count}} თვეში'\n },\n aboutXYears: {\n past: 'დაახლოებით {{count}} წლის წინ',\n present: 'დაახლოებით {{count}} წელი',\n future: 'დაახლოებით {{count}} წელში'\n },\n xYears: {\n past: '{{count}} წლის წინ',\n present: '{{count}} წელი',\n future: '{{count}} წელში'\n },\n overXYears: {\n past: '{{count}} წელზე მეტი ხნის წინ',\n present: '{{count}} წელზე მეტი',\n future: '{{count}} წელზე მეტი ხნის შემდეგ'\n },\n almostXYears: {\n past: 'თითქმის {{count}} წლის წინ',\n present: 'თითქმის {{count}} წელი',\n future: 'თითქმის {{count}} წელში'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (options.addSuffix && options.comparison > 0) {\n result = formatDistanceLocale[token].future.replace('{{count}}', count);\n } else if (options.addSuffix && options.comparison <= 0) {\n result = formatDistanceLocale[token].past.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].present.replace('{{count}}', count);\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, do MMMM, y',\n long: 'do, MMMM, y',\n medium: 'd, MMM, y',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} {{time}}'-ზე'\",\n long: \"{{date}} {{time}}'-ზე'\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'წინა' eeee LT'-ზე'\",\n yesterday: \"'გუშინ' LT'-ზე'\",\n today: \"'დღეს' LT'-ზე'\",\n tomorrow: \"'ხვალ' LT'-ზე'\",\n nextWeek: \"'შემდეგი' eeee LT'-ზე'\",\n other: 'L'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ჩ.წ-მდე', 'ჩ.წ'],\n abbreviated: ['ჩვ.წ-მდე', 'ჩვ.წ'],\n wide: ['ჩვენს წელთაღრიცხვამდე', 'ჩვენი წელთაღრიცხვით']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-ლი კვ', '2-ე კვ', '3-ე კვ', '4-ე კვ'],\n wide: ['1-ლი კვარტალი', '2-ე კვარტალი', '3-ე კვარტალი', '4-ე კვარტალი'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['ია', 'თე', 'მა', 'აპ', 'მს', 'ვნ', 'ვლ', 'აგ', 'სე', 'ოქ', 'ნო', 'დე'],\n abbreviated: ['იან', 'თებ', 'მარ', 'აპრ', 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'],\n wide: ['იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი']\n};\nvar dayValues = {\n narrow: ['კვ', 'ორ', 'სა', 'ოთ', 'ხუ', 'პა', 'შა'],\n short: ['კვი', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'],\n abbreviated: ['კვი', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'],\n wide: ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'შუაღამე',\n noon: 'შუადღე',\n morning: 'დილა',\n afternoon: 'საღამო',\n evening: 'საღამო',\n night: 'ღამე'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'შუაღამე',\n noon: 'შუადღე',\n morning: 'დილა',\n afternoon: 'საღამო',\n evening: 'საღამო',\n night: 'ღამე'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'შუაღამე',\n noon: 'შუადღე',\n morning: 'დილა',\n afternoon: 'საღამო',\n evening: 'საღამო',\n night: 'ღამე'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'შუაღამით',\n noon: 'შუადღისას',\n morning: 'დილით',\n afternoon: 'ნაშუადღევს',\n evening: 'საღამოს',\n night: 'ღამით'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'შუაღამით',\n noon: 'შუადღისას',\n morning: 'დილით',\n afternoon: 'ნაშუადღევს',\n evening: 'საღამოს',\n night: 'ღამით'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'შუაღამით',\n noon: 'შუადღისას',\n morning: 'დილით',\n afternoon: 'ნაშუადღევს',\n evening: 'საღამოს',\n night: 'ღამით'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n if (number === 1) {\n return number + '-ლი';\n }\n\n return number + '-ე';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-ლი|-ე)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ჩვ?\\.წ)/i,\n abbreviated: /^(ჩვ?\\.წ)/i,\n wide: /^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე|ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i\n};\nvar parseEraPatterns = {\n any: [/^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე)/i, /^(ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]-(ლი|ე)? კვ/i,\n wide: /^[1234]-(ლი|ე)? კვარტალი/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n any: /^(ია|თე|მა|აპ|მს|ვნ|ვლ|აგ|სე|ოქ|ნო|დე)/i\n};\nvar parseMonthPatterns = {\n any: [/^ია/i, /^თ/i, /^მარ/i, /^აპ/i, /^მაი/i, /^ი?ვნ/i, /^ი?ვლ/i, /^აგ/i, /^ს/i, /^ო/i, /^ნ/i, /^დ/i]\n};\nvar matchDayPatterns = {\n narrow: /^(კვ|ორ|სა|ოთ|ხუ|პა|შა)/i,\n short: /^(კვი|ორშ|სამ|ოთხ|ხუთ|პარ|შაბ)/i,\n long: /^(კვირა|ორშაბათი|სამშაბათი|ოთხშაბათი|ხუთშაბათი|პარასკევი|შაბათი)/i\n};\nvar parseDayPatterns = {\n any: [/^კვ/i, /^ორ/i, /^სა/i, /^ოთ/i, /^ხუ/i, /^პა/i, /^შა/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^([ap]\\.?\\s?m\\.?|შუაღ|დილ)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^შუაღ/i,\n noon: /^შუადღ/i,\n morning: /^დილ/i,\n afternoon: /ნაშუადღევს/i,\n evening: /საღამო/i,\n night: /ღამ/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction declension(scheme, count) {\n // scheme for count=1 exists\n if (scheme.one !== undefined && count === 1) {\n return scheme.one;\n }\n\n var rem10 = count % 10;\n var rem100 = count % 100; // 1, 21, 31, ...\n\n if (rem10 === 1 && rem100 !== 11) {\n return scheme.singularNominative.replace('{{count}}', count); // 2, 3, 4, 22, 23, 24, 32 ...\n } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n return scheme.singularGenitive.replace('{{count}}', count); // 5, 6, 7, 8, 9, 10, 11, ...\n } else {\n return scheme.pluralGenitive.replace('{{count}}', count);\n }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n return function (count, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n if (scheme.future) {\n return declension(scheme.future, count);\n } else {\n return declension(scheme.regular, count) + ' кейін';\n }\n } else {\n if (scheme.past) {\n return declension(scheme.past, count);\n } else {\n return declension(scheme.regular, count) + ' бұрын';\n }\n }\n } else {\n return declension(scheme.regular, count);\n }\n };\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: buildLocalizeTokenFn({\n regular: {\n one: '1 секундтан аз',\n singularNominative: '{{count}} секундтан аз',\n singularGenitive: '{{count}} секундтан аз',\n pluralGenitive: '{{count}} секундтан аз'\n },\n future: {\n one: 'бір секундтан кейін',\n singularNominative: '{{count}} секундтан кейін',\n singularGenitive: '{{count}} секундтан кейін',\n pluralGenitive: '{{count}} секундтан кейін'\n }\n }),\n xSeconds: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} секунд',\n singularGenitive: '{{count}} секунд',\n pluralGenitive: '{{count}} секунд'\n },\n past: {\n singularNominative: '{{count}} секунд бұрын',\n singularGenitive: '{{count}} секунд бұрын',\n pluralGenitive: '{{count}} секунд бұрын'\n },\n future: {\n singularNominative: '{{count}} секундтан кейін',\n singularGenitive: '{{count}} секундтан кейін',\n pluralGenitive: '{{count}} секундтан кейін'\n }\n }),\n halfAMinute: function (_, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'жарты минут ішінде';\n } else {\n return 'жарты минут бұрын';\n }\n }\n\n return 'жарты минут';\n },\n lessThanXMinutes: buildLocalizeTokenFn({\n regular: {\n one: '1 минуттан аз',\n singularNominative: '{{count}} минуттан аз',\n singularGenitive: '{{count}} минуттан аз',\n pluralGenitive: '{{count}} минуттан аз'\n },\n future: {\n one: 'минуттан кем ',\n singularNominative: '{{count}} минуттан кем',\n singularGenitive: '{{count}} минуттан кем',\n pluralGenitive: '{{count}} минуттан кем'\n }\n }),\n xMinutes: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} минут',\n singularGenitive: '{{count}} минут',\n pluralGenitive: '{{count}} минут'\n },\n past: {\n singularNominative: '{{count}} минут бұрын',\n singularGenitive: '{{count}} минут бұрын',\n pluralGenitive: '{{count}} минут бұрын'\n },\n future: {\n singularNominative: '{{count}} минуттан кейін',\n singularGenitive: '{{count}} минуттан кейін',\n pluralGenitive: '{{count}} минуттан кейін'\n }\n }),\n aboutXHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'шамамен {{count}} сағат',\n singularGenitive: 'шамамен {{count}} сағат',\n pluralGenitive: 'шамамен {{count}} сағат'\n },\n future: {\n singularNominative: 'шамамен {{count}} сағаттан кейін',\n singularGenitive: 'шамамен {{count}} сағаттан кейін',\n pluralGenitive: 'шамамен {{count}} сағаттан кейін'\n }\n }),\n xHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} сағат',\n singularGenitive: '{{count}} сағат',\n pluralGenitive: '{{count}} сағат'\n }\n }),\n xDays: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} күн',\n singularGenitive: '{{count}} күн',\n pluralGenitive: '{{count}} күн'\n },\n future: {\n singularNominative: '{{count}} күннен кейін',\n singularGenitive: '{{count}} күннен кейін',\n pluralGenitive: '{{count}} күннен кейін'\n }\n }),\n aboutXWeeks: {\n one: 'шамамен 1 апта',\n other: 'шамамен {{count}} апта'\n },\n xWeeks: {\n one: '1 апта',\n other: '{{count}} апта'\n },\n aboutXMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'шамамен {{count}} ай',\n singularGenitive: 'шамамен {{count}} ай',\n pluralGenitive: 'шамамен {{count}} ай'\n },\n future: {\n singularNominative: 'шамамен {{count}} айдан кейін',\n singularGenitive: 'шамамен {{count}} айдан кейін',\n pluralGenitive: 'шамамен {{count}} айдан кейін'\n }\n }),\n xMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} ай',\n singularGenitive: '{{count}} ай',\n pluralGenitive: '{{count}} ай'\n }\n }),\n aboutXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'шамамен {{count}} жыл',\n singularGenitive: 'шамамен {{count}} жыл',\n pluralGenitive: 'шамамен {{count}} жыл'\n },\n future: {\n singularNominative: 'шамамен {{count}} жылдан кейін',\n singularGenitive: 'шамамен {{count}} жылдан кейін',\n pluralGenitive: 'шамамен {{count}} жылдан кейін'\n }\n }),\n xYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} жыл',\n singularGenitive: '{{count}} жыл',\n pluralGenitive: '{{count}} жыл'\n },\n future: {\n singularNominative: '{{count}} жылдан кейін',\n singularGenitive: '{{count}} жылдан кейін',\n pluralGenitive: '{{count}} жылдан кейін'\n }\n }),\n overXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} жылдан астам',\n singularGenitive: '{{count}} жылдан астам',\n pluralGenitive: '{{count}} жылдан астам'\n },\n future: {\n singularNominative: '{{count}} жылдан астам',\n singularGenitive: '{{count}} жылдан астам',\n pluralGenitive: '{{count}} жылдан астам'\n }\n }),\n almostXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} жылға жақын',\n singularGenitive: '{{count}} жылға жақын',\n pluralGenitive: '{{count}} жылға жақын'\n },\n future: {\n singularNominative: '{{count}} жылдан кейін',\n singularGenitive: '{{count}} жылдан кейін',\n pluralGenitive: '{{count}} жылдан кейін'\n }\n })\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n return formatDistanceLocale[token](count, options);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, do MMMM y 'ж.'\",\n long: \"do MMMM y 'ж.'\",\n medium: \"d MMM y 'ж.'\",\n short: 'dd.MM.yyyy'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar accusativeWeekdays = ['жексенбіде', 'дүйсенбіде', 'сейсенбіде', 'сәрсенбіде', 'бейсенбіде', 'жұмада', 'сенбіде'];\n\nfunction lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n return \"'өткен \" + weekday + \" сағат' p'-де'\";\n}\n\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n return \"'\" + weekday + \" сағат' p'-де'\";\n}\n\nfunction nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n return \"'келесі \" + weekday + \" сағат' p'-де'\";\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'кеше сағат' p'-де'\",\n today: \"'бүгін сағат' p'-де'\",\n tomorrow: \"'ертең сағат' p'-де'\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['б.з.д.', 'б.з.'],\n abbreviated: ['б.з.д.', 'б.з.'],\n wide: ['біздің заманымызға дейін', 'біздің заманымыз']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-ші тоқ.', '2-ші тоқ.', '3-ші тоқ.', '4-ші тоқ.'],\n wide: ['1-ші тоқсан', '2-ші тоқсан', '3-ші тоқсан', '4-ші тоқсан']\n};\nvar monthValues = {\n narrow: ['Қ', 'А', 'Н', 'С', 'М', 'М', 'Ш', 'Т', 'Қ', 'Қ', 'Қ', 'Ж'],\n abbreviated: ['қаң', 'ақп', 'нау', 'сәу', 'мам', 'мау', 'шіл', 'там', 'қыр', 'қаз', 'қар', 'жел'],\n wide: ['қаңтар', 'ақпан', 'наурыз', 'сәуір', 'мамыр', 'маусым', 'шілде', 'тамыз', 'қыркүйек', 'қазан', 'қараша', 'желтоқсан']\n};\nvar formattingMonthValues = {\n narrow: ['Қ', 'А', 'Н', 'С', 'М', 'М', 'Ш', 'Т', 'Қ', 'Қ', 'Қ', 'Ж'],\n abbreviated: ['қаң', 'ақп', 'нау', 'сәу', 'мам', 'мау', 'шіл', 'там', 'қыр', 'қаз', 'қар', 'жел'],\n wide: ['қаңтар', 'ақпан', 'наурыз', 'сәуір', 'мамыр', 'маусым', 'шілде', 'тамыз', 'қыркүйек', 'қазан', 'қараша', 'желтоқсан']\n};\nvar dayValues = {\n narrow: ['Ж', 'Д', 'С', 'С', 'Б', 'Ж', 'С'],\n short: ['жс', 'дс', 'сс', 'ср', 'бс', 'жм', 'сб'],\n abbreviated: ['жс', 'дс', 'сс', 'ср', 'бс', 'жм', 'сб'],\n wide: ['жексенбі', 'дүйсенбі', 'сейсенбі', 'сәрсенбі', 'бейсенбі', 'жұма', 'сенбі']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ТД',\n pm: 'ТК',\n midnight: 'түн ортасы',\n noon: 'түс',\n morning: 'таң',\n afternoon: 'күндіз',\n evening: 'кеш',\n night: 'түн'\n },\n wide: {\n am: 'ТД',\n pm: 'ТК',\n midnight: 'түн ортасы',\n noon: 'түс',\n morning: 'таң',\n afternoon: 'күндіз',\n evening: 'кеш',\n night: 'түн'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ТД',\n pm: 'ТК',\n midnight: 'түн ортасында',\n noon: 'түс',\n morning: 'таң',\n afternoon: 'күн',\n evening: 'кеш',\n night: 'түн'\n },\n wide: {\n am: 'ТД',\n pm: 'ТК',\n midnight: 'түн ортасында',\n noon: 'түсте',\n morning: 'таңертең',\n afternoon: 'күндіз',\n evening: 'кеште',\n night: 'түнде'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (unit === 'date') {\n suffix = '-ші';\n } else if (unit === 'week' || unit === 'minute' || unit === 'second') {\n suffix = '-ші';\n } else {\n suffix = '-ші';\n }\n\n return dirtyNumber + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'any',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?(ші|шы))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^((б )?з\\.?\\s?д\\.?)/i,\n abbreviated: /^((б )?з\\.?\\s?д\\.?)/i,\n wide: /^(біздің заманымызға дейін|біздің заманымыз|біздің заманымыздан)/i\n};\nvar parseEraPatterns = {\n any: [/^б/i, /^з/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](-?ші)? тоқ.?/i,\n wide: /^[1234](-?ші)? тоқсан/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(қ|а|н|с|м|мау|ш|т|қыр|қаз|қар|ж)/i,\n abbreviated: /^(қаң|ақп|нау|сәу|мам|мау|шіл|там|қыр|қаз|қар|жел)/i,\n wide: /^(қаңтар|ақпан|наурыз|сәуір|мамыр|маусым|шілде|тамыз|қыркүйек|қазан|қараша|желтоқсан)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^қ/i, /^а/i, /^н/i, /^с/i, /^м/i, /^м/i, /^ш/i, /^т/i, /^қ/i, /^қ/i, /^қ/i, /^ж/i],\n abbreviated: [/^қаң/i, /^ақп/i, /^нау/i, /^сәу/i, /^мам/i, /^мау/i, /^шіл/i, /^там/i, /^қыр/i, /^қаз/i, /^қар/i, /^жел/i],\n any: [/^қ/i, /^а/i, /^н/i, /^с/i, /^м/i, /^м/i, /^ш/i, /^т/i, /^қ/i, /^қ/i, /^қ/i, /^ж/i]\n};\nvar matchDayPatterns = {\n narrow: /^(ж|д|с|с|б|ж|с)/i,\n short: /^(жс|дс|сс|ср|бс|жм|сб)/i,\n wide: /^(жексенбі|дүйсенбі|сейсенбі|сәрсенбі|бейсенбі|жұма|сенбі)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ж/i, /^д/i, /^с/i, /^с/i, /^б/i, /^ж/i, /^с/i],\n short: [/^жс/i, /^дс/i, /^сс/i, /^ср/i, /^бс/i, /^жм/i, /^сб/i],\n any: [/^ж[ек]/i, /^д[үй]/i, /^сe[й]/i, /^сә[р]/i, /^б[ей]/i, /^ж[ұм]/i, /^се[н]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^Т\\.?\\s?[ДК]\\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\\.?)/i,\n wide: /^Т\\.?\\s?[ДК]\\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\\.?)/i,\n any: /^Т\\.?\\s?[ДК]\\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\\.?)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ТД/i,\n pm: /^ТК/i,\n midnight: /^түн орта/i,\n noon: /^күндіз/i,\n morning: /таң/i,\n afternoon: /түс/i,\n evening: /кеш/i,\n night: /түн/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n default: '1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ',\n future: '1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ',\n past: '1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ'\n },\n other: {\n default: '{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ',\n future: '{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ',\n past: '{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ'\n }\n },\n xSeconds: {\n one: {\n default: '1 ಸೆಕೆಂಡ್',\n future: '1 ಸೆಕೆಂಡ್‌ನಲ್ಲಿ',\n past: '1 ಸೆಕೆಂಡ್ ಹಿಂದೆ'\n },\n other: {\n default: '{{count}} ಸೆಕೆಂಡುಗಳು',\n future: '{{count}} ಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ',\n past: '{{count}} ಸೆಕೆಂಡ್ ಹಿಂದೆ'\n }\n },\n halfAMinute: {\n other: {\n default: 'ಅರ್ಧ ನಿಮಿಷ',\n future: 'ಅರ್ಧ ನಿಮಿಷದಲ್ಲಿ',\n past: 'ಅರ್ಧ ನಿಮಿಷದ ಹಿಂದೆ'\n }\n },\n lessThanXMinutes: {\n one: {\n default: '1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ',\n future: '1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ',\n past: '1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ'\n },\n other: {\n default: '{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ',\n future: '{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ',\n past: '{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ'\n }\n },\n xMinutes: {\n one: {\n default: '1 ನಿಮಿಷ',\n future: '1 ನಿಮಿಷದಲ್ಲಿ',\n past: '1 ನಿಮಿಷದ ಹಿಂದೆ'\n },\n other: {\n default: '{{count}} ನಿಮಿಷಗಳು',\n future: '{{count}} ನಿಮಿಷಗಳಲ್ಲಿ',\n past: '{{count}} ನಿಮಿಷಗಳ ಹಿಂದೆ'\n }\n },\n aboutXHours: {\n one: {\n default: 'ಸುಮಾರು 1 ಗಂಟೆ',\n future: 'ಸುಮಾರು 1 ಗಂಟೆಯಲ್ಲಿ',\n past: 'ಸುಮಾರು 1 ಗಂಟೆ ಹಿಂದೆ'\n },\n other: {\n default: 'ಸುಮಾರು {{count}} ಗಂಟೆಗಳು',\n future: 'ಸುಮಾರು {{count}} ಗಂಟೆಗಳಲ್ಲಿ',\n past: 'ಸುಮಾರು {{count}} ಗಂಟೆಗಳ ಹಿಂದೆ'\n }\n },\n xHours: {\n one: {\n default: '1 ಗಂಟೆ',\n future: '1 ಗಂಟೆಯಲ್ಲಿ',\n past: '1 ಗಂಟೆ ಹಿಂದೆ'\n },\n other: {\n default: '{{count}} ಗಂಟೆಗಳು',\n future: '{{count}} ಗಂಟೆಗಳಲ್ಲಿ',\n past: '{{count}} ಗಂಟೆಗಳ ಹಿಂದೆ'\n }\n },\n xDays: {\n one: {\n default: '1 ದಿನ',\n future: '1 ದಿನದಲ್ಲಿ',\n past: '1 ದಿನದ ಹಿಂದೆ'\n },\n other: {\n default: '{{count}} ದಿನಗಳು',\n future: '{{count}} ದಿನಗಳಲ್ಲಿ',\n past: '{{count}} ದಿನಗಳ ಹಿಂದೆ'\n }\n },\n aboutXMonths: {\n one: {\n default: 'ಸುಮಾರು 1 ತಿಂಗಳು',\n future: 'ಸುಮಾರು 1 ತಿಂಗಳಲ್ಲಿ',\n past: 'ಸುಮಾರು 1 ತಿಂಗಳ ಹಿಂದೆ'\n },\n other: {\n default: 'ಸುಮಾರು {{count}} ತಿಂಗಳು',\n future: 'ಸುಮಾರು {{count}} ತಿಂಗಳುಗಳಲ್ಲಿ',\n past: 'ಸುಮಾರು {{count}} ತಿಂಗಳುಗಳ ಹಿಂದೆ'\n }\n },\n xMonths: {\n one: {\n default: '1 ತಿಂಗಳು',\n future: '1 ತಿಂಗಳಲ್ಲಿ',\n past: '1 ತಿಂಗಳ ಹಿಂದೆ'\n },\n other: {\n default: '{{count}} ತಿಂಗಳು',\n future: '{{count}} ತಿಂಗಳುಗಳಲ್ಲಿ',\n past: '{{count}} ತಿಂಗಳುಗಳ ಹಿಂದೆ'\n }\n },\n aboutXYears: {\n one: {\n default: 'ಸುಮಾರು 1 ವರ್ಷ',\n future: 'ಸುಮಾರು 1 ವರ್ಷದಲ್ಲಿ',\n past: 'ಸುಮಾರು 1 ವರ್ಷದ ಹಿಂದೆ'\n },\n other: {\n default: 'ಸುಮಾರು {{count}} ವರ್ಷಗಳು',\n future: 'ಸುಮಾರು {{count}} ವರ್ಷಗಳಲ್ಲಿ',\n past: 'ಸುಮಾರು {{count}} ವರ್ಷಗಳ ಹಿಂದೆ'\n }\n },\n xYears: {\n one: {\n default: '1 ವರ್ಷ',\n future: '1 ವರ್ಷದಲ್ಲಿ',\n past: '1 ವರ್ಷದ ಹಿಂದೆ'\n },\n other: {\n default: '{{count}} ವರ್ಷಗಳು',\n future: '{{count}} ವರ್ಷಗಳಲ್ಲಿ',\n past: '{{count}} ವರ್ಷಗಳ ಹಿಂದೆ'\n }\n },\n overXYears: {\n one: {\n default: '1 ವರ್ಷದ ಮೇಲೆ',\n future: '1 ವರ್ಷದ ಮೇಲೆ',\n past: '1 ವರ್ಷದ ಮೇಲೆ'\n },\n other: {\n default: '{{count}} ವರ್ಷಗಳ ಮೇಲೆ',\n future: '{{count}} ವರ್ಷಗಳ ಮೇಲೆ',\n past: '{{count}} ವರ್ಷಗಳ ಮೇಲೆ'\n }\n },\n almostXYears: {\n one: {\n default: 'ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ',\n future: 'ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ',\n past: 'ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ'\n },\n other: {\n default: 'ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ',\n future: 'ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ',\n past: 'ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ'\n }\n }\n};\n\nfunction getResultByTense(parentToken, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return parentToken.future;\n } else {\n return parentToken.past;\n }\n }\n\n return parentToken.default;\n}\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = getResultByTense(formatDistanceLocale[token].one, options);\n } else {\n result = getResultByTense(formatDistanceLocale[token].other, options);\n }\n\n return result.replace('{{count}}', count);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Reference: https://www.unicode.org/cldr/charts/32/summary/kn.html\nvar dateFormats = {\n full: 'EEEE, MMMM d, y',\n // CLDR 1816\n long: 'MMMM d, y',\n // CLDR 1817\n medium: 'MMM d, y',\n // CLDR 1818\n short: 'd/M/yy' // CLDR 1819\n\n};\nvar timeFormats = {\n full: 'hh:mm:ss a zzzz',\n // CLDR 1820\n long: 'hh:mm:ss a z',\n // CLDR 1821\n medium: 'hh:mm:ss a',\n // CLDR 1822\n short: 'hh:mm a' // CLDR 1823\n\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n // CLDR 1824\n long: '{{date}} {{time}}',\n // CLDR 1825\n medium: '{{date}} {{time}}',\n // CLDR 1826\n short: '{{date}} {{time}}' // CLDR 1827\n\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'ಕಳೆದ' eeee p 'ಕ್ಕೆ'\",\n yesterday: \"'ನಿನ್ನೆ' p 'ಕ್ಕೆ'\",\n today: \"'ಇಂದು' p 'ಕ್ಕೆ'\",\n tomorrow: \"'ನಾಳೆ' p 'ಕ್ಕೆ'\",\n nextWeek: \"eeee p 'ಕ್ಕೆ'\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Reference: https://www.unicode.org/cldr/charts/32/summary/kn.html\nvar eraValues = {\n narrow: ['ಕ್ರಿ.ಪೂ', 'ಕ್ರಿ.ಶ'],\n abbreviated: ['ಕ್ರಿ.ಪೂ', 'ಕ್ರಿ.ಶ'],\n // CLDR #1618, #1620\n wide: ['ಕ್ರಿಸ್ತ ಪೂರ್ವ', 'ಕ್ರಿಸ್ತ ಶಕ'] // CLDR #1614, #1616\n\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ತ್ರೈ 1', 'ತ್ರೈ 2', 'ತ್ರೈ 3', 'ತ್ರೈ 4'],\n // CLDR #1630 - #1638\n wide: ['1ನೇ ತ್ರೈಮಾಸಿಕ', '2ನೇ ತ್ರೈಮಾಸಿಕ', '3ನೇ ತ್ರೈಮಾಸಿಕ', '4ನೇ ತ್ರೈಮಾಸಿಕ'] // CLDR #1622 - #1629\n // CLDR #1646 - #1717\n\n};\nvar monthValues = {\n narrow: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಏ', 'ಮೇ', 'ಜೂ', 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'],\n abbreviated: ['ಜನ', 'ಫೆಬ್ರ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿ', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗ', 'ಸೆಪ್ಟೆಂ', 'ಅಕ್ಟೋ', 'ನವೆಂ', 'ಡಿಸೆಂ'],\n wide: ['ಜನವರಿ', 'ಫೆಬ್ರವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'] // CLDR #1718 - #1773\n\n};\nvar dayValues = {\n narrow: ['ಭಾ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],\n short: ['ಭಾನು', 'ಸೋಮ', 'ಮಂಗಳ', 'ಬುಧ', 'ಗುರು', 'ಶುಕ್ರ', 'ಶನಿ'],\n abbreviated: ['ಭಾನು', 'ಸೋಮ', 'ಮಂಗಳ', 'ಬುಧ', 'ಗುರು', 'ಶುಕ್ರ', 'ಶನಿ'],\n wide: ['ಭಾನುವಾರ', 'ಸೋಮವಾರ', 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'] // CLDR #1774 - #1815\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ಪೂರ್ವಾಹ್ನ',\n pm: 'ಅಪರಾಹ್ನ',\n midnight: 'ಮಧ್ಯರಾತ್ರಿ',\n noon: 'ಮಧ್ಯಾಹ್ನ',\n morning: 'ಬೆಳಗ್ಗೆ',\n afternoon: 'ಮಧ್ಯಾಹ್ನ',\n evening: 'ಸಂಜೆ',\n night: 'ರಾತ್ರಿ'\n },\n abbreviated: {\n am: 'ಪೂರ್ವಾಹ್ನ',\n pm: 'ಅಪರಾಹ್ನ',\n midnight: 'ಮಧ್ಯರಾತ್ರಿ',\n noon: 'ಮಧ್ಯಾನ್ಹ',\n morning: 'ಬೆಳಗ್ಗೆ',\n afternoon: 'ಮಧ್ಯಾನ್ಹ',\n evening: 'ಸಂಜೆ',\n night: 'ರಾತ್ರಿ'\n },\n wide: {\n am: 'ಪೂರ್ವಾಹ್ನ',\n pm: 'ಅಪರಾಹ್ನ',\n midnight: 'ಮಧ್ಯರಾತ್ರಿ',\n noon: 'ಮಧ್ಯಾನ್ಹ',\n morning: 'ಬೆಳಗ್ಗೆ',\n afternoon: 'ಮಧ್ಯಾನ್ಹ',\n evening: 'ಸಂಜೆ',\n night: 'ರಾತ್ರಿ'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ಪೂ',\n pm: 'ಅ',\n midnight: 'ಮಧ್ಯರಾತ್ರಿ',\n noon: 'ಮಧ್ಯಾನ್ಹ',\n morning: 'ಬೆಳಗ್ಗೆ',\n afternoon: 'ಮಧ್ಯಾನ್ಹ',\n evening: 'ಸಂಜೆ',\n night: 'ರಾತ್ರಿ'\n },\n abbreviated: {\n am: 'ಪೂರ್ವಾಹ್ನ',\n pm: 'ಅಪರಾಹ್ನ',\n midnight: 'ಮಧ್ಯ ರಾತ್ರಿ',\n noon: 'ಮಧ್ಯಾನ್ಹ',\n morning: 'ಬೆಳಗ್ಗೆ',\n afternoon: 'ಮಧ್ಯಾನ್ಹ',\n evening: 'ಸಂಜೆ',\n night: 'ರಾತ್ರಿ'\n },\n wide: {\n am: 'ಪೂರ್ವಾಹ್ನ',\n pm: 'ಅಪರಾಹ್ನ',\n midnight: 'ಮಧ್ಯ ರಾತ್ರಿ',\n noon: 'ಮಧ್ಯಾನ್ಹ',\n morning: 'ಬೆಳಗ್ಗೆ',\n afternoon: 'ಮಧ್ಯಾನ್ಹ',\n evening: 'ಸಂಜೆ',\n night: 'ರಾತ್ರಿ'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + 'ನೇ';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(ನೇ|ನೆ)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ಕ್ರಿ.ಪೂ|ಕ್ರಿ.ಶ)/i,\n abbreviated: /^(ಕ್ರಿ\\.?\\s?ಪೂ\\.?|ಕ್ರಿ\\.?\\s?ಶ\\.?|ಪ್ರ\\.?\\s?ಶ\\.?)/i,\n wide: /^(ಕ್ರಿಸ್ತ ಪೂರ್ವ|ಕ್ರಿಸ್ತ ಶಕ|ಪ್ರಸಕ್ತ ಶಕ)/i\n};\nvar parseEraPatterns = {\n any: [/^ಪೂ/i, /^(ಶ|ಪ್ರ)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ತ್ರೈ[1234]|ತ್ರೈ [1234]| [1234]ತ್ರೈ/i,\n wide: /^[1234](ನೇ)? ತ್ರೈಮಾಸಿಕ/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(ಜೂ|ಜು|ಜ|ಫೆ|ಮಾ|ಏ|ಮೇ|ಆ|ಸೆ|ಅ|ನ|ಡಿ)/i,\n abbreviated: /^(ಜನ|ಫೆಬ್ರ|ಮಾರ್ಚ್|ಏಪ್ರಿ|ಮೇ|ಜೂನ್|ಜುಲೈ|ಆಗ|ಸೆಪ್ಟೆಂ|ಅಕ್ಟೋ|ನವೆಂ|ಡಿಸೆಂ)/i,\n wide: /^(ಜನವರಿ|ಫೆಬ್ರವರಿ|ಮಾರ್ಚ್|ಏಪ್ರಿಲ್|ಮೇ|ಜೂನ್|ಜುಲೈ|ಆಗಸ್ಟ್|ಸೆಪ್ಟೆಂಬರ್|ಅಕ್ಟೋಬರ್|ನವೆಂಬರ್|ಡಿಸೆಂಬರ್)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ಜ$/i, /^ಫೆ/i, /^ಮಾ/i, /^ಏ/i, /^ಮೇ/i, /^ಜೂ/i, /^ಜು$/i, /^ಆ/i, /^ಸೆ/i, /^ಅ/i, /^ನ/i, /^ಡಿ/i],\n any: [/^ಜನ/i, /^ಫೆ/i, /^ಮಾ/i, /^ಏ/i, /^ಮೇ/i, /^ಜೂನ್/i, /^ಜುಲೈ/i, /^ಆ/i, /^ಸೆ/i, /^ಅ/i, /^ನ/i, /^ಡಿ/i]\n};\nvar matchDayPatterns = {\n narrow: /^(ಭಾ|ಸೋ|ಮ|ಬು|ಗು|ಶು|ಶ)/i,\n short: /^(ಭಾನು|ಸೋಮ|ಮಂಗಳ|ಬುಧ|ಗುರು|ಶುಕ್ರ|ಶನಿ)/i,\n abbreviated: /^(ಭಾನು|ಸೋಮ|ಮಂಗಳ|ಬುಧ|ಗುರು|ಶುಕ್ರ|ಶನಿ)/i,\n wide: /^(ಭಾನುವಾರ|ಸೋಮವಾರ|ಮಂಗಳವಾರ|ಬುಧವಾರ|ಗುರುವಾರ|ಶುಕ್ರವಾರ|ಶನಿವಾರ)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ಭಾ/i, /^ಸೋ/i, /^ಮ/i, /^ಬು/i, /^ಗು/i, /^ಶು/i, /^ಶ/i],\n any: [/^ಭಾ/i, /^ಸೋ/i, /^ಮ/i, /^ಬು/i, /^ಗು/i, /^ಶು/i, /^ಶ/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(ಪೂ|ಅ|ಮಧ್ಯರಾತ್ರಿ|ಮಧ್ಯಾನ್ಹ|ಬೆಳಗ್ಗೆ|ಸಂಜೆ|ರಾತ್ರಿ)/i,\n any: /^(ಪೂರ್ವಾಹ್ನ|ಅಪರಾಹ್ನ|ಮಧ್ಯರಾತ್ರಿ|ಮಧ್ಯಾನ್ಹ|ಬೆಳಗ್ಗೆ|ಸಂಜೆ|ರಾತ್ರಿ)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ಪೂ/i,\n pm: /^ಅ/i,\n midnight: /ಮಧ್ಯರಾತ್ರಿ/i,\n noon: /ಮಧ್ಯಾನ್ಹ/i,\n morning: /ಬೆಳಗ್ಗೆ/i,\n afternoon: /ಮಧ್ಯಾನ್ಹ/i,\n evening: /ಸಂಜೆ/i,\n night: /ರಾತ್ರಿ/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: '1초 미만',\n other: '{{count}}초 미만'\n },\n xSeconds: {\n one: '1초',\n other: '{{count}}초'\n },\n halfAMinute: '30초',\n lessThanXMinutes: {\n one: '1분 미만',\n other: '{{count}}분 미만'\n },\n xMinutes: {\n one: '1분',\n other: '{{count}}분'\n },\n aboutXHours: {\n one: '약 1시간',\n other: '약 {{count}}시간'\n },\n xHours: {\n one: '1시간',\n other: '{{count}}시간'\n },\n xDays: {\n one: '1일',\n other: '{{count}}일'\n },\n aboutXWeeks: {\n one: '약 1주',\n other: '약 {{count}}주'\n },\n xWeeks: {\n one: '1주',\n other: '{{count}}주'\n },\n aboutXMonths: {\n one: '약 1개월',\n other: '약 {{count}}개월'\n },\n xMonths: {\n one: '1개월',\n other: '{{count}}개월'\n },\n aboutXYears: {\n one: '약 1년',\n other: '약 {{count}}년'\n },\n xYears: {\n one: '1년',\n other: '{{count}}년'\n },\n overXYears: {\n one: '1년 이상',\n other: '{{count}}년 이상'\n },\n almostXYears: {\n one: '거의 1년',\n other: '거의 {{count}}년'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' 후';\n } else {\n return result + ' 전';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'y년 M월 d일 EEEE',\n long: 'y년 M월 d일',\n medium: 'y.MM.dd',\n short: 'y.MM.dd'\n};\nvar timeFormats = {\n full: 'a H시 mm분 ss초 zzzz',\n long: 'a H:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'지난' eeee p\",\n yesterday: \"'어제' p\",\n today: \"'오늘' p\",\n tomorrow: \"'내일' p\",\n nextWeek: \"'다음' eeee p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['BC', 'AD'],\n abbreviated: ['BC', 'AD'],\n wide: ['기원전', '서기']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1분기', '2분기', '3분기', '4분기']\n};\nvar monthValues = {\n narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n abbreviated: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],\n wide: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']\n};\nvar dayValues = {\n narrow: ['일', '월', '화', '수', '목', '금', '토'],\n short: ['일', '월', '화', '수', '목', '금', '토'],\n abbreviated: ['일', '월', '화', '수', '목', '금', '토'],\n wide: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n abbreviated: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n wide: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n abbreviated: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n wide: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n\n switch (unit) {\n case 'minute':\n case 'second':\n return number;\n\n case 'date':\n return number + '일';\n\n default:\n return number + '번째';\n }\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(일|번째)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(기원전|서기)/i\n};\nvar parseEraPatterns = {\n any: [/^(bc|기원전)/i, /^(ad|서기)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]사?분기/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(1[012]|[123456789])/,\n abbreviated: /^(1[012]|[123456789])월/i,\n wide: /^(1[012]|[123456789])월/i\n};\nvar parseMonthPatterns = {\n any: [/^1월?$/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/]\n};\nvar matchDayPatterns = {\n narrow: /^[일월화수목금토]/,\n short: /^[일월화수목금토]/,\n abbreviated: /^[일월화수목금토]/,\n wide: /^[일월화수목금토]요일/\n};\nvar parseDayPatterns = {\n any: [/^일/, /^월/, /^화/, /^수/, /^목/, /^금/, /^토/]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^(am|오전)/i,\n pm: /^(pm|오후)/i,\n midnight: /^자정/i,\n noon: /^정오/i,\n morning: /^아침/i,\n afternoon: /^오후/i,\n evening: /^저녁/i,\n night: /^밤/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: translateSeconds,\n other: translate\n },\n xSeconds: {\n one: translateSeconds,\n other: translate\n },\n halfAMinute: 'pusė minutės',\n lessThanXMinutes: {\n one: translateSingular,\n other: translate\n },\n xMinutes: {\n one: translateSingular,\n other: translate\n },\n aboutXHours: {\n one: translateSingular,\n other: translate\n },\n xHours: {\n one: translateSingular,\n other: translate\n },\n xDays: {\n one: translateSingular,\n other: translate\n },\n aboutWeeks: {\n one: translateSingular,\n other: translate\n },\n xWeeks: {\n one: translateSingular,\n other: translate\n },\n aboutXMonths: {\n one: translateSingular,\n other: translate\n },\n xMonths: {\n one: translateSingular,\n other: translate\n },\n aboutXYears: {\n one: translateSingular,\n other: translate\n },\n xYears: {\n one: translateSingular,\n other: translate\n },\n overXYears: {\n one: translateSingular,\n other: translate\n },\n almostXYears: {\n one: translateSingular,\n other: translate\n }\n};\nvar translations = {\n xseconds_other: 'sekundė_sekundžių_sekundes',\n xminutes_one: 'minutė_minutės_minutę',\n xminutes_other: 'minutės_minučių_minutes',\n xhours_one: 'valanda_valandos_valandą',\n xhours_other: 'valandos_valandų_valandas',\n xdays_one: 'diena_dienos_dieną',\n xdays_other: 'dienos_dienų_dienas',\n xweeks_one: 'savaitė_savaitės_savaitę',\n xweeks_other: 'savaitės_savaičių_savaites',\n xmonths_one: 'mėnuo_mėnesio_mėnesį',\n xmonths_other: 'mėnesiai_mėnesių_mėnesius',\n xyears_one: 'metai_metų_metus',\n xyears_other: 'metai_metų_metus',\n about: 'apie',\n over: 'daugiau nei',\n almost: 'beveik',\n lessthan: 'mažiau nei'\n};\n\nfunction translateSeconds(number, addSuffix, key, isFuture) {\n if (!addSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n}\n\nfunction translateSingular(number, addSuffix, key, isFuture) {\n return !addSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n}\n\nfunction special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n}\n\nfunction forms(key) {\n return translations[key].split('_');\n}\n\nfunction translate(number, addSuffix, key, isFuture) {\n var result = number + ' ';\n\n if (number === 1) {\n return result + translateSingular(number, addSuffix, key[0], isFuture);\n } else if (!addSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n}\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var adverb = token.match(/about|over|almost|lessthan/i);\n var unit = token.replace(adverb, '');\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one(count, options.addSuffix, unit.toLowerCase() + '_one');\n } else {\n result = formatDistanceLocale[token].other(count, options.addSuffix, unit.toLowerCase() + '_other');\n }\n\n if (adverb) {\n result = translations[adverb[0].toLowerCase()] + ' ' + result;\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'po ' + result;\n } else {\n return 'prieš ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"y 'm'. MMMM d 'd'., EEEE\",\n long: \"y 'm'. MMMM d 'd'.\",\n medium: 'y-MM-dd',\n short: 'y-MM-dd'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'Praėjusį' eeee p\",\n yesterday: \"'Vakar' p\",\n today: \"'Šiandien' p\",\n tomorrow: \"'Rytoj' p\",\n nextWeek: 'eeee p',\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['pr. Kr.', 'po Kr.'],\n abbreviated: ['pr. Kr.', 'po Kr.'],\n wide: ['prieš Kristų', 'po Kristaus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['I ketv.', 'II ketv.', 'III ketv.', 'IV ketv.'],\n wide: ['I ketvirtis', 'II ketvirtis', 'III ketvirtis', 'IV ketvirtis']\n};\nvar formattingQuarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['I k.', 'II k.', 'III k.', 'IV k.'],\n wide: ['I ketvirtis', 'II ketvirtis', 'III ketvirtis', 'IV ketvirtis']\n};\nvar monthValues = {\n narrow: ['S', 'V', 'K', 'B', 'G', 'B', 'L', 'R', 'R', 'S', 'L', 'G'],\n abbreviated: ['saus.', 'vas.', 'kov.', 'bal.', 'geg.', 'birž.', 'liep.', 'rugp.', 'rugs.', 'spal.', 'lapkr.', 'gruod.'],\n wide: ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis']\n};\nvar formattingMonthValues = {\n narrow: ['S', 'V', 'K', 'B', 'G', 'B', 'L', 'R', 'R', 'S', 'L', 'G'],\n abbreviated: ['saus.', 'vas.', 'kov.', 'bal.', 'geg.', 'birž.', 'liep.', 'rugp.', 'rugs.', 'spal.', 'lapkr.', 'gruod.'],\n wide: ['sausio', 'vasario', 'kovo', 'balandžio', 'gegužės', 'birželio', 'liepos', 'rugpjūčio', 'rugsėjo', 'spalio', 'lapkričio', 'gruodžio']\n};\nvar dayValues = {\n narrow: ['S', 'P', 'A', 'T', 'K', 'P', 'Š'],\n short: ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'],\n abbreviated: ['sk', 'pr', 'an', 'tr', 'kt', 'pn', 'št'],\n wide: ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis']\n};\nvar formattingDayValues = {\n narrow: ['S', 'P', 'A', 'T', 'K', 'P', 'Š'],\n short: ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'],\n abbreviated: ['sk', 'pr', 'an', 'tr', 'kt', 'pn', 'št'],\n wide: ['sekmadienį', 'pirmadienį', 'antradienį', 'trečiadienį', 'ketvirtadienį', 'penktadienį', 'šeštadienį']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'pr. p.',\n pm: 'pop.',\n midnight: 'vidurnaktis',\n noon: 'vidurdienis',\n morning: 'rytas',\n afternoon: 'diena',\n evening: 'vakaras',\n night: 'naktis'\n },\n abbreviated: {\n am: 'priešpiet',\n pm: 'popiet',\n midnight: 'vidurnaktis',\n noon: 'vidurdienis',\n morning: 'rytas',\n afternoon: 'diena',\n evening: 'vakaras',\n night: 'naktis'\n },\n wide: {\n am: 'priešpiet',\n pm: 'popiet',\n midnight: 'vidurnaktis',\n noon: 'vidurdienis',\n morning: 'rytas',\n afternoon: 'diena',\n evening: 'vakaras',\n night: 'naktis'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'pr. p.',\n pm: 'pop.',\n midnight: 'vidurnaktis',\n noon: 'perpiet',\n morning: 'rytas',\n afternoon: 'popietė',\n evening: 'vakaras',\n night: 'naktis'\n },\n abbreviated: {\n am: 'priešpiet',\n pm: 'popiet',\n midnight: 'vidurnaktis',\n noon: 'perpiet',\n morning: 'rytas',\n afternoon: 'popietė',\n evening: 'vakaras',\n night: 'naktis'\n },\n wide: {\n am: 'priešpiet',\n pm: 'popiet',\n midnight: 'vidurnaktis',\n noon: 'perpiet',\n morning: 'rytas',\n afternoon: 'popietė',\n evening: 'vakaras',\n night: 'naktis'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + '-oji';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n formattingValues: formattingQuarterValues,\n defaultFormattingWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayValues,\n defaultFormattingWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-oji)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^p(r|o)\\.?\\s?(kr\\.?|me)/i,\n abbreviated: /^(pr\\.\\s?(kr\\.|m\\.\\s?e\\.)|po\\s?kr\\.|mūsų eroje)/i,\n wide: /^(prieš Kristų|prieš mūsų erą|po Kristaus|mūsų eroje)/i\n};\nvar parseEraPatterns = {\n wide: [/prieš/i, /(po|mūsų)/i],\n any: [/^pr/i, /^(po|m)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^([1234])/i,\n abbreviated: /^(I|II|III|IV)\\s?ketv?\\.?/i,\n wide: /^(I|II|III|IV)\\s?ketvirtis/i\n};\nvar parseQuarterPatterns = {\n narrow: [/1/i, /2/i, /3/i, /4/i],\n any: [/I$/i, /II$/i, /III/i, /IV/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[svkbglr]/i,\n abbreviated: /^(saus\\.|vas\\.|kov\\.|bal\\.|geg\\.|birž\\.|liep\\.|rugp\\.|rugs\\.|spal\\.|lapkr\\.|gruod\\.)/i,\n wide: /^(sausi(s|o)|vasari(s|o)|kov(a|o)s|balandž?i(s|o)|gegužės?|birželi(s|o)|liep(a|os)|rugpjū(t|č)i(s|o)|rugsėj(is|o)|spali(s|o)|lapkri(t|č)i(s|o)|gruodž?i(s|o))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^s/i, /^v/i, /^k/i, /^b/i, /^g/i, /^b/i, /^l/i, /^r/i, /^r/i, /^s/i, /^l/i, /^g/i],\n any: [/^saus/i, /^vas/i, /^kov/i, /^bal/i, /^geg/i, /^birž/i, /^liep/i, /^rugp/i, /^rugs/i, /^spal/i, /^lapkr/i, /^gruod/i]\n};\nvar matchDayPatterns = {\n narrow: /^[spatkš]/i,\n short: /^(sk|pr|an|tr|kt|pn|št)/i,\n abbreviated: /^(sk|pr|an|tr|kt|pn|št)/i,\n wide: /^(sekmadien(is|į)|pirmadien(is|į)|antradien(is|į)|trečiadien(is|į)|ketvirtadien(is|į)|penktadien(is|į)|šeštadien(is|į))/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^p/i, /^a/i, /^t/i, /^k/i, /^p/i, /^š/i],\n wide: [/^se/i, /^pi/i, /^an/i, /^tr/i, /^ke/i, /^pe/i, /^še/i],\n any: [/^sk/i, /^pr/i, /^an/i, /^tr/i, /^kt/i, /^pn/i, /^št/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(pr.\\s?p.|pop.|vidurnaktis|(vidurdienis|perpiet)|rytas|(diena|popietė)|vakaras|naktis)/i,\n any: /^(priešpiet|popiet$|vidurnaktis|(vidurdienis|perpiet)|rytas|(diena|popietė)|vakaras|naktis)/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^pr/i,\n pm: /^pop./i,\n midnight: /^vidurnaktis/i,\n noon: /^(vidurdienis|perp)/i,\n morning: /rytas/i,\n afternoon: /(die|popietė)/i,\n evening: /vakaras/i,\n night: /naktis/i\n },\n any: {\n am: /^pr/i,\n pm: /^popiet$/i,\n midnight: /^vidurnaktis/i,\n noon: /^(vidurdienis|perp)/i,\n morning: /rytas/i,\n afternoon: /(die|popietė)/i,\n evening: /vakaras/i,\n night: /naktis/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction buildLocalizeTokenFn(schema) {\n return function (count, options) {\n if (count === 1) {\n if (options.addSuffix) {\n return schema.one[0].replace('{{time}}', schema.one[2]);\n } else {\n return schema.one[0].replace('{{time}}', schema.one[1]);\n }\n } else {\n var rem = count % 10 === 1 && count % 100 !== 11;\n\n if (options.addSuffix) {\n return schema.other[0].replace('{{time}}', rem ? schema.other[3] : schema.other[4]).replace('{{count}}', count);\n } else {\n return schema.other[0].replace('{{time}}', rem ? schema.other[1] : schema.other[2]).replace('{{count}}', count);\n }\n }\n };\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: buildLocalizeTokenFn({\n one: ['mazāk par {{time}}', 'sekundi', 'sekundi'],\n other: ['mazāk nekā {{count}} {{time}}', 'sekunde', 'sekundes', 'sekundes', 'sekundēm']\n }),\n xSeconds: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'sekunde', 'sekundes'],\n other: ['{{count}} {{time}}', 'sekunde', 'sekundes', 'sekundes', 'sekundēm']\n }),\n halfAMinute: function (count, options) {\n if (options.addSuffix) {\n return 'pusminūtes';\n } else {\n return 'pusminūte';\n }\n },\n lessThanXMinutes: buildLocalizeTokenFn({\n one: ['mazāk par {{time}}', 'minūti', 'minūti'],\n other: ['mazāk nekā {{count}} {{time}}', 'minūte', 'minūtes', 'minūtes', 'minūtēm']\n }),\n xMinutes: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'minūte', 'minūtes'],\n other: ['{{count}} {{time}}', 'minūte', 'minūtes', 'minūtes', 'minūtēm']\n }),\n aboutXHours: buildLocalizeTokenFn({\n one: ['apmēram 1 {{time}}', 'stunda', 'stundas'],\n other: ['apmēram {{count}} {{time}}', 'stunda', 'stundas', 'stundas', 'stundām']\n }),\n xHours: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'stunda', 'stundas'],\n other: ['{{count}} {{time}}', 'stunda', 'stundas', 'stundas', 'stundām']\n }),\n xDays: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'diena', 'dienas'],\n other: ['{{count}} {{time}}', 'diena', 'dienas', 'dienas', 'dienām']\n }),\n aboutXWeeks: buildLocalizeTokenFn({\n one: ['apmēram 1 {{time}}', 'nedēļa', 'nedēļas'],\n other: ['apmēram {{count}} {{time}}', 'nedēļa', 'nedēļu', 'nedēļas', 'nedēļām']\n }),\n xWeeks: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'nedēļa', 'nedēļas'],\n other: ['{{count}} {{time}}', // TODO\n 'nedēļa', 'nedēļu', 'nedēļas', 'nedēļām']\n }),\n aboutXMonths: buildLocalizeTokenFn({\n one: ['apmēram 1 {{time}}', 'mēnesis', 'mēneša'],\n other: ['apmēram {{count}} {{time}}', 'mēnesis', 'mēneši', 'mēneša', 'mēnešiem']\n }),\n xMonths: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'mēnesis', 'mēneša'],\n other: ['{{count}} {{time}}', 'mēnesis', 'mēneši', 'mēneša', 'mēnešiem']\n }),\n aboutXYears: buildLocalizeTokenFn({\n one: ['apmēram 1 {{time}}', 'gads', 'gada'],\n other: ['apmēram {{count}} {{time}}', 'gads', 'gadi', 'gada', 'gadiem']\n }),\n xYears: buildLocalizeTokenFn({\n one: ['1 {{time}}', 'gads', 'gada'],\n other: ['{{count}} {{time}}', 'gads', 'gadi', 'gada', 'gadiem']\n }),\n overXYears: buildLocalizeTokenFn({\n one: ['ilgāk par 1 {{time}}', 'gadu', 'gadu'],\n other: ['vairāk nekā {{count}} {{time}}', 'gads', 'gadi', 'gada', 'gadiem']\n }),\n almostXYears: buildLocalizeTokenFn({\n one: ['gandrīz 1 {{time}}', 'gads', 'gada'],\n other: ['vairāk nekā {{count}} {{time}}', 'gads', 'gadi', 'gada', 'gadiem']\n })\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result = formatDistanceLocale[token](count, options);\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'pēc ' + result;\n } else {\n return 'pirms ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"y. 'gada' M. MMMM., EEEE\",\n long: \"y. 'gada' M. MMMM\",\n medium: 'dd.MM.y.',\n short: 'dd.MM.y.'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'plkst.' {{time}}\",\n long: \"{{date}} 'plkst.' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar weekdays = ['svētdienā', 'pirmdienā', 'otrdienā', 'trešdienā', 'ceturtdienā', 'piektdienā', 'sestdienā'];\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n if ((0, _index.default)(date, baseDate, options)) {\n return \"eeee 'plkst.' p\";\n }\n\n var weekday = weekdays[date.getUTCDay()];\n return \"'Pagājušā \" + weekday + \" plkst.' p\";\n },\n yesterday: \"'Vakar plkst.' p\",\n today: \"'Šodien plkst.' p\",\n tomorrow: \"'Rīt plkst.' p\",\n nextWeek: function (date, baseDate, options) {\n if ((0, _index.default)(date, baseDate, options)) {\n return \"eeee 'plkst.' p\";\n }\n\n var weekday = weekdays[date.getUTCDay()];\n return \"'Nākamajā \" + weekday + \" plkst.' p\";\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['p.m.ē', 'm.ē'],\n abbreviated: ['p. m. ē.', 'm. ē.'],\n wide: ['pirms mūsu ēras', 'mūsu ērā']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. cet.', '2. cet.', '3. cet.', '4. cet.'],\n wide: ['pirmais ceturksnis', 'otrais ceturksnis', 'trešais ceturksnis', 'ceturtais ceturksnis']\n};\nvar formattingQuarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. cet.', '2. cet.', '3. cet.', '4. cet.'],\n wide: ['pirmajā ceturksnī', 'otrajā ceturksnī', 'trešajā ceturksnī', 'ceturtajā ceturksnī']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'febr.', 'marts', 'apr.', 'maijs', 'jūn.', 'jūl.', 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'],\n wide: ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', 'jūnijs', 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris']\n};\nvar formattingMonthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'febr.', 'martā', 'apr.', 'maijs', 'jūn.', 'jūl.', 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'],\n wide: ['janvārī', 'februārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī']\n};\nvar dayValues = {\n narrow: ['S', 'P', 'O', 'T', 'C', 'P', 'S'],\n short: ['Sv', 'P', 'O', 'T', 'C', 'Pk', 'S'],\n abbreviated: ['svētd.', 'pirmd.', 'otrd.', 'trešd.', 'ceturtd.', 'piektd.', 'sestd.'],\n wide: ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena']\n};\nvar formattingDayValues = {\n narrow: ['S', 'P', 'O', 'T', 'C', 'P', 'S'],\n short: ['Sv', 'P', 'O', 'T', 'C', 'Pk', 'S'],\n abbreviated: ['svētd.', 'pirmd.', 'otrd.', 'trešd.', 'ceturtd.', 'piektd.', 'sestd.'],\n wide: ['svētdienā', 'pirmdienā', 'otrdienā', 'trešdienā', 'ceturtdienā', 'piektdienā', 'sestdienā']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'pusn.',\n noon: 'pusd.',\n morning: 'rīts',\n afternoon: 'diena',\n evening: 'vakars',\n night: 'nakts'\n },\n abbreviated: {\n am: 'am',\n pm: 'pm',\n midnight: 'pusn.',\n noon: 'pusd.',\n morning: 'rīts',\n afternoon: 'pēcpusd.',\n evening: 'vakars',\n night: 'nakts'\n },\n wide: {\n am: 'am',\n pm: 'pm',\n midnight: 'pusnakts',\n noon: 'pusdienlaiks',\n morning: 'rīts',\n afternoon: 'pēcpusdiena',\n evening: 'vakars',\n night: 'nakts'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'pusn.',\n noon: 'pusd.',\n morning: 'rītā',\n afternoon: 'dienā',\n evening: 'vakarā',\n night: 'naktī'\n },\n abbreviated: {\n am: 'am',\n pm: 'pm',\n midnight: 'pusn.',\n noon: 'pusd.',\n morning: 'rītā',\n afternoon: 'pēcpusd.',\n evening: 'vakarā',\n night: 'naktī'\n },\n wide: {\n am: 'am',\n pm: 'pm',\n midnight: 'pusnaktī',\n noon: 'pusdienlaikā',\n morning: 'rītā',\n afternoon: 'pēcpusdienā',\n evening: 'vakarā',\n night: 'naktī'\n }\n};\n\nfunction ordinalNumber(number, _options) {\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n formattingValues: formattingQuarterValues,\n defaultFormattingWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayValues,\n defaultFormattingWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\./i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p\\.m\\.ē|m\\.ē)/i,\n abbreviated: /^(p\\. m\\. ē\\.|m\\. ē\\.)/i,\n wide: /^(pirms mūsu ēras|mūsu ērā)/i\n};\nvar parseEraPatterns = {\n any: [/^p/i, /^m/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](\\. cet\\.)/i,\n wide: /^(pirma(is|jā)|otra(is|jā)|treša(is|jā)|ceturta(is|jā)) ceturksn(is|ī)/i\n};\nvar parseQuarterPatterns = {\n narrow: [/^1/i, /^2/i, /^3/i, /^4/i],\n abbreviated: [/^1/i, /^2/i, /^3/i, /^4/i],\n wide: [/^p/i, /^o/i, /^t/i, /^c/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv\\.|febr\\.|marts|apr\\.|maijs|jūn\\.|jūl\\.|aug\\.|sept\\.|okt\\.|nov\\.|dec\\.)/i,\n wide: /^(janvār(is|ī)|februār(is|ī)|mart[sā]|aprīl(is|ī)|maij[sā]|jūnij[sā]|jūlij[sā]|august[sā]|septembr(is|ī)|oktobr(is|ī)|novembr(is|ī)|decembr(is|ī))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^mai/i, /^jūn/i, /^jūl/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[spotc]/i,\n short: /^(sv|pi|o|t|c|pk|s)/i,\n abbreviated: /^(svētd\\.|pirmd\\.|otrd.\\|trešd\\.|ceturtd\\.|piektd\\.|sestd\\.)/i,\n wide: /^(svētdien(a|ā)|pirmdien(a|ā)|otrdien(a|ā)|trešdien(a|ā)|ceturtdien(a|ā)|piektdien(a|ā)|sestdien(a|ā))/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^p/i, /^o/i, /^t/i, /^c/i, /^p/i, /^s/i],\n any: [/^sv/i, /^pi/i, /^o/i, /^t/i, /^c/i, /^p/i, /^se/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(am|pm|pusn\\.|pusd\\.|rīt(s|ā)|dien(a|ā)|vakar(s|ā)|nakt(s|ī))/,\n abbreviated: /^(am|pm|pusn\\.|pusd\\.|rīt(s|ā)|pēcpusd\\.|vakar(s|ā)|nakt(s|ī))/,\n wide: /^(am|pm|pusnakt(s|ī)|pusdienlaik(s|ā)|rīt(s|ā)|pēcpusdien(a|ā)|vakar(s|ā)|nakt(s|ī))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^pusn/i,\n noon: /^pusd/i,\n morning: /^r/i,\n afternoon: /^(d|pēc)/i,\n evening: /^v/i,\n night: /^n/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'помалку од секунда',\n other: 'помалку од {{count}} секунди'\n },\n xSeconds: {\n one: '1 секунда',\n other: '{{count}} секунди'\n },\n halfAMinute: 'половина минута',\n lessThanXMinutes: {\n one: 'помалку од минута',\n other: 'помалку од {{count}} минути'\n },\n xMinutes: {\n one: '1 минута',\n other: '{{count}} минути'\n },\n aboutXHours: {\n one: 'околу 1 час',\n other: 'околу {{count}} часа'\n },\n xHours: {\n one: '1 час',\n other: '{{count}} часа'\n },\n xDays: {\n one: '1 ден',\n other: '{{count}} дена'\n },\n aboutXWeeks: {\n one: 'околу 1 недела',\n other: 'околу {{count}} месеци'\n },\n xWeeks: {\n one: '1 недела',\n other: '{{count}} недели'\n },\n aboutXMonths: {\n one: 'околу 1 месец',\n other: 'околу {{count}} недели'\n },\n xMonths: {\n one: '1 месец',\n other: '{{count}} месеци'\n },\n aboutXYears: {\n one: 'околу 1 година',\n other: 'околу {{count}} години'\n },\n xYears: {\n one: '1 година',\n other: '{{count}} години'\n },\n overXYears: {\n one: 'повеќе од 1 година',\n other: 'повеќе од {{count}} години'\n },\n almostXYears: {\n one: 'безмалку 1 година',\n other: 'безмалку {{count}} години'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'за ' + result;\n } else {\n return 'пред ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, dd MMMM yyyy',\n long: 'dd MMMM yyyy',\n medium: 'dd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar weekdays = ['недела', 'понеделник', 'вторник', 'среда', 'четврток', 'петок', 'сабота'];\n\nfunction lastWeek(day) {\n var weekday = weekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 6:\n return \"'минатата \" + weekday + \" во' p\";\n\n case 1:\n case 2:\n case 4:\n case 5:\n return \"'минатиот \" + weekday + \" во' p\";\n }\n}\n\nfunction thisWeek(day) {\n var weekday = weekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 6:\n return \"'ова \" + weekday + \" вo' p\";\n\n case 1:\n case 2:\n case 4:\n case 5:\n return \"'овој \" + weekday + \" вo' p\";\n }\n}\n\nfunction nextWeek(day) {\n var weekday = weekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 6:\n return \"'следната \" + weekday + \" вo' p\";\n\n case 1:\n case 2:\n case 4:\n case 5:\n return \"'следниот \" + weekday + \" вo' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'вчера во' p\",\n today: \"'денес во' p\",\n tomorrow: \"'утре во' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['пр.н.е.', 'н.е.'],\n abbreviated: ['пред н. е.', 'н. е.'],\n wide: ['пред нашата ера', 'нашата ера']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-ви кв.', '2-ри кв.', '3-ти кв.', '4-ти кв.'],\n wide: ['1-ви квартал', '2-ри квартал', '3-ти квартал', '4-ти квартал']\n};\nvar monthValues = {\n abbreviated: ['јан', 'фев', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'септ', 'окт', 'ноем', 'дек'],\n wide: ['јануари', 'февруари', 'март', 'април', 'мај', 'јуни', 'јули', 'август', 'септември', 'октомври', 'ноември', 'декември']\n};\nvar dayValues = {\n narrow: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'],\n short: ['не', 'по', 'вт', 'ср', 'че', 'пе', 'са'],\n abbreviated: ['нед', 'пон', 'вто', 'сре', 'чет', 'пет', 'саб'],\n wide: ['недела', 'понеделник', 'вторник', 'среда', 'четврток', 'петок', 'сабота']\n};\nvar dayPeriodValues = {\n wide: {\n am: 'претпладне',\n pm: 'попладне',\n midnight: 'полноќ',\n noon: 'напладне',\n morning: 'наутро',\n afternoon: 'попладне',\n evening: 'навечер',\n night: 'ноќе'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + '-ви';\n\n case 2:\n return number + '-ри';\n\n case 7:\n case 8:\n return number + '-ми';\n }\n }\n\n return number + '-ти';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?[врмт][и])?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^((пр)?н\\.?\\s?е\\.?)/i,\n abbreviated: /^((пр)?н\\.?\\s?е\\.?)/i,\n wide: /^(пред нашата ера|нашата ера)/i\n};\nvar parseEraPatterns = {\n any: [/^п/i, /^н/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](-?[врт]?и?)? кв.?/i,\n wide: /^[1234](-?[врт]?и?)? квартал/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchDayPatterns = {\n narrow: /^[нпвсч]/i,\n short: /^(не|по|вт|ср|че|пе|са)/i,\n abbreviated: /^(нед|пон|вто|сре|чет|пет|саб)/i,\n wide: /^(недела|понеделник|вторник|среда|четврток|петок|сабота)/i\n};\nvar parseDayPatterns = {\n narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n any: [/^н[ед]/i, /^п[он]/i, /^вт/i, /^ср/i, /^ч[ет]/i, /^п[ет]/i, /^с[аб]/i]\n};\nvar matchMonthPatterns = {\n abbreviated: /^(јан|фев|мар|апр|мај|јун|јул|авг|сеп|окт|ноем|дек)/i,\n wide: /^(јануари|февруари|март|април|мај|јуни|јули|август|септември|октомври|ноември|декември)/i\n};\nvar parseMonthPatterns = {\n any: [/^ја/i, /^Ф/i, /^мар/i, /^ап/i, /^мај/i, /^јун/i, /^јул/i, /^ав/i, /^се/i, /^окт/i, /^но/i, /^де/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(претп|попл|полноќ|утро|пладне|вечер|ноќ)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /претпладне/i,\n pm: /попладне/i,\n midnight: /полноќ/i,\n noon: /напладне/i,\n morning: /наутро/i,\n afternoon: /попладне/i,\n evening: /навечер/i,\n night: /ноќе/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'kurang dari 1 saat',\n other: 'kurang dari {{count}} saat'\n },\n xSeconds: {\n one: '1 saat',\n other: '{{count}} saat'\n },\n halfAMinute: 'setengah minit',\n lessThanXMinutes: {\n one: 'kurang dari 1 minit',\n other: 'kurang dari {{count}} minit'\n },\n xMinutes: {\n one: '1 minit',\n other: '{{count}} minit'\n },\n aboutXHours: {\n one: 'sekitar 1 jam',\n other: 'sekitar {{count}} jam'\n },\n xHours: {\n one: '1 jam',\n other: '{{count}} jam'\n },\n xDays: {\n one: '1 hari',\n other: '{{count}} hari'\n },\n aboutXWeeks: {\n one: 'sekitar 1 minggu',\n other: 'sekitar {{count}} minggu'\n },\n xWeeks: {\n one: '1 minggu',\n other: '{{count}} minggu'\n },\n aboutXMonths: {\n one: 'sekitar 1 bulan',\n other: 'sekitar {{count}} bulan'\n },\n xMonths: {\n one: '1 bulan',\n other: '{{count}} bulan'\n },\n aboutXYears: {\n one: 'sekitar 1 tahun',\n other: 'sekitar {{count}} tahun'\n },\n xYears: {\n one: '1 tahun',\n other: '{{count}} tahun'\n },\n overXYears: {\n one: 'lebih dari 1 tahun',\n other: 'lebih dari {{count}} tahun'\n },\n almostXYears: {\n one: 'hampir 1 tahun',\n other: 'hampir {{count}} tahun'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dalam masa ' + result;\n } else {\n return result + ' yang lalu';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'd/M/yyyy'\n};\nvar timeFormats = {\n full: 'HH.mm.ss',\n long: 'HH.mm.ss',\n medium: 'HH.mm',\n short: 'HH.mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'pukul' {{time}}\",\n long: \"{{date}} 'pukul' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'lepas pada jam' p\",\n yesterday: \"'Semalam pada jam' p\",\n today: \"'Hari ini pada jam' p\",\n tomorrow: \"'Esok pada jam' p\",\n nextWeek: \"eeee 'pada jam' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Most data for localization are taken from this page\n// https://www.unicode.org/cldr/charts/32/summary/ms.html\nvar eraValues = {\n narrow: ['SM', 'M'],\n abbreviated: ['SM', 'M'],\n wide: ['Sebelum Masihi', 'Masihi']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['S1', 'S2', 'S3', 'S4'],\n wide: ['Suku pertama', 'Suku kedua', 'Suku ketiga', 'Suku keempat'] // Note: in Malay, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogo', 'Sep', 'Okt', 'Nov', 'Dis'],\n wide: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember']\n};\nvar dayValues = {\n narrow: ['A', 'I', 'S', 'R', 'K', 'J', 'S'],\n short: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'],\n abbreviated: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'],\n wide: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'tgh malam',\n noon: 'tgh hari',\n morning: 'pagi',\n afternoon: 'tengah hari',\n evening: 'petang',\n night: 'malam'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'tengah hari',\n evening: 'petang',\n night: 'malam'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'tengah hari',\n evening: 'petang',\n night: 'malam'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'tengah hari',\n evening: 'petang',\n night: 'malam'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'tengah hari',\n evening: 'petang',\n night: 'malam'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'tengah malam',\n noon: 'tengah hari',\n morning: 'pagi',\n afternoon: 'tengah hari',\n evening: 'petang',\n night: 'malam'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // Can't use \"pertama\", \"kedua\" because can't be parsed\n\n switch (number) {\n default:\n return 'ke-' + number;\n }\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^ke-(\\d+)?/i;\nvar parseOrdinalNumberPattern = /petama|\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(sm|m)/i,\n abbreviated: /^(s\\.?\\s?m\\.?|m\\.?)/i,\n wide: /^(sebelum masihi|masihi)/i\n};\nvar parseEraPatterns = {\n any: [/^s/i, /^(m)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^S[1234]/i,\n wide: /Suku (pertama|kedua|ketiga|keempat)/i\n};\nvar parseQuarterPatterns = {\n any: [/pertama|1/i, /kedua|2/i, /ketiga|3/i, /keempat|4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mac|apr|mei|jun|jul|ogo|sep|okt|nov|dis)/i,\n wide: /^(januari|februari|mac|april|mei|jun|julai|ogos|september|oktober|november|disember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^o/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^ma/i, /^ap/i, /^me/i, /^jun/i, /^jul/i, /^og/i, /^s/i, /^ok/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[aisrkj]/i,\n short: /^(ahd|isn|sel|rab|kha|jum|sab)/i,\n abbreviated: /^(ahd|isn|sel|rab|kha|jum|sab)/i,\n wide: /^(ahad|isnin|selasa|rabu|khamis|jumaat|sabtu)/i\n};\nvar parseDayPatterns = {\n narrow: [/^a/i, /^i/i, /^s/i, /^r/i, /^k/i, /^j/i, /^s/i],\n any: [/^a/i, /^i/i, /^se/i, /^r/i, /^k/i, /^j/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(am|pm|tengah malam|tengah hari|pagi|petang|malam)/i,\n any: /^([ap]\\.?\\s?m\\.?|tengah malam|tengah hari|pagi|petang|malam)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^pm/i,\n midnight: /^tengah m/i,\n noon: /^tengah h/i,\n morning: /pa/i,\n afternoon: /tengah h/i,\n evening: /pe/i,\n night: /m/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'inqas minn sekonda',\n other: 'inqas minn {{count}} sekondi'\n },\n xSeconds: {\n one: 'sekonda',\n other: '{{count}} sekondi'\n },\n halfAMinute: 'nofs minuta',\n lessThanXMinutes: {\n one: 'inqas minn minuta',\n other: 'inqas minn {{count}} minuti'\n },\n xMinutes: {\n one: 'minuta',\n other: '{{count}} minuti'\n },\n aboutXHours: {\n one: 'madwar siegħa',\n other: 'madwar {{count}} siegħat'\n },\n xHours: {\n one: 'siegħa',\n other: '{{count}} siegħat'\n },\n xDays: {\n one: 'ġurnata',\n other: '{{count}} ġranet'\n },\n aboutXWeeks: {\n one: 'madwar ġimgħa',\n other: 'madwar {{count}} ġimgħat'\n },\n xWeeks: {\n one: 'ġimgħa',\n other: '{{count}} ġimgħat'\n },\n aboutXMonths: {\n one: 'madwar xahar',\n other: 'madwar {{count}} xhur'\n },\n xMonths: {\n one: 'xahar',\n other: '{{count}} xhur'\n },\n aboutXYears: {\n one: 'madwar sena',\n two: 'madwar sentejn',\n other: 'madwar {{count}} snin'\n },\n xYears: {\n one: 'sena',\n two: 'sentejn',\n other: '{{count}} snin'\n },\n overXYears: {\n one: 'aktar minn sena',\n two: 'aktar minn sentejn',\n other: 'aktar minn {{count}} snin'\n },\n almostXYears: {\n one: 'kważi sena',\n two: 'kważi sentejn',\n other: 'kważi {{count}} snin'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var adverb = token.match(/years/i);\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2 && adverb) {\n result = formatDistanceLocale[token].two;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return \"f'\" + result;\n } else {\n return result + ' ilu';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'li għadda' 'fil-'p\",\n yesterday: \"'Il-bieraħ fil-'p\",\n today: \"'Illum fil-'p\",\n tomorrow: \"'Għada fil-'p\",\n nextWeek: \"eeee 'fil-'p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['Q', 'W'],\n abbreviated: ['QK', 'WK'],\n wide: ['qabel Kristu', 'wara Kristu']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1. kwart', '2. kwart', '3. kwart', '4. kwart']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'Ġ', 'L', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'],\n wide: ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru']\n};\nvar dayValues = {\n narrow: ['Ħ', 'T', 'T', 'E', 'Ħ', 'Ġ', 'S'],\n short: ['Ħa', 'Tn', 'Tl', 'Er', 'Ħa', 'Ġi', 'Si'],\n abbreviated: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'],\n wide: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'nofsillejl',\n noon: 'nofsinhar',\n morning: 'għodwa',\n afternoon: 'wara nofsinhar',\n evening: 'filgħaxija',\n night: 'lejl'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'nofsillejl',\n noon: 'nofsinhar',\n morning: 'għodwa',\n afternoon: 'wara nofsinhar',\n evening: 'filgħaxija',\n night: 'lejl'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'nofsillejl',\n noon: 'nofsinhar',\n morning: 'għodwa',\n afternoon: 'wara nofsinhar',\n evening: 'filgħaxija',\n night: 'lejl'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: \"f'nofsillejl\",\n noon: \"f'nofsinhar\",\n morning: 'filgħodu',\n afternoon: 'wara nofsinhar',\n evening: 'filgħaxija',\n night: 'billejl'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: \"f'nofsillejl\",\n noon: \"f'nofsinhar\",\n morning: 'filgħodu',\n afternoon: 'wara nofsinhar',\n evening: 'filgħaxija',\n night: 'billejl'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: \"f'nofsillejl\",\n noon: \"f'nofsinhar\",\n morning: 'filgħodu',\n afternoon: 'wara nofsinhar',\n evening: 'filgħaxija',\n night: 'billejl'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(q|w)/i,\n abbreviated: /^(q\\.?\\s?k\\.?|b\\.?\\s?c\\.?\\s?e\\.?|w\\.?\\s?k\\.?)/i,\n wide: /^(qabel kristu|before common era|wara kristu|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^(q|b)/i, /^(w|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^k[1234]/i,\n wide: /^[1234](\\.)? kwart/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmaglsond]/i,\n abbreviated: /^(jan|fra|mar|apr|mej|ġun|lul|aww|set|ott|nov|diċ)/i,\n wide: /^(jannar|frar|marzu|april|mejju|ġunju|lulju|awwissu|settembru|ottubru|novembru|diċembru)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^ġ/i, /^l/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^mej/i, /^ġ/i, /^l/i, /^aw/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[ħteġs]/i,\n short: /^(ħa|tn|tl|er|ħa|ġi|si)/i,\n abbreviated: /^(ħad|tne|tli|erb|ħam|ġim|sib)/i,\n wide: /^(il-ħadd|it-tnejn|it-tlieta|l-erbgħa|il-ħamis|il-ġimgħa|is-sibt)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ħ/i, /^t/i, /^t/i, /^e/i, /^ħ/i, /^ġ/i, /^s/i],\n any: [/^(il-)?ħad/i, /^(it-)?tn/i, /^(it-)?tl/i, /^(l-)?er/i, /^(il-)?ham/i, /^(il-)?ġi/i, /^(is-)?si/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|f'nofsillejl|f'nofsinhar|(ta') (għodwa|wara nofsinhar|filgħaxija|lejl))/i,\n any: /^([ap]\\.?\\s?m\\.?|f'nofsillejl|f'nofsinhar|(ta') (għodwa|wara nofsinhar|filgħaxija|lejl))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^f'nofsillejl/i,\n noon: /^f'nofsinhar/i,\n morning: /għodwa/i,\n afternoon: /wara(\\s.*)nofsinhar/i,\n evening: /filgħaxija/i,\n night: /lejl/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n singular: 'mindre enn ett sekund',\n plural: 'mindre enn {{count}} sekunder'\n },\n xSeconds: {\n singular: 'ett sekund',\n plural: '{{count}} sekunder'\n },\n halfAMinute: 'et halvt minutt',\n lessThanXMinutes: {\n singular: 'mindre enn ett minutt',\n plural: 'mindre enn {{count}} minutter'\n },\n xMinutes: {\n singular: 'ett minutt',\n plural: '{{count}} minutter'\n },\n aboutXHours: {\n singular: 'omtrent en time',\n plural: 'omtrent {{count}} timer'\n },\n xHours: {\n singular: 'en time',\n plural: '{{count}} timer'\n },\n xDays: {\n singular: 'en dag',\n plural: '{{count}} dager'\n },\n aboutXWeeks: {\n singular: 'omtrent en uke',\n plural: 'omtrent {{count}} uker'\n },\n xWeeks: {\n singular: 'en uke',\n plural: '{{count}} uker'\n },\n aboutXMonths: {\n singular: 'omtrent en måned',\n plural: 'omtrent {{count}} måneder'\n },\n xMonths: {\n singular: 'en måned',\n plural: '{{count}} måneder'\n },\n aboutXYears: {\n singular: 'omtrent ett år',\n plural: 'omtrent {{count}} år'\n },\n xYears: {\n singular: 'ett år',\n plural: '{{count}} år'\n },\n overXYears: {\n singular: 'over ett år',\n plural: 'over {{count}} år'\n },\n almostXYears: {\n singular: 'nesten ett år',\n plural: 'nesten {{count}} år'\n }\n};\nvar wordMapping = ['null', 'en', 'to', 'tre', 'fire', 'fem', 'seks', 'sju', 'åtte', 'ni', 'ti', 'elleve', 'tolv'];\n\nfunction formatDistance(token, count, options) {\n options = options || {\n onlyNumeric: false\n };\n var translation = formatDistanceLocale[token];\n var result;\n\n if (typeof translation === 'string') {\n result = translation;\n } else if (count === 0 || count > 1) {\n if (options.onlyNumeric) {\n result = translation.plural.replace('{{count}}', count);\n } else {\n result = translation.plural.replace('{{count}}', count < 13 ? wordMapping[count] : count);\n }\n } else {\n result = translation.singular;\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'om ' + result;\n } else {\n return result + ' siden';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'forrige' eeee 'kl.' p\",\n yesterday: \"'i går kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['f.Kr.', 'e.Kr.'],\n abbreviated: ['f.Kr.', 'e.Kr.'],\n wide: ['før Kristus', 'etter Kristus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mars', 'apr.', 'mai', 'juni', 'juli', 'aug.', 'sep.', 'okt.', 'nov.', 'des.'],\n wide: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],\n short: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],\n abbreviated: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n wide: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på etterm.',\n evening: 'på kvelden',\n night: 'på natten'\n },\n abbreviated: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på etterm.',\n evening: 'på kvelden',\n night: 'på natten'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morgenen',\n afternoon: 'på ettermiddagen',\n evening: 'på kvelden',\n night: 'på natten'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n wide: /^(før Kristus|før vår tid|etter Kristus|vår tid)/i\n};\nvar parseEraPatterns = {\n any: [/^f/i, /^e/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? kvartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^aug/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(sø|ma|ti|on|to|fr|lø)/i,\n abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i\n};\nvar parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,\n any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a(\\.?\\s?m\\.?)?$/i,\n pm: /^p(\\.?\\s?m\\.?)?$/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgen/i,\n afternoon: /ettermiddag/i,\n evening: /kveld/i,\n night: /natt/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minder dan een seconde',\n other: 'minder dan {{count}} seconden'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} seconden'\n },\n halfAMinute: 'een halve minuut',\n lessThanXMinutes: {\n one: 'minder dan een minuut',\n other: 'minder dan {{count}} minuten'\n },\n xMinutes: {\n one: 'een minuut',\n other: '{{count}} minuten'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} uur'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} uur'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dagen'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weken'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weken'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maanden'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maanden'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer dan 1 jaar',\n other: 'meer dan {{count}} jaar'\n },\n almostXYears: {\n one: 'bijna 1 jaar',\n other: 'bijna {{count}} jaar'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'over ' + result;\n } else {\n return result + ' geleden';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd-MM-y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'vorige' eeee 'om' p\",\n yesterday: \"'gisteren om' p\",\n today: \"'vandaag om' p\",\n tomorrow: \"'morgen om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['v.C.', 'n.C.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'],\n short: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n abbreviated: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n wide: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'e';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)e?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?Chr\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234]e kwartaal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^jan/i, /^feb/i, /^m(r|a)/i, /^apr/i, /^mei/i, /^jun/i, /^jul/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[zmdwv]/i,\n short: /^(zo|ma|di|wo|do|vr|za)/i,\n abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^middernacht/i,\n noon: /^het middaguur/i,\n morning: /ochtend/i,\n afternoon: /middag/i,\n evening: /avond/i,\n night: /nacht/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minder dan een seconde',\n other: 'minder dan {{count}} seconden'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} seconden'\n },\n halfAMinute: 'een halve minuut',\n lessThanXMinutes: {\n one: 'minder dan een minuut',\n other: 'minder dan {{count}} minuten'\n },\n xMinutes: {\n one: 'een minuut',\n other: '{{count}} minuten'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} uur'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} uur'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dagen'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weken'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weken'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maanden'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maanden'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer dan 1 jaar',\n other: 'meer dan {{count}} jaar'\n },\n almostXYears: {\n one: 'bijna 1 jaar',\n other: 'bijna {{count}} jaar'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'over ' + result;\n } else {\n return result + ' geleden';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd-MM-y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'afgelopen' eeee 'om' p\",\n yesterday: \"'gisteren om' p\",\n today: \"'vandaag om' p\",\n tomorrow: \"'morgen om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['v.C.', 'n.C.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'],\n short: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n abbreviated: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n wide: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'e';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)e?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?Chr\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234]e kwartaal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^jan/i, /^feb/i, /^m(r|a)/i, /^apr/i, /^mei/i, /^jun/i, /^jul/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[zmdwv]/i,\n short: /^(zo|ma|di|wo|do|vr|za)/i,\n abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^middernacht/i,\n noon: /^het middaguur/i,\n morning: /ochtend/i,\n afternoon: /middag/i,\n evening: /avond/i,\n night: /nacht/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n singular: 'mindre enn eitt sekund',\n plural: 'mindre enn {{count}} sekund'\n },\n xSeconds: {\n singular: 'eitt sekund',\n plural: '{{count}} sekund'\n },\n halfAMinute: 'eit halvt minutt',\n lessThanXMinutes: {\n singular: 'mindre enn eitt minutt',\n plural: 'mindre enn {{count}} minutt'\n },\n xMinutes: {\n singular: 'eitt minutt',\n plural: '{{count}} minutt'\n },\n aboutXHours: {\n singular: 'omtrent ein time',\n plural: 'omtrent {{count}} timar'\n },\n xHours: {\n singular: 'ein time',\n plural: '{{count}} timar'\n },\n xDays: {\n singular: 'ein dag',\n plural: '{{count}} dagar'\n },\n aboutXWeeks: {\n singular: 'omtrent ei veke',\n plural: 'omtrent {{count}} veker'\n },\n xWeeks: {\n singular: 'ei veke',\n plural: '{{count}} veker'\n },\n aboutXMonths: {\n singular: 'omtrent ein månad',\n plural: 'omtrent {{count}} månader'\n },\n xMonths: {\n singular: 'ein månad',\n plural: '{{count}} månader'\n },\n aboutXYears: {\n singular: 'omtrent eitt år',\n plural: 'omtrent {{count}} år'\n },\n xYears: {\n singular: 'eitt år',\n plural: '{{count}} år'\n },\n overXYears: {\n singular: 'over eitt år',\n plural: 'over {{count}} år'\n },\n almostXYears: {\n singular: 'nesten eitt år',\n plural: 'nesten {{count}} år'\n }\n};\nvar wordMapping = ['null', 'ein', 'to', 'tre', 'fire', 'fem', 'seks', 'sju', 'åtte', 'ni', 'ti', 'elleve', 'tolv'];\n\nfunction formatDistance(token, count, options) {\n options = options || {\n onlyNumeric: false\n };\n var translation = formatDistanceLocale[token];\n var result;\n\n if (typeof translation === 'string') {\n result = translation;\n } else if (count === 0 || count > 1) {\n if (options.onlyNumeric) {\n result = translation.plural.replace('{{count}}', count);\n } else {\n result = translation.plural.replace('{{count}}', count < 13 ? wordMapping[count] : count);\n }\n } else {\n result = translation.singular;\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'om ' + result;\n } else {\n return result + ' sidan';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'førre' eeee 'kl.' p\",\n yesterday: \"'i går kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgon kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['f.Kr.', 'e.Kr.'],\n abbreviated: ['f.Kr.', 'e.Kr.'],\n wide: ['før Kristus', 'etter Kristus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mars', 'apr.', 'mai', 'juni', 'juli', 'aug.', 'sep.', 'okt.', 'nov.', 'des.'],\n wide: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],\n short: ['su', 'må', 'ty', 'on', 'to', 'fr', 'lau'],\n abbreviated: ['sun', 'mån', 'tys', 'ons', 'tor', 'fre', 'laur'],\n wide: ['sundag', 'måndag', 'tysdag', 'onsdag', 'torsdag', 'fredag', 'laurdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på etterm.',\n evening: 'på kvelden',\n night: 'på natta'\n },\n abbreviated: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på etterm.',\n evening: 'på kvelden',\n night: 'på natta'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morgonen',\n afternoon: 'på ettermiddagen',\n evening: 'på kvelden',\n night: 'på natta'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n wide: /^(før Kristus|før vår tid|etter Kristus|vår tid)/i\n};\nvar parseEraPatterns = {\n any: [/^f/i, /^e/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? kvartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^aug/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(su|må|ty|on|to|fr|la)/i,\n abbreviated: /^(sun|mån|tys|ons|tor|fre|laur)/i,\n wide: /^(sundag|måndag|tysdag|onsdag|torsdag|fredag|laurdag)/i\n};\nvar parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ty/i, /^o/i, /^to/i, /^f/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(midnatt|middag|(på) (morgonen|ettermiddagen|kvelden|natta)|[ap])/i,\n any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(på) (morgonen|ettermiddagen|kvelden|natta))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a(\\.?\\s?m\\.?)?$/i,\n pm: /^p(\\.?\\s?m\\.?)?$/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgon/i,\n afternoon: /ettermiddag/i,\n evening: /kveld/i,\n night: /natt/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction declensionGroup(scheme, count) {\n if (count === 1) {\n return scheme.one;\n }\n\n var rem100 = count % 100; // ends with 11-20\n\n if (rem100 <= 20 && rem100 > 10) {\n return scheme.other;\n }\n\n var rem10 = rem100 % 10; // ends with 2, 3, 4\n\n if (rem10 >= 2 && rem10 <= 4) {\n return scheme.twoFour;\n }\n\n return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n time = time || 'regular';\n var group = declensionGroup(scheme, count);\n var finalText = group[time] || group;\n return finalText.replace('{{count}}', count);\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'mniej niż sekunda',\n past: 'mniej niż sekundę',\n future: 'mniej niż sekundę'\n },\n twoFour: 'mniej niż {{count}} sekundy',\n other: 'mniej niż {{count}} sekund'\n },\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'sekundę',\n future: 'sekundę'\n },\n twoFour: '{{count}} sekundy',\n other: '{{count}} sekund'\n },\n halfAMinute: {\n one: 'pół minuty',\n twoFour: 'pół minuty',\n other: 'pół minuty'\n },\n lessThanXMinutes: {\n one: {\n regular: 'mniej niż minuta',\n past: 'mniej niż minutę',\n future: 'mniej niż minutę'\n },\n twoFour: 'mniej niż {{count}} minuty',\n other: 'mniej niż {{count}} minut'\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'minutę',\n future: 'minutę'\n },\n twoFour: '{{count}} minuty',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: {\n regular: 'około godzina',\n past: 'około godziny',\n future: 'około godzinę'\n },\n twoFour: 'około {{count}} godziny',\n other: 'około {{count}} godzin'\n },\n xHours: {\n one: {\n regular: 'godzina',\n past: 'godzinę',\n future: 'godzinę'\n },\n twoFour: '{{count}} godziny',\n other: '{{count}} godzin'\n },\n xDays: {\n one: {\n regular: 'dzień',\n past: 'dzień',\n future: '1 dzień'\n },\n twoFour: '{{count}} dni',\n other: '{{count}} dni'\n },\n aboutXWeeks: {\n one: 'około tygodnia',\n twoFour: 'około {{count}} tygodni',\n other: 'około {{count}} tygodni'\n },\n xWeeks: {\n one: 'tydzień',\n twoFour: '{{count}} tygodnie',\n other: '{{count}} tygodni'\n },\n aboutXMonths: {\n one: 'około miesiąc',\n twoFour: 'około {{count}} miesiące',\n other: 'około {{count}} miesięcy'\n },\n xMonths: {\n one: 'miesiąc',\n twoFour: '{{count}} miesiące',\n other: '{{count}} miesięcy'\n },\n aboutXYears: {\n one: 'około rok',\n twoFour: 'około {{count}} lata',\n other: 'około {{count}} lat'\n },\n xYears: {\n one: 'rok',\n twoFour: '{{count}} lata',\n other: '{{count}} lat'\n },\n overXYears: {\n one: 'ponad rok',\n twoFour: 'ponad {{count}} lata',\n other: 'ponad {{count}} lat'\n },\n almostXYears: {\n one: 'prawie rok',\n twoFour: 'prawie {{count}} lata',\n other: 'prawie {{count}} lat'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var scheme = formatDistanceLocale[token];\n\n if (!options.addSuffix) {\n return declension(scheme, count);\n }\n\n if (options.comparison > 0) {\n return 'za ' + declension(scheme, count, 'future');\n } else {\n return declension(scheme, count, 'past') + ' temu';\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n long: 'do MMMM y',\n medium: 'do MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar adjectivesLastWeek = {\n masculine: 'ostatni',\n feminine: 'ostatnia'\n};\nvar adjectivesThisWeek = {\n masculine: 'ten',\n feminine: 'ta'\n};\nvar adjectivesNextWeek = {\n masculine: 'następny',\n feminine: 'następna'\n};\nvar dayGrammaticalGender = {\n 0: 'feminine',\n 1: 'masculine',\n 2: 'masculine',\n 3: 'feminine',\n 4: 'masculine',\n 5: 'masculine',\n 6: 'feminine'\n};\n\nfunction getAdjectives(token, date, baseDate, options) {\n if ((0, _index.default)(date, baseDate, options)) {\n return adjectivesThisWeek;\n } else if (token === 'lastWeek') {\n return adjectivesLastWeek;\n } else if (token === 'nextWeek') {\n return adjectivesNextWeek;\n } else {\n throw new Error(\"Cannot determine adjectives for token \".concat(token));\n }\n}\n\nfunction getAdjective(token, date, baseDate, options) {\n var day = date.getUTCDay();\n var adjectives = getAdjectives(token, date, baseDate, options);\n var grammaticalGender = dayGrammaticalGender[day];\n return adjectives[grammaticalGender];\n}\n\nfunction dayAndTimeWithAdjective(token, date, baseDate, options) {\n var adjective = getAdjective(token, date, baseDate, options);\n return \"'\".concat(adjective, \"' eeee 'o' p\");\n}\n\nvar formatRelativeLocale = {\n lastWeek: dayAndTimeWithAdjective,\n yesterday: \"'wczoraj o' p\",\n today: \"'dzisiaj o' p\",\n tomorrow: \"'jutro o' p\",\n nextWeek: dayAndTimeWithAdjective,\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(token, date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number);\n}\n\nvar eraValues = {\n narrow: ['p.n.e.', 'n.e.'],\n abbreviated: ['p.n.e.', 'n.e.'],\n wide: ['przed naszą erą', 'naszej ery']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['I kw.', 'II kw.', 'III kw.', 'IV kw.'],\n wide: ['I kwartał', 'II kwartał', 'III kwartał', 'IV kwartał']\n};\nvar monthValues = {\n narrow: ['S', 'L', 'M', 'K', 'M', 'C', 'L', 'S', 'W', 'P', 'L', 'G'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień']\n};\nvar monthFormattingValues = {\n narrow: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', 'l', 'g'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia']\n};\nvar dayValues = {\n narrow: ['N', 'P', 'W', 'Ś', 'C', 'P', 'S'],\n short: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota']\n};\nvar dayFormattingValues = {\n narrow: ['n', 'p', 'w', 'ś', 'c', 'p', 's'],\n short: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'półn.',\n noon: 'poł',\n morning: 'rano',\n afternoon: 'popoł.',\n evening: 'wiecz.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'południe',\n morning: 'rano',\n afternoon: 'popołudnie',\n evening: 'wieczór',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'południe',\n morning: 'rano',\n afternoon: 'popołudnie',\n evening: 'wieczór',\n night: 'noc'\n }\n};\nvar dayPeriodFormattingValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'o półn.',\n noon: 'w poł.',\n morning: 'rano',\n afternoon: 'po poł.',\n evening: 'wiecz.',\n night: 'w nocy'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w południe',\n morning: 'rano',\n afternoon: 'po południu',\n evening: 'wieczorem',\n night: 'w nocy'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w południe',\n morning: 'rano',\n afternoon: 'po południu',\n evening: 'wieczorem',\n night: 'w nocy'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: monthFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide',\n formattingValues: dayFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: dayPeriodFormattingValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n abbreviated: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n wide: /^(przed\\s*nasz(ą|a)\\s*er(ą|a)|naszej\\s*ery)/i\n};\nvar parseEraPatterns = {\n any: [/^p/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^(I|II|III|IV)\\s*kw\\.?/i,\n wide: /^(I|II|III|IV)\\s*kwarta(ł|l)/i\n};\nvar parseQuarterPatterns = {\n narrow: [/1/i, /2/i, /3/i, /4/i],\n any: [/^I kw/i, /^II kw/i, /^III kw/i, /^IV kw/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[slmkcwpg]/i,\n abbreviated: /^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,\n wide: /^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^s/i, /^l/i, /^m/i, /^k/i, /^m/i, /^c/i, /^l/i, /^s/i, /^w/i, /^p/i, /^l/i, /^g/i],\n any: [/^st/i, /^lu/i, /^mar/i, /^k/i, /^maj/i, /^c/i, /^lip/i, /^si/i, /^w/i, /^p/i, /^lis/i, /^g/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npwścs]/i,\n short: /^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,\n abbreviated: /^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\\.?/i,\n wide: /^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^w/i, /^ś/i, /^c/i, /^p/i, /^s/i],\n abbreviated: [/^n/i, /^po/i, /^w/i, /^(ś|s)r/i, /^c/i, /^pt/i, /^so/i],\n any: [/^n/i, /^po/i, /^w/i, /^(ś|s)r/i, /^c/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(^a$|^p$|pó(ł|l)n\\.?|o\\s*pó(ł|l)n\\.?|po(ł|l)\\.?|w\\s*po(ł|l)\\.?|po\\s*po(ł|l)\\.?|rano|wiecz\\.?|noc|w\\s*nocy)/i,\n any: /^(am|pm|pó(ł|l)noc|o\\s*pó(ł|l)nocy|po(ł|l)udnie|w\\s*po(ł|l)udnie|popo(ł|l)udnie|po\\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\\s*nocy)/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^a$/i,\n pm: /^p$/i,\n midnight: /pó(ł|l)n/i,\n noon: /po(ł|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(ł|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n },\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /pó(ł|l)n/i,\n noon: /po(ł|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(ł|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de um segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'meio minuto',\n lessThanXMinutes: {\n one: 'menos de um minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'cerca de 1 hora',\n other: 'cerca de {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 dia',\n other: '{{count}} dias'\n },\n aboutXWeeks: {\n one: 'cerca de 1 mês',\n other: 'cerca de {{count}} meses'\n },\n xWeeks: {\n one: '1 mês',\n other: '{{count}} meses'\n },\n aboutXMonths: {\n one: 'cerca de 1 mês',\n other: 'cerca de {{count}} meses'\n },\n xMonths: {\n one: '1 mês',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'cerca de 1 ano',\n other: 'cerca de {{count}} anos'\n },\n xYears: {\n one: '1 ano',\n other: '{{count}} anos'\n },\n overXYears: {\n one: 'mais de 1 ano',\n other: 'mais de {{count}} anos'\n },\n almostXYears: {\n one: 'quase 1 ano',\n other: 'quase {{count}} anos'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'em ' + result;\n } else {\n return 'há ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: 'd MMM y',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: function (date, _baseDate, _options) {\n var weekday = date.getUTCDay();\n var last = weekday === 0 || weekday === 6 ? 'último' : 'última';\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['AC', 'DC'],\n abbreviated: ['AC', 'DC'],\n wide: ['antes de cristo', 'depois de cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],\n wide: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro']\n};\nvar dayValues = {\n narrow: ['do', '2ª', '3ª', '4ª', '5ª', '6ª', 'sá'],\n short: ['do', '2ª', '3ª', '4ª', '5ª', '6ª', 'sá'],\n abbreviated: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n wide: ['domingo', 'segunda', 'terça', 'quarta', 'quinta', 'sexta', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noite'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noite'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noite'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da tarde',\n night: 'da noite'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da tarde',\n night: 'da noite'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da tarde',\n night: 'da noite'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n\n if (unit === 'week' || unit === 'isoWeek') {\n return number + 'ª';\n }\n\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^fev/i, /^mar/i, /^abr/i, /^mai/i, /^jun/i, /^jul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dez/i]\n};\nvar matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i\n};\nvar parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de um segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'meio minuto',\n lessThanXMinutes: {\n one: 'menos de um minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'aproximadamente 1 hora',\n other: 'aproximadamente {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 dia',\n other: '{{count}} dias'\n },\n aboutXWeeks: {\n one: 'aproximadamente 1 mês',\n // TODO\n other: 'aproximadamente {{count}} meses' // TODO\n\n },\n xWeeks: {\n one: '1 mês',\n // TODO\n other: '{{count}} meses' // TODO\n\n },\n aboutXMonths: {\n one: 'aproximadamente 1 mês',\n other: 'aproximadamente {{count}} meses'\n },\n xMonths: {\n one: '1 mês',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'aproximadamente 1 ano',\n other: 'aproximadamente {{count}} anos'\n },\n xYears: {\n one: '1 ano',\n other: '{{count}} anos'\n },\n overXYears: {\n one: 'mais de 1 ano',\n other: 'mais de {{count}} anos'\n },\n almostXYears: {\n one: 'quase 1 ano',\n other: 'quase {{count}} anos'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'daqui a ' + result;\n } else {\n return 'há ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d 'de' MMM 'de' y\",\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'na última' eeee 'às' p\",\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a.C.', 'd.C.'],\n wide: ['antes de Cristo', 'depois de Cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],\n wide: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro']\n};\nvar dayValues = {\n narrow: ['d', 's', 't', 'q', 'q', 's', 's'],\n short: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n abbreviated: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n wide: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(º|ª)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes da era comum|depois de cristo|era comum)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes da era comum)/i, /^(depois de cristo|era comum)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º|ª)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ab/i, /^mai/i, /^jun/i, /^jul/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dstq]/i,\n short: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n wide: /^(domingo|segunda-?\\s?feira|terça-?\\s?feira|quarta-?\\s?feira|quinta-?\\s?feira|sexta-?\\s?feira|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^s/i, /^t/i, /^q/i, /^q/i, /^s/i, /^s/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[áa]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^meia/i,\n noon: /^meio/i,\n morning: /manh[ãa]/i,\n afternoon: /tarde/i,\n evening: /noite/i,\n night: /madrugada/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'mai puțin de o secundă',\n other: 'mai puțin de {{count}} secunde'\n },\n xSeconds: {\n one: '1 secundă',\n other: '{{count}} secunde'\n },\n halfAMinute: 'jumătate de minut',\n lessThanXMinutes: {\n one: 'mai puțin de un minut',\n other: 'mai puțin de {{count}} minute'\n },\n xMinutes: {\n one: '1 minut',\n other: '{{count}} minute'\n },\n aboutXHours: {\n one: 'circa 1 oră',\n other: 'circa {{count}} ore'\n },\n xHours: {\n one: '1 oră',\n other: '{{count}} ore'\n },\n xDays: {\n one: '1 zi',\n other: '{{count}} zile'\n },\n aboutXWeeks: {\n one: 'circa o săptămână',\n other: 'circa {{count}} săptămâni'\n },\n xWeeks: {\n one: '1 săptămână',\n other: '{{count}} săptămâni'\n },\n aboutXMonths: {\n one: 'circa 1 lună',\n other: 'circa {{count}} luni'\n },\n xMonths: {\n one: '1 lună',\n other: '{{count}} luni'\n },\n aboutXYears: {\n one: 'circa 1 an',\n other: 'circa {{count}} ani'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ani'\n },\n overXYears: {\n one: 'peste 1 an',\n other: 'peste {{count}} ani'\n },\n almostXYears: {\n one: 'aproape 1 an',\n other: 'aproape {{count}} ani'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'în ' + result;\n } else {\n return result + ' în urmă';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'la' {{time}}\",\n long: \"{{date}} 'la' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'trecută la' p\",\n yesterday: \"'ieri la' p\",\n today: \"'astăzi la' p\",\n tomorrow: \"'mâine la' p\",\n nextWeek: \"eeee 'viitoare la' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['Î', 'D'],\n abbreviated: ['Î.d.C.', 'D.C.'],\n wide: ['Înainte de Cristos', 'După Cristos']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['primul trimestru', 'al doilea trimestru', 'al treilea trimestru', 'al patrulea trimestru']\n};\nvar monthValues = {\n narrow: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['ian', 'feb', 'mar', 'apr', 'mai', 'iun', 'iul', 'aug', 'sep', 'oct', 'noi', 'dec'],\n wide: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie']\n};\nvar dayValues = {\n narrow: ['d', 'l', 'm', 'm', 'j', 'v', 's'],\n short: ['du', 'lu', 'ma', 'mi', 'jo', 'vi', 'sâ'],\n abbreviated: ['dum', 'lun', 'mar', 'mie', 'joi', 'vin', 'sâm'],\n wide: ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', 'sâmbătă']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'ami',\n morning: 'dim',\n afternoon: 'da',\n evening: 's',\n night: 'n'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'miezul nopții',\n noon: 'amiază',\n morning: 'dimineață',\n afternoon: 'după-amiază',\n evening: 'seară',\n night: 'noapte'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'miezul nopții',\n noon: 'amiază',\n morning: 'dimineață',\n afternoon: 'după-amiază',\n evening: 'seară',\n night: 'noapte'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'amiază',\n morning: 'dimineață',\n afternoon: 'după-amiază',\n evening: 'seară',\n night: 'noapte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'miezul nopții',\n noon: 'amiază',\n morning: 'dimineață',\n afternoon: 'după-amiază',\n evening: 'seară',\n night: 'noapte'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'miezul nopții',\n noon: 'amiază',\n morning: 'dimineață',\n afternoon: 'după-amiază',\n evening: 'seară',\n night: 'noapte'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(Î|D)/i,\n abbreviated: /^(Î\\.?\\s?d\\.?\\s?C\\.?|Î\\.?\\s?e\\.?\\s?n\\.?|D\\.?\\s?C\\.?|e\\.?\\s?n\\.?)/i,\n wide: /^(Înainte de Cristos|Înaintea erei noastre|După Cristos|Era noastră)/i\n};\nvar parseEraPatterns = {\n any: [/^ÎC/i, /^DC/i],\n wide: [/^(Înainte de Cristos|Înaintea erei noastre)/i, /^(După Cristos|Era noastră)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^trimestrul [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[ifmaasond]/i,\n abbreviated: /^(ian|feb|mar|apr|mai|iun|iul|aug|sep|oct|noi|dec)/i,\n wide: /^(ianuarie|februarie|martie|aprilie|mai|iunie|iulie|august|septembrie|octombrie|noiembrie|decembrie)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^i/i, /^f/i, /^m/i, /^a/i, /^m/i, /^i/i, /^i/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ia/i, /^f/i, /^mar/i, /^ap/i, /^mai/i, /^iun/i, /^iul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmjvs]/i,\n short: /^(d|l|ma|mi|j|v|s)/i,\n abbreviated: /^(dum|lun|mar|mie|jo|vi|sâ)/i,\n wide: /^(duminica|luni|marţi|miercuri|joi|vineri|sâmbătă)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^mi/i, /^j/i, /^v/i, /^s/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|a|(dimineaţa|după-amiaza|seara|noaptea))/i,\n any: /^([ap]\\.?\\s?m\\.?|miezul nopții|amiaza|(dimineaţa|după-amiaza|seara|noaptea))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn/i,\n noon: /amiaza/i,\n morning: /dimineaţa/i,\n afternoon: /după-amiaza/i,\n evening: /seara/i,\n night: /noaptea/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction declension(scheme, count) {\n // scheme for count=1 exists\n if (scheme.one !== undefined && count === 1) {\n return scheme.one;\n }\n\n var rem10 = count % 10;\n var rem100 = count % 100; // 1, 21, 31, ...\n\n if (rem10 === 1 && rem100 !== 11) {\n return scheme.singularNominative.replace('{{count}}', count); // 2, 3, 4, 22, 23, 24, 32 ...\n } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n return scheme.singularGenitive.replace('{{count}}', count); // 5, 6, 7, 8, 9, 10, 11, ...\n } else {\n return scheme.pluralGenitive.replace('{{count}}', count);\n }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n return function (count, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n if (scheme.future) {\n return declension(scheme.future, count);\n } else {\n return 'через ' + declension(scheme.regular, count);\n }\n } else {\n if (scheme.past) {\n return declension(scheme.past, count);\n } else {\n return declension(scheme.regular, count) + ' назад';\n }\n }\n } else {\n return declension(scheme.regular, count);\n }\n };\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: buildLocalizeTokenFn({\n regular: {\n one: 'меньше секунды',\n singularNominative: 'меньше {{count}} секунды',\n singularGenitive: 'меньше {{count}} секунд',\n pluralGenitive: 'меньше {{count}} секунд'\n },\n future: {\n one: 'меньше, чем через секунду',\n singularNominative: 'меньше, чем через {{count}} секунду',\n singularGenitive: 'меньше, чем через {{count}} секунды',\n pluralGenitive: 'меньше, чем через {{count}} секунд'\n }\n }),\n xSeconds: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} секунда',\n singularGenitive: '{{count}} секунды',\n pluralGenitive: '{{count}} секунд'\n },\n past: {\n singularNominative: '{{count}} секунду назад',\n singularGenitive: '{{count}} секунды назад',\n pluralGenitive: '{{count}} секунд назад'\n },\n future: {\n singularNominative: 'через {{count}} секунду',\n singularGenitive: 'через {{count}} секунды',\n pluralGenitive: 'через {{count}} секунд'\n }\n }),\n halfAMinute: function (_, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'через полминуты';\n } else {\n return 'полминуты назад';\n }\n }\n\n return 'полминуты';\n },\n lessThanXMinutes: buildLocalizeTokenFn({\n regular: {\n one: 'меньше минуты',\n singularNominative: 'меньше {{count}} минуты',\n singularGenitive: 'меньше {{count}} минут',\n pluralGenitive: 'меньше {{count}} минут'\n },\n future: {\n one: 'меньше, чем через минуту',\n singularNominative: 'меньше, чем через {{count}} минуту',\n singularGenitive: 'меньше, чем через {{count}} минуты',\n pluralGenitive: 'меньше, чем через {{count}} минут'\n }\n }),\n xMinutes: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} минута',\n singularGenitive: '{{count}} минуты',\n pluralGenitive: '{{count}} минут'\n },\n past: {\n singularNominative: '{{count}} минуту назад',\n singularGenitive: '{{count}} минуты назад',\n pluralGenitive: '{{count}} минут назад'\n },\n future: {\n singularNominative: 'через {{count}} минуту',\n singularGenitive: 'через {{count}} минуты',\n pluralGenitive: 'через {{count}} минут'\n }\n }),\n aboutXHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'около {{count}} часа',\n singularGenitive: 'около {{count}} часов',\n pluralGenitive: 'около {{count}} часов'\n },\n future: {\n singularNominative: 'приблизительно через {{count}} час',\n singularGenitive: 'приблизительно через {{count}} часа',\n pluralGenitive: 'приблизительно через {{count}} часов'\n }\n }),\n xHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} час',\n singularGenitive: '{{count}} часа',\n pluralGenitive: '{{count}} часов'\n }\n }),\n xDays: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} день',\n singularGenitive: '{{count}} дня',\n pluralGenitive: '{{count}} дней'\n }\n }),\n aboutXWeeks: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'около {{count}} недели',\n singularGenitive: 'около {{count}} недель',\n pluralGenitive: 'около {{count}} недель'\n },\n future: {\n singularNominative: 'приблизительно через {{count}} неделю',\n singularGenitive: 'приблизительно через {{count}} недели',\n pluralGenitive: 'приблизительно через {{count}} недель'\n }\n }),\n xWeeks: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} неделя',\n singularGenitive: '{{count}} недели',\n pluralGenitive: '{{count}} недель'\n }\n }),\n aboutXMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'около {{count}} месяца',\n singularGenitive: 'около {{count}} месяцев',\n pluralGenitive: 'около {{count}} месяцев'\n },\n future: {\n singularNominative: 'приблизительно через {{count}} месяц',\n singularGenitive: 'приблизительно через {{count}} месяца',\n pluralGenitive: 'приблизительно через {{count}} месяцев'\n }\n }),\n xMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} месяц',\n singularGenitive: '{{count}} месяца',\n pluralGenitive: '{{count}} месяцев'\n }\n }),\n aboutXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'около {{count}} года',\n singularGenitive: 'около {{count}} лет',\n pluralGenitive: 'около {{count}} лет'\n },\n future: {\n singularNominative: 'приблизительно через {{count}} год',\n singularGenitive: 'приблизительно через {{count}} года',\n pluralGenitive: 'приблизительно через {{count}} лет'\n }\n }),\n xYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} год',\n singularGenitive: '{{count}} года',\n pluralGenitive: '{{count}} лет'\n }\n }),\n overXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'больше {{count}} года',\n singularGenitive: 'больше {{count}} лет',\n pluralGenitive: 'больше {{count}} лет'\n },\n future: {\n singularNominative: 'больше, чем через {{count}} год',\n singularGenitive: 'больше, чем через {{count}} года',\n pluralGenitive: 'больше, чем через {{count}} лет'\n }\n }),\n almostXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'почти {{count}} год',\n singularGenitive: 'почти {{count}} года',\n pluralGenitive: 'почти {{count}} лет'\n },\n future: {\n singularNominative: 'почти через {{count}} год',\n singularGenitive: 'почти через {{count}} года',\n pluralGenitive: 'почти через {{count}} лет'\n }\n })\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n return formatDistanceLocale[token](count, options);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, do MMMM y 'г.'\",\n long: \"do MMMM y 'г.'\",\n medium: \"d MMM y 'г.'\",\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar accusativeWeekdays = ['воскресенье', 'понедельник', 'вторник', 'среду', 'четверг', 'пятницу', 'субботу'];\n\nfunction lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n return \"'в прошлое \" + weekday + \" в' p\";\n\n case 1:\n case 2:\n case 4:\n return \"'в прошлый \" + weekday + \" в' p\";\n\n case 3:\n case 5:\n case 6:\n return \"'в прошлую \" + weekday + \" в' p\";\n }\n}\n\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n if (day === 2\n /* Tue */\n ) {\n return \"'во \" + weekday + \" в' p\";\n } else {\n return \"'в \" + weekday + \" в' p\";\n }\n}\n\nfunction nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n return \"'в следующее \" + weekday + \" в' p\";\n\n case 1:\n case 2:\n case 4:\n return \"'в следующий \" + weekday + \" в' p\";\n\n case 3:\n case 5:\n case 6:\n return \"'в следующую \" + weekday + \" в' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'вчера в' p\",\n today: \"'сегодня в' p\",\n tomorrow: \"'завтра в' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['до н.э.', 'н.э.'],\n abbreviated: ['до н. э.', 'н. э.'],\n wide: ['до нашей эры', 'нашей эры']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'],\n wide: ['1-й квартал', '2-й квартал', '3-й квартал', '4-й квартал']\n};\nvar monthValues = {\n narrow: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', 'Н', 'Д'],\n abbreviated: ['янв.', 'фев.', 'март', 'апр.', 'май', 'июнь', 'июль', 'авг.', 'сент.', 'окт.', 'нояб.', 'дек.'],\n wide: ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь']\n};\nvar formattingMonthValues = {\n narrow: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', 'Н', 'Д'],\n abbreviated: ['янв.', 'фев.', 'мар.', 'апр.', 'мая', 'июн.', 'июл.', 'авг.', 'сент.', 'окт.', 'нояб.', 'дек.'],\n wide: ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря']\n};\nvar dayValues = {\n narrow: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'],\n short: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n abbreviated: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'суб'],\n wide: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'полн.',\n noon: 'полд.',\n morning: 'утро',\n afternoon: 'день',\n evening: 'веч.',\n night: 'ночь'\n },\n abbreviated: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'полн.',\n noon: 'полд.',\n morning: 'утро',\n afternoon: 'день',\n evening: 'веч.',\n night: 'ночь'\n },\n wide: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'полночь',\n noon: 'полдень',\n morning: 'утро',\n afternoon: 'день',\n evening: 'вечер',\n night: 'ночь'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'полн.',\n noon: 'полд.',\n morning: 'утра',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночи'\n },\n abbreviated: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'полн.',\n noon: 'полд.',\n morning: 'утра',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночи'\n },\n wide: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'полночь',\n noon: 'полдень',\n morning: 'утра',\n afternoon: 'дня',\n evening: 'вечера',\n night: 'ночи'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (unit === 'date') {\n suffix = '-е';\n } else if (unit === 'week' || unit === 'minute' || unit === 'second') {\n suffix = '-я';\n } else {\n suffix = '-й';\n }\n\n return dirtyNumber + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'any',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^((до )?н\\.?\\s?э\\.?)/i,\n abbreviated: /^((до )?н\\.?\\s?э\\.?)/i,\n wide: /^(до нашей эры|нашей эры|наша эра)/i\n};\nvar parseEraPatterns = {\n any: [/^д/i, /^н/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](-?[ыои]?й?)? кв.?/i,\n wide: /^[1234](-?[ыои]?й?)? квартал/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[яфмаисонд]/i,\n abbreviated: /^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)/i,\n wide: /^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i\n};\nvar parseMonthPatterns = {\n narrow: [/^я/i, /^ф/i, /^м/i, /^а/i, /^м/i, /^и/i, /^и/i, /^а/i, /^с/i, /^о/i, /^н/i, /^я/i],\n any: [/^я/i, /^ф/i, /^мар/i, /^ап/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^ав/i, /^с/i, /^о/i, /^н/i, /^д/i]\n};\nvar matchDayPatterns = {\n narrow: /^[впсч]/i,\n short: /^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\\.?/i,\n abbreviated: /^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,\n wide: /^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i\n};\nvar parseDayPatterns = {\n narrow: [/^в/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n any: [/^в[ос]/i, /^п[он]/i, /^в/i, /^ср/i, /^ч/i, /^п[ят]/i, /^с[уб]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^([дп]п|полн\\.?|полд\\.?|утр[оа]|день|дня|веч\\.?|ноч[ьи])/i,\n abbreviated: /^([дп]п|полн\\.?|полд\\.?|утр[оа]|день|дня|веч\\.?|ноч[ьи])/i,\n wide: /^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^дп/i,\n pm: /^пп/i,\n midnight: /^полн/i,\n noon: /^полд/i,\n morning: /^у/i,\n afternoon: /^д[ен]/i,\n evening: /^в/i,\n night: /^н/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\n// NOTE: should prolly be improved\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1308\nfunction declensionGroup(scheme, count) {\n if (count === 1) {\n return scheme.one;\n }\n\n if (count >= 2 && count <= 4) {\n return scheme.twoFour;\n } // if count === null || count === 0 || count >= 5\n\n\n return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n var group = declensionGroup(scheme, count);\n var finalText = group[time] || group;\n return finalText.replace('{{count}}', count);\n}\n\nfunction extractPreposition(token) {\n var result = ['lessThan', 'about', 'over', 'almost'].filter(function (preposition) {\n return !!token.match(new RegExp('^' + preposition));\n });\n return result[0];\n}\n\nfunction prefixPreposition(preposition) {\n var translation = '';\n\n if (preposition === 'almost') {\n translation = 'takmer';\n }\n\n if (preposition === 'about') {\n translation = 'približne';\n }\n\n return translation.length > 0 ? translation + ' ' : '';\n}\n\nfunction suffixPreposition(preposition) {\n var translation = '';\n\n if (preposition === 'lessThan') {\n translation = 'menej než';\n }\n\n if (preposition === 'over') {\n translation = 'viac než';\n }\n\n return translation.length > 0 ? translation + ' ' : '';\n}\n\nfunction lowercaseFirstLetter(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\nvar formatDistanceLocale = {\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'sekundou',\n future: 'sekundu'\n },\n twoFour: {\n regular: '{{count}} sekundy',\n past: '{{count}} sekundami',\n future: '{{count}} sekundy'\n },\n other: {\n regular: '{{count}} sekúnd',\n past: '{{count}} sekundami',\n future: '{{count}} sekúnd'\n }\n },\n halfAMinute: {\n other: {\n regular: 'pol minúty',\n past: 'pol minútou',\n future: 'pol minúty'\n }\n },\n xMinutes: {\n one: {\n regular: 'minúta',\n past: 'minútou',\n future: 'minútu'\n },\n twoFour: {\n regular: '{{count}} minúty',\n past: '{{count}} minútami',\n future: '{{count}} minúty'\n },\n other: {\n regular: '{{count}} minút',\n past: '{{count}} minútami',\n future: '{{count}} minút'\n }\n },\n xHours: {\n one: {\n regular: 'hodina',\n past: 'hodinou',\n future: 'hodinu'\n },\n twoFour: {\n regular: '{{count}} hodiny',\n past: '{{count}} hodinami',\n future: '{{count}} hodiny'\n },\n other: {\n regular: '{{count}} hodín',\n past: '{{count}} hodinami',\n future: '{{count}} hodín'\n }\n },\n xDays: {\n one: {\n regular: 'deň',\n past: 'dňom',\n future: 'deň'\n },\n twoFour: {\n regular: '{{count}} dni',\n past: '{{count}} dňami',\n future: '{{count}} dni'\n },\n other: {\n regular: '{{count}} dní',\n past: '{{count}} dňami',\n future: '{{count}} dní'\n }\n },\n xWeeks: {\n one: {\n regular: 'mesiac',\n // TODO\n past: 'mesiacom',\n // TODO\n future: 'mesiac' // TODO\n\n },\n twoFour: {\n regular: '{{count}} mesiace',\n // TODO\n past: '{{count}} mesiacmi',\n // TODO\n future: '{{count}} mesiace' // TODO\n\n },\n other: {\n regular: '{{count}} mesiacov',\n // TODO\n past: '{{count}} mesiacmi',\n // TODO\n future: '{{count}} mesiacov' // TODO\n\n }\n },\n xMonths: {\n one: {\n regular: 'mesiac',\n past: 'mesiacom',\n future: 'mesiac'\n },\n twoFour: {\n regular: '{{count}} mesiace',\n past: '{{count}} mesiacmi',\n future: '{{count}} mesiace'\n },\n other: {\n regular: '{{count}} mesiacov',\n past: '{{count}} mesiacmi',\n future: '{{count}} mesiacov'\n }\n },\n xYears: {\n one: {\n regular: 'rok',\n past: 'rokom',\n future: 'rok'\n },\n twoFour: {\n regular: '{{count}} roky',\n past: '{{count}} rokmi',\n future: '{{count}} roky'\n },\n other: {\n regular: '{{count}} rokov',\n past: '{{count}} rokmi',\n future: '{{count}} rokov'\n }\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var preposition = extractPreposition(token) || '';\n var key = lowercaseFirstLetter(token.substring(preposition.length));\n var scheme = formatDistanceLocale[key];\n\n if (!options.addSuffix) {\n return prefixPreposition(preposition) + suffixPreposition(preposition) + declension(scheme, count, 'regular');\n }\n\n if (options.comparison > 0) {\n return prefixPreposition(preposition) + 'o ' + suffixPreposition(preposition) + declension(scheme, count, 'future');\n } else {\n return prefixPreposition(preposition) + 'pred ' + suffixPreposition(preposition) + declension(scheme, count, 'past');\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1986\nvar dateFormats = {\n full: 'EEEE d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. M. y',\n short: 'd. M. y' // https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#2149\n\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm' // https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1994\n\n};\nvar dateTimeFormats = {\n full: '{{date}}, {{time}}',\n long: '{{date}}, {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1308\nvar accusativeWeekdays = ['nedeľu', 'pondelok', 'utorok', 'stredu', 'štvrtok', 'piatok', 'sobotu'];\n\nfunction lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n /* Sun */\n\n case 3:\n /* Wed */\n\n case 6\n /* Sat */\n :\n return \"'minulú \" + weekday + \" o' p\";\n\n default:\n return \"'minulý' eeee 'o' p\";\n }\n}\n\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n if (day === 4\n /* Thu */\n ) {\n return \"'vo' eeee 'o' p\";\n } else {\n return \"'v \" + weekday + \" o' p\";\n }\n}\n\nfunction nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n /* Sun */\n\n case 4:\n /* Wed */\n\n case 6\n /* Sat */\n :\n return \"'budúcu' \" + weekday + \" 'o' p\";\n\n default:\n return \"'budúci' eeee 'o' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'včera o' p\",\n today: \"'dnes o' p\",\n tomorrow: \"'zajtra o' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1772\nvar eraValues = {\n narrow: ['pred Kr.', 'po Kr.'],\n abbreviated: ['pred Kr.', 'po Kr.'],\n wide: ['pred Kristom', 'po Kristovi'] // https://www.unicode.org/cldr/charts/32/summary/sk.html#1780\n\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. štvrťrok', '2. štvrťrok', '3. štvrťrok', '4. štvrťrok'] // https://www.unicode.org/cldr/charts/32/summary/sk.html#1804\n\n};\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n wide: ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december']\n};\nvar formattingMonthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n wide: ['januára', 'februára', 'marca', 'apríla', 'mája', 'júna', 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra'] // https://www.unicode.org/cldr/charts/32/summary/sk.html#1876\n\n};\nvar dayValues = {\n narrow: ['n', 'p', 'u', 's', 'š', 'p', 's'],\n short: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n abbreviated: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n wide: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota'] // https://www.unicode.org/cldr/charts/32/summary/sk.html#1932\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'poln.',\n noon: 'pol.',\n morning: 'ráno',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'poln.',\n noon: 'pol.',\n morning: 'ráno',\n afternoon: 'popol.',\n evening: 'večer',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'polnoc',\n noon: 'poludnie',\n morning: 'ráno',\n afternoon: 'popoludnie',\n evening: 'večer',\n night: 'noc'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o poln.',\n noon: 'nap.',\n morning: 'ráno',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'v n.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o poln.',\n noon: 'napol.',\n morning: 'ráno',\n afternoon: 'popol.',\n evening: 'večer',\n night: 'v noci'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o polnoci',\n noon: 'napoludnie',\n morning: 'ráno',\n afternoon: 'popoludní',\n evening: 'večer',\n night: 'v noci'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues // defaultWidth: 'wide'\n\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n abbreviated: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n wide: /^(pred Kristom|pred na[šs][íi]m letopo[čc]tom|po Kristovi|n[áa][šs]ho letopo[čc]tu)/i\n};\nvar parseEraPatterns = {\n any: [/^pr/i, /^(po|n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]\\. [šs]tvr[ťt]rok/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|m[áa]j|j[úu]n|j[úu]l|aug|sep|okt|nov|dec)/i,\n wide: /^(janu[áa]ra?|febru[áa]ra?|(marec|marca)|apr[íi]la?|m[áa]ja?|j[úu]na?|j[úu]la?|augusta?|(september|septembra)|(okt[óo]ber|okt[óo]bra)|(november|novembra)|(december|decembra))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^m[áa]j/i, /^j[úu]n/i, /^j[úu]l/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npusšp]/i,\n short: /^(ne|po|ut|st|št|pi|so)/i,\n abbreviated: /^(ne|po|ut|st|št|pi|so)/i,\n wide: /^(nede[ľl]a|pondelok|utorok|streda|[šs]tvrtok|piatok|sobota])/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^u/i, /^s/i, /^š/i, /^p/i, /^s/i],\n any: [/^n/i, /^po/i, /^u/i, /^st/i, /^(št|stv)/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(am|pm|(o )?poln\\.?|(nap\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]\\.?|(v n\\.?|noc))/i,\n abbreviated: /^(am|pm|(o )?poln\\.?|(napol\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]er|(v )?noci?)/i,\n any: /^(am|pm|(o )?polnoci?|(na)?poludnie|r[áa]no|popoludn(ie|í|i)|ve[čc]er|(v )?noci?)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /poln/i,\n noon: /^(nap|(na)?pol(\\.|u))/i,\n morning: /^r[áa]no/i,\n afternoon: /^pop/i,\n evening: /^ve[čc]/i,\n night: /^(noc|v n\\.)/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'manj kot {{count}} sekunda',\n two: 'manj kot {{count}} sekundi',\n few: 'manj kot {{count}} sekunde',\n other: 'manj kot {{count}} sekund'\n },\n xSeconds: {\n one: '{{count}} sekunda',\n two: '{{count}} sekundi',\n few: '{{count}} sekunde',\n other: '{{count}} sekund'\n },\n halfAMinute: 'pol minute',\n lessThanXMinutes: {\n one: 'manj kot {{count}} minuta',\n two: 'manj kot {{count}} minuti',\n few: 'manj kot {{count}} minute',\n other: 'manj kot {{count}} minut'\n },\n xMinutes: {\n one: '{{count}} minuta',\n two: '{{count}} minuti',\n few: '{{count}} minute',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: 'približno {{count}} ura',\n two: 'približno {{count}} uri',\n few: 'približno {{count}} ure',\n other: 'približno {{count}} ur'\n },\n xHours: {\n one: '{{count}} ura',\n two: '{{count}} uri',\n few: '{{count}} ure',\n other: '{{count}} ur'\n },\n xDays: {\n one: '{{count}} dan',\n two: '{{count}} dni',\n few: '{{count}} dni',\n other: '{{count}} dni'\n },\n aboutXWeeks: {\n one: 'približno {{count}} teden',\n two: 'približno {{count}} tedna',\n few: 'približno {{count}} tedne',\n other: 'približno {{count}} tednov'\n },\n xWeeks: {\n one: '{{count}} teden',\n two: '{{count}} tedna',\n few: '{{count}} tedne',\n other: '{{count}} tednov'\n },\n aboutXMonths: {\n one: 'približno {{count}} mesec',\n two: 'približno {{count}} meseca',\n few: 'približno {{count}} mesece',\n other: 'približno {{count}} mesecev'\n },\n xMonths: {\n one: '{{count}} mesec',\n two: '{{count}} meseca',\n few: '{{count}} meseci',\n other: '{{count}} mesecev'\n },\n aboutXYears: {\n one: 'približno {{count}} leto',\n two: 'približno {{count}} leti',\n few: 'približno {{count}} leta',\n other: 'približno {{count}} let'\n },\n xYears: {\n one: '{{count}} leto',\n two: '{{count}} leti',\n few: '{{count}} leta',\n other: '{{count}} let'\n },\n overXYears: {\n one: 'več kot {{count}} leto',\n two: 'več kot {{count}} leti',\n few: 'več kot {{count}} leta',\n other: 'več kot {{count}} let'\n },\n almostXYears: {\n one: 'skoraj {{count}} leto',\n two: 'skoraj {{count}} leti',\n few: 'skoraj {{count}} leta',\n other: 'skoraj {{count}} let'\n }\n};\nvar distanceInWordsLocalePast = {\n lessThanXSeconds: {\n one: 'manj kot {{count}} sekundo',\n two: 'manj kot {{count}} sekundama',\n few: 'manj kot {{count}} sekundami',\n other: 'manj kot {{count}} sekundami'\n },\n xSeconds: {\n one: '{{count}} sekundo',\n two: '{{count}} sekundama',\n few: '{{count}} sekundami',\n other: '{{count}} sekundami'\n },\n halfAMinute: 'pol minute',\n lessThanXMinutes: {\n one: 'manj kot {{count}} minuto',\n two: 'manj kot {{count}} minutama',\n few: 'manj kot {{count}} minutami',\n other: 'manj kot {{count}} minutami'\n },\n xMinutes: {\n one: '{{count}} minuto',\n two: '{{count}} minutama',\n few: '{{count}} minutami',\n other: '{{count}} minutami'\n },\n aboutXHours: {\n one: 'približno {{count}} uro',\n two: 'približno {{count}} urama',\n few: 'približno {{count}} urami',\n other: 'približno {{count}} urami'\n },\n xHours: {\n one: '{{count}} uro',\n two: '{{count}} urama',\n few: '{{count}} urami',\n other: '{{count}} urami'\n },\n xDays: {\n one: '{{count}} dnem',\n two: '{{count}} dnevoma',\n few: '{{count}} dnevi',\n other: '{{count}} dnevi'\n },\n aboutXMonths: {\n one: 'približno {{count}} mesecem',\n two: 'približno {{count}} mesecema',\n few: 'približno {{count}} meseci',\n other: 'približno {{count}} meseci'\n },\n xMonths: {\n one: '{{count}} mesecem',\n two: '{{count}} mesecema',\n few: '{{count}} meseci',\n other: '{{count}} meseci'\n },\n aboutXYears: {\n one: 'približno {{count}} letom',\n two: 'približno {{count}} letoma',\n few: 'približno {{count}} leti',\n other: 'približno {{count}} leti'\n },\n xYears: {\n one: '{{count}} letom',\n two: '{{count}} letoma',\n few: '{{count}} leti',\n other: '{{count}} leti'\n },\n overXYears: {\n one: 'več kot {{count}} letom',\n two: 'več kot {{count}} letoma',\n few: 'več kot {{count}} leti',\n other: 'več kot {{count}} leti'\n },\n almostXYears: {\n one: 'skoraj {{count}} letom',\n two: 'skoraj {{count}} letoma',\n few: 'skoraj {{count}} leti',\n other: 'skoraj {{count}} leti'\n }\n};\nvar distanceInWordsLocaleFuture = {\n lessThanXSeconds: {\n one: 'manj kot {{count}} sekundo',\n two: 'manj kot {{count}} sekundi',\n few: 'manj kot {{count}} sekunde',\n other: 'manj kot {{count}} sekund'\n },\n xSeconds: {\n one: '{{count}} sekundo',\n two: '{{count}} sekundi',\n few: '{{count}} sekunde',\n other: '{{count}} sekund'\n },\n halfAMinute: 'pol minute',\n lessThanXMinutes: {\n one: 'manj kot {{count}} minuto',\n two: 'manj kot {{count}} minuti',\n few: 'manj kot {{count}} minute',\n other: 'manj kot {{count}} minut'\n },\n xMinutes: {\n one: '{{count}} minuto',\n two: '{{count}} minuti',\n few: '{{count}} minute',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: 'približno {{count}} uro',\n two: 'približno {{count}} uri',\n few: 'približno {{count}} ure',\n other: 'približno {{count}} ur'\n },\n xHours: {\n one: '{{count}} uro',\n two: '{{count}} uri',\n few: '{{count}} ure',\n other: '{{count}} ur'\n },\n xDays: {\n one: '{{count}} dan',\n two: '{{count}} dni',\n few: '{{count}} dni',\n other: '{{count}} dni'\n },\n aboutXMonths: {\n one: 'približno {{count}} mesec',\n two: 'približno {{count}} meseca',\n few: 'približno {{count}} mesece',\n other: 'približno {{count}} mesecev'\n },\n xMonths: {\n one: '{{count}} mesec',\n two: '{{count}} meseca',\n few: '{{count}} mesece',\n other: '{{count}} mesecev'\n },\n aboutXYears: {\n one: 'približno {{count}} leto',\n two: 'približno {{count}} leti',\n few: 'približno {{count}} leta',\n other: 'približno {{count}} let'\n },\n xYears: {\n one: '{{count}} leto',\n two: '{{count}} leti',\n few: '{{count}} leta',\n other: '{{count}} let'\n },\n overXYears: {\n one: 'več kot {{count}} leto',\n two: 'več kot {{count}} leti',\n few: 'več kot {{count}} leta',\n other: 'več kot {{count}} let'\n },\n almostXYears: {\n one: 'skoraj {{count}} leto',\n two: 'skoraj {{count}} leti',\n few: 'skoraj {{count}} leta',\n other: 'skoraj {{count}} let'\n }\n};\n\nfunction getFormFromCount(count) {\n switch (count % 100) {\n case 1:\n return 'one';\n\n case 2:\n return 'two';\n\n case 3:\n case 4:\n return 'few';\n\n default:\n return 'other';\n }\n}\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var localeObject = distanceInWordsLocale;\n var result = '';\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n localeObject = distanceInWordsLocaleFuture;\n result += 'čez ';\n } else {\n localeObject = distanceInWordsLocalePast;\n result += 'pred ';\n }\n }\n\n if (typeof localeObject[token] === 'string') {\n result += localeObject[token];\n } else {\n var form = getFormFromCount(count);\n result += localeObject[token][form].replace('{{count}}', count);\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, dd. MMMM y',\n long: 'dd. MMMM y',\n medium: 'd. MMM y',\n short: 'd. MM. yy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'prejšnjo nedeljo ob' p\";\n\n case 3:\n return \"'prejšnjo sredo ob' p\";\n\n case 6:\n return \"'prejšnjo soboto ob' p\";\n\n default:\n return \"'prejšnji' EEEE 'ob' p\";\n }\n },\n yesterday: \"'včeraj ob' p\",\n today: \"'danes ob' p\",\n tomorrow: \"'jutri ob' p\",\n nextWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'naslednjo nedeljo ob' p\";\n\n case 3:\n return \"'naslednjo sredo ob' p\";\n\n case 6:\n return \"'naslednjo soboto ob' p\";\n\n default:\n return \"'naslednji' EEEE 'ob' p\";\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number).concat('.');\n}\n\nvar eraValues = {\n narrow: ['pr. n. št.', 'po n. št.'],\n abbreviated: ['pr. n. št.', 'po n. št.'],\n wide: ['pred našim štetjem', 'po našem štetju']\n};\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', 'avgust', 'september', 'oktober', 'november', 'december']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. čet.', '2. čet.', '3. čet.', '4. čet.'],\n wide: ['1. četrtletje', '2. četrtletje', '3. četrtletje', '4. četrtletje']\n};\nvar dayValues = {\n narrow: ['n', 'p', 't', 's', 'č', 'p', 's'],\n short: ['ned.', 'pon.', 'tor.', 'sre.', 'čet.', 'pet.', 'sob.'],\n abbreviated: ['ned.', 'pon.', 'tor.', 'sre.', 'čet.', 'pet.', 'sob.'],\n wide: ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', 'sobota']\n};\nvar dayPeriodValuesStandalone = {\n narrow: {\n am: 'd',\n pm: 'p',\n midnight: '24.00',\n noon: '12.00',\n morning: 'j',\n afternoon: 'p',\n evening: 'v',\n night: 'n'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'pop.',\n midnight: 'poln.',\n noon: 'pold.',\n morning: 'jut.',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'noč'\n },\n wide: {\n am: 'dop.',\n pm: 'pop.',\n midnight: 'polnoč',\n noon: 'poldne',\n morning: 'jutro',\n afternoon: 'popoldne',\n evening: 'večer',\n night: 'noč'\n }\n};\nvar dayPeriodValuesFormatting = {\n narrow: {\n am: 'd',\n pm: 'p',\n midnight: '24.00',\n noon: '12.00',\n morning: 'zj',\n afternoon: 'p',\n evening: 'zv',\n night: 'po'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'pop.',\n midnight: 'opoln.',\n noon: 'opold.',\n morning: 'zjut.',\n afternoon: 'pop.',\n evening: 'zveč.',\n night: 'ponoči'\n },\n wide: {\n am: 'dop.',\n pm: 'pop.',\n midnight: 'opolnoči',\n noon: 'opoldne',\n morning: 'zjutraj',\n afternoon: 'popoldan',\n evening: 'zvečer',\n night: 'ponoči'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValuesStandalone,\n defaultWidth: 'wide',\n formattingValues: dayPeriodValuesFormatting,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\./i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n abbreviated: /^(pr\\. n\\. št\\.|po n\\. št\\.)/i,\n wide: /^(pred Kristusom|pred na[sš]im [sš]tetjem|po Kristusu|po na[sš]em [sš]tetju|na[sš]ega [sš]tetja)/i\n};\nvar parseEraPatterns = {\n any: [/^pr/i, /^(po|na[sš]em)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\.\\s?[čc]et\\.?/i,\n wide: /^[1234]\\. [čc]etrtletje/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan\\.|feb\\.|mar\\.|apr\\.|maj|jun\\.|jul\\.|avg\\.|sep\\.|okt\\.|nov\\.|dec\\.)/i,\n wide: /^(januar|februar|marec|april|maj|junij|julij|avgust|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n abbreviated: [/^ja/i, /^fe/i, /^mar/i, /^ap/i, /^maj/i, /^jun/i, /^jul/i, /^av/i, /^s/i, /^o/i, /^n/i, /^d/i],\n wide: [/^ja/i, /^fe/i, /^mar/i, /^ap/i, /^maj/i, /^jun/i, /^jul/i, /^av/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[nptsčc]/i,\n short: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n abbreviated: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n wide: /^(nedelja|ponedeljek|torek|sreda|[cč]etrtek|petek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^t/i, /^s/i, /^[cč]/i, /^p/i, /^s/i],\n any: [/^n/i, /^po/i, /^t/i, /^sr/i, /^[cč]/i, /^pe/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(d|po?|z?v|n|z?j|24\\.00|12\\.00)/i,\n any: /^(dop\\.|pop\\.|o?poln(\\.|o[cč]i?)|o?pold(\\.|ne)|z?ve[cč](\\.|er)|(po)?no[cč]i?|popold(ne|an)|jut(\\.|ro)|zjut(\\.|raj))/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^d/i,\n pm: /^p/i,\n midnight: /^24/i,\n noon: /^12/i,\n morning: /^(z?j)/i,\n afternoon: /^p/i,\n evening: /^(z?v)/i,\n night: /^(n|po)/i\n },\n any: {\n am: /^dop\\./i,\n pm: /^pop\\./i,\n midnight: /^o?poln/i,\n noon: /^o?pold/i,\n morning: /j/i,\n afternoon: /^pop\\./i,\n evening: /^z?ve/i,\n night: /(po)?no/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'wide'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n standalone: 'manje od 1 sekunde',\n withPrepositionAgo: 'manje od 1 sekunde',\n withPrepositionIn: 'manje od 1 sekundu'\n },\n dual: 'manje od {{count}} sekunde',\n other: 'manje od {{count}} sekundi'\n },\n xSeconds: {\n one: {\n standalone: '1 sekunda',\n withPrepositionAgo: '1 sekunde',\n withPrepositionIn: '1 sekundu'\n },\n dual: '{{count}} sekunde',\n other: '{{count}} sekundi'\n },\n halfAMinute: 'pola minute',\n lessThanXMinutes: {\n one: {\n standalone: 'manje od 1 minute',\n withPrepositionAgo: 'manje od 1 minute',\n withPrepositionIn: 'manje od 1 minutu'\n },\n dual: 'manje od {{count}} minute',\n other: 'manje od {{count}} minuta'\n },\n xMinutes: {\n one: {\n standalone: '1 minuta',\n withPrepositionAgo: '1 minute',\n withPrepositionIn: '1 minutu'\n },\n dual: '{{count}} minute',\n other: '{{count}} minuta'\n },\n aboutXHours: {\n one: {\n standalone: 'oko 1 sat',\n withPrepositionAgo: 'oko 1 sat',\n withPrepositionIn: 'oko 1 sat'\n },\n dual: 'oko {{count}} sata',\n other: 'oko {{count}} sati'\n },\n xHours: {\n one: {\n standalone: '1 sat',\n withPrepositionAgo: '1 sat',\n withPrepositionIn: '1 sat'\n },\n dual: '{{count}} sata',\n other: '{{count}} sati'\n },\n xDays: {\n one: {\n standalone: '1 dan',\n withPrepositionAgo: '1 dan',\n withPrepositionIn: '1 dan'\n },\n dual: '{{count}} dana',\n other: '{{count}} dana'\n },\n aboutXWeeks: {\n one: {\n standalone: 'oko 1 nedjelju',\n withPrepositionAgo: 'oko 1 nedjelju',\n withPrepositionIn: 'oko 1 nedjelju'\n },\n dual: 'oko {{count}} nedjelje',\n other: 'oko {{count}} nedjelje'\n },\n xWeeks: {\n one: {\n standalone: '1 nedjelju',\n withPrepositionAgo: '1 nedjelju',\n withPrepositionIn: '1 nedjelju'\n },\n dual: '{{count}} nedjelje',\n other: '{{count}} nedjelje'\n },\n aboutXMonths: {\n one: {\n standalone: 'oko 1 mesec',\n withPrepositionAgo: 'oko 1 mesec',\n withPrepositionIn: 'oko 1 mesec'\n },\n dual: 'oko {{count}} meseca',\n other: 'oko {{count}} meseci'\n },\n xMonths: {\n one: {\n standalone: '1 mesec',\n withPrepositionAgo: '1 mesec',\n withPrepositionIn: '1 mesec'\n },\n dual: '{{count}} meseca',\n other: '{{count}} meseci'\n },\n aboutXYears: {\n one: {\n standalone: 'oko 1 godinu',\n withPrepositionAgo: 'oko 1 godinu',\n withPrepositionIn: 'oko 1 godinu'\n },\n dual: 'oko {{count}} godine',\n other: 'oko {{count}} godina'\n },\n xYears: {\n one: {\n standalone: '1 godina',\n withPrepositionAgo: '1 godine',\n withPrepositionIn: '1 godinu'\n },\n dual: '{{count}} godine',\n other: '{{count}} godina'\n },\n overXYears: {\n one: {\n standalone: 'preko 1 godinu',\n withPrepositionAgo: 'preko 1 godinu',\n withPrepositionIn: 'preko 1 godinu'\n },\n dual: 'preko {{count}} godine',\n other: 'preko {{count}} godina'\n },\n almostXYears: {\n one: {\n standalone: 'gotovo 1 godinu',\n withPrepositionAgo: 'gotovo 1 godinu',\n withPrepositionIn: 'gotovo 1 godinu'\n },\n dual: 'gotovo {{count}} godine',\n other: 'gotovo {{count}} godina'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n result = formatDistanceLocale[token].one.withPrepositionIn;\n } else {\n result = formatDistanceLocale[token].one.withPrepositionAgo;\n }\n } else {\n result = formatDistanceLocale[token].one.standalone;\n }\n } else if (count % 10 > 1 && count % 10 < 5 && // if last digit is between 2 and 4\n String(count).substr(-2, 1) !== '1' // unless the 2nd to last digit is \"1\"\n ) {\n result = formatDistanceLocale[token].dual.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'za ' + result;\n } else {\n return 'pre ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d. MMMM yyyy.',\n long: 'd. MMMM yyyy.',\n medium: 'd. MMM yy.',\n short: 'dd. MM. yy.'\n};\nvar timeFormats = {\n full: 'HH:mm:ss (zzzz)',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'u' {{time}}\",\n long: \"{{date}} 'u' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'prošle nedelje u' p\";\n\n case 3:\n return \"'prošle srede u' p\";\n\n case 6:\n return \"'prošle subote u' p\";\n\n default:\n return \"'prošli' EEEE 'u' p\";\n }\n },\n yesterday: \"'juče u' p\",\n today: \"'danas u' p\",\n tomorrow: \"'sutra u' p\",\n nextWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'sledeće nedelje u' p\";\n\n case 3:\n return \"'sledeću sredu u' p\";\n\n case 6:\n return \"'sledeću subotu u' p\";\n\n default:\n return \"'sledeći' EEEE 'u' p\";\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number).concat('.');\n}\n\nvar eraValues = {\n narrow: ['pr.n.e.', 'AD'],\n abbreviated: ['pr. Hr.', 'po. Hr.'],\n wide: ['Pre Hrista', 'Posle Hrista']\n};\nvar monthValues = {\n narrow: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.', '12.'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'],\n wide: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar']\n};\nvar formattingMonthValues = {\n narrow: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.', '12.'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'],\n wide: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar']\n};\nvar quarterValues = {\n narrow: ['1.', '2.', '3.', '4.'],\n abbreviated: ['1. kv.', '2. kv.', '3. kv.', '4. kv.'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar dayValues = {\n narrow: ['N', 'P', 'U', 'S', 'Č', 'P', 'S'],\n short: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'],\n abbreviated: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'],\n wide: ['nedjelja', 'ponedjeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota']\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutru',\n afternoon: 'popodne',\n evening: 'uveče',\n night: 'noću'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutru',\n afternoon: 'popodne',\n evening: 'uveče',\n night: 'noću'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutru',\n afternoon: 'posle podne',\n evening: 'uveče',\n night: 'noću'\n }\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutru',\n afternoon: 'popodne',\n evening: 'uveče',\n night: 'noću'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutru',\n afternoon: 'popodne',\n evening: 'uveče',\n night: 'noću'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'ponoć',\n noon: 'podne',\n morning: 'ujutru',\n afternoon: 'posle podne',\n evening: 'uveče',\n night: 'noću'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\./i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(pr\\.n\\.e\\.|AD)/i,\n abbreviated: /^(pr\\.\\s?Hr\\.|po\\.\\s?Hr\\.)/i,\n wide: /^(Pre Hrista|pre nove ere|Posle Hrista|nova era)/i\n};\nvar parseEraPatterns = {\n any: [/^pr/i, /^(po|nova)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\.\\s?kv\\.?/i,\n wide: /^[1234]\\. kvartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(10|11|12|[123456789])\\./i,\n abbreviated: /^(jan|feb|mar|apr|maj|jun|jul|avg|sep|okt|nov|dec)/i,\n wide: /^((januar|januara)|(februar|februara)|(mart|marta)|(april|aprila)|(maj|maja)|(jun|juna)|(jul|jula)|(avgust|avgusta)|(septembar|septembra)|(oktobar|oktobra)|(novembar|novembra)|(decembar|decembra))/i\n};\nvar parseMonthPatterns = {\n narrow: [/(10|11|12|[123456789])/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^maj/i, /^jun/i, /^jul/i, /^avg/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npusčc]/i,\n short: /^(ned|pon|uto|sre|(čet|cet)|pet|sub)/i,\n abbreviated: /^(ned|pon|uto|sre|(čet|cet)|pet|sub)/i,\n wide: /^(nedjelja|ponedjeljak|utorak|sreda|(četvrtak|cetvrtak)|petak|subota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|ponoc|ponoć|(po)?podne|uvece|uveče|noću|posle podne|ujutru)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^pono/i,\n noon: /^pod/i,\n morning: /jutro/i,\n afternoon: /(posle\\s|po)+podne/i,\n evening: /(uvece|uveče)/i,\n night: /(nocu|noću)/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n standalone: 'мање од 1 секунде',\n withPrepositionAgo: 'мање од 1 секунде',\n withPrepositionIn: 'мање од 1 секунду'\n },\n dual: 'мање од {{count}} секунде',\n other: 'мање од {{count}} секунди'\n },\n xSeconds: {\n one: {\n standalone: '1 секунда',\n withPrepositionAgo: '1 секунде',\n withPrepositionIn: '1 секунду'\n },\n dual: '{{count}} секунде',\n other: '{{count}} секунди'\n },\n halfAMinute: 'пола минуте',\n lessThanXMinutes: {\n one: {\n standalone: 'мање од 1 минуте',\n withPrepositionAgo: 'мање од 1 минуте',\n withPrepositionIn: 'мање од 1 минуту'\n },\n dual: 'мање од {{count}} минуте',\n other: 'мање од {{count}} минута'\n },\n xMinutes: {\n one: {\n standalone: '1 минута',\n withPrepositionAgo: '1 минуте',\n withPrepositionIn: '1 минуту'\n },\n dual: '{{count}} минуте',\n other: '{{count}} минута'\n },\n aboutXHours: {\n one: {\n standalone: 'око 1 сат',\n withPrepositionAgo: 'око 1 сат',\n withPrepositionIn: 'око 1 сат'\n },\n dual: 'око {{count}} сата',\n other: 'око {{count}} сати'\n },\n xHours: {\n one: {\n standalone: '1 сат',\n withPrepositionAgo: '1 сат',\n withPrepositionIn: '1 сат'\n },\n dual: '{{count}} сата',\n other: '{{count}} сати'\n },\n xDays: {\n one: {\n standalone: '1 дан',\n withPrepositionAgo: '1 дан',\n withPrepositionIn: '1 дан'\n },\n dual: '{{count}} дана',\n other: '{{count}} дана'\n },\n aboutXWeeks: {\n one: {\n standalone: 'око 1 недељу',\n withPrepositionAgo: 'око 1 недељу',\n withPrepositionIn: 'око 1 недељу'\n },\n dual: 'око {{count}} недеље',\n other: 'око {{count}} недеље'\n },\n xWeeks: {\n one: {\n standalone: '1 недељу',\n withPrepositionAgo: '1 недељу',\n withPrepositionIn: '1 недељу'\n },\n dual: '{{count}} недеље',\n other: '{{count}} недеље'\n },\n aboutXMonths: {\n one: {\n standalone: 'око 1 месец',\n withPrepositionAgo: 'око 1 месец',\n withPrepositionIn: 'око 1 месец'\n },\n dual: 'око {{count}} месеца',\n other: 'око {{count}} месеци'\n },\n xMonths: {\n one: {\n standalone: '1 месец',\n withPrepositionAgo: '1 месец',\n withPrepositionIn: '1 месец'\n },\n dual: '{{count}} месеца',\n other: '{{count}} месеци'\n },\n aboutXYears: {\n one: {\n standalone: 'око 1 годину',\n withPrepositionAgo: 'око 1 годину',\n withPrepositionIn: 'око 1 годину'\n },\n dual: 'око {{count}} године',\n other: 'око {{count}} година'\n },\n xYears: {\n one: {\n standalone: '1 година',\n withPrepositionAgo: '1 године',\n withPrepositionIn: '1 годину'\n },\n dual: '{{count}} године',\n other: '{{count}} година'\n },\n overXYears: {\n one: {\n standalone: 'преко 1 годину',\n withPrepositionAgo: 'преко 1 годину',\n withPrepositionIn: 'преко 1 годину'\n },\n dual: 'преко {{count}} године',\n other: 'преко {{count}} година'\n },\n almostXYears: {\n one: {\n standalone: 'готово 1 годину',\n withPrepositionAgo: 'готово 1 годину',\n withPrepositionIn: 'готово 1 годину'\n },\n dual: 'готово {{count}} године',\n other: 'готово {{count}} година'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n result = formatDistanceLocale[token].one.withPrepositionIn;\n } else {\n result = formatDistanceLocale[token].one.withPrepositionAgo;\n }\n } else {\n result = formatDistanceLocale[token].one.standalone;\n }\n } else if (count % 10 > 1 && count % 10 < 5 && // if last digit is between 2 and 4\n String(count).substr(-2, 1) !== '1' // unless the 2nd to last digit is \"1\"\n ) {\n result = formatDistanceLocale[token].dual.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'за ' + result;\n } else {\n return 'пре ' + result;\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, d. MMMM yyyy.',\n long: 'd. MMMM yyyy.',\n medium: 'd. MMM yy.',\n short: 'dd. MM. yy.'\n};\nvar timeFormats = {\n full: 'HH:mm:ss (zzzz)',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'у' {{time}}\",\n long: \"{{date}} 'у' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'прошле недеље у' p\";\n\n case 3:\n return \"'прошле среде у' p\";\n\n case 6:\n return \"'прошле суботе у' p\";\n\n default:\n return \"'прошли' EEEE 'у' p\";\n }\n },\n yesterday: \"'јуче у' p\",\n today: \"'данас у' p\",\n tomorrow: \"'сутра у' p\",\n nextWeek: function (date) {\n var day = date.getUTCDay();\n\n switch (day) {\n case 0:\n return \"'следеће недеље у' p\";\n\n case 3:\n return \"'следећу среду у' p\";\n\n case 6:\n return \"'следећу суботу у' p\";\n\n default:\n return \"'следећи' EEEE 'у' p\";\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number).concat('.');\n}\n\nvar eraValues = {\n narrow: ['пр.н.е.', 'АД'],\n abbreviated: ['пр. Хр.', 'по. Хр.'],\n wide: ['Пре Христа', 'После Христа']\n};\nvar monthValues = {\n narrow: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.', '12.'],\n abbreviated: ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'],\n wide: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар']\n};\nvar formattingMonthValues = {\n narrow: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.', '12.'],\n abbreviated: ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'],\n wide: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар']\n};\nvar quarterValues = {\n narrow: ['1.', '2.', '3.', '4.'],\n abbreviated: ['1. кв.', '2. кв.', '3. кв.', '4. кв.'],\n wide: ['1. квартал', '2. квартал', '3. квартал', '4. квартал']\n};\nvar dayValues = {\n narrow: ['Н', 'П', 'У', 'С', 'Ч', 'П', 'С'],\n short: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'],\n abbreviated: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'],\n wide: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота']\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'АМ',\n pm: 'ПМ',\n midnight: 'поноћ',\n noon: 'подне',\n morning: 'ујутру',\n afternoon: 'поподне',\n evening: 'увече',\n night: 'ноћу'\n },\n abbreviated: {\n am: 'АМ',\n pm: 'ПМ',\n midnight: 'поноћ',\n noon: 'подне',\n morning: 'ујутру',\n afternoon: 'поподне',\n evening: 'увече',\n night: 'ноћу'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'поноћ',\n noon: 'подне',\n morning: 'ујутру',\n afternoon: 'после подне',\n evening: 'увече',\n night: 'ноћу'\n }\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'поноћ',\n noon: 'подне',\n morning: 'ујутру',\n afternoon: 'поподне',\n evening: 'увече',\n night: 'ноћу'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'поноћ',\n noon: 'подне',\n morning: 'ујутру',\n afternoon: 'поподне',\n evening: 'увече',\n night: 'ноћу'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'поноћ',\n noon: 'подне',\n morning: 'ујутру',\n afternoon: 'после подне',\n evening: 'увече',\n night: 'ноћу'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)\\./i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(пр\\.н\\.е\\.|АД)/i,\n abbreviated: /^(пр\\.\\s?Хр\\.|по\\.\\s?Хр\\.)/i,\n wide: /^(Пре Христа|пре нове ере|После Христа|нова ера)/i\n};\nvar parseEraPatterns = {\n any: [/^пр/i, /^(по|нова)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\.\\s?кв\\.?/i,\n wide: /^[1234]\\. квартал/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(10|11|12|[123456789])\\./i,\n abbreviated: /^(јан|феб|мар|апр|мај|јун|јул|авг|сеп|окт|нов|дец)/i,\n wide: /^((јануар|јануара)|(фебруар|фебруара)|(март|марта)|(април|априла)|(мја|маја)|(јун|јуна)|(јул|јула)|(август|августа)|(септембар|септембра)|(октобар|октобра)|(новембар|новембра)|(децембар|децембра))/i\n};\nvar parseMonthPatterns = {\n narrow: [/(10|11|12|[123456789])/i],\n any: [/^ја/i, /^ф/i, /^мар/i, /^ап/i, /^мај/i, /^јун/i, /^јул/i, /^авг/i, /^с/i, /^о/i, /^н/i, /^д/i]\n};\nvar matchDayPatterns = {\n narrow: /^[пусчн]/i,\n short: /^(нед|пон|уто|сре|чет|пет|суб)/i,\n abbreviated: /^(нед|пон|уто|сре|чет|пет|суб)/i,\n wide: /^(недеља|понедељак|уторак|среда|четвртак|петак|субота)/i\n};\nvar parseDayPatterns = {\n narrow: [/^п/i, /^у/i, /^с/i, /^ч/i, /^н/i],\n any: [/^нед/i, /^пон/i, /^уто/i, /^сре/i, /^чет/i, /^пет/i, /^суб/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(ам|пм|поноћ|(по)?подне|увече|ноћу|после подне|ујутру)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^поно/i,\n noon: /^под/i,\n morning: /ујутру/i,\n afternoon: /(после\\s|по)+подне/i,\n evening: /(увече)/i,\n night: /(ноћу)/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n singular: 'mindre än en sekund',\n plural: 'mindre än {{count}} sekunder'\n },\n xSeconds: {\n singular: 'en sekund',\n plural: '{{count}} sekunder'\n },\n halfAMinute: 'en halv minut',\n lessThanXMinutes: {\n singular: 'mindre än en minut',\n plural: 'mindre än {{count}} minuter'\n },\n xMinutes: {\n singular: 'en minut',\n plural: '{{count}} minuter'\n },\n aboutXHours: {\n singular: 'ungefär en timme',\n plural: 'ungefär {{count}} timmar'\n },\n xHours: {\n singular: 'en timme',\n plural: '{{count}} timmar'\n },\n xDays: {\n singular: 'en dag',\n plural: '{{count}} dagar'\n },\n aboutXWeeks: {\n singular: 'ungefär en vecka',\n plural: 'ungefär {{count}} vecka'\n },\n xWeeks: {\n singular: 'en vecka',\n plural: '{{count}} vecka'\n },\n aboutXMonths: {\n singular: 'ungefär en månad',\n plural: 'ungefär {{count}} månader'\n },\n xMonths: {\n singular: 'en månad',\n plural: '{{count}} månader'\n },\n aboutXYears: {\n singular: 'ungefär ett år',\n plural: 'ungefär {{count}} år'\n },\n xYears: {\n singular: 'ett år',\n plural: '{{count}} år'\n },\n overXYears: {\n singular: 'över ett år',\n plural: 'över {{count}} år'\n },\n almostXYears: {\n singular: 'nästan ett år',\n plural: 'nästan {{count}} år'\n }\n};\nvar wordMapping = ['noll', 'en', 'två', 'tre', 'fyra', 'fem', 'sex', 'sju', 'åtta', 'nio', 'tio', 'elva', 'tolv'];\n\nfunction formatDistance(token, count, options) {\n options = options || {\n onlyNumeric: false\n };\n var translation = formatDistanceLocale[token];\n var result;\n\n if (typeof translation === 'string') {\n result = translation;\n } else if (count === 0 || count > 1) {\n if (options.onlyNumeric) {\n result = translation.plural.replace('{{count}}', count);\n } else {\n result = translation.plural.replace('{{count}}', count < 13 ? wordMapping[count] : count);\n }\n } else {\n result = translation.singular;\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'om ' + result;\n } else {\n return result + ' sedan';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'y-MM-dd'\n};\nvar timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'i' EEEE's kl.' p\",\n yesterday: \"'igår kl.' p\",\n today: \"'idag kl.' p\",\n tomorrow: \"'imorgon kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['f.Kr.', 'e.Kr.'],\n abbreviated: ['f.Kr.', 'e.Kr.'],\n wide: ['före Kristus', 'efter Kristus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', '4:e kvartalet']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mars', 'apr.', 'maj', 'juni', 'juli', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],\n short: ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],\n abbreviated: ['sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör'],\n wide: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag'] // https://www.unicode.org/cldr/charts/32/summary/sv.html#1888\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'morg.',\n afternoon: 'efterm.',\n evening: 'kväll',\n night: 'natt'\n },\n abbreviated: {\n am: 'f.m.',\n pm: 'e.m.',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'morgon',\n afternoon: 'efterm.',\n evening: 'kväll',\n night: 'natt'\n },\n wide: {\n am: 'förmiddag',\n pm: 'eftermiddag',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'morgon',\n afternoon: 'eftermiddag',\n evening: 'kväll',\n night: 'natt'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på efterm.',\n evening: 'på kvällen',\n night: 'på natten'\n },\n abbreviated: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på efterm.',\n evening: 'på kvällen',\n night: 'på natten'\n },\n wide: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morgonen',\n afternoon: 'på eftermiddagen',\n evening: 'på kvällen',\n night: 'på natten'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n case 2:\n return number + ':a';\n }\n }\n\n return number + ':e';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(:a|:e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n wide: /^(före Kristus|före vår tid|efter Kristus|vår tid)/i\n};\nvar parseEraPatterns = {\n any: [/^f/i, /^[ev]/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](:a|:e)? kvartalet/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|maj|jun|jul|aug|sep|okt|nov|dec)\\.?/i,\n wide: /^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^maj/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(sö|må|ti|on|to|fr|lö)/i,\n abbreviated: /^(sön|mån|tis|ons|tor|fre|lör)/i,\n wide: /^(söndag|måndag|tisdag|onsdag|torsdag|fredag|lördag)/i\n};\nvar parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^([fe]\\.?\\s?m\\.?|midn(att)?|midd(ag)?|(på) (morgonen|eftermiddagen|kvällen|natten))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^f/i,\n pm: /^e/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgon/i,\n afternoon: /eftermiddag/i,\n evening: /kväll/i,\n night: /natt/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n default: 'ஒரு வினாடிக்கு குறைவாக',\n in: 'ஒரு வினாடிக்குள்',\n ago: 'ஒரு வினாடிக்கு முன்பு'\n },\n other: {\n default: '{{count}} வினாடிகளுக்கு குறைவாக',\n in: '{{count}} வினாடிகளுக்குள்',\n ago: '{{count}} வினாடிகளுக்கு முன்பு'\n }\n },\n xSeconds: {\n one: {\n default: '1 வினாடி',\n in: '1 வினாடியில்',\n ago: '1 வினாடி முன்பு'\n },\n other: {\n default: '{{count}} விநாடிகள்',\n in: '{{count}} வினாடிகளில்',\n ago: '{{count}} விநாடிகளுக்கு முன்பு'\n }\n },\n halfAMinute: {\n default: 'அரை நிமிடம்',\n in: 'அரை நிமிடத்தில்',\n ago: 'அரை நிமிடம் முன்பு'\n },\n lessThanXMinutes: {\n one: {\n default: 'ஒரு நிமிடத்திற்கும் குறைவாக',\n in: 'ஒரு நிமிடத்திற்குள்',\n ago: 'ஒரு நிமிடத்திற்கு முன்பு'\n },\n other: {\n default: '{{count}} நிமிடங்களுக்கும் குறைவாக',\n in: '{{count}} நிமிடங்களுக்குள்',\n ago: '{{count}} நிமிடங்களுக்கு முன்பு'\n }\n },\n xMinutes: {\n one: {\n default: '1 நிமிடம்',\n in: '1 நிமிடத்தில்',\n ago: '1 நிமிடம் முன்பு'\n },\n other: {\n default: '{{count}} நிமிடங்கள்',\n in: '{{count}} நிமிடங்களில்',\n ago: '{{count}} நிமிடங்களுக்கு முன்பு'\n }\n },\n aboutXHours: {\n one: {\n default: 'சுமார் 1 மணி நேரம்',\n in: 'சுமார் 1 மணி நேரத்தில்',\n ago: 'சுமார் 1 மணி நேரத்திற்கு முன்பு'\n },\n other: {\n default: 'சுமார் {{count}} மணி நேரம்',\n in: 'சுமார் {{count}} மணி நேரத்திற்கு முன்பு',\n ago: 'சுமார் {{count}} மணி நேரத்தில்'\n }\n },\n xHours: {\n one: {\n default: '1 மணி நேரம்',\n in: '1 மணி நேரத்தில்',\n ago: '1 மணி நேரத்திற்கு முன்பு'\n },\n other: {\n default: '{{count}} மணி நேரம்',\n in: '{{count}} மணி நேரத்தில்',\n ago: '{{count}} மணி நேரத்திற்கு முன்பு'\n }\n },\n xDays: {\n one: {\n default: '1 நாள்',\n in: '1 நாளில்',\n ago: '1 நாள் முன்பு'\n },\n other: {\n default: '{{count}} நாட்கள்',\n in: '{{count}} நாட்களில்',\n ago: '{{count}} நாட்களுக்கு முன்பு'\n }\n },\n aboutXWeeks: {\n one: {\n default: 'சுமார் 1 வாரம்',\n in: 'சுமார் 1 வாரத்தில்',\n ago: 'சுமார் 1 வாரம் முன்பு'\n },\n other: {\n default: 'சுமார் {{count}} வாரங்கள்',\n in: 'சுமார் {{count}} வாரங்களில்',\n ago: 'சுமார் {{count}} வாரங்களுக்கு முன்பு'\n }\n },\n xWeeks: {\n one: {\n default: '1 வாரம்',\n in: '1 வாரத்தில்',\n ago: '1 வாரம் முன்பு'\n },\n other: {\n default: '{{count}} வாரங்கள்',\n in: '{{count}} வாரங்களில்',\n ago: '{{count}} வாரங்களுக்கு முன்பு'\n }\n },\n aboutXMonths: {\n one: {\n default: 'சுமார் 1 மாதம்',\n in: 'சுமார் 1 மாதத்தில்',\n ago: 'சுமார் 1 மாதத்திற்கு முன்பு'\n },\n other: {\n default: 'சுமார் {{count}} மாதங்கள்',\n in: 'சுமார் {{count}} மாதங்களில்',\n ago: 'சுமார் {{count}} மாதங்களுக்கு முன்பு'\n }\n },\n xMonths: {\n one: {\n default: '1 மாதம்',\n in: '1 மாதத்தில்',\n ago: '1 மாதம் முன்பு'\n },\n other: {\n default: '{{count}} மாதங்கள்',\n in: '{{count}} மாதங்களில்',\n ago: '{{count}} மாதங்களுக்கு முன்பு'\n }\n },\n aboutXYears: {\n one: {\n default: 'சுமார் 1 வருடம்',\n in: 'சுமார் 1 ஆண்டில்',\n ago: 'சுமார் 1 வருடம் முன்பு'\n },\n other: {\n default: 'சுமார் {{count}} ஆண்டுகள்',\n in: 'சுமார் {{count}} ஆண்டுகளில்',\n ago: 'சுமார் {{count}} ஆண்டுகளுக்கு முன்பு'\n }\n },\n xYears: {\n one: {\n default: '1 வருடம்',\n in: '1 ஆண்டில்',\n ago: '1 வருடம் முன்பு'\n },\n other: {\n default: '{{count}} ஆண்டுகள்',\n in: '{{count}} ஆண்டுகளில்',\n ago: '{{count}} ஆண்டுகளுக்கு முன்பு'\n }\n },\n overXYears: {\n one: {\n default: '1 வருடத்திற்கு மேல்',\n in: '1 வருடத்திற்கும் மேலாக',\n ago: '1 வருடம் முன்பு'\n },\n other: {\n default: '{{count}} ஆண்டுகளுக்கும் மேலாக',\n in: '{{count}} ஆண்டுகளில்',\n ago: '{{count}} ஆண்டுகளுக்கு முன்பு'\n }\n },\n almostXYears: {\n one: {\n default: 'கிட்டத்தட்ட 1 வருடம்',\n in: 'கிட்டத்தட்ட 1 ஆண்டில்',\n ago: 'கிட்டத்தட்ட 1 வருடம் முன்பு'\n },\n other: {\n default: 'கிட்டத்தட்ட {{count}} ஆண்டுகள்',\n in: 'கிட்டத்தட்ட {{count}} ஆண்டுகளில்',\n ago: 'கிட்டத்தட்ட {{count}} ஆண்டுகளுக்கு முன்பு'\n }\n }\n};\n\nfunction getFormatDistanceLocaleWithSuffix(resultObj, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return resultObj.in;\n } else {\n return resultObj.ago;\n }\n }\n\n return resultObj.default;\n}\n\nfunction formatDistance(token, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var result;\n\n if (formatDistanceLocale[token].default) {\n result = getFormatDistanceLocaleWithSuffix(formatDistanceLocale[token], options);\n } else if (count === 1) {\n result = getFormatDistanceLocaleWithSuffix(formatDistanceLocale[token].one, options);\n } else {\n result = getFormatDistanceLocaleWithSuffix(formatDistanceLocale[token].other, options);\n }\n\n return result.replace('{{count}}', count);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Ref: https://www.unicode.org/cldr/charts/32/summary/ta.html\n// CLDR #1846 - #1849\nvar dateFormats = {\n full: 'EEEE, d MMMM, y',\n long: 'd MMMM, y',\n medium: 'd MMM, y',\n short: 'd/M/yy' // CLDR #1850 - #1853\n\n};\nvar timeFormats = {\n full: 'a h:mm:ss zzzz',\n long: 'a h:mm:ss z',\n medium: 'a h:mm:ss',\n short: 'a h:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'கடந்த' eeee p 'மணிக்கு'\",\n yesterday: \"'நேற்று ' p 'மணிக்கு'\",\n today: \"'இன்று ' p 'மணிக்கு'\",\n tomorrow: \"'நாளை ' p 'மணிக்கு'\",\n nextWeek: \"eeee p 'மணிக்கு'\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Ref: https://www.unicode.org/cldr/charts/32/summary/ta.html\nvar eraValues = {\n narrow: ['கி.மு.', 'கி.பி.'],\n abbreviated: ['கி.மு.', 'கி.பி.'],\n // CLDR #1624, #1626\n wide: ['கிறிஸ்துவுக்கு முன்', 'அன்னோ டோமினி'] // CLDR #1620, #1622\n\n};\nvar quarterValues = {\n // CLDR #1644 - #1647\n narrow: ['1', '2', '3', '4'],\n // CLDR #1636 - #1639\n abbreviated: ['காலா.1', 'காலா.2', 'காலா.3', 'காலா.4'],\n // CLDR #1628 - #1631\n wide: ['ஒன்றாம் காலாண்டு', 'இரண்டாம் காலாண்டு', 'மூன்றாம் காலாண்டு', 'நான்காம் காலாண்டு']\n};\nvar monthValues = {\n // CLDR #700 - #711\n narrow: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'],\n // CLDR #1676 - #1687\n abbreviated: ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],\n // CLDR #1652 - #1663\n wide: ['ஜனவரி', // 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};\nvar dayValues = {\n // CLDR #1766 - #1772\n narrow: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n // CLDR #1752 - #1758\n short: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n // CLDR #1738 - #1744\n abbreviated: ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'],\n // CLDR #1724 - #1730\n wide: ['ஞாயிறு', // Sunday\n 'திங்கள்', // Monday\n 'செவ்வாய்', // Tuesday\n 'புதன்', // Wednesday\n 'வியாழன்', // Thursday\n 'வெள்ளி', // Friday\n 'சனி' // Saturday\n ] // CLDR #1780 - #1845\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'மு.ப',\n pm: 'பி.ப',\n midnight: 'நள்.',\n noon: 'நண்.',\n morning: 'கா.',\n afternoon: 'மதி.',\n evening: 'மா.',\n night: 'இர.'\n },\n abbreviated: {\n am: 'முற்பகல்',\n pm: 'பிற்பகல்',\n midnight: 'நள்ளிரவு',\n noon: 'நண்பகல்',\n morning: 'காலை',\n afternoon: 'மதியம்',\n evening: 'மாலை',\n night: 'இரவு'\n },\n wide: {\n am: 'முற்பகல்',\n pm: 'பிற்பகல்',\n midnight: 'நள்ளிரவு',\n noon: 'நண்பகல்',\n morning: 'காலை',\n afternoon: 'மதியம்',\n evening: 'மாலை',\n night: 'இரவு'\n } // CLDR #1780 - #1845\n\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'மு.ப',\n pm: 'பி.ப',\n midnight: 'நள்.',\n noon: 'நண்.',\n morning: 'கா.',\n afternoon: 'மதி.',\n evening: 'மா.',\n night: 'இர.'\n },\n abbreviated: {\n am: 'முற்பகல்',\n pm: 'பிற்பகல்',\n midnight: 'நள்ளிரவு',\n noon: 'நண்பகல்',\n morning: 'காலை',\n afternoon: 'மதியம்',\n evening: 'மாலை',\n night: 'இரவு'\n },\n wide: {\n am: 'முற்பகல்',\n pm: 'பிற்பகல்',\n midnight: 'நள்ளிரவு',\n noon: 'நண்பகல்',\n morning: 'காலை',\n afternoon: 'மதியம்',\n evening: 'மாலை',\n night: 'இரவு'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n // var rem100 = number % 100\n // if (rem100 > 20 || rem100 < 10) {\n // switch (rem100 % 10) {\n // case 1:\n // return number + 'st'\n // case 2:\n // return number + 'nd'\n // case 3:\n // return number + 'rd'\n // }\n // }\n // return number + 'th'\n\n return number;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(வது)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(கி.மு.|கி.பி.)/i,\n abbreviated: /^(கி\\.?\\s?மு\\.?|கி\\.?\\s?பி\\.?)/,\n wide: /^(கிறிஸ்துவுக்கு\\sமுன்|அன்னோ\\sடோமினி)/i\n};\nvar parseEraPatterns = {\n any: [/கி\\.?\\s?மு\\.?/, /கி\\.?\\s?பி\\.?/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^காலா.[1234]/i,\n wide: /^(ஒன்றாம்|இரண்டாம்|மூன்றாம்|நான்காம்) காலாண்டு/i\n};\nvar parseQuarterPatterns = {\n narrow: [/1/i, /2/i, /3/i, /4/i],\n any: [/(1|காலா.1|ஒன்றாம்)/i, /(2|காலா.2|இரண்டாம்)/i, /(3|காலா.3|மூன்றாம்)/i, /(4|காலா.4|நான்காம்)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(ஜ|பி|மா|ஏ|மே|ஜூ|ஆ|செ|அ|ந|டி)$/i,\n abbreviated: /^(ஜன.|பிப்.|மார்.|ஏப்.|மே|ஜூன்|ஜூலை|ஆக.|செப்.|அக்.|நவ.|டிச.)/i,\n wide: /^(ஜனவரி|பிப்ரவரி|மார்ச்|ஏப்ரல்|மே|ஜூன்|ஜூலை|ஆகஸ்ட்|செப்டம்பர்|அக்டோபர்|நவம்பர்|டிசம்பர்)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ஜ$/i, /^பி/i, /^மா/i, /^ஏ/i, /^மே/i, /^ஜூ/i, /^ஜூ/i, /^ஆ/i, /^செ/i, /^அ/i, /^ந/i, /^டி/i],\n any: [/^ஜன/i, /^பி/i, /^மா/i, /^ஏ/i, /^மே/i, /^ஜூன்/i, /^ஜூலை/i, /^ஆ/i, /^செ/i, /^அ/i, /^ந/i, /^டி/i]\n};\nvar matchDayPatterns = {\n narrow: /^(ஞா|தி|செ|பு|வி|வெ|ச)/i,\n short: /^(ஞா|தி|செ|பு|வி|வெ|ச)/i,\n abbreviated: /^(ஞாயி.|திங்.|செவ்.|புத.|வியா.|வெள்.|சனி)/i,\n wide: /^(ஞாயிறு|திங்கள்|செவ்வாய்|புதன்|வியாழன்|வெள்ளி|சனி)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ஞா/i, /^தி/i, /^செ/i, /^பு/i, /^வி/i, /^வெ/i, /^ச/i],\n any: [/^ஞா/i, /^தி/i, /^செ/i, /^பு/i, /^வி/i, /^வெ/i, /^ச/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(மு.ப|பி.ப|நள்|நண்|காலை|மதியம்|மாலை|இரவு)/i,\n any: /^(மு.ப|பி.ப|முற்பகல்|பிற்பகல்|நள்ளிரவு|நண்பகல்|காலை|மதியம்|மாலை|இரவு)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^மு/i,\n pm: /^பி/i,\n midnight: /^நள்/i,\n noon: /^நண்/i,\n morning: /காலை/i,\n afternoon: /மதியம்/i,\n evening: /மாலை/i,\n night: /இரவு/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'సెకను కన్నా తక్కువ',\n other: '{{count}} సెకన్ల కన్నా తక్కువ'\n },\n withPreposition: {\n one: 'సెకను',\n other: '{{count}} సెకన్ల'\n }\n },\n xSeconds: {\n standalone: {\n one: 'ఒక సెకను',\n // CLDR #1314\n other: '{{count}} సెకన్ల'\n },\n withPreposition: {\n one: 'ఒక సెకను',\n other: '{{count}} సెకన్ల'\n }\n },\n halfAMinute: {\n standalone: 'అర నిమిషం',\n withPreposition: 'అర నిమిషం'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'ఒక నిమిషం కన్నా తక్కువ',\n other: '{{count}} నిమిషాల కన్నా తక్కువ'\n },\n withPreposition: {\n one: 'ఒక నిమిషం',\n other: '{{count}} నిమిషాల'\n }\n },\n xMinutes: {\n standalone: {\n one: 'ఒక నిమిషం',\n // CLDR #1311\n other: '{{count}} నిమిషాలు'\n },\n withPreposition: {\n one: 'ఒక నిమిషం',\n // CLDR #1311\n other: '{{count}} నిమిషాల'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'సుమారు ఒక గంట',\n other: 'సుమారు {{count}} గంటలు'\n },\n withPreposition: {\n one: 'సుమారు ఒక గంట',\n other: 'సుమారు {{count}} గంటల'\n }\n },\n xHours: {\n standalone: {\n one: 'ఒక గంట',\n // CLDR #1308\n other: '{{count}} గంటలు'\n },\n withPreposition: {\n one: 'ఒక గంట',\n other: '{{count}} గంటల'\n }\n },\n xDays: {\n standalone: {\n one: 'ఒక రోజు',\n // CLDR #1292\n other: '{{count}} రోజులు'\n },\n withPreposition: {\n one: 'ఒక రోజు',\n other: '{{count}} రోజుల'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'సుమారు ఒక వారం',\n other: 'సుమారు {{count}} వారాలు'\n },\n withPreposition: {\n one: 'సుమారు ఒక వారం',\n other: 'సుమారు {{count}} వారాలల'\n }\n },\n xWeeks: {\n standalone: {\n one: 'ఒక వారం',\n other: '{{count}} వారాలు'\n },\n withPreposition: {\n one: 'ఒక వారం',\n other: '{{count}} వారాలల'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'సుమారు ఒక నెల',\n other: 'సుమారు {{count}} నెలలు'\n },\n withPreposition: {\n one: 'సుమారు ఒక నెల',\n other: 'సుమారు {{count}} నెలల'\n }\n },\n xMonths: {\n standalone: {\n one: 'ఒక నెల',\n // CLDR #1281\n other: '{{count}} నెలలు'\n },\n withPreposition: {\n one: 'ఒక నెల',\n other: '{{count}} నెలల'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'సుమారు ఒక సంవత్సరం',\n other: 'సుమారు {{count}} సంవత్సరాలు'\n },\n withPreposition: {\n one: 'సుమారు ఒక సంవత్సరం',\n other: 'సుమారు {{count}} సంవత్సరాల'\n }\n },\n xYears: {\n standalone: {\n one: 'ఒక సంవత్సరం',\n // CLDR #1275\n other: '{{count}} సంవత్సరాలు'\n },\n withPreposition: {\n one: 'ఒక సంవత్సరం',\n other: '{{count}} సంవత్సరాల'\n }\n },\n overXYears: {\n standalone: {\n one: 'ఒక సంవత్సరం పైగా',\n other: '{{count}} సంవత్సరాలకు పైగా'\n },\n withPreposition: {\n one: 'ఒక సంవత్సరం',\n other: '{{count}} సంవత్సరాల'\n }\n },\n almostXYears: {\n standalone: {\n one: 'దాదాపు ఒక సంవత్సరం',\n other: 'దాదాపు {{count}} సంవత్సరాలు'\n },\n withPreposition: {\n one: 'దాదాపు ఒక సంవత్సరం',\n other: 'దాదాపు {{count}} సంవత్సరాల'\n }\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var usageGroup = options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n var result;\n\n if (typeof usageGroup === 'string') {\n result = usageGroup;\n } else if (count === 1) {\n result = usageGroup.one;\n } else {\n result = usageGroup.other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + 'లో';\n } else {\n return result + ' క్రితం';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\n// CLDR #1807 - #1811\nvar dateFormats = {\n full: 'd, MMMM y, EEEE',\n long: 'd MMMM, y',\n medium: 'd MMM, y',\n short: 'dd-MM-yy' // CLDR #1807 - #1811\n\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a' // CLDR #1815 - #1818\n\n};\nvar dateTimeFormats = {\n full: \"{{date}} {{time}}'కి'\",\n long: \"{{date}} {{time}}'కి'\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\nvar formatRelativeLocale = {\n lastWeek: \"'గత' eeee p\",\n // CLDR #1384\n yesterday: \"'నిన్న' p\",\n // CLDR #1393\n today: \"'ఈ రోజు' p\",\n // CLDR #1394\n tomorrow: \"'రేపు' p\",\n // CLDR #1395\n nextWeek: \"'తదుపరి' eeee p\",\n // CLDR #1386\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\n// Source: https://dsal.uchicago.edu/dictionaries/brown/\n// CLDR #1605 - #1608\nvar eraValues = {\n narrow: ['క్రీ.పూ.', 'క్రీ.శ.'],\n abbreviated: ['క్రీ.పూ.', 'క్రీ.శ.'],\n wide: ['క్రీస్తు పూర్వం', 'క్రీస్తుశకం'] // CLDR #1613 - #1628\n\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['త్రై1', 'త్రై2', 'త్రై3', 'త్రై4'],\n wide: ['1వ త్రైమాసికం', '2వ త్రైమాసికం', '3వ త్రైమాసికం', '4వ త్రైమాసికం'] // CLDR #1637 - #1708\n\n};\nvar monthValues = {\n narrow: ['జ', 'ఫి', 'మా', 'ఏ', 'మే', 'జూ', 'జు', 'ఆ', 'సె', 'అ', 'న', 'డి'],\n abbreviated: ['జన', 'ఫిబ్ర', 'మార్చి', 'ఏప్రి', 'మే', 'జూన్', 'జులై', 'ఆగ', 'సెప్టెం', 'అక్టో', 'నవం', 'డిసెం'],\n wide: ['జనవరి', 'ఫిబ్రవరి', 'మార్చి', 'ఏప్రిల్', 'మే', 'జూన్', 'జులై', 'ఆగస్టు', 'సెప్టెంబర్', 'అక్టోబర్', 'నవంబర్', 'డిసెంబర్'] // CLDR #1709 - #1764\n\n};\nvar dayValues = {\n narrow: ['ఆ', 'సో', 'మ', 'బు', 'గు', 'శు', 'శ'],\n short: ['ఆది', 'సోమ', 'మంగళ', 'బుధ', 'గురు', 'శుక్ర', 'శని'],\n abbreviated: ['ఆది', 'సోమ', 'మంగళ', 'బుధ', 'గురు', 'శుక్ర', 'శని'],\n wide: ['ఆదివారం', 'సోమవారం', 'మంగళవారం', 'బుధవారం', 'గురువారం', 'శుక్రవారం', 'శనివారం'] // CLDR #1767 - #1806\n\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'పూర్వాహ్నం',\n pm: 'అపరాహ్నం',\n midnight: 'అర్ధరాత్రి',\n noon: 'మిట్టమధ్యాహ్నం',\n morning: 'ఉదయం',\n afternoon: 'మధ్యాహ్నం',\n evening: 'సాయంత్రం',\n night: 'రాత్రి'\n },\n abbreviated: {\n am: 'పూర్వాహ్నం',\n pm: 'అపరాహ్నం',\n midnight: 'అర్ధరాత్రి',\n noon: 'మిట్టమధ్యాహ్నం',\n morning: 'ఉదయం',\n afternoon: 'మధ్యాహ్నం',\n evening: 'సాయంత్రం',\n night: 'రాత్రి'\n },\n wide: {\n am: 'పూర్వాహ్నం',\n pm: 'అపరాహ్నం',\n midnight: 'అర్ధరాత్రి',\n noon: 'మిట్టమధ్యాహ్నం',\n morning: 'ఉదయం',\n afternoon: 'మధ్యాహ్నం',\n evening: 'సాయంత్రం',\n night: 'రాత్రి'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'పూర్వాహ్నం',\n pm: 'అపరాహ్నం',\n midnight: 'అర్ధరాత్రి',\n noon: 'మిట్టమధ్యాహ్నం',\n morning: 'ఉదయం',\n afternoon: 'మధ్యాహ్నం',\n evening: 'సాయంత్రం',\n night: 'రాత్రి'\n },\n abbreviated: {\n am: 'పూర్వాహ్నం',\n pm: 'అపరాహ్నం',\n midnight: 'అర్ధరాత్రి',\n noon: 'మిట్టమధ్యాహ్నం',\n morning: 'ఉదయం',\n afternoon: 'మధ్యాహ్నం',\n evening: 'సాయంత్రం',\n night: 'రాత్రి'\n },\n wide: {\n am: 'పూర్వాహ్నం',\n pm: 'అపరాహ్నం',\n midnight: 'అర్ధరాత్రి',\n noon: 'మిట్టమధ్యాహ్నం',\n morning: 'ఉదయం',\n afternoon: 'మధ్యాహ్నం',\n evening: 'సాయంత్రం',\n night: 'రాత్రి'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + 'వ';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(వ)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(క్రీ\\.పూ\\.|క్రీ\\.శ\\.)/i,\n abbreviated: /^(క్రీ\\.?\\s?పూ\\.?|ప్ర\\.?\\s?శ\\.?\\s?పూ\\.?|క్రీ\\.?\\s?శ\\.?|సా\\.?\\s?శ\\.?)/i,\n wide: /^(క్రీస్తు పూర్వం|ప్రస్తుత శకానికి పూర్వం|క్రీస్తు శకం|ప్రస్తుత శకం)/i\n};\nvar parseEraPatterns = {\n any: [/^(పూ|శ)/i, /^సా/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^త్రై[1234]/i,\n wide: /^[1234](వ)? త్రైమాసికం/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(జూ|జు|జ|ఫి|మా|ఏ|మే|ఆ|సె|అ|న|డి)/i,\n abbreviated: /^(జన|ఫిబ్ర|మార్చి|ఏప్రి|మే|జూన్|జులై|ఆగ|సెప్|అక్టో|నవ|డిసె)/i,\n wide: /^(జనవరి|ఫిబ్రవరి|మార్చి|ఏప్రిల్|మే|జూన్|జులై|ఆగస్టు|సెప్టెంబర్|అక్టోబర్|నవంబర్|డిసెంబర్)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^జ/i, /^ఫి/i, /^మా/i, /^ఏ/i, /^మే/i, /^జూ/i, /^జు/i, /^ఆ/i, /^సె/i, /^అ/i, /^న/i, /^డి/i],\n any: [/^జన/i, /^ఫి/i, /^మా/i, /^ఏ/i, /^మే/i, /^జూన్/i, /^జులై/i, /^ఆగ/i, /^సె/i, /^అ/i, /^న/i, /^డి/i]\n};\nvar matchDayPatterns = {\n narrow: /^(ఆ|సో|మ|బు|గు|శు|శ)/i,\n short: /^(ఆది|సోమ|మం|బుధ|గురు|శుక్ర|శని)/i,\n abbreviated: /^(ఆది|సోమ|మం|బుధ|గురు|శుక్ర|శని)/i,\n wide: /^(ఆదివారం|సోమవారం|మంగళవారం|బుధవారం|గురువారం|శుక్రవారం|శనివారం)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ఆ/i, /^సో/i, /^మ/i, /^బు/i, /^గు/i, /^శు/i, /^శ/i],\n any: [/^ఆది/i, /^సోమ/i, /^మం/i, /^బుధ/i, /^గురు/i, /^శుక్ర/i, /^శని/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(పూర్వాహ్నం|అపరాహ్నం|అర్ధరాత్రి|మిట్టమధ్యాహ్నం|ఉదయం|మధ్యాహ్నం|సాయంత్రం|రాత్రి)/i,\n any: /^(పూర్వాహ్నం|అపరాహ్నం|అర్ధరాత్రి|మిట్టమధ్యాహ్నం|ఉదయం|మధ్యాహ్నం|సాయంత్రం|రాత్రి)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^పూర్వాహ్నం/i,\n pm: /^అపరాహ్నం/i,\n midnight: /^అర్ధ/i,\n noon: /^మిట్ట/i,\n morning: /ఉదయం/i,\n afternoon: /మధ్యాహ్నం/i,\n evening: /సాయంత్రం/i,\n night: /రాత్రి/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'น้อยกว่า 1 วินาที',\n other: 'น้อยกว่า {{count}} วินาที'\n },\n xSeconds: {\n one: '1 วินาที',\n other: '{{count}} วินาที'\n },\n halfAMinute: 'ครึ่งนาที',\n lessThanXMinutes: {\n one: 'น้อยกว่า 1 นาที',\n other: 'น้อยกว่า {{count}} นาที'\n },\n xMinutes: {\n one: '1 นาที',\n other: '{{count}} นาที'\n },\n aboutXHours: {\n one: 'ประมาณ 1 ชั่วโมง',\n other: 'ประมาณ {{count}} ชั่วโมง'\n },\n xHours: {\n one: '1 ชั่วโมง',\n other: '{{count}} ชั่วโมง'\n },\n xDays: {\n one: '1 วัน',\n other: '{{count}} วัน'\n },\n aboutXWeeks: {\n one: 'ประมาณ 1 สัปดาห์',\n other: 'ประมาณ {{count}} สัปดาห์'\n },\n xWeeks: {\n one: '1 สัปดาห์',\n other: '{{count}} สัปดาห์'\n },\n aboutXMonths: {\n one: 'ประมาณ 1 เดือน',\n other: 'ประมาณ {{count}} เดือน'\n },\n xMonths: {\n one: '1 เดือน',\n other: '{{count}} เดือน'\n },\n aboutXYears: {\n one: 'ประมาณ 1 ปี',\n other: 'ประมาณ {{count}} ปี'\n },\n xYears: {\n one: '1 ปี',\n other: '{{count}} ปี'\n },\n overXYears: {\n one: 'มากกว่า 1 ปี',\n other: 'มากกว่า {{count}} ปี'\n },\n almostXYears: {\n one: 'เกือบ 1 ปี',\n other: 'เกือบ {{count}} ปี'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n if (token === 'halfAMinute') {\n return 'ใน' + result;\n } else {\n return 'ใน ' + result;\n }\n } else {\n return result + 'ที่ผ่านมา';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'วันEEEEที่ do MMMM y',\n long: 'do MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'H:mm:ss น. zzzz',\n long: 'H:mm:ss น. z',\n medium: 'H:mm:ss น.',\n short: 'H:mm น.'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'เวลา' {{time}}\",\n long: \"{{date}} 'เวลา' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'medium'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee'ที่แล้วเวลา' p\",\n yesterday: \"'เมื่อวานนี้เวลา' p\",\n today: \"'วันนี้เวลา' p\",\n tomorrow: \"'พรุ่งนี้เวลา' p\",\n nextWeek: \"eeee 'เวลา' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['B', 'คศ'],\n abbreviated: ['BC', 'ค.ศ.'],\n wide: ['ปีก่อนคริสตกาล', 'คริสต์ศักราช']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['ไตรมาสแรก', 'ไตรมาสที่สอง', 'ไตรมาสที่สาม', 'ไตรมาสที่สี่']\n};\nvar dayValues = {\n narrow: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],\n short: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],\n abbreviated: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],\n wide: ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์']\n};\nvar monthValues = {\n narrow: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'],\n abbreviated: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'],\n wide: ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ก่อนเที่ยง',\n pm: 'หลังเที่ยง',\n midnight: 'เที่ยงคืน',\n noon: 'เที่ยง',\n morning: 'เช้า',\n afternoon: 'บ่าย',\n evening: 'เย็น',\n night: 'กลางคืน'\n },\n abbreviated: {\n am: 'ก่อนเที่ยง',\n pm: 'หลังเที่ยง',\n midnight: 'เที่ยงคืน',\n noon: 'เที่ยง',\n morning: 'เช้า',\n afternoon: 'บ่าย',\n evening: 'เย็น',\n night: 'กลางคืน'\n },\n wide: {\n am: 'ก่อนเที่ยง',\n pm: 'หลังเที่ยง',\n midnight: 'เที่ยงคืน',\n noon: 'เที่ยง',\n morning: 'เช้า',\n afternoon: 'บ่าย',\n evening: 'เย็น',\n night: 'กลางคืน'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ก่อนเที่ยง',\n pm: 'หลังเที่ยง',\n midnight: 'เที่ยงคืน',\n noon: 'เที่ยง',\n morning: 'ตอนเช้า',\n afternoon: 'ตอนกลางวัน',\n evening: 'ตอนเย็น',\n night: 'ตอนกลางคืน'\n },\n abbreviated: {\n am: 'ก่อนเที่ยง',\n pm: 'หลังเที่ยง',\n midnight: 'เที่ยงคืน',\n noon: 'เที่ยง',\n morning: 'ตอนเช้า',\n afternoon: 'ตอนกลางวัน',\n evening: 'ตอนเย็น',\n night: 'ตอนกลางคืน'\n },\n wide: {\n am: 'ก่อนเที่ยง',\n pm: 'หลังเที่ยง',\n midnight: 'เที่ยงคืน',\n noon: 'เที่ยง',\n morning: 'ตอนเช้า',\n afternoon: 'ตอนกลางวัน',\n evening: 'ตอนเย็น',\n night: 'ตอนกลางคืน'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^\\d+/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([bB]|[aA]|คศ)/i,\n abbreviated: /^([bB]\\.?\\s?[cC]\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?|ค\\.?ศ\\.?)/i,\n wide: /^(ก่อนคริสตกาล|คริสต์ศักราช|คริสตกาล)/i\n};\nvar parseEraPatterns = {\n any: [/^[bB]/i, /^(^[aA]|ค\\.?ศ\\.?|คริสตกาล|คริสต์ศักราช|)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^ไตรมาส(ที่)? ?[1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|แรก|หนึ่ง)/i, /(2|สอง)/i, /(3|สาม)/i, /(4|สี่)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(ม\\.?ค\\.?|ก\\.?พ\\.?|มี\\.?ค\\.?|เม\\.?ย\\.?|พ\\.?ค\\.?|มิ\\.?ย\\.?|ก\\.?ค\\.?|ส\\.?ค\\.?|ก\\.?ย\\.?|ต\\.?ค\\.?|พ\\.?ย\\.?|ธ\\.?ค\\.?)/i,\n abbreviated: /^(ม\\.?ค\\.?|ก\\.?พ\\.?|มี\\.?ค\\.?|เม\\.?ย\\.?|พ\\.?ค\\.?|มิ\\.?ย\\.?|ก\\.?ค\\.?|ส\\.?ค\\.?|ก\\.?ย\\.?|ต\\.?ค\\.?|พ\\.?ย\\.?|ธ\\.?ค\\.?')/i,\n wide: /^(มกราคม|กุมภาพันธ์|มีนาคม|เมษายน|พฤษภาคม|มิถุนายน|กรกฎาคม|สิงหาคม|กันยายน|ตุลาคม|พฤศจิกายน|ธันวาคม)/i\n};\nvar parseMonthPatterns = {\n wide: [/^มก/i, /^กุม/i, /^มี/i, /^เม/i, /^พฤษ/i, /^มิ/i, /^กรก/i, /^ส/i, /^กัน/i, /^ต/i, /^พฤศ/i, /^ธ/i],\n any: [/^ม\\.?ค\\.?/i, /^ก\\.?พ\\.?/i, /^มี\\.?ค\\.?/i, /^เม\\.?ย\\.?/i, /^พ\\.?ค\\.?/i, /^มิ\\.?ย\\.?/i, /^ก\\.?ค\\.?/i, /^ส\\.?ค\\.?/i, /^ก\\.?ย\\.?/i, /^ต\\.?ค\\.?/i, /^พ\\.?ย\\.?/i, /^ธ\\.?ค\\.?/i]\n};\nvar matchDayPatterns = {\n narrow: /^(อา\\.?|จ\\.?|อ\\.?|พฤ\\.?|พ\\.?|ศ\\.?|ส\\.?)/i,\n short: /^(อา\\.?|จ\\.?|อ\\.?|พฤ\\.?|พ\\.?|ศ\\.?|ส\\.?)/i,\n abbreviated: /^(อา\\.?|จ\\.?|อ\\.?|พฤ\\.?|พ\\.?|ศ\\.?|ส\\.?)/i,\n wide: /^(อาทิตย์|จันทร์|อังคาร|พุธ|พฤหัสบดี|ศุกร์|เสาร์)/i\n};\nvar parseDayPatterns = {\n wide: [/^อา/i, /^จั/i, /^อั/i, /^พุธ/i, /^พฤ/i, /^ศ/i, /^เส/i],\n any: [/^อา/i, /^จ/i, /^อ/i, /^พ(?!ฤ)/i, /^พฤ/i, /^ศ/i, /^ส/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(ก่อนเที่ยง|หลังเที่ยง|เที่ยงคืน|เที่ยง|(ตอน.*?)?.*(เที่ยง|เช้า|บ่าย|เย็น|กลางคืน))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ก่อนเที่ยง/i,\n pm: /^หลังเที่ยง/i,\n midnight: /^เที่ยงคืน/i,\n noon: /^เที่ยง/i,\n morning: /เช้า/i,\n afternoon: /บ่าย/i,\n evening: /เย็น/i,\n night: /กลางคืน/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'bir saniyeden az',\n other: '{{count}} saniyeden az'\n },\n xSeconds: {\n one: '1 saniye',\n other: '{{count}} saniye'\n },\n halfAMinute: 'yarım dakika',\n lessThanXMinutes: {\n one: 'bir dakikadan az',\n other: '{{count}} dakikadan az'\n },\n xMinutes: {\n one: '1 dakika',\n other: '{{count}} dakika'\n },\n aboutXHours: {\n one: 'yaklaşık 1 saat',\n other: 'yaklaşık {{count}} saat'\n },\n xHours: {\n one: '1 saat',\n other: '{{count}} saat'\n },\n xDays: {\n one: '1 gün',\n other: '{{count}} gün'\n },\n aboutXWeeks: {\n one: 'yaklaşık 1 hafta',\n other: 'yaklaşık {{count}} hafta'\n },\n xWeeks: {\n one: '1 hafta',\n other: '{{count}} hafta'\n },\n aboutXMonths: {\n one: 'yaklaşık 1 ay',\n other: 'yaklaşık {{count}} ay'\n },\n xMonths: {\n one: '1 ay',\n other: '{{count}} ay'\n },\n aboutXYears: {\n one: 'yaklaşık 1 yıl',\n other: 'yaklaşık {{count}} yıl'\n },\n xYears: {\n one: '1 yıl',\n other: '{{count}} yıl'\n },\n overXYears: {\n one: '1 yıldan fazla',\n other: '{{count}} yıldan fazla'\n },\n almostXYears: {\n one: 'neredeyse 1 yıl',\n other: 'neredeyse {{count}} yıl'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' sonra';\n } else {\n return result + ' önce';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'd MMMM y EEEE',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd.MM.yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'saat' {{time}}\",\n long: \"{{date}} 'saat' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'geçen hafta' eeee 'saat' p\",\n yesterday: \"'dün saat' p\",\n today: \"'bugün saat' p\",\n tomorrow: \"'yarın saat' p\",\n nextWeek: \"eeee 'saat' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n abbreviated: ['MÖ', 'MS'],\n narrow: ['MÖ', 'MS'],\n wide: ['Milattan Önce', 'Milattan Sonra']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1Ç', '2Ç', '3Ç', '4Ç'],\n wide: ['İlk çeyrek', 'İkinci Çeyrek', 'Üçüncü çeyrek', 'Son çeyrek']\n};\nvar monthValues = {\n narrow: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', 'K', 'A'],\n abbreviated: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'],\n wide: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık']\n};\nvar dayValues = {\n narrow: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'],\n short: ['Pz', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],\n abbreviated: ['Paz', 'Pts', 'Sal', 'Çar', 'Per', 'Cum', 'Cts'],\n wide: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'öö',\n pm: 'ös',\n midnight: 'gy',\n noon: 'ö',\n morning: 'sa',\n afternoon: 'ös',\n evening: 'ak',\n night: 'ge'\n },\n abbreviated: {\n am: 'ÖÖ',\n pm: 'ÖS',\n midnight: 'gece yarısı',\n noon: 'öğle',\n morning: 'sabah',\n afternoon: 'öğleden sonra',\n evening: 'akşam',\n night: 'gece'\n },\n wide: {\n am: 'Ö.Ö.',\n pm: 'Ö.S.',\n midnight: 'gece yarısı',\n noon: 'öğle',\n morning: 'sabah',\n afternoon: 'öğleden sonra',\n evening: 'akşam',\n night: 'gece'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'öö',\n pm: 'ös',\n midnight: 'gy',\n noon: 'ö',\n morning: 'sa',\n afternoon: 'ös',\n evening: 'ak',\n night: 'ge'\n },\n abbreviated: {\n am: 'ÖÖ',\n pm: 'ÖS',\n midnight: 'gece yarısı',\n noon: 'öğlen',\n morning: 'sabahleyin',\n afternoon: 'öğleden sonra',\n evening: 'akşamleyin',\n night: 'geceleyin'\n },\n wide: {\n am: 'ö.ö.',\n pm: 'ö.s.',\n midnight: 'gece yarısı',\n noon: 'öğlen',\n morning: 'sabahleyin',\n afternoon: 'öğleden sonra',\n evening: 'akşamleyin',\n night: 'geceleyin'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaulFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(mö|ms)/i,\n abbreviated: /^(mö|ms)/i,\n wide: /^(milattan önce|milattan sonra)/i\n};\nvar parseEraPatterns = {\n any: [/(^mö|^milattan önce)/i, /(^ms|^milattan sonra)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]ç/i,\n wide: /^((i|İ)lk|(i|İ)kinci|üçüncü|son) çeyrek/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n abbreviated: [/1ç/i, /2ç/i, /3ç/i, /4ç/i],\n wide: [/^(i|İ)lk çeyrek/i, /(i|İ)kinci çeyrek/i, /üçüncü çeyrek/i, /son çeyrek/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[oşmnhtaek]/i,\n abbreviated: /^(oca|şub|mar|nis|may|haz|tem|ağu|eyl|eki|kas|ara)/i,\n wide: /^(ocak|şubat|mart|nisan|mayıs|haziran|temmuz|ağustos|eylül|ekim|kasım|aralık)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^o/i, /^ş/i, /^m/i, /^n/i, /^m/i, /^h/i, /^t/i, /^a/i, /^e/i, /^e/i, /^k/i, /^a/i],\n any: [/^o/i, /^ş/i, /^mar/i, /^n/i, /^may/i, /^h/i, /^t/i, /^ağ/i, /^ey/i, /^ek/i, /^k/i, /^ar/i]\n};\nvar matchDayPatterns = {\n narrow: /^[psçc]/i,\n short: /^(pz|pt|sa|ça|pe|cu|ct)/i,\n abbreviated: /^(paz|pts|sal|çar|per|cum|cts)/i,\n wide: /^(pazar|pazartesi|salı|çarşamba|perşembe|cuma|cumartesi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^p/i, /^p/i, /^s/i, /^ç/i, /^p/i, /^c/i, /^c/i],\n any: [/^pz/i, /^pt/i, /^sa/i, /^ça/i, /^pe/i, /^cu/i, /^ct/i],\n wide: [/^pazar/i, /^pazartesi/i, /^salı/i, /^çarşamba/i, /^perşembe/i, /^cuma/i, /cumartesi/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(öö|ös|gy|ö|sa|ös|ak|ge)/i,\n any: /^(ö\\.?\\s?[ös]\\.?|öğleden sonra|gece yarısı|öğle|(sabah|öğ|akşam|gece)(leyin))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ö\\.?ö\\.?/i,\n pm: /^ö\\.?s\\.?/i,\n midnight: /^(gy|gece yarısı)/i,\n noon: /^öğ/i,\n morning: /^sa/i,\n afternoon: /^öğleden sonra/i,\n evening: /^ak/i,\n night: /^ge/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'بىر سىكۇنت ئىچىدە',\n other: 'سىكۇنت ئىچىدە {{count}}'\n },\n xSeconds: {\n one: 'بىر سىكۇنت',\n other: 'سىكۇنت {{count}}'\n },\n halfAMinute: 'يىرىم مىنۇت',\n lessThanXMinutes: {\n one: 'بىر مىنۇت ئىچىدە',\n other: 'مىنۇت ئىچىدە {{count}}'\n },\n xMinutes: {\n one: 'بىر مىنۇت',\n other: 'مىنۇت {{count}}'\n },\n aboutXHours: {\n one: 'تەخمىنەن بىر سائەت',\n other: 'سائەت {{count}} تەخمىنەن'\n },\n xHours: {\n one: 'بىر سائەت',\n other: 'سائەت {{count}}'\n },\n xDays: {\n one: 'بىر كۈن',\n other: 'كۈن {{count}}'\n },\n aboutXWeeks: {\n one: 'تەخمىنەن بىرھەپتە',\n other: 'ھەپتە {{count}} تەخمىنەن'\n },\n xWeeks: {\n one: 'بىرھەپتە',\n other: 'ھەپتە {{count}}'\n },\n aboutXMonths: {\n one: 'تەخمىنەن بىر ئاي',\n other: 'ئاي {{count}} تەخمىنەن'\n },\n xMonths: {\n one: 'بىر ئاي',\n other: 'ئاي {{count}}'\n },\n aboutXYears: {\n one: 'تەخمىنەن بىر يىل',\n other: 'يىل {{count}} تەخمىنەن'\n },\n xYears: {\n one: 'بىر يىل',\n other: 'يىل {{count}}'\n },\n overXYears: {\n one: 'بىر يىلدىن ئارتۇق',\n other: 'يىلدىن ئارتۇق {{count}}'\n },\n almostXYears: {\n one: 'ئاساسەن بىر يىل',\n other: 'يىل {{count}} ئاساسەن'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result;\n } else {\n return result + ' بولدى';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'دە' {{time}}\",\n long: \"{{date}} 'دە' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'ئ‍ۆتكەن' eeee 'دە' p\",\n yesterday: \"'تۈنۈگۈن دە' p\",\n today: \"'بۈگۈن دە' p\",\n tomorrow: \"'ئەتە دە' p\",\n nextWeek: \"eeee 'دە' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['ب', 'ك'],\n abbreviated: ['ب', 'ك'],\n wide: ['مىيلادىدىن بۇرۇن', 'مىيلادىدىن كىيىن']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1', '2', '3', '4'],\n wide: ['بىرىنجى چارەك', 'ئىككىنجى چارەك', 'ئۈچىنجى چارەك', 'تۆتىنجى چارەك'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['ي', 'ف', 'م', 'ا', 'م', 'ى', 'ى', 'ا', 'س', 'ۆ', 'ن', 'د'],\n abbreviated: ['يانۋار', 'فېۋىرال', 'مارت', 'ئاپرىل', 'ماي', 'ئىيۇن', 'ئىيول', 'ئاۋغۇست', 'سىنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دىكابىر'],\n wide: ['يانۋار', 'فېۋىرال', 'مارت', 'ئاپرىل', 'ماي', 'ئىيۇن', 'ئىيول', 'ئاۋغۇست', 'سىنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دىكابىر']\n};\nvar dayValues = {\n narrow: ['ي', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n short: ['ي', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n abbreviated: ['يەكشەنبە', 'دۈشەنبە', 'سەيشەنبە', 'چارشەنبە', 'پەيشەنبە', 'جۈمە', 'شەنبە'],\n wide: ['يەكشەنبە', 'دۈشەنبە', 'سەيشەنبە', 'چارشەنبە', 'پەيشەنبە', 'جۈمە', 'شەنبە']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ئە',\n pm: 'چ',\n midnight: 'ك',\n noon: 'چ',\n morning: 'ئەتىگەن',\n afternoon: 'چۈشتىن كىيىن',\n evening: 'ئاخشىم',\n night: 'كىچە'\n },\n abbreviated: {\n am: 'ئە',\n pm: 'چ',\n midnight: 'ك',\n noon: 'چ',\n morning: 'ئەتىگەن',\n afternoon: 'چۈشتىن كىيىن',\n evening: 'ئاخشىم',\n night: 'كىچە'\n },\n wide: {\n am: 'ئە',\n pm: 'چ',\n midnight: 'ك',\n noon: 'چ',\n morning: 'ئەتىگەن',\n afternoon: 'چۈشتىن كىيىن',\n evening: 'ئاخشىم',\n night: 'كىچە'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ئە',\n pm: 'چ',\n midnight: 'ك',\n noon: 'چ',\n morning: 'ئەتىگەندە',\n afternoon: 'چۈشتىن كىيىن',\n evening: 'ئاخشامدا',\n night: 'كىچىدە'\n },\n abbreviated: {\n am: 'ئە',\n pm: 'چ',\n midnight: 'ك',\n noon: 'چ',\n morning: 'ئەتىگەندە',\n afternoon: 'چۈشتىن كىيىن',\n evening: 'ئاخشامدا',\n night: 'كىچىدە'\n },\n wide: {\n am: 'ئە',\n pm: 'چ',\n midnight: 'ك',\n noon: 'چ',\n morning: 'ئەتىگەندە',\n afternoon: 'چۈشتىن كىيىن',\n evening: 'ئاخشامدا',\n night: 'كىچىدە'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n return String(dirtyNumber);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ب|ك)/i,\n wide: /^(مىيلادىدىن بۇرۇن|مىيلادىدىن كىيىن)/i\n};\nvar parseEraPatterns = {\n any: [/^بۇرۇن/i, /^كىيىن/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^چ[1234]/i,\n wide: /^چارەك [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[يفمئامئ‍ئاسۆند]/i,\n abbreviated: /^(يانۋار|فېۋىرال|مارت|ئاپرىل|ماي|ئىيۇن|ئىيول|ئاۋغۇست|سىنتەبىر|ئۆكتەبىر|نويابىر|دىكابىر)/i,\n wide: /^(يانۋار|فېۋىرال|مارت|ئاپرىل|ماي|ئىيۇن|ئىيول|ئاۋغۇست|سىنتەبىر|ئۆكتەبىر|نويابىر|دىكابىر)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ي/i, /^ف/i, /^م/i, /^ا/i, /^م/i, /^ى‍/i, /^ى‍/i, /^ا‍/i, /^س/i, /^ۆ/i, /^ن/i, /^د/i],\n any: [/^يان/i, /^فېۋ/i, /^مار/i, /^ئاپ/i, /^ماي/i, /^ئىيۇن/i, /^ئىيول/i, /^ئاۋ/i, /^سىن/i, /^ئۆك/i, /^نوي/i, /^دىك/i]\n};\nvar matchDayPatterns = {\n narrow: /^[دسچپجشي]/i,\n short: /^(يە|دۈ|سە|چا|پە|جۈ|شە)/i,\n abbreviated: /^(يە|دۈ|سە|چا|پە|جۈ|شە)/i,\n wide: /^(يەكشەنبە|دۈشەنبە|سەيشەنبە|چارشەنبە|پەيشەنبە|جۈمە|شەنبە)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ي/i, /^د/i, /^س/i, /^چ/i, /^پ/i, /^ج/i, /^ش/i],\n any: [/^ي/i, /^د/i, /^س/i, /^چ/i, /^پ/i, /^ج/i, /^ش/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(ئە|چ|ك|چ|(دە|ئەتىگەن) ( ئە‍|چۈشتىن كىيىن|ئاخشىم|كىچە))/i,\n any: /^(ئە|چ|ك|چ|(دە|ئەتىگەن) ( ئە‍|چۈشتىن كىيىن|ئاخشىم|كىچە))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ئە/i,\n pm: /^چ/i,\n midnight: /^ك/i,\n noon: /^چ/i,\n morning: /ئەتىگەن/i,\n afternoon: /چۈشتىن كىيىن/i,\n evening: /ئاخشىم/i,\n night: /كىچە/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nfunction declension(scheme, count) {\n // scheme for count=1 exists\n if (scheme.one !== undefined && count === 1) {\n return scheme.one;\n }\n\n var rem10 = count % 10;\n var rem100 = count % 100; // 1, 21, 31, ...\n\n if (rem10 === 1 && rem100 !== 11) {\n return scheme.singularNominative.replace('{{count}}', count); // 2, 3, 4, 22, 23, 24, 32 ...\n } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n return scheme.singularGenitive.replace('{{count}}', count); // 5, 6, 7, 8, 9, 10, 11, ...\n } else {\n return scheme.pluralGenitive.replace('{{count}}', count);\n }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n return function (count, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n if (scheme.future) {\n return declension(scheme.future, count);\n } else {\n return 'за ' + declension(scheme.regular, count);\n }\n } else {\n if (scheme.past) {\n return declension(scheme.past, count);\n } else {\n return declension(scheme.regular, count) + ' тому';\n }\n }\n } else {\n return declension(scheme.regular, count);\n }\n };\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: buildLocalizeTokenFn({\n regular: {\n one: 'менше секунди',\n singularNominative: 'менше {{count}} секунди',\n singularGenitive: 'менше {{count}} секунд',\n pluralGenitive: 'менше {{count}} секунд'\n },\n future: {\n one: 'менше, ніж за секунду',\n singularNominative: 'менше, ніж за {{count}} секунду',\n singularGenitive: 'менше, ніж за {{count}} секунди',\n pluralGenitive: 'менше, ніж за {{count}} секунд'\n }\n }),\n xSeconds: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} секунда',\n singularGenitive: '{{count}} секунди',\n pluralGenitive: '{{count}} секунд'\n },\n past: {\n singularNominative: '{{count}} секунду тому',\n singularGenitive: '{{count}} секунди тому',\n pluralGenitive: '{{count}} секунд тому'\n },\n future: {\n singularNominative: 'за {{count}} секунду',\n singularGenitive: 'за {{count}} секунди',\n pluralGenitive: 'за {{count}} секунд'\n }\n }),\n halfAMinute: function (_, options) {\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'за півхвилини';\n } else {\n return 'півхвилини тому';\n }\n }\n\n return 'півхвилини';\n },\n lessThanXMinutes: buildLocalizeTokenFn({\n regular: {\n one: 'менше хвилини',\n singularNominative: 'менше {{count}} хвилини',\n singularGenitive: 'менше {{count}} хвилин',\n pluralGenitive: 'менше {{count}} хвилин'\n },\n future: {\n one: 'менше, ніж за хвилину',\n singularNominative: 'менше, ніж за {{count}} хвилину',\n singularGenitive: 'менше, ніж за {{count}} хвилини',\n pluralGenitive: 'менше, ніж за {{count}} хвилин'\n }\n }),\n xMinutes: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} хвилина',\n singularGenitive: '{{count}} хвилини',\n pluralGenitive: '{{count}} хвилин'\n },\n past: {\n singularNominative: '{{count}} хвилину тому',\n singularGenitive: '{{count}} хвилини тому',\n pluralGenitive: '{{count}} хвилин тому'\n },\n future: {\n singularNominative: 'за {{count}} хвилину',\n singularGenitive: 'за {{count}} хвилини',\n pluralGenitive: 'за {{count}} хвилин'\n }\n }),\n aboutXHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'близько {{count}} години',\n singularGenitive: 'близько {{count}} годин',\n pluralGenitive: 'близько {{count}} годин'\n },\n future: {\n singularNominative: 'приблизно за {{count}} годину',\n singularGenitive: 'приблизно за {{count}} години',\n pluralGenitive: 'приблизно за {{count}} годин'\n }\n }),\n xHours: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} годину',\n singularGenitive: '{{count}} години',\n pluralGenitive: '{{count}} годин'\n }\n }),\n xDays: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} день',\n singularGenitive: '{{count}} дня',\n pluralGenitive: '{{count}} днів'\n }\n }),\n aboutXWeeks: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'близько {{count}} тижня',\n singularGenitive: 'близько {{count}} тижнів',\n pluralGenitive: 'близько {{count}} тижнів'\n },\n future: {\n singularNominative: 'приблизно за {{count}} тиждень',\n singularGenitive: 'приблизно за {{count}} тижні',\n pluralGenitive: 'приблизно за {{count}} тижні'\n }\n }),\n xWeeks: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} тиждень',\n singularGenitive: '{{count}} тижня',\n pluralGenitive: '{{count}} тижні'\n }\n }),\n aboutXMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'близько {{count}} місяця',\n singularGenitive: 'близько {{count}} місяців',\n pluralGenitive: 'близько {{count}} місяців'\n },\n future: {\n singularNominative: 'приблизно за {{count}} місяць',\n singularGenitive: 'приблизно за {{count}} місяця',\n pluralGenitive: 'приблизно за {{count}} місяців'\n }\n }),\n xMonths: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} місяць',\n singularGenitive: '{{count}} місяця',\n pluralGenitive: '{{count}} місяців'\n }\n }),\n aboutXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'близько {{count}} року',\n singularGenitive: 'близько {{count}} років',\n pluralGenitive: 'близько {{count}} років'\n },\n future: {\n singularNominative: 'приблизно за {{count}} рік',\n singularGenitive: 'приблизно за {{count}} роки',\n pluralGenitive: 'приблизно за {{count}} років'\n }\n }),\n xYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: '{{count}} рік',\n singularGenitive: '{{count}} роки',\n pluralGenitive: '{{count}} років'\n }\n }),\n overXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'більше {{count}} року',\n singularGenitive: 'більше {{count}} років',\n pluralGenitive: 'більше {{count}} років'\n },\n future: {\n singularNominative: 'більше, ніж за {{count}} рік',\n singularGenitive: 'більше, ніж за {{count}} роки',\n pluralGenitive: 'більше, ніж за {{count}} років'\n }\n }),\n almostXYears: buildLocalizeTokenFn({\n regular: {\n singularNominative: 'майже {{count}} рік',\n singularGenitive: 'майже {{count}} роки',\n pluralGenitive: 'майже {{count}} років'\n },\n future: {\n singularNominative: 'майже за {{count}} рік',\n singularGenitive: 'майже за {{count}} роки',\n pluralGenitive: 'майже за {{count}} років'\n }\n })\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n return formatDistanceLocale[token](count, options);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"EEEE, do MMMM y 'р.'\",\n long: \"do MMMM y 'р.'\",\n medium: \"d MMM y 'р.'\",\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'о' {{time}}\",\n long: \"{{date}} 'о' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar accusativeWeekdays = ['неділю', 'понеділок', 'вівторок', 'середу', 'четвер', 'п’ятницю', 'суботу'];\n\nfunction lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 5:\n case 6:\n return \"'у минулу \" + weekday + \" о' p\";\n\n case 1:\n case 2:\n case 4:\n return \"'у минулий \" + weekday + \" о' p\";\n }\n}\n\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n return \"'у \" + weekday + \" о' p\";\n}\n\nfunction nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n\n switch (day) {\n case 0:\n case 3:\n case 5:\n case 6:\n return \"'у наступну \" + weekday + \" о' p\";\n\n case 1:\n case 2:\n case 4:\n return \"'у наступний \" + weekday + \" о' p\";\n }\n}\n\nvar formatRelativeLocale = {\n lastWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'вчора о' p\",\n today: \"'сьогодні о' p\",\n tomorrow: \"'завтра о' p\",\n nextWeek: function (date, baseDate, options) {\n var day = date.getUTCDay();\n\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: 'P'\n};\n\nfunction formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['до н.е.', 'н.е.'],\n abbreviated: ['до н. е.', 'н. е.'],\n wide: ['до нашої ери', 'нашої ери']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'],\n wide: ['1-й квартал', '2-й квартал', '3-й квартал', '4-й квартал']\n};\nvar monthValues = {\n // ДСТУ 3582:2013\n narrow: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', 'Ж', 'Л', 'Г'],\n abbreviated: ['січ.', 'лют.', 'берез.', 'квіт.', 'трав.', 'черв.', 'лип.', 'серп.', 'верес.', 'жовт.', 'листоп.', 'груд.'],\n wide: ['січень', 'лютий', 'березень', 'квітень', 'травень', 'червень', 'липень', 'серпень', 'вересень', 'жовтень', 'листопад', 'грудень']\n};\nvar formattingMonthValues = {\n narrow: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', 'Ж', 'Л', 'Г'],\n abbreviated: ['січ.', 'лют.', 'берез.', 'квіт.', 'трав.', 'черв.', 'лип.', 'серп.', 'верес.', 'жовт.', 'листоп.', 'груд.'],\n wide: ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня']\n};\nvar dayValues = {\n narrow: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'],\n short: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n abbreviated: ['нед', 'пон', 'вів', 'сер', 'чтв', 'птн', 'суб'],\n wide: ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'півн.',\n noon: 'пол.',\n morning: 'ранок',\n afternoon: 'день',\n evening: 'веч.',\n night: 'ніч'\n },\n abbreviated: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'півн.',\n noon: 'пол.',\n morning: 'ранок',\n afternoon: 'день',\n evening: 'веч.',\n night: 'ніч'\n },\n wide: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'північ',\n noon: 'полудень',\n morning: 'ранок',\n afternoon: 'день',\n evening: 'вечір',\n night: 'ніч'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'півн.',\n noon: 'пол.',\n morning: 'ранку',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночі'\n },\n abbreviated: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'півн.',\n noon: 'пол.',\n morning: 'ранку',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночі'\n },\n wide: {\n am: 'ДП',\n pm: 'ПП',\n midnight: 'північ',\n noon: 'полудень',\n morning: 'ранку',\n afternoon: 'дня',\n evening: 'веч.',\n night: 'ночі'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (unit === 'date') {\n if (dirtyNumber === 3 || dirtyNumber === 23) {\n suffix = '-є';\n } else {\n suffix = '-е';\n }\n } else if (unit === 'minute' || unit === 'second' || unit === 'hour') {\n suffix = '-а';\n } else {\n suffix = '-й';\n }\n\n return dirtyNumber + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'any',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(-?(е|й|є|а|я))?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^((до )?н\\.?\\s?е\\.?)/i,\n abbreviated: /^((до )?н\\.?\\s?е\\.?)/i,\n wide: /^(до нашої ери|нашої ери|наша ера)/i\n};\nvar parseEraPatterns = {\n any: [/^д/i, /^н/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234](-?[иі]?й?)? кв.?/i,\n wide: /^[1234](-?[иі]?й?)? квартал/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[слбктчвжг]/i,\n abbreviated: /^(січ|лют|бер|берез|кві|трав?|чер|лип|сер|вер|жов|лис(топ)?|груд)\\.?/i,\n wide: /^(січень|січня|лютий|лютого|березень|березня|квітень|квітня|травень|травня|липень|липня|серпень|серпня|вересень|вересня|жовтень|жовтня|листопада?|грудень|грудня)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^с/i, /^л/i, /^б/i, /^к/i, /^т/i, /^ч/i, /^л/i, /^с/i, /^в/i, /^ж/i, /^л/i, /^г/i],\n any: [/^сі/i, /^лю/i, /^б/i, /^к/i, /^т/i, /^ч/i, /^лип/i, /^се/i, /^в/i, /^ж/i, /^лис/i, /^г/i]\n};\nvar matchDayPatterns = {\n narrow: /^[нпвсч]/i,\n short: /^(нд|пн|вт|ср|чт|пт|сб)\\.?/i,\n abbreviated: /^(нед|пон|вів|сер|че?тв|птн?|суб)\\.?/i,\n wide: /^(неділ[яі]|понеділ[ок][ка]|вівтор[ок][ка]|серед[аи]|четвер(га)?|п\\W*?ятниц[яі]|субот[аи])/i\n};\nvar parseDayPatterns = {\n narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n any: [/^н/i, /^п[он]/i, /^в/i, /^с[ер]/i, /^ч/i, /^п\\W*?[ят]/i, /^с[уб]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^([дп]п|півн\\.?|пол\\.?|ранок|ранку|день|дня|веч\\.?|ніч|ночі)/i,\n abbreviated: /^([дп]п|півн\\.?|пол\\.?|ранок|ранку|день|дня|веч\\.?|ніч|ночі)/i,\n wide: /^([дп]п|північ|полудень|ранок|ранку|день|дня|вечір|вечора|ніч|ночі)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^дп/i,\n pm: /^пп/i,\n midnight: /^півн/i,\n noon: /^пол/i,\n morning: /^р/i,\n afternoon: /^д[ен]/i,\n evening: /^в/i,\n night: /^н/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'sekunddan kam',\n other: '{{count}} sekunddan kam'\n },\n xSeconds: {\n one: '1 sekund',\n other: '{{count}} sekund'\n },\n halfAMinute: 'yarim minut',\n lessThanXMinutes: {\n one: 'bir minutdan kam',\n other: '{{count}} minutdan kam'\n },\n xMinutes: {\n one: '1 minut',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: 'tahminan 1 soat',\n other: 'tahminan {{count}} soat'\n },\n xHours: {\n one: '1 soat',\n other: '{{count}} soat'\n },\n xDays: {\n one: '1 kun',\n other: '{{count}} kun'\n },\n aboutXWeeks: {\n one: 'tahminan 1 hafta',\n other: 'tahminan {{count}} hafta'\n },\n xWeeks: {\n one: '1 hafta',\n other: '{{count}} hafta'\n },\n aboutXMonths: {\n one: 'tahminan 1 oy',\n other: 'tahminan {{count}} oy'\n },\n xMonths: {\n one: '1 oy',\n other: '{{count}} oy'\n },\n aboutXYears: {\n one: 'tahminan 1 yil',\n other: 'tahminan {{count}} yil'\n },\n xYears: {\n one: '1 yil',\n other: '{{count}} yil'\n },\n overXYears: {\n one: \"1 yildan ko'p\",\n other: \"{{count}} yildan ko'p\"\n },\n almostXYears: {\n one: 'deyarli 1 yil',\n other: 'deyarli {{count}} yil'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' dan keyin';\n } else {\n return result + ' oldin';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, do MMMM, y',\n long: 'do MMMM, y',\n medium: 'd MMM, y',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss zzzz',\n long: 'h:mm:ss z',\n medium: 'h:mm:ss',\n short: 'h:mm'\n};\nvar dateTimeFormats = {\n any: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'any'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'oldingi' eeee p 'da'\",\n yesterday: \"'kecha' p 'da'\",\n today: \"'bugun' p 'da'\",\n tomorrow: \"'ertaga' p 'da'\",\n nextWeek: \"eeee p 'da'\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['M.A', 'M.'],\n abbreviated: ['M.A', 'M.'],\n wide: ['Miloddan Avvalgi', 'Milodiy']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['CH.1', 'CH.2', 'CH.3', 'CH.4'],\n wide: ['1-chi chorak', '2-chi chorak', '3-chi chorak', '4-chi chorak'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['Y', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyun', 'Iyul', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],\n wide: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr']\n};\nvar dayValues = {\n narrow: ['Y', 'D', 'S', 'CH', 'P', 'J', 'SH'],\n short: ['Ya', 'Du', 'Se', 'Cho', 'Pa', 'Ju', 'Sha'],\n abbreviated: ['Yak', 'Dush', 'Sesh', 'Chor', 'Pay', 'Jum', 'Shan'],\n wide: ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'y.t',\n noon: 'p.',\n morning: 'ertalab',\n afternoon: 'tushdan keyin',\n evening: 'kechqurun',\n night: 'tun'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'yarim tun',\n noon: 'peshin',\n morning: 'ertalab',\n afternoon: 'tushdan keyin',\n evening: 'kechqurun',\n night: 'tun'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'yarim tun',\n noon: 'peshin',\n morning: 'ertalab',\n afternoon: 'tushdan keyin',\n evening: 'kechqurun',\n night: 'tun'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'y.t',\n noon: 'p.',\n morning: 'ertalab',\n afternoon: 'tushdan keyin',\n evening: 'kechqurun',\n night: 'tun'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'yarim tun',\n noon: 'peshin',\n morning: 'ertalab',\n afternoon: 'tushdan keyin',\n evening: 'kechqurun',\n night: 'tun'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'yarim tun',\n noon: 'peshin',\n morning: 'ertalab',\n afternoon: 'tushdan keyin',\n evening: 'kechqurun',\n night: 'tun'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n return number;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(chi)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(m\\.a|m\\.)/i,\n abbreviated: /^(m\\.a\\.?\\s?m\\.?)/i,\n wide: /^(miloddan avval|miloddan keyin)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](chi)? chorak/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[yfmasond]/i,\n abbreviated: /^(yan|fev|mar|apr|may|iyun|iyul|avg|sen|okt|noy|dek)/i,\n wide: /^(yanvar|fevral|mart|aprel|may|iyun|iyul|avgust|sentabr|oktabr|noyabr|dekabr)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^y/i, /^f/i, /^m/i, /^a/i, /^m/i, /^i/i, /^i/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ya/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^iyun/i, /^iyul/i, /^av/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[ydschj]/i,\n short: /^(ya|du|se|cho|pa|ju|sha)/i,\n abbreviated: /^(yak|dush|sesh|chor|pay|jum|shan)/i,\n wide: /^(yakshanba|dushanba|seshanba|chorshanba|payshanba|juma|shanba)/i\n};\nvar parseDayPatterns = {\n narrow: [/^y/i, /^d/i, /^s/i, /^ch/i, /^p/i, /^j/i, /^sh/i],\n any: [/^ya/i, /^d/i, /^se/i, /^ch/i, /^p/i, /^j/i, /^sh/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|y\\.t|p| (ertalab|tushdan keyin|kechqurun|tun))/i,\n any: /^([ap]\\.?\\s?m\\.?|yarim tun|peshin| (ertalab|tushdan keyin|kechqurun|tun))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^y\\.t/i,\n noon: /^pe/i,\n morning: /ertalab/i,\n afternoon: /tushdan keyin/i,\n evening: /kechqurun/i,\n night: /tun/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'dưới 1 giây',\n other: 'dưới {{count}} giây'\n },\n xSeconds: {\n one: '1 giây',\n other: '{{count}} giây'\n },\n halfAMinute: 'nửa phút',\n lessThanXMinutes: {\n one: 'dưới 1 phút',\n other: 'dưới {{count}} phút'\n },\n xMinutes: {\n one: '1 phút',\n other: '{{count}} phút'\n },\n aboutXHours: {\n one: 'khoảng 1 giờ',\n other: 'khoảng {{count}} giờ'\n },\n xHours: {\n one: '1 giờ',\n other: '{{count}} giờ'\n },\n xDays: {\n one: '1 ngày',\n other: '{{count}} ngày'\n },\n aboutXWeeks: {\n one: 'khoảng 1 tuần',\n other: 'khoảng {{count}} tuần'\n },\n xWeeks: {\n one: '1 tuần',\n other: '{{count}} tuần'\n },\n aboutXMonths: {\n one: 'khoảng 1 tháng',\n other: 'khoảng {{count}} tháng'\n },\n xMonths: {\n one: '1 tháng',\n other: '{{count}} tháng'\n },\n aboutXYears: {\n one: 'khoảng 1 năm',\n other: 'khoảng {{count}} năm'\n },\n xYears: {\n one: '1 năm',\n other: '{{count}} năm'\n },\n overXYears: {\n one: 'hơn 1 năm',\n other: 'hơn {{count}} năm'\n },\n almostXYears: {\n one: 'gần 1 năm',\n other: 'gần {{count}} năm'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + ' nữa';\n } else {\n return result + ' trước';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n // thứ Sáu, ngày 25 tháng 08 năm 2017\n full: \"EEEE, 'ngày' d MMMM 'năm' y\",\n // ngày 25 tháng 08 năm 2017\n long: \"'ngày' d MMMM 'năm' y\",\n // 25 thg 08 năm 2017\n medium: \"d MMM 'năm' y\",\n // 25/08/2017\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n // thứ Sáu, ngày 25 tháng 08 năm 2017 23:25:59\n full: '{{date}} {{time}}',\n // ngày 25 tháng 08 năm 2017 23:25\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"eeee 'tuần trước vào lúc' p\",\n yesterday: \"'hôm qua vào lúc' p\",\n today: \"'hôm nay vào lúc' p\",\n tomorrow: \"'ngày mai vào lúc' p\",\n nextWeek: \"eeee 'tới vào lúc' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Vietnamese locale reference: http://www.localeplanet.com/icu/vi-VN/index.html\n// Capitalization reference: http://hcmup.edu.vn/index.php?option=com_content&view=article&id=4106%3Avit-hoa-trong-vn-bn-hanh-chinh&catid=2345%3Atham-kho&Itemid=4103&lang=vi&site=134\nvar eraValues = {\n narrow: ['TCN', 'SCN'],\n abbreviated: ['trước CN', 'sau CN'],\n wide: ['trước Công Nguyên', 'sau Công Nguyên']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['Quý 1', 'Quý 2', 'Quý 3', 'Quý 4']\n};\nvar formattingQuarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n // I notice many news outlet use this \"quý II/2018\"\n wide: ['quý I', 'quý II', 'quý III', 'quý IV'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n abbreviated: ['Thg 1', 'Thg 2', 'Thg 3', 'Thg 4', 'Thg 5', 'Thg 6', 'Thg 7', 'Thg 8', 'Thg 9', 'Thg 10', 'Thg 11', 'Thg 12'],\n wide: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'] // In Vietnamese date formatting, month number less than 10 expected to have leading zero\n\n};\nvar formattingMonthValues = {\n narrow: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],\n abbreviated: ['thg 1', 'thg 2', 'thg 3', 'thg 4', 'thg 5', 'thg 6', 'thg 7', 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'],\n wide: ['tháng 01', 'tháng 02', 'tháng 03', 'tháng 04', 'tháng 05', 'tháng 06', 'tháng 07', 'tháng 08', 'tháng 09', 'tháng 10', 'tháng 11', 'tháng 12']\n};\nvar dayValues = {\n narrow: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n short: ['CN', 'Th 2', 'Th 3', 'Th 4', 'Th 5', 'Th 6', 'Th 7'],\n abbreviated: ['CN', 'Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7'],\n wide: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'] // Vietnamese are used to AM/PM borrowing from English, hence `narrow` and\n // `abbreviated` are just like English but I'm leaving the `wide`\n // format being localized with abbreviations found in some systems (SÁng / CHiều);\n // however, personally, I don't think `Chiều` sounds appropriate for `PM`\n\n};\nvar dayPeriodValues = {\n // narrow date period is extremely rare in Vietnamese\n // I used abbreviated form for noon, morning and afternoon\n // which are regconizable by Vietnamese, others cannot be any shorter\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'nửa đêm',\n noon: 'tr',\n morning: 'sg',\n afternoon: 'ch',\n evening: 'tối',\n night: 'đêm'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'nửa đêm',\n noon: 'trưa',\n morning: 'sáng',\n afternoon: 'chiều',\n evening: 'tối',\n night: 'đêm'\n },\n wide: {\n am: 'SA',\n pm: 'CH',\n midnight: 'nửa đêm',\n noon: 'trưa',\n morning: 'sáng',\n afternoon: 'chiều',\n evening: 'tối',\n night: 'đêm'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'am',\n pm: 'pm',\n midnight: 'nửa đêm',\n noon: 'tr',\n morning: 'sg',\n afternoon: 'ch',\n evening: 'tối',\n night: 'đêm'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'nửa đêm',\n noon: 'trưa',\n morning: 'sáng',\n afternoon: 'chiều',\n evening: 'tối',\n night: 'đêm'\n },\n wide: {\n am: 'SA',\n pm: 'CH',\n midnight: 'nửa đêm',\n noon: 'giữa trưa',\n morning: 'vào buổi sáng',\n afternoon: 'vào buổi chiều',\n evening: 'vào buổi tối',\n night: 'vào ban đêm'\n } // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'month', 'quarter', 'week', 'isoWeek', 'dayOfYear',\n // 'dayOfMonth' or 'dayOfWeek'\n\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var number = parseInt(dirtyNumber, 10);\n\n if (unit === 'quarter') {\n // many news outlets use \"quý I\"...\n switch (number) {\n case 1:\n return 'I';\n\n case 2:\n return 'II';\n\n case 3:\n return 'III';\n\n case 4:\n return 'IV';\n }\n } else if (unit === 'day') {\n // day of week in Vietnamese has ordinal number meaning,\n // so we should use them, else it'll sound weird\n switch (number) {\n case 1:\n return 'thứ 2';\n // meaning 2nd day but it's the first day of the week :D\n\n case 2:\n return 'thứ 3';\n // meaning 3rd day\n\n case 3:\n return 'thứ 4';\n // meaning 4th day and so on\n\n case 4:\n return 'thứ 5';\n\n case 5:\n return 'thứ 6';\n\n case 6:\n return 'thứ 7';\n\n case 7:\n return 'chủ nhật';\n // meaning Sunday, there's no 8th day :D\n }\n } else if (unit === 'week') {\n if (number === 1) {\n return 'thứ nhất';\n } else {\n return 'thứ ' + number;\n }\n } else if (unit === 'dayOfYear') {\n if (number === 1) {\n return 'đầu tiên';\n } else {\n return 'thứ ' + number;\n }\n } // there are no different forms of ordinal numbers in Vietnamese\n\n\n return number;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n formattingValues: formattingQuarterValues,\n defaultFormattingWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(tcn|scn)/i,\n abbreviated: /^(trước CN|sau CN)/i,\n wide: /^(trước Công Nguyên|sau Công Nguyên)/i\n};\nvar parseEraPatterns = {\n any: [/^t/i, /^s/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^([1234]|i{1,3}v?)/i,\n abbreviated: /^q([1234]|i{1,3}v?)/i,\n wide: /^quý ([1234]|i{1,3}v?)/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|i)$/i, /(2|ii)$/i, /(3|iii)$/i, /(4|iv)$/i]\n};\nvar matchMonthPatterns = {\n // month number may contain leading 0, 'thg' prefix may have space, underscore or empty before number\n // note the order of '1' since it is a sub-string of '10', so must be lower priority\n narrow: /^(0?[2-9]|10|11|12|0?1)/i,\n // note the order of 'thg 1' since it is sub-string of 'thg 10', so must be lower priority\n abbreviated: /^thg[ _]?(0?[1-9](?!\\d)|10|11|12)/i,\n // note the order of 'Mười' since it is sub-string of Mười Một, so must be lower priority\n wide: /^tháng ?(Một|Hai|Ba|Tư|Năm|Sáu|Bảy|Tám|Chín|Mười|Mười ?Một|Mười ?Hai|0?[1-9](?!\\d)|10|11|12)/i\n};\nvar parseMonthPatterns = {\n narrow: [/0?1$/i, /0?2/i, /3/, /4/, /5/, /6/, /7/, /8/, /9/, /10/, /11/, /12/],\n abbreviated: [/^thg[ _]?0?1(?!\\d)/i, /^thg[ _]?0?2/i, /^thg[ _]?0?3/i, /^thg[ _]?0?4/i, /^thg[ _]?0?5/i, /^thg[ _]?0?6/i, /^thg[ _]?0?7/i, /^thg[ _]?0?8/i, /^thg[ _]?0?9/i, /^thg[ _]?10/i, /^thg[ _]?11/i, /^thg[ _]?12/i],\n wide: [/^tháng ?(Một|0?1(?!\\d))/i, /^tháng ?(Hai|0?2)/i, /^tháng ?(Ba|0?3)/i, /^tháng ?(Tư|0?4)/i, /^tháng ?(Năm|0?5)/i, /^tháng ?(Sáu|0?6)/i, /^tháng ?(Bảy|0?7)/i, /^tháng ?(Tám|0?8)/i, /^tháng ?(Chín|0?9)/i, /^tháng ?(Mười|10)/i, /^tháng ?(Mười ?Một|11)/i, /^tháng ?(Mười ?Hai|12)/i]\n};\nvar matchDayPatterns = {\n narrow: /^(CN|T2|T3|T4|T5|T6|T7)/i,\n short: /^(CN|Th ?2|Th ?3|Th ?4|Th ?5|Th ?6|Th ?7)/i,\n abbreviated: /^(CN|Th ?2|Th ?3|Th ?4|Th ?5|Th ?6|Th ?7)/i,\n wide: /^(Chủ ?Nhật|Chúa ?Nhật|thứ ?Hai|thứ ?Ba|thứ ?Tư|thứ ?Năm|thứ ?Sáu|thứ ?Bảy)/i\n};\nvar parseDayPatterns = {\n narrow: [/CN/i, /2/i, /3/i, /4/i, /5/i, /6/i, /7/i],\n short: [/CN/i, /2/i, /3/i, /4/i, /5/i, /6/i, /7/i],\n abbreviated: [/CN/i, /2/i, /3/i, /4/i, /5/i, /6/i, /7/i],\n wide: [/(Chủ|Chúa) ?Nhật/i, /Hai/i, /Ba/i, /Tư/i, /Năm/i, /Sáu/i, /Bảy/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,\n abbreviated: /^(am|pm|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,\n wide: /^(ch[^i]*|sa|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^(a|sa)/i,\n pm: /^(p|ch[^i]*)/i,\n midnight: /nửa đêm/i,\n noon: /trưa/i,\n morning: /sáng/i,\n afternoon: /chiều/i,\n evening: /tối/i,\n night: /^đêm/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: '不到 1 秒',\n other: '不到 {{count}} 秒'\n },\n xSeconds: {\n one: '1 秒',\n other: '{{count}} 秒'\n },\n halfAMinute: '半分钟',\n lessThanXMinutes: {\n one: '不到 1 分钟',\n other: '不到 {{count}} 分钟'\n },\n xMinutes: {\n one: '1 分钟',\n other: '{{count}} 分钟'\n },\n xHours: {\n one: '1 小时',\n other: '{{count}} 小时'\n },\n aboutXHours: {\n one: '大约 1 小时',\n other: '大约 {{count}} 小时'\n },\n xDays: {\n one: '1 天',\n other: '{{count}} 天'\n },\n aboutXWeeks: {\n one: '大约 1 个星期',\n other: '大约 {{count}} 个星期'\n },\n xWeeks: {\n one: '1 个星期',\n other: '{{count}} 个星期'\n },\n aboutXMonths: {\n one: '大约 1 个月',\n other: '大约 {{count}} 个月'\n },\n xMonths: {\n one: '1 个月',\n other: '{{count}} 个月'\n },\n aboutXYears: {\n one: '大约 1 年',\n other: '大约 {{count}} 年'\n },\n xYears: {\n one: '1 年',\n other: '{{count}} 年'\n },\n overXYears: {\n one: '超过 1 年',\n other: '超过 {{count}} 年'\n },\n almostXYears: {\n one: '将近 1 年',\n other: '将近 {{count}} 年'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + '内';\n } else {\n return result + '前';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"y'年'M'月'd'日' EEEE\",\n long: \"y'年'M'月'd'日'\",\n medium: 'yyyy-MM-dd',\n short: 'yy-MM-dd'\n};\nvar timeFormats = {\n full: 'zzzz a h:mm:ss',\n long: 'z a h:mm:ss',\n medium: 'a h:mm:ss',\n short: 'a h:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\n\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction checkWeek(_date, _baseDate, _options, baseFormat) {\n if ((0, _index.default)(_date, _baseDate, _options)) {\n return baseFormat; // in same week\n } else if (_date.getTime() > _baseDate.getTime()) {\n return \"'下个'\" + baseFormat; // in next week\n }\n\n return \"'上个'\" + baseFormat; // in last week\n}\n\nvar formatRelativeLocale = {\n lastWeek: checkWeek,\n // days before yesterday, maybe in this week or last week\n yesterday: \"'昨天' p\",\n today: \"'今天' p\",\n tomorrow: \"'明天' p\",\n nextWeek: checkWeek,\n // days after tomorrow, maybe in this week or next week\n other: 'PP p'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(_date, _baseDate, _options, 'eeee p');\n }\n\n return format;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['前', '公元'],\n abbreviated: ['前', '公元'],\n wide: ['公元前', '公元']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['第一刻', '第二刻', '第三刻', '第四刻'],\n wide: ['第一刻钟', '第二刻钟', '第三刻钟', '第四刻钟']\n};\nvar monthValues = {\n narrow: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],\n abbreviated: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n wide: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar dayValues = {\n narrow: ['日', '一', '二', '三', '四', '五', '六'],\n short: ['日', '一', '二', '三', '四', '五', '六'],\n abbreviated: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n wide: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '上',\n pm: '下',\n midnight: '凌晨',\n noon: '午',\n morning: '早',\n afternoon: '下午',\n evening: '晚',\n night: '夜'\n },\n abbreviated: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n },\n wide: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '上',\n pm: '下',\n midnight: '凌晨',\n noon: '午',\n morning: '早',\n afternoon: '下午',\n evening: '晚',\n night: '夜'\n },\n abbreviated: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n },\n wide: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n\n switch (unit) {\n case 'date':\n return number.toString() + '日';\n\n case 'hour':\n return number.toString() + '时';\n\n case 'minute':\n return number.toString() + '分';\n\n case 'second':\n return number.toString() + '秒';\n\n default:\n return '第 ' + number.toString();\n }\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(第\\s*)?\\d+(日|时|分|秒)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(前)/i,\n abbreviated: /^(前)/i,\n wide: /^(公元前|公元)/i\n};\nvar parseEraPatterns = {\n any: [/^(前)/i, /^(公元)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^第[一二三四]刻/i,\n wide: /^第[一二三四]刻钟/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|一)/i, /(2|二)/i, /(3|三)/i, /(4|四)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(一|二|三|四|五|六|七|八|九|十[二一])/i,\n abbreviated: /^(一|二|三|四|五|六|七|八|九|十[二一]|\\d|1[12])月/i,\n wide: /^(一|二|三|四|五|六|七|八|九|十[二一])月/i\n};\nvar parseMonthPatterns = {\n narrow: [/^一/i, /^二/i, /^三/i, /^四/i, /^五/i, /^六/i, /^七/i, /^八/i, /^九/i, /^十(?!(一|二))/i, /^十一/i, /^十二/i],\n any: [/^一|1/i, /^二|2/i, /^三|3/i, /^四|4/i, /^五|5/i, /^六|6/i, /^七|7/i, /^八|8/i, /^九|9/i, /^十(?!(一|二))|10/i, /^十一|11/i, /^十二|12/i]\n};\nvar matchDayPatterns = {\n narrow: /^[一二三四五六日]/i,\n short: /^[一二三四五六日]/i,\n abbreviated: /^周[一二三四五六日]/i,\n wide: /^星期[一二三四五六日]/i\n};\nvar parseDayPatterns = {\n any: [/日/i, /一/i, /二/i, /三/i, /四/i, /五/i, /六/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^上午?/i,\n pm: /^下午?/i,\n midnight: /^午夜/i,\n noon: /^[中正]午/i,\n morning: /^早上/i,\n afternoon: /^下午/i,\n evening: /^晚上?/i,\n night: /^凌晨/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: '少於 1 秒',\n other: '少於 {{count}} 秒'\n },\n xSeconds: {\n one: '1 秒',\n other: '{{count}} 秒'\n },\n halfAMinute: '半分鐘',\n lessThanXMinutes: {\n one: '少於 1 分鐘',\n other: '少於 {{count}} 分鐘'\n },\n xMinutes: {\n one: '1 分鐘',\n other: '{{count}} 分鐘'\n },\n xHours: {\n one: '1 小時',\n other: '{{count}} 小時'\n },\n aboutXHours: {\n one: '大約 1 小時',\n other: '大約 {{count}} 小時'\n },\n xDays: {\n one: '1 天',\n other: '{{count}} 天'\n },\n aboutXWeeks: {\n one: '大約 1 个星期',\n other: '大約 {{count}} 个星期'\n },\n xWeeks: {\n one: '1 个星期',\n other: '{{count}} 个星期'\n },\n aboutXMonths: {\n one: '大約 1 個月',\n other: '大約 {{count}} 個月'\n },\n xMonths: {\n one: '1 個月',\n other: '{{count}} 個月'\n },\n aboutXYears: {\n one: '大約 1 年',\n other: '大約 {{count}} 年'\n },\n xYears: {\n one: '1 年',\n other: '{{count}} 年'\n },\n overXYears: {\n one: '超過 1 年',\n other: '超過 {{count}} 年'\n },\n almostXYears: {\n one: '將近 1 年',\n other: '將近 {{count}} 年'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + '內';\n } else {\n return result + '前';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: \"y'年'M'月'd'日' EEEE\",\n long: \"y'年'M'月'd'日'\",\n medium: 'yyyy-MM-dd',\n short: 'yy-MM-dd'\n};\nvar timeFormats = {\n full: 'zzzz a h:mm:ss',\n long: 'z a h:mm:ss',\n medium: 'a h:mm:ss',\n short: 'a h:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'上個' eeee p\",\n yesterday: \"'昨天' p\",\n today: \"'今天' p\",\n tomorrow: \"'明天' p\",\n nextWeek: \"'下個' eeee p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['前', '公元'],\n abbreviated: ['前', '公元'],\n wide: ['公元前', '公元']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['第一刻', '第二刻', '第三刻', '第四刻'],\n wide: ['第一刻鐘', '第二刻鐘', '第三刻鐘', '第四刻鐘']\n};\nvar monthValues = {\n narrow: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],\n abbreviated: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n wide: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar dayValues = {\n narrow: ['日', '一', '二', '三', '四', '五', '六'],\n short: ['日', '一', '二', '三', '四', '五', '六'],\n abbreviated: ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],\n wide: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '上',\n pm: '下',\n midnight: '凌晨',\n noon: '午',\n morning: '早',\n afternoon: '下午',\n evening: '晚',\n night: '夜'\n },\n abbreviated: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜間'\n },\n wide: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜間'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '上',\n pm: '下',\n midnight: '凌晨',\n noon: '午',\n morning: '早',\n afternoon: '下午',\n evening: '晚',\n night: '夜'\n },\n abbreviated: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜間'\n },\n wide: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜間'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n\n switch (unit) {\n case 'date':\n return number.toString() + '日';\n\n case 'hour':\n return number.toString() + '時';\n\n case 'minute':\n return number.toString() + '分';\n\n case 'second':\n return number.toString() + '秒';\n\n default:\n return '第 ' + number.toString();\n }\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(第\\s*)?\\d+(日|時|分|秒)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(前)/i,\n abbreviated: /^(前)/i,\n wide: /^(公元前|公元)/i\n};\nvar parseEraPatterns = {\n any: [/^(前)/i, /^(公元)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^第[一二三四]刻/i,\n wide: /^第[一二三四]刻鐘/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|一)/i, /(2|二)/i, /(3|三)/i, /(4|四)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(一|二|三|四|五|六|七|八|九|十[二一])/i,\n abbreviated: /^(一|二|三|四|五|六|七|八|九|十[二一]|\\d|1[12])月/i,\n wide: /^(一|二|三|四|五|六|七|八|九|十[二一])月/i\n};\nvar parseMonthPatterns = {\n narrow: [/^一/i, /^二/i, /^三/i, /^四/i, /^五/i, /^六/i, /^七/i, /^八/i, /^九/i, /^十(?!(一|二))/i, /^十一/i, /^十二/i],\n any: [/^一|1/i, /^二|2/i, /^三|3/i, /^四|4/i, /^五|5/i, /^六|6/i, /^七|7/i, /^八|8/i, /^九|9/i, /^十(?!(一|二))|10/i, /^十一|11/i, /^十二|12/i]\n};\nvar matchDayPatterns = {\n narrow: /^[一二三四五六日]/i,\n short: /^[一二三四五六日]/i,\n abbreviated: /^週[一二三四五六日]/i,\n wide: /^星期[一二三四五六日]/i\n};\nvar parseDayPatterns = {\n any: [/日/i, /一/i, /二/i, /三/i, /四/i, /五/i, /六/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^上午?/i,\n pm: /^下午?/i,\n midnight: /^午夜/i,\n noon: /^[中正]午/i,\n morning: /^早上/i,\n afternoon: /^下午/i,\n evening: /^晚上?/i,\n night: /^凌晨/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","'use strict';\n\n\nmodule.exports = require('./lib/');\n","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/lib/maps/entities.json');\n","'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse = require('./parse');\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","// Regexps to match html elements\n\n'use strict';\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?].*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n","// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n jump: i,\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n max = delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // An amount of characters before this one that's equivalent to\n // current one. In plain English: if this delimiter does not open\n // an emphasis, neither do previous `jump` characters.\n //\n // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n // value will be 0, for 2nd it's 1 and so on.\n //\n jump: i,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n max = delimiters.length;\n\n for (i = max - 1; i >= 0; i--) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n delimiters[startDelim.end + 1].token === endDelim.token + 1 &&\n delimiters[i - 1].marker === startDelim.marker;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","export default function convertToFP(fn, arity, a) {\n a = a || [];\n\n if (a.length >= arity) {\n return fn.apply(null, a.slice(0, arity).reverse());\n }\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return convertToFP(fn, arity, a.concat(args));\n };\n}","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../add/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar add = convertToFP(fn, 2);\nexport default add;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addBusinessDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addBusinessDays = convertToFP(fn, 2);\nexport default addBusinessDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addDays = convertToFP(fn, 2);\nexport default addDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addHours/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addHours = convertToFP(fn, 2);\nexport default addHours;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addISOWeekYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addISOWeekYears = convertToFP(fn, 2);\nexport default addISOWeekYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addMilliseconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addMilliseconds = convertToFP(fn, 2);\nexport default addMilliseconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addMinutes = convertToFP(fn, 2);\nexport default addMinutes;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addMonths/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addMonths = convertToFP(fn, 2);\nexport default addMonths;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addQuarters/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addQuarters = convertToFP(fn, 2);\nexport default addQuarters;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addSeconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addSeconds = convertToFP(fn, 2);\nexport default addSeconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addWeeks/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addWeeks = convertToFP(fn, 2);\nexport default addWeeks;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../addYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar addYears = convertToFP(fn, 2);\nexport default addYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../areIntervalsOverlapping/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar areIntervalsOverlapping = convertToFP(fn, 2);\nexport default areIntervalsOverlapping;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../areIntervalsOverlapping/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar areIntervalsOverlappingWithOptions = convertToFP(fn, 3);\nexport default areIntervalsOverlappingWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../closestIndexTo/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar closestIndexTo = convertToFP(fn, 2);\nexport default closestIndexTo;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../closestTo/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar closestTo = convertToFP(fn, 2);\nexport default closestTo;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../compareAsc/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar compareAsc = convertToFP(fn, 2);\nexport default compareAsc;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../compareDesc/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar compareDesc = convertToFP(fn, 2);\nexport default compareDesc;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInBusinessDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInBusinessDays = convertToFP(fn, 2);\nexport default differenceInBusinessDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarDays = convertToFP(fn, 2);\nexport default differenceInCalendarDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarISOWeekYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarISOWeekYears = convertToFP(fn, 2);\nexport default differenceInCalendarISOWeekYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarISOWeeks/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarISOWeeks = convertToFP(fn, 2);\nexport default differenceInCalendarISOWeeks;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarMonths/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarMonths = convertToFP(fn, 2);\nexport default differenceInCalendarMonths;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarQuarters/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarQuarters = convertToFP(fn, 2);\nexport default differenceInCalendarQuarters;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarWeeks/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarWeeks = convertToFP(fn, 2);\nexport default differenceInCalendarWeeks;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarWeeks/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarWeeksWithOptions = convertToFP(fn, 3);\nexport default differenceInCalendarWeeksWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInCalendarYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInCalendarYears = convertToFP(fn, 2);\nexport default differenceInCalendarYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInDays = convertToFP(fn, 2);\nexport default differenceInDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInHours/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInHours = convertToFP(fn, 2);\nexport default differenceInHours;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInISOWeekYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInISOWeekYears = convertToFP(fn, 2);\nexport default differenceInISOWeekYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInMilliseconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInMilliseconds = convertToFP(fn, 2);\nexport default differenceInMilliseconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInMinutes = convertToFP(fn, 2);\nexport default differenceInMinutes;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInMonths/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInMonths = convertToFP(fn, 2);\nexport default differenceInMonths;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInQuarters/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInQuarters = convertToFP(fn, 2);\nexport default differenceInQuarters;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInSeconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInSeconds = convertToFP(fn, 2);\nexport default differenceInSeconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInWeeks/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInWeeks = convertToFP(fn, 2);\nexport default differenceInWeeks;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../differenceInYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar differenceInYears = convertToFP(fn, 2);\nexport default differenceInYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachDayOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachDayOfInterval = convertToFP(fn, 1);\nexport default eachDayOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachDayOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachDayOfIntervalWithOptions = convertToFP(fn, 2);\nexport default eachDayOfIntervalWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachHourOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachHourOfInterval = convertToFP(fn, 1);\nexport default eachHourOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachHourOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachHourOfIntervalWithOptions = convertToFP(fn, 2);\nexport default eachHourOfIntervalWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachMonthOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachMonthOfInterval = convertToFP(fn, 1);\nexport default eachMonthOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachQuarterOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachQuarterOfInterval = convertToFP(fn, 1);\nexport default eachQuarterOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachWeekOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachWeekOfInterval = convertToFP(fn, 1);\nexport default eachWeekOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachWeekOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachWeekOfIntervalWithOptions = convertToFP(fn, 2);\nexport default eachWeekOfIntervalWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachWeekendOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachWeekendOfInterval = convertToFP(fn, 1);\nexport default eachWeekendOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachWeekendOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachWeekendOfMonth = convertToFP(fn, 1);\nexport default eachWeekendOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachWeekendOfYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachWeekendOfYear = convertToFP(fn, 1);\nexport default eachWeekendOfYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../eachYearOfInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar eachYearOfInterval = convertToFP(fn, 1);\nexport default eachYearOfInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfDay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfDay = convertToFP(fn, 1);\nexport default endOfDay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfDecade/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfDecade = convertToFP(fn, 1);\nexport default endOfDecade;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfDecade/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfDecadeWithOptions = convertToFP(fn, 2);\nexport default endOfDecadeWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfHour/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfHour = convertToFP(fn, 1);\nexport default endOfHour;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfISOWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfISOWeek = convertToFP(fn, 1);\nexport default endOfISOWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfISOWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfISOWeekYear = convertToFP(fn, 1);\nexport default endOfISOWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfMinute/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfMinute = convertToFP(fn, 1);\nexport default endOfMinute;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfMonth = convertToFP(fn, 1);\nexport default endOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfQuarter = convertToFP(fn, 1);\nexport default endOfQuarter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfSecond/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfSecond = convertToFP(fn, 1);\nexport default endOfSecond;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfWeek = convertToFP(fn, 1);\nexport default endOfWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfWeekWithOptions = convertToFP(fn, 2);\nexport default endOfWeekWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../endOfYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar endOfYear = convertToFP(fn, 1);\nexport default endOfYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../format/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar format = convertToFP(fn, 2);\nexport default format;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatDistance/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatDistance = convertToFP(fn, 2);\nexport default formatDistance;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatDistanceStrict/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatDistanceStrict = convertToFP(fn, 2);\nexport default formatDistanceStrict;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatDistanceStrict/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatDistanceStrictWithOptions = convertToFP(fn, 3);\nexport default formatDistanceStrictWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatDistance/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatDistanceWithOptions = convertToFP(fn, 3);\nexport default formatDistanceWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatDuration/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatDuration = convertToFP(fn, 1);\nexport default formatDuration;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatDuration/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatDurationWithOptions = convertToFP(fn, 2);\nexport default formatDurationWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatISO/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatISO = convertToFP(fn, 1);\nexport default formatISO;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatISO9075/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatISO9075 = convertToFP(fn, 1);\nexport default formatISO9075;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatISO9075/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatISO9075WithOptions = convertToFP(fn, 2);\nexport default formatISO9075WithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatISODuration/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatISODuration = convertToFP(fn, 1);\nexport default formatISODuration;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatISO/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatISOWithOptions = convertToFP(fn, 2);\nexport default formatISOWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatRFC3339/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatRFC3339 = convertToFP(fn, 1);\nexport default formatRFC3339;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatRFC3339/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatRFC3339WithOptions = convertToFP(fn, 2);\nexport default formatRFC3339WithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatRFC7231/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatRFC7231 = convertToFP(fn, 1);\nexport default formatRFC7231;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatRelative/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatRelative = convertToFP(fn, 2);\nexport default formatRelative;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../formatRelative/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatRelativeWithOptions = convertToFP(fn, 3);\nexport default formatRelativeWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../format/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar formatWithOptions = convertToFP(fn, 3);\nexport default formatWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../fromUnixTime/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar fromUnixTime = convertToFP(fn, 1);\nexport default fromUnixTime;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getDate/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getDate = convertToFP(fn, 1);\nexport default getDate;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getDay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getDay = convertToFP(fn, 1);\nexport default getDay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getDayOfYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getDayOfYear = convertToFP(fn, 1);\nexport default getDayOfYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getDaysInMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getDaysInMonth = convertToFP(fn, 1);\nexport default getDaysInMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getDaysInYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getDaysInYear = convertToFP(fn, 1);\nexport default getDaysInYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getDecade/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getDecade = convertToFP(fn, 1);\nexport default getDecade;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getHours/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getHours = convertToFP(fn, 1);\nexport default getHours;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getISODay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getISODay = convertToFP(fn, 1);\nexport default getISODay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getISOWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getISOWeek = convertToFP(fn, 1);\nexport default getISOWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getISOWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getISOWeekYear = convertToFP(fn, 1);\nexport default getISOWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getISOWeeksInYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getISOWeeksInYear = convertToFP(fn, 1);\nexport default getISOWeeksInYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getMilliseconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getMilliseconds = convertToFP(fn, 1);\nexport default getMilliseconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getMinutes = convertToFP(fn, 1);\nexport default getMinutes;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getMonth = convertToFP(fn, 1);\nexport default getMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getOverlappingDaysInIntervals/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getOverlappingDaysInIntervals = convertToFP(fn, 2);\nexport default getOverlappingDaysInIntervals;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getQuarter = convertToFP(fn, 1);\nexport default getQuarter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getSeconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getSeconds = convertToFP(fn, 1);\nexport default getSeconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getTime/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getTime = convertToFP(fn, 1);\nexport default getTime;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getUnixTime/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getUnixTime = convertToFP(fn, 1);\nexport default getUnixTime;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeek = convertToFP(fn, 1);\nexport default getWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeekOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeekOfMonth = convertToFP(fn, 1);\nexport default getWeekOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeekOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeekOfMonthWithOptions = convertToFP(fn, 2);\nexport default getWeekOfMonthWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeekWithOptions = convertToFP(fn, 2);\nexport default getWeekWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeekYear = convertToFP(fn, 1);\nexport default getWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeekYearWithOptions = convertToFP(fn, 2);\nexport default getWeekYearWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeeksInMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeeksInMonth = convertToFP(fn, 1);\nexport default getWeeksInMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getWeeksInMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getWeeksInMonthWithOptions = convertToFP(fn, 2);\nexport default getWeeksInMonthWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../getYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar getYear = convertToFP(fn, 1);\nexport default getYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../intervalToDuration/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar intervalToDuration = convertToFP(fn, 1);\nexport default intervalToDuration;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isAfter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isAfter = convertToFP(fn, 2);\nexport default isAfter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isBefore/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isBefore = convertToFP(fn, 2);\nexport default isBefore;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isDate/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isDate = convertToFP(fn, 1);\nexport default isDate;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isDate/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isDateWithOptions = convertToFP(fn, 2);\nexport default isDateWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isEqual/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isEqual = convertToFP(fn, 2);\nexport default isEqual;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isExists/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isExists = convertToFP(fn, 3);\nexport default isExists;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isFirstDayOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isFirstDayOfMonth = convertToFP(fn, 1);\nexport default isFirstDayOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isFriday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isFriday = convertToFP(fn, 1);\nexport default isFriday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isLastDayOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isLastDayOfMonth = convertToFP(fn, 1);\nexport default isLastDayOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isLeapYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isLeapYear = convertToFP(fn, 1);\nexport default isLeapYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isMatch/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isMatch = convertToFP(fn, 2);\nexport default isMatch;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isMatch/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isMatchWithOptions = convertToFP(fn, 3);\nexport default isMatchWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isMonday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isMonday = convertToFP(fn, 1);\nexport default isMonday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameDay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameDay = convertToFP(fn, 2);\nexport default isSameDay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameHour/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameHour = convertToFP(fn, 2);\nexport default isSameHour;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameISOWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameISOWeek = convertToFP(fn, 2);\nexport default isSameISOWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameISOWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameISOWeekYear = convertToFP(fn, 2);\nexport default isSameISOWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameMinute/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameMinute = convertToFP(fn, 2);\nexport default isSameMinute;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameMonth = convertToFP(fn, 2);\nexport default isSameMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameQuarter = convertToFP(fn, 2);\nexport default isSameQuarter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameSecond/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameSecond = convertToFP(fn, 2);\nexport default isSameSecond;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameWeek = convertToFP(fn, 2);\nexport default isSameWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameWeekWithOptions = convertToFP(fn, 3);\nexport default isSameWeekWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSameYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSameYear = convertToFP(fn, 2);\nexport default isSameYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSaturday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSaturday = convertToFP(fn, 1);\nexport default isSaturday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isSunday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isSunday = convertToFP(fn, 1);\nexport default isSunday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isThursday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isThursday = convertToFP(fn, 1);\nexport default isThursday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isTuesday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isTuesday = convertToFP(fn, 1);\nexport default isTuesday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isValid/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isValid = convertToFP(fn, 1);\nexport default isValid;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isWednesday/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isWednesday = convertToFP(fn, 1);\nexport default isWednesday;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isWeekend/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isWeekend = convertToFP(fn, 1);\nexport default isWeekend;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../isWithinInterval/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar isWithinInterval = convertToFP(fn, 2);\nexport default isWithinInterval;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfDecade/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfDecade = convertToFP(fn, 1);\nexport default lastDayOfDecade;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfISOWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfISOWeek = convertToFP(fn, 1);\nexport default lastDayOfISOWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfISOWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfISOWeekYear = convertToFP(fn, 1);\nexport default lastDayOfISOWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfMonth = convertToFP(fn, 1);\nexport default lastDayOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfQuarter = convertToFP(fn, 1);\nexport default lastDayOfQuarter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfQuarterWithOptions = convertToFP(fn, 2);\nexport default lastDayOfQuarterWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfWeek = convertToFP(fn, 1);\nexport default lastDayOfWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfWeekWithOptions = convertToFP(fn, 2);\nexport default lastDayOfWeekWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lastDayOfYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lastDayOfYear = convertToFP(fn, 1);\nexport default lastDayOfYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../lightFormat/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar lightFormat = convertToFP(fn, 2);\nexport default lightFormat;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../max/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar max = convertToFP(fn, 1);\nexport default max;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../min/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar min = convertToFP(fn, 1);\nexport default min;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../parse/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar parse = convertToFP(fn, 3);\nexport default parse;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../parseISO/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar parseISO = convertToFP(fn, 1);\nexport default parseISO;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../parseISO/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar parseISOWithOptions = convertToFP(fn, 2);\nexport default parseISOWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../parseJSON/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar parseJSON = convertToFP(fn, 1);\nexport default parseJSON;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../parse/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar parseWithOptions = convertToFP(fn, 4);\nexport default parseWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../roundToNearestMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar roundToNearestMinutes = convertToFP(fn, 1);\nexport default roundToNearestMinutes;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../roundToNearestMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar roundToNearestMinutesWithOptions = convertToFP(fn, 2);\nexport default roundToNearestMinutesWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../set/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar set = convertToFP(fn, 2);\nexport default set;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setDate/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setDate = convertToFP(fn, 2);\nexport default setDate;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setDay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setDay = convertToFP(fn, 2);\nexport default setDay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setDayOfYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setDayOfYear = convertToFP(fn, 2);\nexport default setDayOfYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setDay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setDayWithOptions = convertToFP(fn, 3);\nexport default setDayWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setHours/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setHours = convertToFP(fn, 2);\nexport default setHours;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setISODay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setISODay = convertToFP(fn, 2);\nexport default setISODay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setISOWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setISOWeek = convertToFP(fn, 2);\nexport default setISOWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setISOWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setISOWeekYear = convertToFP(fn, 2);\nexport default setISOWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setMilliseconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setMilliseconds = convertToFP(fn, 2);\nexport default setMilliseconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setMinutes = convertToFP(fn, 2);\nexport default setMinutes;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setMonth = convertToFP(fn, 2);\nexport default setMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setQuarter = convertToFP(fn, 2);\nexport default setQuarter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setSeconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setSeconds = convertToFP(fn, 2);\nexport default setSeconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setWeek = convertToFP(fn, 2);\nexport default setWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setWeekWithOptions = convertToFP(fn, 3);\nexport default setWeekWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setWeekYear = convertToFP(fn, 2);\nexport default setWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setWeekYearWithOptions = convertToFP(fn, 3);\nexport default setWeekYearWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../setYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar setYear = convertToFP(fn, 2);\nexport default setYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfDay/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfDay = convertToFP(fn, 1);\nexport default startOfDay;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfDecade/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfDecade = convertToFP(fn, 1);\nexport default startOfDecade;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfHour/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfHour = convertToFP(fn, 1);\nexport default startOfHour;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfISOWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfISOWeek = convertToFP(fn, 1);\nexport default startOfISOWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfISOWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfISOWeekYear = convertToFP(fn, 1);\nexport default startOfISOWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfMinute/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfMinute = convertToFP(fn, 1);\nexport default startOfMinute;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfMonth/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfMonth = convertToFP(fn, 1);\nexport default startOfMonth;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfQuarter/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfQuarter = convertToFP(fn, 1);\nexport default startOfQuarter;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfSecond/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfSecond = convertToFP(fn, 1);\nexport default startOfSecond;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfWeek = convertToFP(fn, 1);\nexport default startOfWeek;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfWeek/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfWeekWithOptions = convertToFP(fn, 2);\nexport default startOfWeekWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfWeekYear = convertToFP(fn, 1);\nexport default startOfWeekYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfWeekYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfWeekYearWithOptions = convertToFP(fn, 2);\nexport default startOfWeekYearWithOptions;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../startOfYear/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar startOfYear = convertToFP(fn, 1);\nexport default startOfYear;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../sub/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar sub = convertToFP(fn, 2);\nexport default sub;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subBusinessDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subBusinessDays = convertToFP(fn, 2);\nexport default subBusinessDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subDays/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subDays = convertToFP(fn, 2);\nexport default subDays;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subHours/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subHours = convertToFP(fn, 2);\nexport default subHours;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subISOWeekYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subISOWeekYears = convertToFP(fn, 2);\nexport default subISOWeekYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subMilliseconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subMilliseconds = convertToFP(fn, 2);\nexport default subMilliseconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subMinutes/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subMinutes = convertToFP(fn, 2);\nexport default subMinutes;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subMonths/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subMonths = convertToFP(fn, 2);\nexport default subMonths;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subQuarters/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subQuarters = convertToFP(fn, 2);\nexport default subQuarters;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subSeconds/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subSeconds = convertToFP(fn, 2);\nexport default subSeconds;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subWeeks/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subWeeks = convertToFP(fn, 2);\nexport default subWeeks;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../subYears/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar subYears = convertToFP(fn, 2);\nexport default subYears;","// This file is generated automatically by `scripts/build/fp.js`. Please, don't change it.\nimport fn from '../../toDate/index.js';\nimport convertToFP from '../_lib/convertToFP/index.js';\nvar toDate = convertToFP(fn, 1);\nexport default toDate;","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));","/**\n\t* @module LivechatDriver\n\t* Provides high-level helpers for Livechat connection, method calls, subscriptions.\n\t*/\nimport LivechatRest from '../api/Livechat'\nimport { ISocket, Protocols, IDriver } from '../drivers'\nimport { logger as Logger } from '../log'\nimport {\n\tILogger,\n\tISocketOptions,\n\tICallback,\n\tISubscription\n} from '../../interfaces'\n\nexport default class LivechatClient extends LivechatRest implements ISocket {\n livechatStream: string = 'stream-livechat-room'\n userId: string = ''\n logger: ILogger = Logger\n socket: Promise = Promise.resolve() as any\n constructor ({ logger, allPublic, rooms, integrationId, protocol = Protocols.DDP, ...config }: any) {\n super({ logger, ...config })\n this.import(protocol, config)\n }\n import (protocol: Protocols, config: any) {\n switch (protocol) {\n // case Protocols.MQTT:\n // this.socket = import(/* webpackChunkName: 'mqtttest' */ '../drivers/mqtt').then(({ MQTTDriver }) => new MQTTDriver({ logger: this.logger, ...config }))\n // break\n case Protocols.DDP:\n this.socket = import(/* webpackChunkName: 'ddptest' */ '../drivers/ddp').then(({ DDPDriver }) => new DDPDriver({ logger: this.logger, ...config }))\n break\n default:\n throw new Error(`Invalid Protocol: ${protocol}, valids: ${Object.keys(Protocols).join()}`)\n }\n }\n async connect (options: ISocketOptions, callback?: ICallback): Promise {\n return (await this.socket as ISocket).connect(options).then(() => (this.setUpConnection()))\n }\n async disconnect (): Promise { return (await this.socket as ISocket).disconnect() }\n async unsubscribe (subscription: ISubscription): Promise { return (await this.socket as ISocket).unsubscribe(subscription) }\n async unsubscribeAll (): Promise { return (await this.socket as ISocket).unsubscribeAll() }\n async subscribeNotifyAll (): Promise { return (await this.socket as IDriver) .subscribeNotifyAll() }\n async subscribeLoggedNotify (): Promise { return (await this.socket as IDriver) .subscribeLoggedNotify() }\n async subscribeNotifyUser (): Promise { return (await this.socket as IDriver) .subscribeNotifyUser() }\n async onMessage (cb: ICallback): Promise { return (await this.socket as IDriver).onMessage(cb) }\n async onTyping (cb: ICallback): Promise { return (await this.socket as IDriver).onTyping(cb) }\n async onAgentChange (rid: string, cb: ICallback) {\n await this.subscribe(this.livechatStream, rid)\n await this.onStreamData(this.livechatStream, ({ fields: { args: [{ type, data }] } }: any) => {\n if (type === 'agentData') {\n cb(data)\n }\n })\n }\n async onAgentStatusChange (rid: string, cb: ICallback) {\n await this.subscribe(this.livechatStream, rid)\n await this.onStreamData(this.livechatStream, ({ fields: { args: [{ type, status }] } }: any) => {\n if (type === 'agentStatus') {\n cb(status)\n }\n })\n }\n\n async onQueuePositionChange (rid: string, cb: ICallback) {\n await this.subscribe(this.livechatStream, rid)\n await this.onStreamData(this.livechatStream, ({ fields: { args: [{ type, data }] } }: any) => {\n if (type === 'queueData') {\n cb(data)\n }\n })\n }\n\n async onVisitorChange (rid: string, cb: ICallback) {\n await this.subscribe(this.livechatStream, rid)\n await this.onStreamData(this.livechatStream, ({ fields: { args: [{ type, visitor }] } }: any) => {\n if (type === 'visitorData') {\n cb(visitor)\n }\n })\n }\n\n async notifyVisitorTyping (rid: string, username: string, typing: boolean, text?: string) {\n return (await this.socket as IDriver).notifyVisitorTyping(rid, username, typing, this.credentials.token, text)\n }\n\n async notifyCallDeclined (rid: string) {\n return (await this.socket as IDriver).notifyCallDeclined(rid)\n }\n\n async subscribe (topic: string, eventName: string) {\n const { token } = this.credentials\n return (await this.socket as ISocket).subscribe(topic, eventName, { token, visitorToken: token })\n }\n\n async subscribeRoom (rid: string) {\n const { token } = this.credentials\n return (await this.socket as IDriver).subscribeRoom(rid, { token, visitorToken: token })\n }\n\n async onStreamData (event: string, cb: ICallback): Promise {\n return (await this.socket as ISocket).onStreamData(event, cb)\n }\n\n async setUpConnection () {\n const { token } = this.credentials\n return (await this.socket as IDriver).methodCall('livechat:setUpConnection', { token })\n }\n}\n","/**\n * @module ApiLivechat\n * Provides a client for making requests with Livechat Rocket.Chat's REST API\n */\n\nimport {\n\tILivechatTokenAPI,\n\tILivechatRoomCredentialAPI,\n\tILivechatRoomSurveyAPI,\n\tINewLivechatGuestAPI,\n\tINewLivechatMessageAPI,\n\tILivechatRoomMessagesAPI,\n\tINewLivechatNavigationAPI,\n\tINewLivechatCustomFieldAPI,\n\tINewLivechatOfflineMessageAPI,\n\tINewLivechatCustomFieldsAPI,\n\tILivechatRoom,\n\tINewLivechatRoomCredentialAPI,\n\tILivechatUploadAPI,\n ILivechatSNSLoggerAPI\n} from '../../interfaces'\n\nimport ApiBase from './api'\n\nexport default class ApiLivechat extends ApiBase {\n credentials: ILivechatRoomCredentialAPI = {} as any\n login (guest: INewLivechatGuestAPI | any) { return this.grantVisitor(guest) }\n async config (params?: ILivechatTokenAPI) { return (await this.get('livechat/config', params, false)).config }\n async room (params?: INewLivechatRoomCredentialAPI) { return (await this.get('livechat/room', { token: this.credentials.token, ...params }, false)).room }\n closeChat ({ rid }: ILivechatRoom) { return this.post('livechat/room.close', { rid, token: this.credentials.token }, false) }\n shareScreen ({ rid, messageType }: any) { return this.post('livechat/room.shareScreen', { rid, token: this.credentials.token, messageType }, false) }\n transferChat ({ rid, department }: ILivechatRoom) { return (this.post('livechat/room.transfer', { rid, token: this.credentials.token, department }, false)) }\n chatSurvey (survey: ILivechatRoomSurveyAPI) { return (this.post('livechat/room.survey', { rid: survey.rid, token: this.credentials.token, data: survey.data }, false)) }\n visitor () { return this.get(`livechat/visitor/${this.credentials.token}`) }\n async grantVisitor (guest: INewLivechatGuestAPI) {\n const { visitor } = await this.post('livechat/visitor', guest, false)\n this.credentials = {\n token: visitor.token\n }\n return visitor\n }\n async deleteVisitor () { return (await this.del(`livechat/visitor/${this.credentials.token}`)).visitor }\n async updateVisitorStatus (status: string) { return (await this.post(`livechat/visitor.status`, { token: this.credentials.token, status })).status }\n async updateCallStatus (callStatus: string, rid: string, callId: string) { return (await this.post(`livechat/visitor.callStatus`, { token: this.credentials.token, callStatus, rid, callId })).callStatus }\n async nextAgent (department: string = '') { return (await this.get(`livechat/agent.next/${this.credentials.token}`, { department })).agent }\n async agent ({ rid }: any) { return (await this.get(`livechat/agent.info/${rid}/${this.credentials.token}`)).agent }\n async message (id: string, params: ILivechatRoom) { return (await this.get(`livechat/message/${id}`, { token: this.credentials.token, ...params })).message }\n sendMessage (message: INewLivechatMessageAPI) { return (this.post('livechat/message', { ...message, token: this.credentials.token }, false)) }\n editMessage (id: string, message: INewLivechatMessageAPI) { return (this.put(`livechat/message/${id}`, message, false)) }\n deleteMessage (id: string, { rid }: ILivechatRoom) { return (this.del(`livechat/message/${id}`, { rid, token: this.credentials.token }, false)) }\n async loadMessages (rid: string, params?: ILivechatRoomMessagesAPI) { return (await this.get(`livechat/messages.history/${rid}`, { ...params, token: this.credentials.token }, false)).messages }\n async sendOfflineMessage (message: INewLivechatOfflineMessageAPI) { return (await this.post('livechat/offline.message', { ...message }, false)).message }\n sendVisitorNavigation (page: INewLivechatNavigationAPI) { return (this.post('livechat/page.visited', { ...page }, false)) }\n requestTranscript (email: string, { rid }: ILivechatRoom) { return (this.post('livechat/transcript', { token: this.credentials.token, rid, email }, false)) }\n videoCall ({ rid }: ILivechatRoom) { return this.get(`livechat/video.call/${this.credentials.token}`, { rid }, false) }\n sendCustomField (field: INewLivechatCustomFieldAPI) { return this.post('livechat/custom.field', field, false) }\n sendCustomFields (fields: INewLivechatCustomFieldsAPI) { return this.post('livechat/custom.fields', fields, false) }\n uploadFile (params: ILivechatUploadAPI) {\n const formData = new FormData()\n const headersNeededForUpload = {\n 'x-visitor-token': this.credentials.token\n }\n formData.append('file', params.file)\n return this.post(`livechat/upload/${params.rid}`, formData, false, undefined, { customHeaders: headersNeededForUpload })\n }\n async sendLogsToSNS (logs: ILivechatSNSLoggerAPI) { return (await this.post('livechat/sns', logs, false)) }\n}\n","import { logger as Logger } from '../log'\n\nimport {\n\tILogger,\n\tILoginResultAPI,\n\tIAPIRequest,\n\tIMessage,\n\tICredentials\n} from '../../interfaces'\n\nimport { Message } from '../message'\n\nimport { EventEmitter } from 'tiny-events'\n\n/** Check for existing login */\n// export function loggedIn () {\n// return (currentLogin !== null)\n// }\n\n/**\n\t* Prepend protocol (or put back if removed from env settings for driver)\n\t* Hard code endpoint prefix, because all syntax depends on this version\n\t*/\n// export const url = `${(host.indexOf('http') === -1) ? host.replace(/^(\\/\\/)?/, 'http://') : host}/api/v1/`\n\n/** Populate auth headers (from response data on login) */\n// export function setAuth (authData: {authToken: string, userId: string}) {\n// client.defaults.headers.common['X-Auth-Token'] = authData.authToken\n// client.defaults.headers.common['X-User-Id'] = authData.userId\n// }\n\n// /** Clear headers so they can't be used without logging in again */\n// export function clearHeaders () {\n// delete client.defaults.headers.common['X-Auth-Token']\n// delete client.defaults.headers.common['X-User-Id']\n// }\n\n// /**\n// \t* Login a user for further API calls\n// \t* Result should come back with a token, to authorise following requests.\n// \t* Use env default credentials, unless overridden by login arguments.\n// \t*/\n// export async function login (user: ICredentialsAPI = { username, password }) {\n// this.logger.info(`[API] Logging in ${user.username}`)\n// if (currentLogin !== null) {\n// this.logger.debug(`[API] Already logged in`)\n// if (currentLogin.username === user.username) return currentLogin.result\n// else await logout()\n// }\n// const result = (await this.post('login', user, false) as ILoginResultAPI)\n// if (result && result.data && result.data.authToken) {\n// currentLogin = {\n// result: result, // keep to return if login requested again for same user\n// username: user.username, // keep to compare with following login attempt\n// authToken: result.data.authToken,\n// userId: result.data.userId\n// }\n// setAuth(currentLogin)\n// this.logger.info(`[API] Logged in ID ${currentLogin.userId}`)\n// return result\n// } else {\n// throw new Error(`[API] Login failed for ${user.username}`)\n// }\n// }\n\n// /** Logout a user at end of API calls */\n// export function logout () {\n// if (currentLogin === null) {\n// this.logger.debug(`[API] Already logged out`)\n// return Promise.resolve()\n// }\n// this.logger.info(`[API] Logging out ${ currentLogin.username }`)\n// return this.get('logout', null, true).then(() => {\n// clearHeaders()\n// currentLogin = null\n// })\n// }\n\nexport interface IClient {\n headers: any\n get (url: string, data: any, options?: any): Promise\n post (url: string, data: any, options?: any): Promise\n put (url: string, data: any, options?: any): Promise\n delete (url: string, data: any, options?: any): Promise\n}\n\nclass Client implements IClient {\n host: string\n\n _headers: any = {}\n\n constructor ({ host = 'http://localhost:3000' }: any) {\n this.host = host\n }\n\n set headers (obj: any) {\n this._headers = obj\n }\n get headers (): any {\n return {\n 'Content-Type': 'application/json',\n ...this._headers\n }\n }\n\n getHeaders (options?: any) {\n return options && options.customHeaders ?\n options.customHeaders :\n this.headers\n }\n\n getBody (data: any) {\n return data instanceof FormData ?\n data :\n JSON.stringify(data)\n }\n\n get (url: string, data: any, options?: any): Promise {\n return fetch(`${this.host}/api/v1/${encodeURI(url)}?${this.getParams(data)}`, {\n method: 'GET',\n headers: this.getHeaders(options)\n }).then(this.handle)\n }\n post (url: string, data: any, options?: any): Promise {\n return fetch(`${this.host}/api/v1/${encodeURI(url)}`, {\n method: 'POST',\n body: this.getBody(data),\n headers: this.getHeaders(options)\n }).then(this.handle)\n }\n put (url: string, data: any, options?: any): Promise {\n return fetch(`${this.host}/api/v1/${encodeURI(url)}`, {\n method: 'PUT',\n body: this.getBody(data),\n headers: this.getHeaders(options)\n }).then(this.handle)\n }\n\n delete (url: string, data?: any, options?: any): Promise {\n return fetch(`${this.host}/api/v1/${encodeURI(url)}`, {\n method: 'DELETE',\n body: this.getBody(data),\n headers: this.getHeaders(options)\n }).then(this.handle)\n }\n private async handle (r: any) {\n const { status } = r\n const data = await r.json()\n\n return { status, data }\n\n }\n private getParams (data: any) {\n return Object.keys(data).map(function (k) {\n return encodeURIComponent(k) + '=' + (typeof data[k] === 'object' ? encodeURIComponent(JSON.stringify(data[k])) : encodeURIComponent(data[k]))\n }).join('&')\n }\n}\n\nexport const regExpSuccess = /(?!([45][0-9][0-9]))\\d{3}/\n\n/**\n\t* @module API\n\t* Provides a base client for handling requests with generic Rocket.Chat's REST API\n\t*/\n\nexport default class Api extends EventEmitter {\n userId: string = ''\n logger: ILogger\n client: IClient\n currentLogin: {\n username: string,\n userId: string,\n authToken: string,\n result: ILoginResultAPI\n } | null = null\n\n constructor ({ client, host, logger = Logger }: any) {\n super()\n this.client = client || new Client({ host } as any)\n this.logger = Logger\n }\n\n get username () {\n return this.currentLogin && this.currentLogin.username\n }\n\n loggedIn () {\n return Object.keys(this.currentLogin || {} as any).every((e: any) => e)\n }\n/**\n\t* Do a request to an API endpoint.\n\t* If it needs a token, login first (with defaults) to set auth headers.\n\t* @param method Request method GET | POST | PUT | DEL\n\t* @param endpoint The API endpoint (including version) e.g. `chat.update`\n\t* @param data Payload for POST request to endpoint\n\t* @param auth Require auth headers for endpoint, default true\n\t* @param ignore Allows certain matching error messages to not count as errors\n\t*/\n request = async (\n\t\tmethod: 'POST' | 'GET' | 'PUT' | 'DELETE',\n\t\tendpoint: string,\n\t\tdata: any = {},\n\t\tauth: boolean = true,\n ignore?: RegExp,\n options?: any\n\t) => {\n this.logger && this.logger.debug(`[API] ${ method } ${ endpoint }: ${ JSON.stringify(data) }`)\n try {\n if (auth && !this.loggedIn()) {\n throw new Error('')\n }\n let result\n switch (method) {\n case 'GET': result = await this.client.get(endpoint, data, options); break\n case 'PUT': result = await this.client.put(endpoint, data, options); break\n case 'DELETE': result = await this.client.delete(endpoint, data, options); break\n default:\n case 'POST': result = await this.client.post(endpoint, data, options); break\n }\n if (!result) throw new Error(`API ${ method } ${ endpoint } result undefined`)\n if (!this.success(result, ignore)) throw result\n this.logger && this.logger.debug(`[API] ${method} ${endpoint} result ${result.status}`)\n const hasDataInsideResult = result && !result.data\n return (method === 'DELETE') && hasDataInsideResult ? result : result.data\n } catch (err) {\n this.logger && this.logger.error(`[API] POST error(${ endpoint }): ${ JSON.stringify(err) }`)\n throw err\n }\n }\n\t/** Do a POST request to an API endpoint. */\n post: IAPIRequest = (endpoint, data, auth, ignore, options = {}) => this.request('POST', endpoint, data, auth, ignore, options)\n\n\t/** Do a GET request to an API endpoint. */\n get: IAPIRequest = (endpoint, data, auth, ignore, options = {}) => this.request('GET', endpoint, data, auth, ignore, options)\n\n\t/** Do a PUT request to an API endpoint. */\n put: IAPIRequest = (endpoint, data, auth, ignore, options = {}) => this.request('PUT', endpoint, data, auth, ignore, options)\n\n\t/** Do a DELETE request to an API endpoint. */\n del: IAPIRequest = (endpoint, data, auth, ignore, options = {}) => this.request('DELETE', endpoint, data, auth, ignore, options)\n\n\t/** Check result data for success, allowing override to ignore some errors */\n success (result: any, ignore?: RegExp) {\n return (\n\t\t\ttypeof result.status === 'undefined' ||\n\t\t\t(result.status && regExpSuccess.test(result.status)) ||\n\t\t\t(result.status && ignore && ignore.test(result.status))\n\t\t) ? true : false\n }\n\n async login (credentials: ICredentials, args?: any): Promise {\n const { data } = await this.post('login', { ...credentials, ...args })\n this.userId = data.userId\n this.currentLogin = {\n username: data.me.username,\n userId: data.userId,\n authToken: data.authToken,\n result: data\n }\n this.client.headers = {\n 'X-Auth-Token': data.authToken,\n 'X-User-Id': data.userId\n }\n return data\n }\n async logout () {\n if (!this.currentLogin) {\n return null\n }\n const result = await this.post('logout', {}, true)\n this.userId = ''\n this.currentLogin = null\n return result\n }\n/**\n * Structure message content, optionally addressing to room ID.\n * Accepts message text string or a structured message object.\n */\n prepareMessage (\n\tcontent: string | IMessage,\n\trid?: string,\n\targs?: any\n): Message {\n return new Message(content, { rid, roomId: rid, ...args })\n }\n}\n","import { IMessage } from '../interfaces'\n\n// Message class declaration implicitly implements interface\n// https://github.com/Microsoft/TypeScript/issues/340\nexport interface Message extends IMessage {}\n\n/**\n * Rocket.Chat message class.\n * Sets integration param to allow tracing source of automated sends.\n * @param content Accepts message text or a preformed message object\n * @todo Potential for SDK usage that isn't bots, bot prop should be optional?\n */\nexport class Message implements IMessage {\n constructor (content: string | IMessage, { integrationId, ...others }: any) {\n if (typeof content === 'string') {\n Object.assign(this, { msg: content }, others)\n } else {\n Object.assign(this, content, others)\n }\n if (integrationId) {\n this.bot = { i: integrationId }\n }\n }\n}\n","/**\n * @module Socket\n * Provides high-level helpers for DDP connection, method calls, subscriptions.\n */\n\nimport { EventEmitter } from 'tiny-events'\nimport {\n ILogger,\n ISocketOptions,\n ICallback,\n ISubscription,\n ICredentials\n} from '../../interfaces'\n\nexport interface ISocket {\n logger: ILogger\n connect (options: ISocketOptions): Promise\n disconnect (): Promise\n subscribe (topic: string, ...args: any[]): Promise\n unsubscribe (subscription: ISubscription): Promise\n unsubscribeAll (): Promise\n\n onStreamData (event: string, cb: ICallback): Promise\n\n on (event: string, listener: Function): EventEmitter\n once (event: string, listener: Function): EventEmitter\n off (event?: string, listener?: Function): EventEmitter\n emit (event: string, ...args: any[]): boolean\n listeners (event: string): Function[]\n removeAllListeners (event?: string): Function[]\n hasListeners (event: string): boolean\n}\n\nexport interface IDriver {\n config: any\n login (credentials: ICredentials, args: any): Promise\n\n subscribeRoom (rid: string, ...args: any[]): Promise\n\n onMessage (cb: ICallback): void\n\n subscribeNotifyAll (): Promise\n\n subscribeLoggedNotify (): Promise\n\n subscribeNotifyUser (): Promise\n\n subscribeNotifyUser (): Promise\n\n onTyping (cb: ICallback): Promise\n\n notifyVisitorTyping (rid: string, username: string, typing: boolean, token: string, text?: string): Promise\n\n notifyCallDeclined (rid: string): Promise\n\n methodCall (method: string, ...args: any[]): Promise\n}\n\nexport enum Protocols {\n\tMQTT = 'mqtt',\n\tDDP = 'ddp'\n}\n","/**\n * @module DDPDriver\n * Handles low-level websocket ddp connections and event subscriptions\n */\n\nimport WebSocket from 'universal-websocket-client'\nimport { EventEmitter } from 'tiny-events'\n\nimport { logger as Logger } from '../log'\nimport { ISocket, IDriver } from './index'\n\nEventEmitter.prototype.removeAllListeners = function (event?: string | any): any {\n if (event) {\n this._listeners[event] = []\n } else {\n this._listeners = {}\n }\n return [] as any\n}\n\nimport {\n ISocketOptions,\n ISocketMessageHandler,\n ISubscription,\n ICredentials,\n ILoginResult,\n ICredentialsPass,\n isLoginPass,\n ICredentialsOAuth,\n isLoginOAuth,\n ICredentialsAuthenticated,\n isLoginAuthenticated,\n isLoginResult,\n ISocketMessageCallback,\n\tICallback,\n\tILogger\n} from '../../interfaces'\n\nimport { hostToWS } from '../util'\nimport { sha256 } from 'js-sha256'\n\n/** Websocket handler class, manages connections and subscriptions by DDP */\nexport class Socket extends EventEmitter {\n sent = 0\n host: string\n lastPing = Date.now()\n subscriptions: { [id: string]: ISubscription } = {}\n handlers: ISocketMessageHandler[] = []\n config: ISocketOptions | any\n openTimeout?: NodeJS.Timer | number\n reopenInterval?: NodeJS.Timer\n pingTimeout?: NodeJS.Timer | number\n connection?: WebSocket\n session?: string\n logger: ILogger\n\n /** Create a websocket handler */\n constructor (\n options?: ISocketOptions | any,\n public resume: ILoginResult | null = null\n ) {\n super()\n this.logger = options.logger || Logger\n this.config = {\n host: options.host || 'http://localhost:3000',\n useSsl: options.useSsl || false,\n reopen: options.reopen || 10000,\n ping: options.timeout || 30000\n }\n\n this.host = `${hostToWS(this.config.host, this.config.useSsl)}/websocket`\n\n this.on('ping', () => {\n this.send({ msg: 'pong' }).then(this.logger.debug, this.logger.error)\n })\n\n this.on('result', (data: any) => this.emit(data.id, { id: data.id, result: data.result, error: data.error }))\n this.on('ready', (data: any) => this.emit(data.subs[0], data))\n }\n\n /**\n * Open websocket connection, with optional retry interval.\n * Stores connection, setting up handlers for open/close/message events.\n * Resumes login if given token.\n */\n open = (ms: number = this.config.reopen) => {\n return new Promise(async (resolve, reject) => {\n let connection: WebSocket\n this.lastPing = Date.now()\n await this.close()\n if (this.reopenInterval) clearInterval(this.reopenInterval)\n this.reopenInterval = setInterval(() => {\n return !this.alive() && this.reopen()\n }, ms)\n try {\n connection = new WebSocket(this.host)\n connection.onerror = reject\n } catch (err) {\n this.logger.error(err)\n return reject(err)\n }\n this.connection = connection\n this.connection.onmessage = this.onMessage.bind(this)\n this.connection.onclose = this.onClose.bind(this)\n this.connection.onopen = this.onOpen.bind(this, resolve)\n })\n }\n\n /** Send handshake message to confirm connection, start pinging. */\n onOpen = async (callback: Function) => {\n const connected = await this.send({\n msg: 'connect',\n version: '1',\n support: ['1', 'pre2', 'pre1']\n })\n this.session = connected.session\n this.ping().catch((err) => this.logger.error(`[ddp] Unable to ping server: ${err.message}`))\n this.emit('open')\n if (this.resume) await this.login(this.resume)\n return callback(this.connection)\n }\n\n /** Emit close event so it can be used for promise resolve in close() */\n onClose = (e: any) => {\n try {\n this.emit('close', e)\n if (e.code !== 1000) {\n return this.reopen()\n } else {\n if (this.reopenInterval) clearInterval(this.reopenInterval)\n this.openTimeout && clearTimeout(this.openTimeout as any)\n this.pingTimeout && clearTimeout(this.pingTimeout as any)\n delete this.connection\n }\n this.logger.info(`[ddp] Close (${e.code}) ${e.reason}`)\n\n } catch (error) {\n this.logger.error(error)\n }\n }\n\n /**\n * Find and call matching handlers for incoming message data.\n * Handlers match on collection, id and/or msg attribute in that order.\n * Any matched handlers are removed once called.\n * All collection events are emitted with their `msg` as the event name.\n */\n onMessage = (e: any) => {\n this.lastPing = Date.now()\n void this.ping()\n const data = (e.data) ? JSON.parse(e.data) : undefined\n this.logger.debug(data) // 👈 very useful for debugging missing responses\n if (!data) return this.logger.error(`[ddp] JSON parse error: ${e.message}`)\n this.logger.debug(`[ddp] messages received: ${e.data}`)\n if (data.collection) this.emit(data.collection, data)\n if (data.msg) this.emit(data.msg, data)\n }\n\n /** Disconnect the DDP from server and clear all subscriptions. */\n close = async () => {\n if (this.connected) {\n this.unsubscribeAll().catch(e => this.logger.debug(e))\n await new Promise((resolve) => {\n if (this.connection) {\n this.once('close', resolve)\n this.connection.close(1000, 'disconnect')\n return\n }\n })\n .catch(this.logger.error)\n }\n return Promise.resolve()\n }\n\n /** Clear connection and try to connect again. */\n reopen = async () => {\n if (this.openTimeout) return\n await this.close()\n this.openTimeout = setTimeout(async () => {\n delete this.openTimeout\n await this.open()\n .catch((err) => this.logger.error(`[ddp] Reopen error: ${err.message}`))\n }, this.config.reopen)\n }\n\n /** Check if websocket connected and ready. */\n get connected () {\n return !!(\n this.connection &&\n this.connection.readyState === 1 &&\n this.alive()\n )\n }\n\n /** Check if connected and logged in */\n get loggedIn () {\n return (this.connected && !!this.resume)\n }\n\n /**\n * Send an object to the server via Socket. Adds handler to collection to\n * allow awaiting response matching an expected object. Most responses are\n * identified by their message event name and the ID they were sent with, but\n * some responses don't return the ID fallback to just matching on event name.\n * Data often includes an error attribute if something went wrong, but certain\n * types of calls send back a different `msg` value instead, e.g. `nosub`.\n * @param obj Object to be sent\n * @param msg The `data.msg` value to wait for in response\n * @param errorMsg An alternate `data.msg` value indicating an error response\n */\n send = async (obj: any): Promise => {\n return new Promise((resolve, reject) => {\n if (!this.connection) throw new Error('[ddp] sending without open connection')\n const id = obj.id || `ddp-${ this.sent }`\n this.sent += 1\n const data = { ...obj, ...(/connect|ping|pong/.test(obj.msg) ? {} : { id }) }\n const stringdata = JSON.stringify(data)\n this.logger.debug(`[ddp] sending message: ${stringdata}`)\n this.connection.send(stringdata)\n\n this.once('disconnected', reject)\n const listener = (data.msg === 'ping' && 'pong') || (data.msg === 'connect' && 'connected') || data.id\n if (!listener) {\n return resolve()\n }\n this.once(listener, (result: any) => {\n this.off('disconnect', reject)\n return (result.error ? reject(result.error) : resolve({ ...(/connect|ping|pong/.test(obj.msg) ? {} : { id }) , ...result }))\n })\n })\n }\n\n /** Send ping, record time, re-open if nothing comes back, repeat */\n ping = async () => {\n this.pingTimeout && clearTimeout(this.pingTimeout as any)\n this.pingTimeout = setTimeout(() => {\n this.send({ msg: 'ping' })\n .then(() => {\n return this.ping()\n })\n .catch(() => this.reopen())\n }, this.config.ping)\n }\n /** Check if ping-pong to server is within tolerance of 1 missed ping */\n alive = () => {\n if (!this.lastPing) return false\n return (Date.now() - this.lastPing <= this.config.ping * 2)\n }\n\n /**\n * Calls a method on the server and returns a promise resolved\n * with the result of the method.\n * @param method The name of the method to be called\n * @param params An array with the parameters to be sent\n */\n call = async (method: string, ...params: any[]) => {\n const response = await this.send({ msg: 'method', method, params })\n .catch((err) => {\n this.logger.error(`[ddp] Call error: ${err.message}`)\n throw err\n })\n return (response.result) ? response.result : response\n }\n\n /**\n * Login to server and resubscribe to all subs, resolve with user information.\n * @param credentials User credentials (username/password, oauth or token)\n */\n login = async (credentials: any) => {\n const params = this.loginParams(credentials)\n this.resume = (await this.call('login', params) as ILoginResult)\n await this.subscribeAll()\n this.emit('login', this.resume)\n return this.resume\n }\n\n /** Take variety of login credentials object types for accepted params */\n loginParams = (\n credentials:\n ICredentialsPass |\n ICredentialsOAuth |\n ICredentialsAuthenticated |\n ILoginResult |\n ICredentials\n ) => {\n if (\n isLoginPass(credentials) ||\n isLoginOAuth(credentials) ||\n isLoginAuthenticated(credentials)\n ) {\n return credentials\n }\n if (isLoginResult(credentials)) {\n const params: ICredentialsAuthenticated = {\n resume: credentials.token\n }\n return params\n }\n const params: ICredentialsPass = {\n user: { username: credentials.username },\n password: {\n digest: sha256(credentials.password),\n algorithm: 'sha-256'\n }\n }\n return params\n }\n\n /** Logout the current User from the server via Socket. */\n logout = () => {\n this.resume = null\n return this.unsubscribeAll()\n\t\t\t.then(() => this.call('logout'))\n }\n\n /** Register a callback to trigger on message events in subscription */\n onEvent = (id: string, callback: ISocketMessageCallback) => {\n this.on(id, callback)\n }\n\n /**\n * Subscribe to a stream on server via socket and returns a promise resolved\n * with the subscription object when the subscription is ready.\n * @param name Stream name to subscribe to\n * @param params Params sent to the subscription request\n */\n subscribe = (name: string, params: any[], callback ?: ISocketMessageCallback) => {\n this.logger.info(`[ddp] Subscribe to ${name}, param: ${JSON.stringify(params)}`)\n return this.send({ msg: 'sub', name, params })\n .then((result) => {\n const id = (result.subs) ? result.subs[0] : undefined\n const unsubscribe = this.unsubscribe.bind(this, id)\n const onEvent = this.onEvent.bind(this, name)\n const subscription = { id, name, params, unsubscribe, onEvent }\n if (callback) subscription.onEvent(callback)\n this.subscriptions[id] = subscription\n return subscription\n })\n .catch((err) => {\n this.logger.error(`[ddp] Subscribe error: ${err.message}`)\n throw err\n })\n }\n\n /** Subscribe to all pre-configured streams (e.g. on login resume) */\n subscribeAll = () => {\n const subscriptions = Object.keys(this.subscriptions || {}).map((key) => {\n const { name, params } = this.subscriptions[key]\n return this.subscribe(name, params)\n })\n return Promise.all(subscriptions)\n }\n\n /** Unsubscribe to server stream, resolve with unsubscribe request result */\n unsubscribe = (id: any) => {\n if (!this.subscriptions[id]) return Promise.reject(id)\n delete this.subscriptions[id]\n return this.send({ msg: 'unsub', id })\n .then((data: any) => data.result || data.subs)\n .catch((err) => {\n if (!err.msg && err.msg !== 'nosub') {\n this.logger.error(`[ddp] Unsubscribe error: ${err.message}`)\n throw err\n }\n })\n }\n\n /** Unsubscribe from all active subscriptions and reset collection */\n unsubscribeAll = () => {\n const unsubAll = Object.keys(this.subscriptions).map((id) => {\n return this.subscriptions[id].unsubscribe()\n })\n return Promise.all(unsubAll)\n .then(() => this.subscriptions = {})\n }\n}\n\nexport class DDPDriver extends EventEmitter implements ISocket, IDriver {\n logger: ILogger\n config: ISocketOptions\n\t/**\n\t * Event Emitter for listening to connection (echoes selection of DDP events)\n\t * @example\n\t * import { driver } from '@rocket.chat/sdk'\n\t * driver.connect()\n\t * driver.events.on('connected', () => console.log('driver connected'))\n\t */\n\t// events = new EventEmitter()\n\n\t/**\n\t * An Websocket instance for interacting with Rocket.Chat.\n\t * Variable not initialised until `connect` called.\n\t */\n ddp: Socket\n\n\t/**\n\t * Websocket subscriptions, exported for direct polling by adapters\n\t * Variable not initialised until `prepMeteorSubscriptions` called.\n\t * @deprecated Use `ddp.Socket` instance subscriptions instead.\n\t */\n subscriptions: { [id: string]: ISubscription } = {}\n\n\t/** Save messages subscription to ensure only one created */\n messages: ISubscription | undefined\n\n\t/** Current user object populated from resolved login */\n userId: string = ''\n\n\t/** Array of joined room IDs (for reactive queries) */\n joinedIds: string[] = []\n\n constructor ({ host = 'localhost:3000', integrationId, config, logger = Logger, ...moreConfigs }: any = {}) {\n super()\n\n this.config = {\n ...config,\n ...moreConfigs,\n host: host.replace(/(^\\w+:|^)\\/\\//, ''),\n timeout: 20000\n\t\t\t// reopen: number\n\t\t\t// ping: number\n\t\t\t// close: number\n\t\t\t// integration: string\n }\n this.ddp = new Socket({ ...this.config, logger })\n this.logger = logger\n }\n\n\t/**\n\t * Initialise socket instance with given options or defaults.\n\t * Proxies the DDP module socket connection. Resolves with socket when open.\n\t * Accepts callback following error-first-pattern.\n\t * Error returned or promise rejected on timeout.\n\t * @example Using promise\n\t * import { driver } from '@rocket.chat/sdk'\n\t * driver.connect()\n\t * .then(() => console.log('connected'))\n\t * .catch((err) => console.error(err))\n\t */\n connect = (c: any = {}): Promise => {\n if (this.connected) {\n return Promise.resolve(this)\n }\n const config: ISocketOptions = { ...this.config, ...c } // override defaults\n\n return new Promise((resolve, reject) => {\n this.logger.info('[driver] Connecting', config)\n this.subscriptions = this.ddp.subscriptions\n this.ddp.open().catch((err: Error) => {\n this.logger.error(`[driver] Failed to connect: ${err.message}`)\n reject(err)\n })\n\n this.ddp.on('open', () => this.emit('connected')) // echo ddp event\n\n let cancelled = false\n const rejectionTimeout = setTimeout(() => {\n this.logger.info(`[driver] Timeout (${config.timeout})`)\n const err = new Error('Socket connection timeout')\n cancelled = true\n this.ddp.removeAllListeners('connected')\n reject(err)\n }, config.timeout)\n\n\t\t\t// if to avoid condition where timeout happens before listener to 'connected' is added\n\t\t\t// and this listener is not removed (because it was added after the removal)\n if (!cancelled) {\n this.once('connected', () => {\n this.logger.info('[driver] Connected')\n if (cancelled) return this.ddp.close() // cancel if already rejected\n clearTimeout(rejectionTimeout)\n resolve(this as IDriver)\n })\n }\n })\n }\n\n get connected (): boolean {\n return !!this.ddp.connected\n }\n\n disconnect = (): Promise => {\n return this.ddp.close()\n }\n\n subscribe = (topic: string, eventname: string, ...args: any[]): Promise => {\n this.logger.info(`[DDP driver] Subscribing to ${topic} | ${JSON.stringify(args)}`)\n return this.ddp.subscribe(topic, [eventname, { 'useCollection': false, 'args': args }])\n }\n\n subscribeNotifyAll = (): Promise< any> => {\n const topic = 'stream-notify-all'\n return Promise.all([\n 'roles-change',\n 'updateEmojiCustom',\n 'deleteEmojiCustom',\n 'updateAvatar',\n 'public-settings-changed',\n 'permissions-changed'\n ].map(event => this.subscribe(topic, event, false)))\n }\n\n subscribeLoggedNotify = (): Promise => {\n const topic = 'stream-notify-logged'\n return Promise.all([\n 'Users:NameChanged',\n 'Users:Deleted',\n 'updateAvatar',\n 'updateEmojiCustom',\n 'deleteEmojiCustom',\n 'roles-change'\n ].map(event => this.subscribe(topic, event, false)))\n }\n\n subscribeNotifyUser = (): Promise => {\n const topic = 'stream-notify-user'\n return Promise.all([\n 'message',\n 'otr',\n 'webrtc',\n 'notification',\n 'rooms-changed',\n 'subscriptions-changed',\n 'uiInteraction'\n ].map(event => this.subscribe(topic, `${this.userId}/${event}`, false)))\n }\n\n subscribeRoom = (rid: string, ...args: any[]): Promise => {\n const topic = 'stream-notify-room'\n return Promise.all([\n this.subscribe('stream-room-messages', rid, ...args),\n this.subscribe(topic, `${rid}/typing`, ...args),\n this.subscribe(topic, `${rid}/deleteMessage`, ...args)\n ])\n }\n\n\t/** Login to Rocket.Chat via DDP */\n login = async (credentials: ICredentials, args: any): Promise => {\n if (!this.ddp || !this.ddp.connected) {\n await this.connect()\n }\n this.logger.info(`[DDP driver] Login with ${JSON.stringify(credentials)}`)\n const login: ILoginResult = await this.ddp.login(credentials)\n this.userId = login.id\n return login\n }\n logout = async () => {\n if (this.ddp && this.ddp.connected) {\n await this.ddp.logout()\n }\n\n }\n\t/** Unsubscribe from Meteor stream. Proxy for socket unsubscribe. */\n unsubscribe = (subscription: ISubscription) => {\n return this.ddp.unsubscribe(subscription.id)\n }\n\n\t/** Unsubscribe from all subscriptions. Proxy for socket unsubscribeAll */\n unsubscribeAll = (): Promise => {\n return this.ddp.unsubscribeAll()\n }\n\n onStreamData = (event: string, cb: ICallback): Promise => {\n function listener (message: any) {\n cb((message))\n }\n return Promise.resolve(this.ddp.on(event, listener))\n .then(() => ({\n stop: () => this.ddp.off(event, listener)\n }))\n }\n\n onMessage = (cb: ICallback): void => {\n this.ddp.on('stream-room-messages', ({ fields: { args: [message] } }: any) => cb(this.ejsonMessage(message)))\n }\n\n onTyping = (cb: ICallback): Promise => {\n return this.ddp.on('stream-notify-room', ({ fields: { args: [username, isTyping] } }: any) => {\n cb(username, isTyping)\n }) as any\n }\n\n notifyVisitorTyping = (rid: string, username: string, typing: boolean, token: string, text?: string) => {\n return this.ddp.call('stream-notify-room', `${ rid }/typing`, username, typing, { token, text })\n }\n\n notifyCallDeclined = (rid: string) => {\n return this.ddp.call('stream-notify-room', `${ rid }/webrtc`, 'callStatus', { callStatus: 'declined' })\n }\n\n ejsonMessage = (message: any) => {\n if (message.ts) {\n message.ts = new Date(message.ts.$date)\n }\n return message\n }\n\n methodCall = (method: string, ...args: any[]): Promise => {\n return this.ddp.call(method, ...args)\n }\n}\n","'use strict';\n\nmodule.exports = WebSocket;\n","/** Loggers need to provide the same set of methods */\nexport interface ILogger {\n debug: (...args: any[]) => void\n info: (...args: any[]) => void\n warning: (...args: any[]) => void\n warn: (...args: any[]) => void\n error: (...args: any[]) => void\n}\n\n/**\n * Connection options type\n * @param host Host URL:PORT, converted to websocket protocol\n * @param useSsl Use SSL (https/wss) to connect\n * @param timeout How long to wait (ms) before abandoning connection\n * @param reopen ms interval before attempting reopens on disconnect\n * @param ping ms interval between each ping\n * @param close ms interval to wait for socket close to succeed\n * @param integration Name added to message `bot` attribute to identify SDK use\n */\nexport interface ISocketOptions {\n host?: string\n useSsl?: boolean\n timeout?: number\n reopen?: number\n ping?: number\n close?: number\n integration?: string\n}\n\n/**\n * DDP Message Handler defines attributes to match on incoming messages and\n * fire a callback. There may be multiple handlers for any given message.\n * @param callback Function to call when matching message received\n * @param persist Optionally (true) to continue using handler after matching\n * @param msg The `data.msg` value to match in message\n * @param id The `data.id` value to match in message\n * @param collection The `data.collection` value to match in message\n */\nexport interface ISocketMessageHandler {\n callback: ISocketMessageCallback\n persist?: boolean\n msg?: string\n id?: string\n collection?: string\n}\n\n/** Function interface for DDP message handler callback */\nexport interface ISocketMessageCallback {\n (data: any): void\n}\n\n/**\n * Message respond options\n * @param rooms Respond to only selected room/s (names or IDs)\n * @param allPublic Respond on all public channels (ignores rooms if true)\n * @param dm Respond to messages in DM / private chats\n * @param livechat Respond to messages in livechat\n * @param edited Respond to edited messages\n */\nexport interface IRespondOptions {\n rooms?: string[]\n allPublic?: boolean\n dm?: boolean\n livechat?: boolean\n edited?: boolean\n}\n\n/** User credentials generic interface */\nexport interface ICredentials {\n password: string\n username: string\n email?: string\n ldap?: boolean\n ldapOptions?: object\n}\n\n/** User credentials for password login method */\nexport interface ICredentialsPass {\n user: { username: string }\n password: { digest: string, algorithm: string }\n}\n\n/** Password login credential type guard */\nexport function isLoginPass (params: any): params is ICredentialsPass {\n return (\n params.user &&\n params.password &&\n params.user.username !== undefined &&\n params.password.digest !== undefined\n )\n}\n\n/** User credentials for oath login method */\nexport interface ICredentialsOAuth {\n oauth: { credentialToken: string, credentialSecret: string }\n}\n\n/** Password login credential type guard */\nexport function isLoginOAuth (params: any): params is ICredentialsOAuth {\n return (\n params.oath &&\n params.credentialToken !== undefined &&\n params.credentialSecret !== undefined\n )\n}\n\n/** User credentials for authenticated login method */\nexport interface ICredentialsAuthenticated {\n resume: string\n}\n\n/** Password login credential type guard */\nexport function isLoginAuthenticated (params: any): params is ICredentialsAuthenticated {\n return (params.resume !== undefined)\n}\n\n/**\n * Common args for POST, GET, PUT, DELETE requests\n * @param endpoint The API endpoint (including version) e.g. `chat.update`\n * @param data Payload for POST request to endpoint\n * @param auth Require auth headers for endpoint, default true\n * @param ignore Allows certain matching error messages to not count as errors\n */\nexport interface IAPIRequest {\n (\n endpoint: string,\n data?: any,\n auth?: boolean,\n ignore?: RegExp,\n options?: any\n ): Promise\n}\n\n/**\n * Response from login method (called by websocket)\n * @todo make test to inspect websocket login result interface\n */\nexport interface ILoginResult {\n id: string, // userId\n token: string,\n createCipher: { '$date': number }\n}\n\n/** Password login credential type guard */\nexport function isLoginResult (params: any): params is ILoginResult {\n return (params.token !== undefined)\n}\n\n/** Credentials for logging into API */\nexport interface ICredentialsAPI {\n username: string\n password: string\n}\n\n/**\n * Result object from an API login\n * @param status e.g. 'success'\n * @param data Logged in user data\n * @param data.authToken Login renewal token\n * @param userId ID of logged-in user\n */\nexport interface ILoginResultAPI {\n status: string // e.g. 'success'\n data: {\n authToken: string\n userId: string\n }\n}\n\n/** Error-first callback param type */\nexport interface ICallback {\n (error: Error | null, ...args: any[]): void\n}\n\n/** Error-first callback for message stream events */\nexport interface IMessageCallback {\n (error: Error | null, message?: IMessage, meta?: IMessageMeta): void\n}\n\n/**\n * Websocket stream subscription\n * @param id Subscription ID\n * @param name Stream/collection name\n * @param unsubscribe Method for unsubscribing\n */\nexport interface ISubscription {\n id?: string\n name?: any\n unsubscribe: () => Promise\n onEvent: (callback: ISocketMessageCallback) => void\n [key: string]: any\n}\n\n/**\n * Subscription events (changes) in message stream\n * @param msg The event type (usually 'change')\n * @param collection Streamed collection name, e.g. 'stream-room-messages'\n * @param id Collection ID (some streams don't include other than 'id')\n * @param fields Emitted event arguments\n * @param fields.eventName The room or sub-collection name for this event\n * @param fields.args Event rgs, for message events it will be message and meta\n */\nexport interface ISubscriptionEvent {\n msg: string\n collection: 'stream-room-messages'\n id: 'id'\n fields: {\n eventName: '__my_messages__'\n args: [ IMessage, IMessageMeta ]\n }\n}\n\n/**\n * API result for channel.history request\n * @todo Incomplete\n */\nexport interface IHistoryAPI {\n messages: IMessageReceipt[]\n}\n\n/**\n * Message schema\n * @param rid Room ID\n * @param _id Mongo collection ID generated by Random.id()\n * @param t Room type e.g. \"c\" for channel\n * @param msg Text content\n * @param alias ?\n * @param emoji Emoji to use as avatar\n * @param avatar URL of avatar image\n * @param groupable Group with consecutive messages\n * @param bot Integration details\n * @param urls ?\n * @param mentions ?\n * @param u User who sent the message\n * @param ts Message created timestamp\n * @param editedBy User who edited the message\n * @param editedAt When the message was edited\n * @todo contribute these to @types/rocketchat and require\n */\nexport interface IMessage {\n rid?: string\n _id?: string\n t?: string\n msg?: string\n alias?: string\n emoji?: string\n avatar?: string\n groupable?: boolean\n bot?: any\n urls?: string[]\n mentions?: string[]\n attachments?: IMessageAttachment[]\n reactions?: IMessageReaction\n location ?: IMessageLocation\n u?: IUser\n ts?: { '$date': Date }\n editedBy?: IUser\n editedAt?: { '$date': Date }\n}\n\n/**\n * Extra details emitted about message in stream events.\n * @param roomParticipant If the logged in user was joined to the room\n * @param roomType Type of room (public, private, DM, livechat)\n * @param roomName The room name if public or named private group\n */\nexport interface IMessageMeta {\n roomParticipant: boolean\n roomType: RoomType\n roomName?: 'general'\n}\n\n/**\n * Message receipt returned after send (not the same as sent object).\n * @todo Confirm why/if this is actually different to IMessage, e.g. msg vs text\n * @param _id ID of sent message\n * @param rid Room ID of sent message\n * @param alias ?\n * @param msg Content of message\n * @param parseUrls URL parsing enabled on message hooks\n * @param groupable Grouping message enabled\n * @param ts Timestamp of message creation\n * @param _updatedAt Time message last updated\n * @param editedAt Time updated by edit\n */\nexport interface IMessageReceipt {\n _id: string\n rid: string\n alias: string\n msg: string\n parseUrls: boolean\n groupable: boolean\n ts: string\n _updatedAt: string\n editedAt?: string\n u: IUser\n editedBy?: IUser\n attachments?: IAttachmentAPI[]\n reactions?: IMessageReaction\n}\n\n/**\n * Payload structure for `chat.postMessage` endpoint\n * @param roomId The room id of where the message is to be sent\n * @param channel The channel name with the prefix in front of it\n * @param text The text of the message to send is optional because of attachments\n * @param alias This will cause the messenger name to appear as the given alias but username will still display\n * @param emoji If provided this will make the avatar on this message be an emoji\n * @param avatar If provided this will make the avatar use the provided image url\n */\nexport interface IMessageAPI {\n roomId: string\n channel?: string\n text?: string\n alias?: string\n emoji?: string\n avatar?: string\n attachments?: IAttachmentAPI[]\n}\n\n/**\n * Payload structure for `chat.update` endpoint\n * @param roomId The room id of where the message is\n * @param msgId The message id to update\n * @param text Updated text for the message\n */\nexport interface IMessageUpdateAPI {\n roomId: string\n msgId: string\n text: string\n}\n\n/** Message Attachment schema */\nexport interface IMessageAttachment {\n fields?: IAttachmentField[]\n actions?: IMessageAction[]\n color?: string\n text?: string\n ts?: string\n thumb_url?: string\n message_link?: string\n collapsed?: boolean\n author_name?: string\n author_link?: string\n author_icon?: string\n title?: string\n title_link?: string\n title_link_download?: string\n image_url?: string\n audio_url?: string\n video_url?: string\n}\n\n/** Attachment field schema */\nexport interface IAttachmentField {\n short?: boolean\n title?: string\n value?: string\n}\n\n/** Message emoji reaction attribute schema (emoji: [usernames that reacted]) */\nexport interface IMessageReaction {\n [emoji: string]: { usernames: string[] }\n}\n\n/** Rich message action schema */\nexport interface IMessageAction {\n type?: string\n text?: string\n url?: string\n image_url?: string\n is_webview?: boolean\n webview_height_ratio?: 'compact' | 'tall' | 'full'\n msg?: string\n msg_in_chat_window?: boolean\n button_alignment?: 'vertical' | 'horizontal'\n temporary_buttons?: boolean\n}\n\n/** Geo-location attribute schema */\nexport interface IMessageLocation {\n type: string // e.g. Point\n coordinates: string[] // longitude latitude\n}\n\n/**\n * Payload structure for message attachments\n * @param color The color you want the order on the left side to be any value background-css supports\n * @param text The text to display for this attachment it is different than the message text\n * @param ts ISO timestamp displays the time next to the text portion\n * @param thumb_url An image that displays to the left of the text looks better when this is relatively small\n * @param message_link Only applicable if the ts is provided as it makes the time clickable to this link\n * @param collapsed Causes the image audio and video sections to be hiding when collapsed is true\n * @param author_name Name of the author\n * @param author_link Providing this makes the author name clickable and points to this link\n * @param author_icon Displays a tiny icon to the left of the author's name\n * @param title Title to display for this attachment displays under the author\n * @param title_link Providing this makes the title clickable pointing to this link\n * @param title_link_download_true When this is true a download icon appears and clicking this saves the link to file\n * @param image_url The image to display will be “big” and easy to see\n * @param audio_url Audio file to play only supports what html audio does\n * @param video_url Video file to play only supports what html video does\n */\nexport interface IAttachmentAPI {\n color?: string\n text?: string\n ts?: string\n thumb_url?: string\n message_link?: string\n collapsed?: boolean\n author_name?: string\n author_link?: string\n author_icon?: string\n title?: string\n title_link?: string\n title_link_download_true?: string\n image_url?: string\n audio_url?: string\n video_url?: string\n fields?: IAttachmentFieldAPI[]\n actions?: IMessageAction[]\n}\n\n/**\n * Payload structure for attachment field object\n * The field property of the attachments allows for “tables” or “columns” to be displayed on messages\n * @param short Whether this field should be a short field\n * @param title The title of this field\n * @param value The value of this field displayed underneath the title value\n */\nexport interface IAttachmentFieldAPI {\n short?: boolean\n title: string\n value: string\n}\n\n/**\n * Result structure for message endpoints\n * @param ts Seconds since unix epoch\n * @param channel Name of channel without prefix\n * @param message Sent message\n * @param success Send status\n */\nexport interface IMessageResultAPI {\n ts: number\n channel: string\n message: IMessageReceipt\n success: boolean\n}\n\n/**\n * User (as attribute) schema\n * @param _id Mongo collection ID generated by Random.id()\n * @param username Username\n * @param name Display name\n */\nexport interface IUser {\n _id: string\n username: string\n name?: string\n}\n\n/**\n * User object structure for creation endpoints\n * @param email Email address\n * @param name Full name\n * @param password User pass\n * @param username Username\n * @param active Subscription is active\n * @param roles Role IDs\n * @param joinDefaultChannels Auto join channels marked as default\n * @param requirePasswordChange Direct to password form on next login\n * @param sendWelcomeEmail Send new credentials in email\n * @param verified Email address verification status\n */\nexport interface INewUserAPI {\n email?: string\n name?: string\n password: string\n username: string\n active?: true\n roles?: string[]\n joinDefaultChannels?: boolean\n requirePasswordChange?: boolean\n sendWelcomeEmail?: boolean\n verified?: true\n}\n\n/**\n * User object structure for queries (not including admin access level)\n * @param _id MongoDB user doc ID\n * @param type user / bot ?\n * @param status online | offline\n * @param active Subscription is active\n * @param name Full name\n * @param utcOffset Hours off UTC/GMT\n * @param username Username\n */\nexport interface IUserAPI {\n _id: string\n type: string\n status: string\n active: boolean\n name: string\n utcOffset: number\n username: string\n}\n\n/**\n * Result structure for user data request (by non-admin)\n * @param user The requested user\n * @param success Status of request\n */\nexport interface IUserResultAPI {\n user: IUserAPI\n success: boolean\n}\n\n/** Room type literal (channel private direct livechat) */\nexport type RoomType = 'c' | 'p' | 'd' | 'l'\n\n/**\n * Room object structure from API\n * @param _id Room ID\n * @param _updatedAt ISO timestamp\n * @param ts ISO timestamp (current time in room?)\n * @param msgs Count of messages in room\n */\nexport interface IRoomAPI {\n t: RoomType\n _id: string\n _updatedAt: string\n ts: string\n msgs: number\n meta: IRoomMetaAPI\n}\n\n/** Room result meta from API */\nexport interface IRoomMetaAPI {\n revision: number\n created: number\n version: number\n}\n\n/**\n * Channel result schema\n * @param _id Channel ID\n * @param name Channel name\n * @param default Is default channel\n * @param ts ISO timestamp (current time in room?)\n * @param msgs Count of messages in room\n */\nexport interface IChannelAPI {\n t: RoomType\n _id: string\n name: string\n default: boolean\n ts: string\n msgs: number\n u: IUser\n}\n\n/**\n * Group (private room) result schema\n * @param _id Group ID\n * @param name Group name\n * @param default Is default channel (would be false)\n * @param usernames Users in group\n * @param msgs Count of messages in room\n * @param ts ISO timestamp (current time in room?)\n */\nexport interface IGroupAPI {\n t: RoomType\n _id: string\n name: string\n default: boolean\n usernames: string[]\n msgs: number\n ts: string\n u: IUser\n}\n\n/** Result structure for room creation (e.g. DM) */\nexport interface IRoomResultAPI {\n room: IRoomAPI\n success: boolean\n}\n\n/** Result structure for channel creation */\nexport interface IChannelResultAPI {\n channel: IChannelAPI\n success: boolean\n}\n\n/** Result structure for group creation */\nexport interface IGroupResultAPI {\n group: IGroupAPI\n success: boolean\n}\n\n/** Structure for livechat token field api */\nexport interface ILivechatTokenAPI {\n token: string\n}\n\n/** Structure for livechat room credential api */\nexport interface ILivechatRoomCredentialAPI {\n token: string\n}\n/** Structure for livechat room credential api */\nexport interface ILivechatRoom {\n rid: string\n department?: string\n}\n\n/** Structure to get(new) livechat room */\nexport interface INewLivechatRoomCredentialAPI {\n rid?: string\n agentId?: string\n}\n\n/** Structure for livechat room messages api */\nexport interface ILivechatRoomMessagesAPI {\n token: string // Visitor token\n ts?: string // ISO timestamp\n end?: string // ISO timestamp\n limit?: number // number of messages to load\n}\n\n/** Payload structure for livechat `room.transfer` endpoint */\nexport interface ILivechatRoomTransferAPI {\n token: string\n department: string\n}\n\n/** Payload structure for livechat survey values */\nexport interface ILivechatSurveyAPI {\n name: 'satisfaction' | 'agentKnowledge' | 'agentResponsiveness' | 'agentFriendliness'\n value: '1' | '2' | '3' | '4' | '5'\n}\n\n/** Payload structure for livechat `room.transfer` endpoint */\nexport interface ILivechatRoomSurveyAPI {\n rid: string\n data?: ILivechatSurveyAPI[] // See surcvey interface above\n}\n\n/** Livechat New Room object structure */\nexport interface ILivechatNewRoomAPI {\n _id: string // Room ID\n _updatedAt: string // ISO timestamp\n t: 'r' // Room type (channel, private, direct, livechat)\n msgs: number // Count of messages in room\n ts: string // ISO timestamp (current time in room?)\n lm?: string // ISO timestamp (last message)\n open?: boolean // Room status\n departmentId?: string // Livechat Department _id\n fname: string // Room display name\n v: {\n\t _id: number // Visitor ID\n\t token: string // Visitor token\n\t username: number // Visitor username\n }\n}\n\n/** Result structure for room creation (e.g. DM) */\nexport interface ILivechatNewRoomResultAPI {\n room: ILivechatNewRoomAPI\n newRoom: boolean\n success: boolean\n}\n\n/** Custom Field object structure for livechat endpoints */\nexport interface ILivechatGuestCustomFieldAPI {\n key: string\n value: string\n overwrite: boolean\n}\n\n/** Payload structure for new Livechat Visitors */\nexport interface ILivechatGuestAPI {\n token: string\n name?: string\n email?: string\n department?: string\n phone?: string\n username?: string\n customFields?: ILivechatGuestCustomFieldAPI[]\n}\n\n/** Visitor object structure for livechat endpoints */\nexport interface INewLivechatGuestAPI {\n visitor: ILivechatGuestAPI\n}\n\n/** Payload structure for new Livechat Message */\nexport interface INewLivechatMessageAPI {\n _id?: string // Message ID\n msg: string // Message text\n token: string // Livechat Token\n rid: string // Room ID\n agent?: {\n agentId: string\n username: string\n }\n}\n\n/** Result structure for visitor emails */\nexport interface ILivechatEmailAPI {\n address: string,\n verified?: boolean\n}\n\n/** Result structure for visitor phones */\nexport interface ILivechatVisitorPhoneAPI {\n phoneNumber: string\n}\n\n/** Result structure for visitor prop */\nexport interface ILivechatVisitorAPI {\n token: string\n _updatedAt: string\n name?: string\n phone?: ILivechatVisitorPhoneAPI[]\n username: string\n visitorEmails?: ILivechatEmailAPI[]\n livechatData?: object\n}\n\n/** Result structure for visitor creation */\nexport interface ILivechatVisitorResultAPI {\n visitor: ILivechatVisitorAPI\n success: boolean\n}\n\n/** Result structure for config survey */\nexport interface ILivechatConfigSurveyAPI {\n items: ['satisfaction', 'agentKnowledge', 'agentResponsiveness', 'agentFriendliness']\n values: ['1', '2', '3', '4', '5']\n}\n\n/** Result structure for config prop */\nexport interface ILivechatConfigAPI {\n enabled: boolean\n online?: boolean\n settings?: object\n theme?: object\n messages?: object\n survey?: ILivechatConfigSurveyAPI,\n guest?: ILivechatGuestAPI\n}\n\n/** Result structure for Livechat config */\nexport interface ILivechatConfigResultAPI {\n config: ILivechatConfigAPI\n success: boolean\n}\n\n/** Livechat Room object structure */\nexport interface ILivechatRoomAPI {\n _id: string // Room ID\n open?: boolean // Room status\n departmentId?: string // Livechat Department _id\n servedBy: {\n\t _id: number // Agent ID\n username: number // Agent username\n }\n}\n\n/** Result structure for room */\nexport interface ILivechatRoomResultAPI {\n room: ILivechatRoomAPI\n success: boolean\n}\n\n/** Livechat Agent object structure */\nexport interface ILivechatAgentAPI {\n _id: string // Agent ID\n name: string // Agent name\n username: string // Agent username\n emails: ILivechatEmailAPI[]\n}\n\n/** Result structure for agent */\nexport interface ILivechatAgentResultAPI {\n agent: ILivechatAgentAPI\n success: boolean\n}\n\n/** Livechat Message object structure */\nexport interface ILivechatMessageAPI {\n msg: string\n u: {\n _id: string\n username: string\n name: string\n }\n ts: string\n}\n\n/** Result structure for Livechat Message */\nexport interface ILivechatMessageResultAPI {\n message: ILivechatMessageAPI\n success: boolean\n}\n\n/** Payload structure for new Livechat Offline Message */\nexport interface INewLivechatOfflineMessageAPI {\n name: string // Message Name\n email: string // Message email\n message: string // Message text\n}\n\n/** Result structure for Livechat Offline Message */\nexport interface ILivechatOfflineMessageResultAPI {\n message: string\n success: boolean\n}\n\n/** Navigation object structure for livechat endpoints */\nexport interface ILivechatNavigation {\n change: string // Action (Url or Page Title)\n title: string // Page Title\n location: {\n href: string\n }\n token?: string\n}\n\n/** Payload structure for new Livechat Visitor Navigation */\nexport interface INewLivechatNavigationAPI {\n token: string // Livechat Token\n rid: string // Room ID\n pageInfo: ILivechatNavigation\n}\n\n/** Result structure for Livechat Navigation */\nexport interface ILivechatNavigationResultAPI {\n page?: {\n msg: string\n navigation: ILivechatNavigation\n }\n success: boolean\n}\n\n/** Result structure for Livechat Transcript */\nexport interface ILivechatTranscriptResultAPI {\n message: string\n success: boolean\n}\n\n/** Livechat VideoCall object structure */\nexport interface ILivechatVideoCallAPI {\n rid: string // Room ID\n domain: string // Video Call provider domain\n provider: string // Video Call provider name\n room: string // Video Call room\n}\n\n/** Result structure for Livechat VideoCall */\nexport interface ILivechatVideoCallResultAPI {\n videoCall: ILivechatVideoCallAPI\n success: boolean\n}\n\n/** Payload structure for new Livechat CustomField */\nexport interface ILivechatCustomFieldAPI {\n key: string\n value: string\n overwrite: boolean\n}\n\n/** Livechat CustomField object structure */\nexport interface INewLivechatCustomFieldAPI {\n key: string // CustomField key\n value: string // CustomField value\n overwrite: boolean // Overwrite CustomField value if exists\n}\n\n/** Result structure for Livechat CustomField */\nexport interface ILivechatCustomFieldResultAPI {\n field: ILivechatCustomFieldAPI\n success: boolean\n}\n\n/** Structure for Livechat CustomFields api */\nexport interface INewLivechatCustomFieldsAPI {\n token: string // Visitor token\n customFields: ILivechatCustomFieldAPI[]\n}\n\n/** Result structure for Livechat CustomFields */\nexport interface ILivechatCustomFieldsResultAPI {\n fields: ILivechatCustomFieldAPI[]\n success: boolean\n}\n\n/** Structure for Livechat Upload api */\nexport interface ILivechatUploadAPI {\n rid: string\n file: File\n}\n\n/** Structure for Livechat sns logger api*/\nexport interface ILivechatSNSLoggerAPI {\n \"roomId\": string\n \"category\": string\n \"action\": string\n \"properties\": Object\n \"eventType\": string\n \"timestamp\": string\n \"tabId\": string\n}","/** A function that emits a side effect and does not return anything. */\nexport type Procedure = (...args: any[]) => void\n\n/** Delay invocation of a function until some time after it was last called */\nexport function debounce (\n func: F,\n waitMilliseconds = 100,\n immediate = false\n): F {\n let timeout: NodeJS.Timer | undefined\n return function (this: any, ...args: any[]) {\n const self = this\n const doLater = function () {\n timeout = undefined\n if (!immediate) func.apply(self, args)\n }\n const callNow = immediate && timeout === undefined\n if (timeout) clearTimeout(timeout)\n timeout = setTimeout(doLater, waitMilliseconds)\n if (callNow) func.apply(self, args)\n } as any\n}\n\n/** Convert a http/s protocol address to a websocket URL */\nexport function hostToWS (host: string, ssl = false) {\n host = host.replace(/^(https?:\\/\\/)?/, '')\n return `ws${ssl ? 's' : ''}://${host}`\n}\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nconst mimicFn = require('mimic-fn');\nconst mapAgeCleaner = require('map-age-cleaner');\n\nconst cacheStore = new WeakMap();\n\nconst mem = (fn, options = {}) => {\n\t// Automatically use WeakMap unless the user provided their own cache\n\tconst weakCache = options.cache || new WeakMap();\n\tconst {\n\t\tcacheKey = ([firstArgument]) => firstArgument,\n\t\tcache = new Map(),\n\t\tmaxAge\n\t} = options;\n\n\tif (typeof maxAge === 'number') {\n\t\tmapAgeCleaner(cache);\n\t}\n\n\tconst memoized = function (...arguments_) {\n\t\tconst key = cacheKey(arguments_);\n\n\t\t// Prefer WeakMap if the key allows it\n\t\tconst bestCache = key && (typeof key === 'object' || typeof key === 'function') ?\n\t\t\tweakCache :\n\t\t\tcache;\n\n\t\tif (bestCache.has(key)) {\n\t\t\treturn bestCache.get(key).data;\n\t\t}\n\n\t\tconst cacheItem = fn.apply(this, arguments_);\n\n\t\tbestCache.set(key, {\n\t\t\tdata: cacheItem,\n\t\t\tmaxAge: maxAge ? Date.now() + maxAge : Infinity\n\t\t});\n\n\t\treturn cacheItem;\n\t};\n\n\ttry {\n\t\t// The below call will throw in some host environments\n\t\t// See https://github.com/sindresorhus/mimic-fn/issues/10\n\t\tmimicFn(memoized, fn);\n\t} catch (_) {}\n\n\tcacheStore.set(memoized, cache);\n\n\treturn memoized;\n};\n\nmodule.exports = mem;\n\nmodule.exports.clear = fn => {\n\tif (!cacheStore.has(fn)) {\n\t\tthrow new Error('Can\\'t clear a function that was not memoized!');\n\t}\n\n\tconst cache = cacheStore.get(fn);\n\tif (typeof cache.clear === 'function') {\n\t\tcache.clear();\n\t}\n};\n","'use strict';\n\nconst copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable &&\n\t\ttoDescriptor.enumerable === fromDescriptor.enumerable &&\n\t\ttoDescriptor.configurable === fromDescriptor.configurable &&\n\t\t(toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tObject.defineProperty(to, 'toString', {...toStringDescriptor, value: newToString});\n};\n\nconst mimicFn = (to, from, {ignoreNonConfigurable = false} = {}) => {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n};\n\nmodule.exports = mimicFn;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst p_defer_1 = __importDefault(require(\"p-defer\"));\nfunction mapAgeCleaner(map, property = 'maxAge') {\n let processingKey;\n let processingTimer;\n let processingDeferred;\n const cleanup = () => __awaiter(this, void 0, void 0, function* () {\n if (processingKey !== undefined) {\n // If we are already processing an item, we can safely exit\n return;\n }\n const setupTimer = (item) => __awaiter(this, void 0, void 0, function* () {\n processingDeferred = p_defer_1.default();\n const delay = item[1][property] - Date.now();\n if (delay <= 0) {\n // Remove the item immediately if the delay is equal to or below 0\n map.delete(item[0]);\n processingDeferred.resolve();\n return;\n }\n // Keep track of the current processed key\n processingKey = item[0];\n processingTimer = setTimeout(() => {\n // Remove the item when the timeout fires\n map.delete(item[0]);\n if (processingDeferred) {\n processingDeferred.resolve();\n }\n }, delay);\n // tslint:disable-next-line:strict-type-predicates\n if (typeof processingTimer.unref === 'function') {\n // Don't hold up the process from exiting\n processingTimer.unref();\n }\n return processingDeferred.promise;\n });\n try {\n for (const entry of map) {\n yield setupTimer(entry);\n }\n }\n catch (_a) {\n // Do nothing if an error occurs, this means the timer was cleaned up and we should stop processing\n }\n processingKey = undefined;\n });\n const reset = () => {\n processingKey = undefined;\n if (processingTimer !== undefined) {\n clearTimeout(processingTimer);\n processingTimer = undefined;\n }\n if (processingDeferred !== undefined) { // tslint:disable-line:early-exit\n processingDeferred.reject(undefined);\n processingDeferred = undefined;\n }\n };\n const originalSet = map.set.bind(map);\n map.set = (key, value) => {\n if (map.has(key)) {\n // If the key already exist, remove it so we can add it back at the end of the map.\n map.delete(key);\n }\n // Call the original `map.set`\n const result = originalSet(key, value);\n // If we are already processing a key and the key added is the current processed key, stop processing it\n if (processingKey && processingKey === key) {\n reset();\n }\n // Always run the cleanup method in case it wasn't started yet\n cleanup(); // tslint:disable-line:no-floating-promises\n return result;\n };\n cleanup(); // tslint:disable-line:no-floating-promises\n return map;\n}\nexports.default = mapAgeCleaner;\n// Add support for CJS\nmodule.exports = mapAgeCleaner;\nmodule.exports.default = mapAgeCleaner;\n","'use strict';\nmodule.exports = () => {\n\tconst ret = {};\n\n\tret.promise = new Promise((resolve, reject) => {\n\t\tret.resolve = resolve;\n\t\tret.reject = reject;\n\t});\n\n\treturn ret;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Afrikaans locale.\n * @language Afrikaans\n * @iso-639-2 afr\n * @author Marnus Weststrate [@marnusw]{@link https://github.com/marnusw}\n */\nvar locale = {\n code: 'af',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Arabic locale (Modern Standard Arabic ).\n * @language Modern Standard Arabic (Algeria) [ar-dz]\n * @iso-639-2 ara\n * @author Badreddine Boumaza [@badre429]{@link https://github.com/badre429}\n * @author Ahmed ElShahat [@elshahat]{@link https://github.com/elshahat}\n */\nvar locale = {\n code: 'ar-DZ',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Arabic locale (Moroccan Arabic).\n * @language Moroccan Arabic\n * @iso-639-2 ara\n * @author Achraf Rrami [@rramiachraf]{@link https://github.com/rramiachraf}\n */\nvar locale = {\n code: 'ar-MA',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n // Monday is 1\n weekStartsOn: 1,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Arabic locale (Sauid Arabic).\n * @language Arabic\n * @iso-639-2 ara\n * @author Dhaifallah Alwadani [@dalwadani]{@link https://github.com/dalwadani}\n */\nvar locale = {\n code: 'ar-SA',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Azerbaijani locale.\n * @language Azerbaijani\n * @iso-639-2 aze\n */\nvar locale = {\n code: 'az',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeek;\n\nvar _index = _interopRequireDefault(require(\"../toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeek(dirtyDate, dirtyOptions) {\n (0, _index3.default)(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : (0, _index.default)(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : (0, _index.default)(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = (0, _index2.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInteger;\n\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n (0, _index.default)(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Belarusian locale.\n * @language Belarusian\n * @iso-639-2 bel\n * @author Kiryl Anokhin [@alyrik]{@link https://github.com/alyrik}\n * @author Martin Wind [@arvigeus]{@link https://github.com/mawi12345}\n */\nvar locale = {\n code: 'be',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Bulgarian locale.\n * @language Bulgarian\n * @iso-639-2 bul\n * @author Nikolay Stoynov [@arvigeus]{@link https://github.com/arvigeus}\n * @author Tsvetan Ovedenski [@fintara]{@link https://github.com/fintara}\n */\nvar locale = {\n code: 'bg',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Bengali locale.\n * @language Bengali\n * @iso-639-2 ben\n * @author Touhidur Rahman [@touhidrahman]{@link https://github.com/touhidrahman}\n * @author Farhad Yasir [@nutboltu]{@link https://github.com/nutboltu}\n */\nvar locale = {\n code: 'bn',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Catalan locale.\n * @language Catalan\n * @iso-639-2 cat\n * @author Guillermo Grau [@guigrpa]{@link https://github.com/guigrpa}\n * @author Alex Vizcaino [@avizcaino]{@link https://github.com/avizcaino}\n */\nvar locale = {\n code: 'ca',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale; // throw new Error('ca locale is currently unavailable. Please check the progress of converting this locale to v2.0.0 in this issue on Github: TBA')\n\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Czech locale.\n * @language Czech\n * @iso-639-2 ces\n * @author David Rus [@davidrus]{@link https://github.com/davidrus}\n * @author Pavel Hrách [@SilenY]{@link https://github.com/SilenY}\n * @author Jozef Bíroš [@JozefBiros]{@link https://github.com/JozefBiros}\n */\nvar locale = {\n code: 'cs',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Welsh locale.\n * @language Welsh\n * @iso-639-2 cym\n * @author Elwyn Malethan [@elmomalmo]{@link https://github.com/elmomalmo}\n */\nvar locale = {\n code: 'cy',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Danish locale.\n * @language Danish\n * @iso-639-2 dan\n * @author Mathias Wøbbe [@MathiasKandelborg]{@link https://github.com/MathiasKandelborg}\n * @author Anders B. Hansen [@Andersbiha]{@link https://github.com/Andersbiha}\n * @author [@kgram]{@link https://github.com/kgram}\n * @author [@stefanbugge]{@link https://github.com/stefanbugge}\n */\nvar locale = {\n code: 'da',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Greek locale.\n * @language Greek\n * @iso-639-2 ell\n * @author Fanis Katsimpas [@fanixk]{@link https://github.com/fanixk}\n * @author Theodoros Orfanidis [@teoulas]{@link https://github.com/teoulas}\n */\nvar locale = {\n code: 'el',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../en-US/_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../en-US/_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../en-US/_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../en-US/_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (Australia).\n * @language English\n * @iso-639-2 eng\n * @author Julien Malige [@JulienMalige]{@link https://github.com/JulienMalige}\n */\nvar locale = {\n code: 'en-AU',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../en-US/_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../en-US/_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../en-US/_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (Canada).\n * @language English\n * @iso-639-2 eng\n * @author Mark Owsiak [@markowsiak]{@link https://github.com/markowsiak}\n * @author Marco Imperatore [@mimperatore]{@link https://github.com/mimperatore}\n */\nvar locale = {\n code: 'en-CA',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../en-US/_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../en-US/_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../en-US/_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../en-US/_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\nvar locale = {\n code: 'en-GB',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../en-US/_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../en-US/_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../en-US/_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../en-US/_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (India).\n * @language English\n * @iso-639-2 eng\n * @author Galeel Bhasha Satthar [@gbhasha]{@link https://github.com/gbhasha}\n */\nvar locale = {\n code: 'en-IN',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1,\n // Monday is the first day of the week.\n firstWeekContainsDate: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../en-US/_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../en-US/_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../en-US/_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../en-US/_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (New Zealand).\n * @language English\n * @iso-639-2 eng\n * @author Murray Lucas [@muntact]{@link https://github.com/muntact}\n */\nvar locale = {\n code: 'en-NZ',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Esperanto locale.\n * @language Esperanto\n * @iso-639-2 epo\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'eo',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Spanish locale.\n * @language Spanish\n * @iso-639-2 spa\n * @author Juan Angosto [@juanangosto]{@link https://github.com/juanangosto}\n * @author Guillermo Grau [@guigrpa]{@link https://github.com/guigrpa}\n * @author Fernando Agüero [@fjaguero]{@link https://github.com/fjaguero}\n * @author Gastón Haro [@harogaston]{@link https://github.com/harogaston}\n * @author Yago Carballo [@YagoCarballo]{@link https://github.com/YagoCarballo}\n */\nvar locale = {\n code: 'es',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Estonian locale.\n * @language Estonian\n * @iso-639-2 est\n * @author Priit Hansen [@HansenPriit]{@link https://github.com/priithansen}\n */\nvar locale = {\n code: 'et',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Basque locale.\n * @language Basque\n * @iso-639-2 eus\n * @author Jacob Söderblom [@JacobSoderblom]{@link https://github.com/JacobSoderblom}\n */\nvar locale = {\n code: 'eu',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Persian/Farsi locale (Iran).\n * @language Persian\n * @iso-639-2 ira\n * @author Morteza Ziyae [@mort3za]{@link https://github.com/mort3za}\n */\nvar locale = {\n code: 'fa-IR',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Finnish locale.\n * @language Finnish\n * @iso-639-2 fin\n * @author Pyry-Samuli Lahti [@Pyppe]{@link https://github.com/Pyppe}\n * @author Edo Rivai [@mikolajgrzyb]{@link https://github.com/mikolajgrzyb}\n * @author Samu Juvonen [@sjuvonen]{@link https://github.com/sjuvonen}\n */\nvar locale = {\n code: 'fi',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../fr/_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../fr/_lib/formatRelative/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../fr/_lib/localize/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../fr/_lib/match/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Same as fr\n// Unique for fr-CA\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale (Canada).\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n * @author Gabriele Petrioli [@gpetrioli]{@link https://github.com/gpetrioli}\n */\nvar locale = {\n code: 'fr-CA',\n formatDistance: _index.default,\n formatLong: _index5.default,\n formatRelative: _index2.default,\n localize: _index3.default,\n match: _index4.default,\n // Unique for fr-CA\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatters = {}; // Special case for day of month ordinals in long date format context:\n// 1er mars, 2 mars, 3 mars, …\n// See https://github.com/date-fns/date-fns/issues/437\n\nvar monthsTokens = ['MMM', 'MMMM'];\nmonthsTokens.forEach(function (monthToken) {\n formatters['Do ' + monthToken] = function (date, options) {\n var commonFormatters = options.formatters;\n var dayOfMonthToken = date.getUTCDate() === 1 ? 'Do' : 'D';\n var dayOfMonthFormatter = commonFormatters[dayOfMonthToken];\n var monthFormatter = commonFormatters[monthToken];\n return dayOfMonthFormatter(date, options) + ' ' + monthFormatter(date, options);\n };\n});\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author Alex Hoeing [@dcbn]{@link https://github.com/dcbn}\n */\nvar locale = {\n code: 'fr-CH',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatters = {}; // Special case for day of month ordinals in long date format context:\n// 1er mars, 2 mars, 3 mars, …\n// See https://github.com/date-fns/date-fns/issues/437\n\nvar monthsTokens = ['MMM', 'MMMM'];\nmonthsTokens.forEach(function (monthToken) {\n formatters['Do ' + monthToken] = function (date, options) {\n var commonFormatters = options.formatters;\n var dayOfMonthToken = date.getUTCDate() === 1 ? 'Do' : 'D';\n var dayOfMonthFormatter = commonFormatters[dayOfMonthToken];\n var monthFormatter = commonFormatters[monthToken];\n return dayOfMonthFormatter(date, options) + ' ' + monthFormatter(date, options);\n };\n});\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\nvar locale = {\n code: 'fr',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Scottish Gaelic.\n * @language Scottish Gaelic\n * @iso-639-2 gla\n * @author Lee Driscoll [@leedriscoll]{@link https://github.com/leedriscoll}\n */\nvar locale = {\n code: 'gd',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Galician locale.\n * @language Galician\n * @iso-639-2 glg\n * @author Alberto Doval - Cocodin Technology[@cocodinTech]{@link https://github.com/cocodinTech}\n * @author Fidel Pita [@fidelpita]{@link https://github.com/fidelpita}\n */\nvar locale = {\n code: 'gl',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Gujarati locale (India).\n * @language Gujarati\n * @iso-639-2 guj\n * @author Manaday Mavani [@ManadayM]{@link https://github.com/manadaym}\n */\nvar locale = {\n code: 'gu',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Hebrew locale.\n * @language Hebrew\n * @iso-639-2 heb\n * @author Nir Lahad [@nirlah]{@link https://github.com/nirlah}\n */\nvar locale = {\n code: 'he',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Hindi locale (India).\n * @language Hindi\n * @iso-639-2 hin\n * @author Mukesh Mandiwal [@mukeshmandiwal]{@link https://github.com/mukeshmandiwal}\n */\nvar locale = {\n code: 'hi',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Croatian locale.\n * @language Croatian\n * @iso-639-2 hrv\n * @author Matija Marohnić [@silvenon]{@link https://github.com/silvenon}\n * @author Manico [@manico]{@link https://github.com/manico}\n * @author Ivan Jeržabek [@jerzabek]{@link https://github.com/jerzabek}\n */\nvar locale = {\n code: 'hr',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n *\n * @summary Hungarian locale.\n * @language Hungarian\n *\n * @iso-639-2 hun\n *\n * @author Pavlo Shpak [@pshpak]{@link https://github.com/pshpak}\n * @author Eduardo Pardo [@eduardopsll]{@link https://github.com/eduardopsll}\n * @author Zoltan Szepesi [@twodcube]{@link https://github.com/twodcube}\n */\nvar locale = {\n code: 'hu',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Armenian locale\n * @language Armenian\n * @iso-639-2 arm\n * @author Alex Igityan [@alexigityan]{@link https://github.com/alexigityan}\n */\nvar locale = {\n code: 'hy',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Indonesian locale.\n * @language Indonesian\n * @iso-639-2 ind\n * @author Rahmat Budiharso [@rbudiharso]{@link https://github.com/rbudiharso}\n * @author Benget Nata [@bentinata]{@link https://github.com/bentinata}\n * @author Budi Irawan [@deerawan]{@link https://github.com/deerawan}\n * @author Try Ajitiono [@imballinst]{@link https://github.com/imballinst}\n */\nvar locale = {\n code: 'id',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Icelandic locale.\n * @language Icelandic\n * @iso-639-2 isl\n * @author Derek Blank [@derekblank]{@link https://github.com/derekblank}\n * @author Arnór Ýmir [@lamayg]{@link https://github.com/lamayg}\n */\nvar locale = {\n code: 'is',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Italian locale.\n * @language Italian\n * @iso-639-2 ita\n * @author Alberto Restifo [@albertorestifo]{@link https://github.com/albertorestifo}\n * @author Giovanni Polimeni [@giofilo]{@link https://github.com/giofilo}\n * @author Vincenzo Carrese [@vin-car]{@link https://github.com/vin-car}\n */\nvar locale = {\n code: 'it',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Japanese locale.\n * @language Japanese\n * @iso-639-2 jpn\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Yamagishi Kazutoshi [@ykzts]{@link https://github.com/ykzts}\n * @author Luca Ban [@mesqueeb]{@link https://github.com/mesqueeb}\n * @author Terrence Lam [@skyuplam]{@link https://github.com/skyuplam}\n * @author Taiki IKeda [@so99ynoodles]{@link https://github.com/so99ynoodles}\n */\nvar locale = {\n code: 'ja',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Georgian locale.\n * @language Georgian\n * @iso-639-2 geo\n * @author Lado Lomidze [@Landish]{@link https://github.com/Landish}\n * @author Nick Shvelidze [@shvelo]{@link https://github.com/shvelo}\n */\nvar locale = {\n code: 'ka',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Kazakh locale.\n * @language Kazakh\n * @iso-639-2 kaz\n * @author Nikita Bayev [@drugoi]{@link https://github.com/drugoi}\n */\nvar locale = {\n code: 'kk',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Kannada locale (India).\n * @language Kannada\n * @iso-639-2 kan\n * @author Manjunatha Gouli [@developergouli]{@link https://github.com/developergouli}\n */\nvar locale = {\n code: 'kn',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Korean locale.\n * @language Korean\n * @iso-639-2 kor\n * @author Hong Chulju [@angdev]{@link https://github.com/angdev}\n * @author Lee Seoyoen [@iamssen]{@link https://github.com/iamssen}\n * @author Taiki IKeda [@so99ynoodles]{@link https://github.com/so99ynoodles}\n */\nvar locale = {\n code: 'ko',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n *\n * @summary Lithuanian locale.\n * @language Lithuanian\n *\n * @iso-639-2 lit\n *\n * @author Pavlo Shpak [@pshpak]{@link https://github.com/pshpak}\n * @author Eduardo Pardo [@eduardopsll]{@link https://github.com/eduardopsll}\n */\nvar locale = {\n code: 'lt',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Latvian locale (Latvia).\n * @language Latvian\n * @iso-639-2 lav\n * @author Rūdolfs Puķītis [@prudolfs]{@link https://github.com/prudolfs}\n */\nvar locale = {\n code: 'lv',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Macedonian locale.\n * @language Macedonian\n * @iso-639-2 mkd\n * @author Petar Vlahu [@vlahupetar]{@link https://github.com/vlahupetar}\n * @author Altrim Beqiri [@altrim]{@link https://github.com/altrim}\n */\nvar locale = {\n code: 'mk',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Malay locale.\n * @language Malay\n * @iso-639-2 msa\n * @author Ruban Selvarajah [@Zyten]{@link https://github.com/Zyten}\n */\nvar locale = {\n code: 'ms',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Maltese locale.\n * @language Maltese\n * @iso-639-2 mlt\n * @author Andras Matzon [@amatzon](@link https://github.com/amatzon)\n * @author Bryan Borg [@bryanMt](@link https://github.com/bryanMt)\n */\nvar locale = {\n code: 'mt',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Norwegian Bokmål locale.\n * @language Norwegian Bokmål\n * @iso-639-2 nob\n * @author Hans-Kristian Koren [@Hanse]{@link https://github.com/Hanse}\n * @author Mikolaj Grzyb [@mikolajgrzyb]{@link https://github.com/mikolajgrzyb}\n * @author Dag Stuan [@dagstuan]{@link https://github.com/dagstuan}\n */\nvar locale = {\n code: 'nb',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder]{@link https://github.com/jtangelder}\n * @author Ruben Stolk [@rubenstolk]{@link https://github.com/rubenstolk}\n * @author Lode Vanhove [@bitcrumb]{@link https://github.com/bitcrumb}\n * @author Alex Hoeing [@dcbn]{@link https://github.com/dcbn}\n */\nvar locale = {\n code: 'nl-BE',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder]{@link https://github.com/jtangelder}\n * @author Ruben Stolk [@rubenstolk]{@link https://github.com/rubenstolk}\n * @author Lode Vanhove [@bitcrumb]{@link https://github.com/bitcrumb}\n * @author Edo Rivai [@edorivai]{@link https://github.com/edorivai}\n * @author Niels Keurentjes [@curry684]{@link https://github.com/curry684}\n * @author Stefan Vermaas [@stefanvermaas]{@link https://github.com/stefanvermaas}\n */\nvar locale = {\n code: 'nl',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Norwegian Nynorsk locale.\n * @language Norwegian Nynorsk\n * @iso-639-2 nno\n * @author Mats Byrkjeland [@draperunner]{@link https://github.com/draperunner}\n */\nvar locale = {\n code: 'nn',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Polish locale.\n * @language Polish\n * @iso-639-2 pol\n * @author Mateusz Derks [@ertrzyiks]{@link https://github.com/ertrzyiks}\n * @author Just RAG [@justrag]{@link https://github.com/justrag}\n * @author Mikolaj Grzyb [@mikolajgrzyb]{@link https://github.com/mikolajgrzyb}\n * @author Mateusz Tokarski [@mutisz]{@link https://github.com/mutisz}\n */\nvar locale = {\n code: 'pl',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe]{@link https://github.com/duailibe}\n * @author Yago Carballo [@yagocarballo]{@link https://github.com/YagoCarballo}\n */\nvar locale = {\n code: 'pt-BR',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Portuguese locale.\n * @language Portuguese\n * @iso-639-2 por\n * @author Dário Freire [@dfreire]{@link https://github.com/dfreire}\n * @author Adrián de la Rosa [@adrm]{@link https://github.com/adrm}\n */\nvar locale = {\n code: 'pt',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Romanian locale.\n * @language Romanian\n * @iso-639-2 ron\n * @author Sergiu Munteanu [@jsergiu]{@link https://github.com/jsergiu}\n * @author Adrian Ocneanu [@aocneanu]{@link https://github.com/aocneanu}\n * @author Mihai Ocneanu [@gandesc]{@link https://github.com/gandesc}\n */\nvar locale = {\n code: 'ro',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Russian locale.\n * @language Russian\n * @iso-639-2 rus\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'ru',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Slovak locale.\n * @language Slovak\n * @iso-639-2 slk\n * @author Marek Suscak [@mareksuscak]{@link https://github.com/mareksuscak}\n */\nvar locale = {\n code: 'sk',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Slovenian locale.\n * @language Slovenian\n * @iso-639-2 slv\n * @author Adam Stradovnik [@Neoglyph]{@link https://github.com/Neoglyph}\n * @author Mato Žgajner [@mzgajner]{@link https://github.com/mzgajner}\n */\nvar locale = {\n code: 'sl',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Serbian latin locale.\n * @language Serbian\n * @iso-639-2 srp\n * @author Igor Radivojević [@rogyvoje]{@link https://github.com/rogyvoje}\n */\nvar locale = {\n code: 'sr-Latn',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Serbian cyrillic locale.\n * @language Serbian\n * @iso-639-2 srp\n * @author Igor Radivojević [@rogyvoje]{@link https://github.com/rogyvoje}\n */\nvar locale = {\n code: 'sr',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Swedish locale.\n * @language Swedish\n * @iso-639-2 swe\n * @author Johannes Ulén [@ejulen]{@link https://github.com/ejulen}\n * @author Alexander Nanberg [@alexandernanberg]{@link https://github.com/alexandernanberg}\n * @author Henrik Andersson [@limelights]{@link https://github.com/limelights}\n */\nvar locale = {\n code: 'sv',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Tamil locale (India).\n * @language Tamil\n * @iso-639-2 tam\n * @author Sibiraj [@sibiraj-s]{@link https://github.com/sibiraj-s}\n */\nvar locale = {\n code: 'ta',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Telugu locale\n * @language Telugu\n * @iso-639-2 tel\n * @author Kranthi Lakum [@kranthilakum]{@link https://github.com/kranthilakum}\n */\nvar locale = {\n code: 'te',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Thai locale.\n * @language Thai\n * @iso-639-2 tha\n * @author Athiwat Hirunworawongkun [@athivvat]{@link https://github.com/athivvat}\n * @author [@hawkup]{@link https://github.com/hawkup}\n * @author Jirawat I. [@nodtem66]{@link https://github.com/nodtem66}\n */\nvar locale = {\n code: 'th',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Turkish locale.\n * @language Turkish\n * @iso-639-2 tur\n * @author Alpcan Aydın [@alpcanaydin]{@link https://github.com/alpcanaydin}\n * @author Berkay Sargın [@berkaey]{@link https://github.com/berkaey}\n * @author Ismail Demirbilek [@dbtek]{@link https://github.com/dbtek}\n * @author İsmail Kayar [@ikayar]{@link https://github.com/ikayar}\n *\n *\n */\nvar locale = {\n code: 'tr',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Uighur locale\n * @language Uighur\n * @iso-639-2 uig\n * @author Abduwaly M. [@abduwaly]{@link https://github.com/abduwaly}\n */\nvar locale = {\n code: 'ug',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Ukrainian locale.\n * @language Ukrainian\n * @iso-639-2 ukr\n * @author Andrii Korzh [@korzhyk]{@link https://github.com/korzhyk}\n * @author Andriy Shcherbyak [@shcherbyakdev]{@link https://github.com/shcherbyakdev}\n */\nvar locale = {\n code: 'uk',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Uzbek locale.\n * @language Uzbek\n * @iso-639-2 uzb\n * @author Mukhammadali [@mukhammadali]{@link https://github.com/Mukhammadali}\n */\nvar locale = {\n code: 'uz',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Vietnamese locale (Vietnam).\n * @language Vietnamese\n * @iso-639-2 vie\n * @author Thanh Tran [@trongthanh]{@link https://github.com/trongthanh}\n * @author Leroy Hopson [@lihop]{@link https://github.com/lihop}\n */\nvar locale = {\n code: 'vi',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n /* First week of new year contains Jan 1st */\n\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Chinese Simplified locale.\n * @language Chinese Simplified\n * @iso-639-2 zho\n * @author Changyu Geng [@KingMario]{@link https://github.com/KingMario}\n * @author Song Shuoyun [@fnlctrl]{@link https://github.com/fnlctrl}\n * @author sabrinaM [@sabrinamiao]{@link https://github.com/sabrinamiao}\n * @author Carney Wu [@cubicwork]{@link https://github.com/cubicwork}\n * @author Terrence Lam [@skyuplam]{@link https://github.com/skyuplam}\n */\nvar locale = {\n code: 'zh-CN',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Chinese Traditional locale.\n * @language Chinese Traditional\n * @iso-639-2 zho\n * @author tonypai [@tpai]{@link https://github.com/tpai}\n * @author Jack Hsu [@jackhsu978]{@link https://github.com/jackhsu978}\n * @author Terrence Lam [@skyuplam]{@link https://github.com/skyuplam}\n */\nvar locale = {\n code: 'zh-TW',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","var aws4 = exports,\n url = require('url'),\n querystring = require('querystring'),\n crypto = require('crypto'),\n lru = require('./lru'),\n credentialsCache = lru(1000)\n\n// http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html\n\nfunction hmac(key, string, encoding) {\n return crypto.createHmac('sha256', key).update(string, 'utf8').digest(encoding)\n}\n\nfunction hash(string, encoding) {\n return crypto.createHash('sha256').update(string, 'utf8').digest(encoding)\n}\n\n// This function assumes the string has already been percent encoded\nfunction encodeRfc3986(urlEncodedString) {\n return urlEncodedString.replace(/[!'()*]/g, function(c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\nfunction encodeRfc3986Full(str) {\n return encodeRfc3986(encodeURIComponent(str))\n}\n\n// A bit of a combination of:\n// https://github.com/aws/aws-sdk-java-v2/blob/dc695de6ab49ad03934e1b02e7263abbd2354be0/core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAws4Signer.java#L59\n// https://github.com/aws/aws-sdk-js/blob/18cb7e5b463b46239f9fdd4a65e2ff8c81831e8f/lib/signers/v4.js#L191-L199\n// https://github.com/mhart/aws4fetch/blob/b3aed16b6f17384cf36ea33bcba3c1e9f3bdfefd/src/main.js#L25-L34\nvar HEADERS_TO_IGNORE = {\n 'authorization': true,\n 'connection': true,\n 'x-amzn-trace-id': true,\n 'user-agent': true,\n 'expect': true,\n 'presigned-expires': true,\n 'range': true,\n}\n\n// request: { path | body, [host], [method], [headers], [service], [region] }\n// credentials: { accessKeyId, secretAccessKey, [sessionToken] }\nfunction RequestSigner(request, credentials) {\n\n if (typeof request === 'string') request = url.parse(request)\n\n var headers = request.headers = (request.headers || {}),\n hostParts = (!this.service || !this.region) && this.matchHost(request.hostname || request.host || headers.Host || headers.host)\n\n this.request = request\n this.credentials = credentials || this.defaultCredentials()\n\n this.service = request.service || hostParts[0] || ''\n this.region = request.region || hostParts[1] || 'us-east-1'\n\n // SES uses a different domain from the service name\n if (this.service === 'email') this.service = 'ses'\n\n if (!request.method && request.body)\n request.method = 'POST'\n\n if (!headers.Host && !headers.host) {\n headers.Host = request.hostname || request.host || this.createHost()\n\n // If a port is specified explicitly, use it as is\n if (request.port)\n headers.Host += ':' + request.port\n }\n if (!request.hostname && !request.host)\n request.hostname = headers.Host || headers.host\n\n this.isCodeCommitGit = this.service === 'codecommit' && request.method === 'GIT'\n}\n\nRequestSigner.prototype.matchHost = function(host) {\n var match = (host || '').match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com(\\.cn)?$/)\n var hostParts = (match || []).slice(1, 3)\n\n // ES's hostParts are sometimes the other way round, if the value that is expected\n // to be region equals ‘es’ switch them back\n // e.g. search-cluster-name-aaaa00aaaa0aaa0aaaaaaa0aaa.us-east-1.es.amazonaws.com\n if (hostParts[1] === 'es')\n hostParts = hostParts.reverse()\n\n if (hostParts[1] == 's3') {\n hostParts[0] = 's3'\n hostParts[1] = 'us-east-1'\n } else {\n for (var i = 0; i < 2; i++) {\n if (/^s3-/.test(hostParts[i])) {\n hostParts[1] = hostParts[i].slice(3)\n hostParts[0] = 's3'\n break\n }\n }\n }\n\n return hostParts\n}\n\n// http://docs.aws.amazon.com/general/latest/gr/rande.html\nRequestSigner.prototype.isSingleRegion = function() {\n // Special case for S3 and SimpleDB in us-east-1\n if (['s3', 'sdb'].indexOf(this.service) >= 0 && this.region === 'us-east-1') return true\n\n return ['cloudfront', 'ls', 'route53', 'iam', 'importexport', 'sts']\n .indexOf(this.service) >= 0\n}\n\nRequestSigner.prototype.createHost = function() {\n var region = this.isSingleRegion() ? '' : '.' + this.region,\n subdomain = this.service === 'ses' ? 'email' : this.service\n return subdomain + region + '.amazonaws.com'\n}\n\nRequestSigner.prototype.prepareRequest = function() {\n this.parsePath()\n\n var request = this.request, headers = request.headers, query\n\n if (request.signQuery) {\n\n this.parsedPath.query = query = this.parsedPath.query || {}\n\n if (this.credentials.sessionToken)\n query['X-Amz-Security-Token'] = this.credentials.sessionToken\n\n if (this.service === 's3' && !query['X-Amz-Expires'])\n query['X-Amz-Expires'] = 86400\n\n if (query['X-Amz-Date'])\n this.datetime = query['X-Amz-Date']\n else\n query['X-Amz-Date'] = this.getDateTime()\n\n query['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'\n query['X-Amz-Credential'] = this.credentials.accessKeyId + '/' + this.credentialString()\n query['X-Amz-SignedHeaders'] = this.signedHeaders()\n\n } else {\n\n if (!request.doNotModifyHeaders && !this.isCodeCommitGit) {\n if (request.body && !headers['Content-Type'] && !headers['content-type'])\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'\n\n if (request.body && !headers['Content-Length'] && !headers['content-length'])\n headers['Content-Length'] = Buffer.byteLength(request.body)\n\n if (this.credentials.sessionToken && !headers['X-Amz-Security-Token'] && !headers['x-amz-security-token'])\n headers['X-Amz-Security-Token'] = this.credentials.sessionToken\n\n if (this.service === 's3' && !headers['X-Amz-Content-Sha256'] && !headers['x-amz-content-sha256'])\n headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex')\n\n if (headers['X-Amz-Date'] || headers['x-amz-date'])\n this.datetime = headers['X-Amz-Date'] || headers['x-amz-date']\n else\n headers['X-Amz-Date'] = this.getDateTime()\n }\n\n delete headers.Authorization\n delete headers.authorization\n }\n}\n\nRequestSigner.prototype.sign = function() {\n if (!this.parsedPath) this.prepareRequest()\n\n if (this.request.signQuery) {\n this.parsedPath.query['X-Amz-Signature'] = this.signature()\n } else {\n this.request.headers.Authorization = this.authHeader()\n }\n\n this.request.path = this.formatPath()\n\n return this.request\n}\n\nRequestSigner.prototype.getDateTime = function() {\n if (!this.datetime) {\n var headers = this.request.headers,\n date = new Date(headers.Date || headers.date || new Date)\n\n this.datetime = date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '')\n\n // Remove the trailing 'Z' on the timestamp string for CodeCommit git access\n if (this.isCodeCommitGit) this.datetime = this.datetime.slice(0, -1)\n }\n return this.datetime\n}\n\nRequestSigner.prototype.getDate = function() {\n return this.getDateTime().substr(0, 8)\n}\n\nRequestSigner.prototype.authHeader = function() {\n return [\n 'AWS4-HMAC-SHA256 Credential=' + this.credentials.accessKeyId + '/' + this.credentialString(),\n 'SignedHeaders=' + this.signedHeaders(),\n 'Signature=' + this.signature(),\n ].join(', ')\n}\n\nRequestSigner.prototype.signature = function() {\n var date = this.getDate(),\n cacheKey = [this.credentials.secretAccessKey, date, this.region, this.service].join(),\n kDate, kRegion, kService, kCredentials = credentialsCache.get(cacheKey)\n if (!kCredentials) {\n kDate = hmac('AWS4' + this.credentials.secretAccessKey, date)\n kRegion = hmac(kDate, this.region)\n kService = hmac(kRegion, this.service)\n kCredentials = hmac(kService, 'aws4_request')\n credentialsCache.set(cacheKey, kCredentials)\n }\n return hmac(kCredentials, this.stringToSign(), 'hex')\n}\n\nRequestSigner.prototype.stringToSign = function() {\n return [\n 'AWS4-HMAC-SHA256',\n this.getDateTime(),\n this.credentialString(),\n hash(this.canonicalString(), 'hex'),\n ].join('\\n')\n}\n\nRequestSigner.prototype.canonicalString = function() {\n if (!this.parsedPath) this.prepareRequest()\n\n var pathStr = this.parsedPath.path,\n query = this.parsedPath.query,\n headers = this.request.headers,\n queryStr = '',\n normalizePath = this.service !== 's3',\n decodePath = this.service === 's3' || this.request.doNotEncodePath,\n decodeSlashesInPath = this.service === 's3',\n firstValOnly = this.service === 's3',\n bodyHash\n\n if (this.service === 's3' && this.request.signQuery) {\n bodyHash = 'UNSIGNED-PAYLOAD'\n } else if (this.isCodeCommitGit) {\n bodyHash = ''\n } else {\n bodyHash = headers['X-Amz-Content-Sha256'] || headers['x-amz-content-sha256'] ||\n hash(this.request.body || '', 'hex')\n }\n\n if (query) {\n var reducedQuery = Object.keys(query).reduce(function(obj, key) {\n if (!key) return obj\n obj[encodeRfc3986Full(key)] = !Array.isArray(query[key]) ? query[key] :\n (firstValOnly ? query[key][0] : query[key])\n return obj\n }, {})\n var encodedQueryPieces = []\n Object.keys(reducedQuery).sort().forEach(function(key) {\n if (!Array.isArray(reducedQuery[key])) {\n encodedQueryPieces.push(key + '=' + encodeRfc3986Full(reducedQuery[key]))\n } else {\n reducedQuery[key].map(encodeRfc3986Full).sort()\n .forEach(function(val) { encodedQueryPieces.push(key + '=' + val) })\n }\n })\n queryStr = encodedQueryPieces.join('&')\n }\n if (pathStr !== '/') {\n if (normalizePath) pathStr = pathStr.replace(/\\/{2,}/g, '/')\n pathStr = pathStr.split('/').reduce(function(path, piece) {\n if (normalizePath && piece === '..') {\n path.pop()\n } else if (!normalizePath || piece !== '.') {\n if (decodePath) piece = decodeURIComponent(piece.replace(/\\+/g, ' '))\n path.push(encodeRfc3986Full(piece))\n }\n return path\n }, []).join('/')\n if (pathStr[0] !== '/') pathStr = '/' + pathStr\n if (decodeSlashesInPath) pathStr = pathStr.replace(/%2F/g, '/')\n }\n\n return [\n this.request.method || 'GET',\n pathStr,\n queryStr,\n this.canonicalHeaders() + '\\n',\n this.signedHeaders(),\n bodyHash,\n ].join('\\n')\n}\n\nRequestSigner.prototype.canonicalHeaders = function() {\n var headers = this.request.headers\n function trimAll(header) {\n return header.toString().trim().replace(/\\s+/g, ' ')\n }\n return Object.keys(headers)\n .filter(function(key) { return HEADERS_TO_IGNORE[key.toLowerCase()] == null })\n .sort(function(a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1 })\n .map(function(key) { return key.toLowerCase() + ':' + trimAll(headers[key]) })\n .join('\\n')\n}\n\nRequestSigner.prototype.signedHeaders = function() {\n return Object.keys(this.request.headers)\n .map(function(key) { return key.toLowerCase() })\n .filter(function(key) { return HEADERS_TO_IGNORE[key] == null })\n .sort()\n .join(';')\n}\n\nRequestSigner.prototype.credentialString = function() {\n return [\n this.getDate(),\n this.region,\n this.service,\n 'aws4_request',\n ].join('/')\n}\n\nRequestSigner.prototype.defaultCredentials = function() {\n var env = process.env\n return {\n accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY,\n secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY,\n sessionToken: env.AWS_SESSION_TOKEN,\n }\n}\n\nRequestSigner.prototype.parsePath = function() {\n var path = this.request.path || '/'\n\n // S3 doesn't always encode characters > 127 correctly and\n // all services don't encode characters > 255 correctly\n // So if there are non-reserved chars (and it's not already all % encoded), just encode them all\n if (/[^0-9A-Za-z;,/?:@&=+$\\-_.!~*'()#%]/.test(path)) {\n path = encodeURI(decodeURI(path))\n }\n\n var queryIx = path.indexOf('?'),\n query = null\n\n if (queryIx >= 0) {\n query = querystring.parse(path.slice(queryIx + 1))\n path = path.slice(0, queryIx)\n }\n\n this.parsedPath = {\n path: path,\n query: query,\n }\n}\n\nRequestSigner.prototype.formatPath = function() {\n var path = this.parsedPath.path,\n query = this.parsedPath.query\n\n if (!query) return path\n\n // Services don't support empty query string keys\n if (query[''] != null) delete query['']\n\n return path + '?' + encodeRfc3986(querystring.stringify(query))\n}\n\naws4.RequestSigner = RequestSigner\n\naws4.sign = function(request, credentials) {\n return new RequestSigner(request, credentials).sign()\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('./lib/_stream_duplex.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./readable').PassThrough\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","module.exports = require('./browser/algorithms.json')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","module.exports = function(size) {\n return new LruCache(size)\n}\n\nfunction LruCache(size) {\n this.capacity = size | 0\n this.map = Object.create(null)\n this.list = new DoublyLinkedList()\n}\n\nLruCache.prototype.get = function(key) {\n var node = this.map[key]\n if (node == null) return undefined\n this.used(node)\n return node.val\n}\n\nLruCache.prototype.set = function(key, val) {\n var node = this.map[key]\n if (node != null) {\n node.val = val\n } else {\n if (!this.capacity) this.prune()\n if (!this.capacity) return false\n node = new DoublyLinkedNode(key, val)\n this.map[key] = node\n this.capacity--\n }\n this.used(node)\n return true\n}\n\nLruCache.prototype.used = function(node) {\n this.list.moveToFront(node)\n}\n\nLruCache.prototype.prune = function() {\n var node = this.list.pop()\n if (node != null) {\n delete this.map[node.key]\n this.capacity++\n }\n}\n\n\nfunction DoublyLinkedList() {\n this.firstNode = null\n this.lastNode = null\n}\n\nDoublyLinkedList.prototype.moveToFront = function(node) {\n if (this.firstNode == node) return\n\n this.remove(node)\n\n if (this.firstNode == null) {\n this.firstNode = node\n this.lastNode = node\n node.prev = null\n node.next = null\n } else {\n node.prev = null\n node.next = this.firstNode\n node.next.prev = node\n this.firstNode = node\n }\n}\n\nDoublyLinkedList.prototype.pop = function() {\n var lastNode = this.lastNode\n if (lastNode != null) {\n this.remove(lastNode)\n }\n return lastNode\n}\n\nDoublyLinkedList.prototype.remove = function(node) {\n if (this.firstNode == node) {\n this.firstNode = node.next\n } else if (node.prev != null) {\n node.prev.next = node.next\n }\n if (this.lastNode == node) {\n this.lastNode = node.prev\n } else if (node.next != null) {\n node.next.prev = node.prev\n }\n}\n\n\nfunction DoublyLinkedNode(key, val) {\n this.key = key\n this.val = val\n this.prev = null\n this.next = null\n}\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Main parser class\n\n'use strict';\n\n\nvar utils = require('./common/utils');\nvar helpers = require('./helpers');\nvar Renderer = require('./renderer');\nvar ParserCore = require('./parser_core');\nvar ParserBlock = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt = require('linkify-it');\nvar mdurl = require('mdurl');\nvar punycode = require('punycode');\n\n\nvar config = {\n 'default': require('./presets/default'),\n zero: require('./presets/zero'),\n commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n // url should be normalized at this point, and existing entities are decoded\n var str = url.trim().toLowerCase();\n\n return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.decode(mdurl.format(parsed));\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with `):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
' +\n *                hljs.highlight(lang, str, true).value +\n *                '
';\n * } catch (__) {}\n * }\n *\n * return '
' + md.utils.escapeHtml(str) + '
';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers);\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String');\n }\n\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","\n'use strict';\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n var i, ch, cache = decodeCache[exclude];\n if (cache) { return cache; }\n\n cache = decodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (i = 0; i < exclude.length; i++) {\n ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n var cache;\n\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars;\n }\n\n cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n var i, l, b1, b2, b3, b4, chr,\n result = '';\n\n for (i = 0, l = seq.length; i < l; i += 3) {\n b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue;\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue;\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue;\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue;\n }\n }\n\n result += '\\ufffd';\n }\n\n return result;\n });\n}\n\n\ndecode.defaultChars = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n","\n'use strict';\n\n\nmodule.exports = function format(url) {\n var result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = [ '\\'' ].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n hostEndingChars = [ '/', '?', '#' ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n /* eslint-disable no-script-url */\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n if (url && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n var i, l, lowerProto, hec, slashes,\n rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n var host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n","'use strict';\n\nexports.Any = require('./properties/Any/regex');\nexports.Cc = require('./categories/Cc/regex');\nexports.Cf = require('./categories/Cf/regex');\nexports.P = require('./categories/P/regex');\nexports.Z = require('./categories/Z/regex');\n","module.exports=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/","// Just a shortcut for bulk export\n'use strict';\n\n\nexports.parseLinkLabel = require('./parse_link_label');\nexports.parseLinkDestination = require('./parse_link_destination');\nexports.parseLinkTitle = require('./parse_link_title');\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n};\n","// Parse link destination\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n var code, level,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break; }\n level--;\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n if (level !== 0) { return result; }\n\n result.str = unescapeAll(str.slice(start, pos));\n result.lines = lines;\n result.pos = pos;\n result.ok = true;\n return result;\n};\n","// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n var code,\n marker,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n};\n","/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n'use strict';\n\n\nvar assign = require('./common/utils').assign;\nvar unescapeAll = require('./common/utils').unescapeAll;\nvar escapeHtml = require('./common/utils').escapeHtml;\n\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar default_rules = {};\n\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n info = token.info ? unescapeAll(token.info).trim() : '',\n langName = '',\n highlighted, i, tmpAttrs, tmpToken;\n\n if (info) {\n langName = info.split(/\\s+/g)[0];\n }\n\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n\n if (highlighted.indexOf(''\n + highlighted\n + '\\n';\n }\n\n\n return '

'\n        + highlighted\n        + '
\\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env);\n\n return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
\\n' : '
\\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
\\n' : '
\\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n var i, l, result;\n\n if (!token.attrs) { return ''; }\n\n result = '';\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n\n return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n var nextToken,\n result = '',\n needLf = false,\n token = tokens[idx];\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false;\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>';\n\n return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n var type,\n result = '',\n rules = this.rules;\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n\n return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n var result = '';\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n if (tokens[i].type === 'text') {\n result += tokens[i].content;\n } else if (tokens[i].type === 'image') {\n result += this.renderInlineAsText(tokens[i].children, options, env);\n }\n }\n\n return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n var i, len, type,\n result = '',\n rules = this.rules;\n\n for (i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[tokens[i].type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n\n return result;\n};\n\nmodule.exports = Renderer;\n","/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\nvar _rules = [\n [ 'normalize', require('./rules_core/normalize') ],\n [ 'block', require('./rules_core/block') ],\n [ 'inline', require('./rules_core/inline') ],\n [ 'linkify', require('./rules_core/linkify') ],\n [ 'replacements', require('./rules_core/replacements') ],\n [ 'smartquotes', require('./rules_core/smartquotes') ]\n];\n\n\n/**\n * new Core()\n **/\nfunction Core() {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n}\n\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n var i, l, rules;\n\n rules = this.ruler.getRules('');\n\n for (i = 0, l = rules.length; i < l; i++) {\n rules[i](state);\n }\n};\n\nCore.prototype.State = require('./rules_core/state_core');\n\n\nmodule.exports = Core;\n","// Normalize input string\n\n'use strict';\n\n\n// https://spec.commonmark.org/0.29/#line-ending\nvar NEWLINES_RE = /\\r\\n?|\\n/g;\nvar NULL_RE = /\\0/g;\n\n\nmodule.exports = function normalize(state) {\n var str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n\n state.src = str;\n};\n","'use strict';\n\n\nmodule.exports = function block(state) {\n var token;\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0);\n token.content = state.src;\n token.map = [ 0, 1 ];\n token.children = [];\n state.tokens.push(token);\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens);\n }\n};\n","'use strict';\n\nmodule.exports = function inline(state) {\n var tokens = state.tokens, tok, i, l;\n\n // Parse inlines\n for (i = 0, l = tokens.length; i < l; i++) {\n tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n};\n","// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n'use strict';\n\n\nvar arrayReplaceAt = require('../common/utils').arrayReplaceAt;\n\n\nfunction isLinkOpen(str) {\n return /^\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\n\n\nmodule.exports = function linkify(state) {\n var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n level, htmlLinkLevel, url, fullUrl, urlText,\n blockTokens = state.tokens,\n links;\n\n if (!state.md.options.linkify) { return; }\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue;\n }\n\n tokens = blockTokens[j].children;\n\n htmlLinkLevel = 0;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (i = tokens.length - 1; i >= 0; i--) {\n currentToken = tokens[i];\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--;\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--;\n }\n continue;\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--;\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++;\n }\n }\n if (htmlLinkLevel > 0) { continue; }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n text = currentToken.content;\n links = state.md.linkify.match(text);\n\n // Now split string to nodes\n nodes = [];\n level = currentToken.level;\n lastPos = 0;\n\n for (ln = 0; ln < links.length; ln++) {\n\n url = links[ln].url;\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { continue; }\n\n urlText = links[ln].text;\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n } else {\n urlText = state.md.normalizeLinkText(urlText);\n }\n\n pos = links[ln].index;\n\n if (pos > lastPos) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos, pos);\n token.level = level;\n nodes.push(token);\n }\n\n token = new state.Token('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.level = level++;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n token = new state.Token('text', '', 0);\n token.content = urlText;\n token.level = level;\n nodes.push(token);\n\n token = new state.Token('link_close', 'a', -1);\n token.level = --level;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n lastPos = links[ln].lastIndex;\n }\n if (lastPos < text.length) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos);\n token.level = level;\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n};\n","// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// (p) (P) -> §\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n'use strict';\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - miltiplication 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r|p)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r|p)\\)/ig;\nvar SCOPED_ABBR = {\n c: '©',\n r: '®',\n p: '§',\n tm: '™'\n};\n\nfunction replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\n\nfunction replace_rare(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013');\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\n\n\nmodule.exports = function replace(state) {\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n\n }\n};\n","// Convert straight quotation marks to typographic ones\n//\n'use strict';\n\n\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\nvar QUOTE_TEST_RE = /['\"]/;\nvar QUOTE_RE = /['\"]/g;\nvar APOSTROPHE = '\\u2019'; /* ’ */\n\n\nfunction replaceAt(str, index, ch) {\n return str.substr(0, index) + ch + str.substr(index + 1);\n}\n\nfunction process_inlines(tokens, state) {\n var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n stack = [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n\n thisLevel = tokens[i].level;\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break; }\n }\n stack.length = j + 1;\n\n if (token.type !== 'text') { continue; }\n\n text = token.content;\n pos = 0;\n max = text.length;\n\n /*eslint no-labels:0,block-scoped-var:0*/\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos;\n t = QUOTE_RE.exec(text);\n if (!t) { break; }\n\n canOpen = canClose = true;\n pos = t.index + 1;\n isSingle = (t[0] === \"'\");\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n lastChar = 0x20;\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1);\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n if (tokens[j].type !== 'text') continue;\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n break;\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n nextChar = 0x20;\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos);\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n if (tokens[j].type !== 'text') continue;\n\n nextChar = tokens[j].content.charCodeAt(0);\n break;\n }\n }\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n canOpen = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false;\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false;\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false;\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar;\n canClose = isNextPunctChar;\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n continue;\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n item = stack[j];\n if (stack[j].level < thisLevel) { break; }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j];\n\n if (isSingle) {\n openQuote = state.md.options.quotes[2];\n closeQuote = state.md.options.quotes[3];\n } else {\n openQuote = state.md.options.quotes[0];\n closeQuote = state.md.options.quotes[1];\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote);\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote);\n\n pos += closeQuote.length - 1;\n if (item.token === i) { pos += openQuote.length - 1; }\n\n text = token.content;\n max = text.length;\n\n stack.length = j;\n continue OUTER;\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n });\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n }\n }\n}\n\n\nmodule.exports = function smartquotes(state) {\n /*eslint max-depth:0*/\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue;\n }\n\n process_inlines(state.tokens[blkIdx].children, state);\n }\n};\n","// Core state object\n//\n'use strict';\n\nvar Token = require('../token');\n\n\nfunction StateCore(src, md, env) {\n this.src = src;\n this.env = env;\n this.tokens = [];\n this.inlineMode = false;\n this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n\nmodule.exports = StateCore;\n","/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\nvar _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n [ 'table', require('./rules_block/table'), [ 'paragraph', 'reference' ] ],\n [ 'code', require('./rules_block/code') ],\n [ 'fence', require('./rules_block/fence'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'blockquote', require('./rules_block/blockquote'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'hr', require('./rules_block/hr'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'list', require('./rules_block/list'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'reference', require('./rules_block/reference') ],\n [ 'heading', require('./rules_block/heading'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'lheading', require('./rules_block/lheading') ],\n [ 'html_block', require('./rules_block/html_block'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'paragraph', require('./rules_block/paragraph') ]\n];\n\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() });\n }\n}\n\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n line = startLine,\n hasEmptyLines = false,\n maxNesting = state.md.options.maxNesting;\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line);\n if (line >= endLine) { break; }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break; }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine;\n break;\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n\n for (i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false);\n if (ok) { break; }\n }\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines;\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true;\n }\n\n line = state.line;\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true;\n line++;\n state.line = line;\n }\n }\n};\n\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n var state;\n\n if (!src) { return; }\n\n state = new this.State(src, md, env, outTokens);\n\n this.tokenize(state, state.line, state.lineMax);\n};\n\n\nParserBlock.prototype.State = require('./rules_block/state_block');\n\n\nmodule.exports = ParserBlock;\n","// GFM table, non-standard\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction getLine(state, line) {\n var pos = state.bMarks[line] + state.blkIndent,\n max = state.eMarks[line];\n\n return state.src.substr(pos, max - pos);\n}\n\nfunction escapedSplit(str) {\n var result = [],\n pos = 0,\n max = str.length,\n ch,\n escapes = 0,\n lastPos = 0,\n backTicked = false,\n lastBackTick = 0;\n\n ch = str.charCodeAt(pos);\n\n while (pos < max) {\n if (ch === 0x60/* ` */) {\n if (backTicked) {\n // make \\` close code sequence, but not open it;\n // the reason is: `\\` is correct code block\n backTicked = false;\n lastBackTick = pos;\n } else if (escapes % 2 === 0) {\n backTicked = true;\n lastBackTick = pos;\n }\n } else if (ch === 0x7c/* | */ && (escapes % 2 === 0) && !backTicked) {\n result.push(str.substring(lastPos, pos));\n lastPos = pos + 1;\n }\n\n if (ch === 0x5c/* \\ */) {\n escapes++;\n } else {\n escapes = 0;\n }\n\n pos++;\n\n // If there was an un-closed backtick, go back to just after\n // the last backtick, but as if it was a normal character\n if (pos === max && backTicked) {\n backTicked = false;\n pos = lastBackTick + 1;\n }\n\n ch = str.charCodeAt(pos);\n }\n\n result.push(str.substring(lastPos));\n\n return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n var ch, lineText, pos, i, nextLine, columns, columnCount, token,\n aligns, t, tableLines, tbodyLines;\n\n // should have at least two lines\n if (startLine + 2 > endLine) { return false; }\n\n nextLine = startLine + 1;\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n ch = state.src.charCodeAt(pos++);\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */) { return false; }\n\n while (pos < state.eMarks[nextLine]) {\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false; }\n\n pos++;\n }\n\n lineText = getLine(state, startLine + 1);\n\n columns = lineText.split('|');\n aligns = [];\n for (i = 0; i < columns.length; i++) {\n t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false; }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) { return false; }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n // header row will define an amount of columns in the entire table,\n // and align row shouldn't be smaller than that (the rest of the rows can)\n columnCount = columns.length;\n if (columnCount > aligns.length) { return false; }\n\n if (silent) { return true; }\n\n token = state.push('table_open', 'table', 1);\n token.map = tableLines = [ startLine, 0 ];\n\n token = state.push('thead_open', 'thead', 1);\n token.map = [ startLine, startLine + 1 ];\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ startLine, startLine + 1 ];\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1);\n token.map = [ startLine, startLine + 1 ];\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i].trim();\n token.map = [ startLine, startLine + 1 ];\n token.children = [];\n\n token = state.push('th_close', 'th', -1);\n }\n\n token = state.push('tr_close', 'tr', -1);\n token = state.push('thead_close', 'thead', -1);\n\n token = state.push('tbody_open', 'tbody', 1);\n token.map = tbodyLines = [ startLine + 2, 0 ];\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n lineText = getLine(state, nextLine).trim();\n if (lineText.indexOf('|') === -1) { break; }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n token = state.push('tr_open', 'tr', 1);\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i] ? columns[i].trim() : '';\n token.children = [];\n\n token = state.push('td_close', 'td', -1);\n }\n token = state.push('tr_close', 'tr', -1);\n }\n token = state.push('tbody_close', 'tbody', -1);\n token = state.push('table_close', 'table', -1);\n\n tableLines[1] = tbodyLines[1] = nextLine;\n state.line = nextLine;\n return true;\n};\n","// Code block (4 spaces padded)\n\n'use strict';\n\n\nmodule.exports = function code(state, startLine, endLine/*, silent*/) {\n var nextLine, last, token;\n\n if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n last = nextLine = startLine + 1;\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++;\n continue;\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++;\n last = nextLine;\n continue;\n }\n break;\n }\n\n state.line = last;\n\n token = state.push('code_block', 'code', 0);\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, true);\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","// fences (``` lang, ~~~ lang)\n\n'use strict';\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n var marker, len, params, nextLine, mem, token, markup,\n haveEndMarker = false,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (pos + 3 > max) { return false; }\n\n marker = state.src.charCodeAt(pos);\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n mem = pos;\n pos = state.skipChars(pos, marker);\n\n len = pos - mem;\n\n if (len < 3) { return false; }\n\n markup = state.src.slice(mem, pos);\n params = state.src.slice(pos, max);\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false;\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true; }\n\n // search end of block\n nextLine = startLine;\n\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue; }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n\n if (pos < max) { continue; }\n\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","// Block quotes\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function blockquote(state, startLine, endLine, silent) {\n var adjustTab,\n ch,\n i,\n initial,\n l,\n lastLineEmpty,\n lines,\n nextLine,\n offset,\n oldBMarks,\n oldBSCount,\n oldIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n spaceAfterMarker,\n terminate,\n terminatorRules,\n token,\n wasOutdented,\n oldLineMax = state.lineMax,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos++) !== 0x3E/* > */) { return false; }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true; }\n\n // skip spaces after \">\" and re-calculate offset\n initial = offset = state.sCount[startLine] + pos - (state.bMarks[startLine] + state.tShift[startLine]);\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[startLine] + offset) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n oldBMarks = [ state.bMarks[startLine] ];\n state.bMarks[startLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[startLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n oldBSCount = [ state.bsCount[startLine] ];\n state.bsCount[startLine] = state.sCount[startLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n lastLineEmpty = pos >= max;\n\n oldSCount = [ state.sCount[startLine] ];\n state.sCount[startLine] = offset - initial;\n\n oldTShift = [ state.tShift[startLine] ];\n state.tShift[startLine] = pos - state.bMarks[startLine];\n\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n oldParentType = state.parentType;\n state.parentType = 'blockquote';\n wasOutdented = false;\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n if (state.sCount[nextLine] < state.blkIndent) wasOutdented = true;\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break;\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !wasOutdented) {\n // This line is inside the blockquote.\n\n // skip spaces after \">\" and re-calculate offset\n initial = offset = state.sCount[nextLine] + pos - (state.bMarks[nextLine] + state.tShift[nextLine]);\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[nextLine] + offset) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n state.bMarks[nextLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n lastLineEmpty = pos >= max;\n\n oldBSCount.push(state.bsCount[nextLine]);\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] = offset - initial;\n\n oldTShift.push(state.tShift[nextLine]);\n state.tShift[nextLine] = pos - state.bMarks[nextLine];\n continue;\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break; }\n\n // Case 3: another tag found.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine;\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] -= state.blkIndent;\n }\n\n break;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1;\n }\n\n oldIndent = state.blkIndent;\n state.blkIndent = 0;\n\n token = state.push('blockquote_open', 'blockquote', 1);\n token.markup = '>';\n token.map = lines = [ startLine, 0 ];\n\n state.md.block.tokenize(state, startLine, nextLine);\n\n token = state.push('blockquote_close', 'blockquote', -1);\n token.markup = '>';\n\n state.lineMax = oldLineMax;\n state.parentType = oldParentType;\n lines[1] = state.line;\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i];\n state.tShift[i + startLine] = oldTShift[i];\n state.sCount[i + startLine] = oldSCount[i];\n state.bsCount[i + startLine] = oldBSCount[i];\n }\n state.blkIndent = oldIndent;\n\n return true;\n};\n","// Horizontal rule\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function hr(state, startLine, endLine, silent) {\n var marker, cnt, ch, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n marker = state.src.charCodeAt(pos++);\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false;\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n cnt = 1;\n while (pos < max) {\n ch = state.src.charCodeAt(pos++);\n if (ch !== marker && !isSpace(ch)) { return false; }\n if (ch === marker) { cnt++; }\n }\n\n if (cnt < 3) { return false; }\n\n if (silent) { return true; }\n\n state.line = startLine + 1;\n\n token = state.push('hr', 'hr', 0);\n token.map = [ startLine, state.line ];\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n return true;\n};\n","// Lists\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n var marker, pos, max, ch;\n\n pos = state.bMarks[startLine] + state.tShift[startLine];\n max = state.eMarks[startLine];\n\n marker = state.src.charCodeAt(pos++);\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1;\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1;\n }\n }\n\n return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n var ch,\n start = state.bMarks[startLine] + state.tShift[startLine],\n pos = start,\n max = state.eMarks[startLine];\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1; }\n\n continue;\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break;\n }\n\n return -1;\n }\n\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1;\n }\n }\n return pos;\n}\n\nfunction markTightParagraphs(state, idx) {\n var i, l,\n level = state.level + 2;\n\n for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n}\n\n\nmodule.exports = function list(state, startLine, endLine, silent) {\n var ch,\n contentStart,\n i,\n indent,\n indentAfterMarker,\n initial,\n isOrdered,\n itemLines,\n l,\n listLines,\n listTokIdx,\n markerCharCode,\n markerValue,\n max,\n nextLine,\n offset,\n oldListIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n oldTight,\n pos,\n posAfterMarker,\n prevEmptyEnd,\n start,\n terminate,\n terminatorRules,\n token,\n isTerminatingParagraph = false,\n tight = true;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[startLine] - state.listIndent >= 4 &&\n state.sCount[startLine] < state.blkIndent) {\n return false;\n }\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.tShift[startLine] >= state.blkIndent) {\n isTerminatingParagraph = true;\n }\n }\n\n // Detect list type and position after marker\n if ((posAfterMarker = skipOrderedListMarker(state, startLine)) >= 0) {\n isOrdered = true;\n start = state.bMarks[startLine] + state.tShift[startLine];\n markerValue = Number(state.src.substr(start, posAfterMarker - start - 1));\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false;\n\n } else if ((posAfterMarker = skipBulletListMarker(state, startLine)) >= 0) {\n isOrdered = false;\n\n } else {\n return false;\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[startLine]) return false;\n }\n\n // We should terminate list on style change. Remember first one to compare.\n markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n // For validation mode we can terminate immediately\n if (silent) { return true; }\n\n // Start list\n listTokIdx = state.tokens.length;\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1);\n if (markerValue !== 1) {\n token.attrs = [ [ 'start', markerValue ] ];\n }\n\n } else {\n token = state.push('bullet_list_open', 'ul', 1);\n }\n\n token.map = listLines = [ startLine, 0 ];\n token.markup = String.fromCharCode(markerCharCode);\n\n //\n // Iterate list items\n //\n\n nextLine = startLine;\n prevEmptyEnd = false;\n terminatorRules = state.md.block.ruler.getRules('list');\n\n oldParentType = state.parentType;\n state.parentType = 'list';\n\n while (nextLine < endLine) {\n pos = posAfterMarker;\n max = state.eMarks[nextLine];\n\n initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[startLine] + state.tShift[startLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n } else if (ch === 0x20) {\n offset++;\n } else {\n break;\n }\n\n pos++;\n }\n\n contentStart = pos;\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1;\n } else {\n indentAfterMarker = offset - initial;\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n indent = initial + indentAfterMarker;\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1);\n token.markup = String.fromCharCode(markerCharCode);\n token.map = itemLines = [ startLine, 0 ];\n\n // change current state, then restore it after parser subcall\n oldTight = state.tight;\n oldTShift = state.tShift[startLine];\n oldSCount = state.sCount[startLine];\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n oldListIndent = state.listIndent;\n state.listIndent = state.blkIndent;\n state.blkIndent = indent;\n\n state.tight = true;\n state.tShift[startLine] = contentStart - state.bMarks[startLine];\n state.sCount[startLine] = offset;\n\n if (contentStart >= max && state.isEmpty(startLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine);\n } else {\n state.md.block.tokenize(state, startLine, endLine, true);\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);\n\n state.blkIndent = state.listIndent;\n state.listIndent = oldListIndent;\n state.tShift[startLine] = oldTShift;\n state.sCount[startLine] = oldSCount;\n state.tight = oldTight;\n\n token = state.push('list_item_close', 'li', -1);\n token.markup = String.fromCharCode(markerCharCode);\n\n nextLine = startLine = state.line;\n itemLines[1] = nextLine;\n contentStart = state.bMarks[startLine];\n\n if (nextLine >= endLine) { break; }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { break; }\n\n // fail if terminating block found\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1);\n } else {\n token = state.push('bullet_list_close', 'ul', -1);\n }\n token.markup = String.fromCharCode(markerCharCode);\n\n listLines[1] = nextLine;\n state.line = nextLine;\n\n state.parentType = oldParentType;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n\n return true;\n};\n","'use strict';\n\n\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function reference(state, startLine, _endLine, silent) {\n var ch,\n destEndPos,\n destEndLineNo,\n endLine,\n href,\n i,\n l,\n label,\n labelEnd,\n oldParentType,\n res,\n start,\n str,\n terminate,\n terminatorRules,\n title,\n lines = 0,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine],\n nextLine = startLine + 1;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n // Simple check to quickly interrupt scan on [link](url) at the start of line.\n // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n while (++pos < max) {\n if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n if (pos + 1 === max) { return false; }\n if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n break;\n }\n }\n\n endLine = state.lineMax;\n\n // jump line-by-line until empty one or EOF\n terminatorRules = state.md.block.ruler.getRules('reference');\n\n oldParentType = state.parentType;\n state.parentType = 'reference';\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n max = str.length;\n\n for (pos = 1; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x0A /* \\n */) {\n lines++;\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n res = state.md.helpers.parseLinkDestination(str, pos, max);\n if (!res.ok) { return false; }\n\n href = state.md.normalizeLink(res.str);\n if (!state.md.validateLink(href)) { return false; }\n\n pos = res.pos;\n lines += res.lines;\n\n // save cursor state, we could require to rollback later\n destEndPos = pos;\n destEndLineNo = lines;\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n start = pos;\n for (; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n res = state.md.helpers.parseLinkTitle(str, pos, max);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n lines += res.lines;\n } else {\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false;\n }\n\n label = normalizeReference(str.slice(1, labelEnd));\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false;\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /*istanbul ignore if*/\n if (silent) { return true; }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {};\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title: title, href: href };\n }\n\n state.parentType = oldParentType;\n\n state.line = startLine + lines + 1;\n return true;\n};\n","// heading (#, ##, ...)\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n var ch, level, tmp, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n // count heading level\n level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n\n if (level > 6 || (pos < max && !isSpace(ch))) { return false; }\n\n if (silent) { return true; }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n\n state.line = startLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = '########'.slice(0, level);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = state.src.slice(pos, max).trim();\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = '########'.slice(0, level);\n\n return true;\n};\n","// lheading (---, ===)\n\n'use strict';\n\n\nmodule.exports = function lheading(state, startLine, endLine/*, silent*/) {\n var content, terminate, i, l, token, pos, max, level, marker,\n nextLine = startLine + 1, oldParentType,\n terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2);\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = String.fromCharCode(marker);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line - 1 ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = String.fromCharCode(marker);\n\n state.parentType = oldParentType;\n\n return true;\n};\n","// HTML block\n\n'use strict';\n\n\nvar block_names = require('../common/html_blocks');\nvar HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n [ /^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true ],\n [ /^/, true ],\n [ /^<\\?/, /\\?>/, true ],\n [ /^/, true ],\n [ /^/, true ],\n [ new RegExp('^|$))', 'i'), /^$/, true ],\n [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n var i, nextLine, token, lineText,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (!state.md.options.html) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n lineText = state.src.slice(pos, max);\n\n for (i = 0; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n }\n\n if (i === HTML_SEQUENCES.length) { return false; }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n\n nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++; }\n break;\n }\n }\n }\n\n state.line = nextLine;\n\n token = state.push('html_block', '', 0);\n token.map = [ startLine, nextLine ];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n return true;\n};\n","// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'meta',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n];\n","// Paragraph\n\n'use strict';\n\n\nmodule.exports = function paragraph(state, startLine/*, endLine*/) {\n var content, terminate, i, l, token, oldParentType,\n nextLine = startLine + 1,\n terminatorRules = state.md.block.ruler.getRules('paragraph'),\n endLine = state.lineMax;\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph';\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine;\n\n token = state.push('paragraph_open', 'p', 1);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('paragraph_close', 'p', -1);\n\n state.parentType = oldParentType;\n\n return true;\n};\n","// Parser state class\n\n'use strict';\n\nvar Token = require('../token');\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n var ch, s, start, pos, len, indent, offset, indent_found;\n\n this.src = src;\n\n // link to parser instance\n this.md = md;\n\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = [];\n\n // block parser variables\n this.blkIndent = 0; // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root';\n\n this.level = 0;\n\n // renderer\n this.result = '';\n\n // Create caches\n // Generate markers.\n s = this.src;\n indent_found = false;\n\n for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n ch = s.charCodeAt(pos);\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++;\n\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++; }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n this.bsCount.push(0);\n\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n this.bsCount.push(0);\n\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n var token = new Token(type, tag, nesting);\n token.block = true;\n\n if (nesting < 0) this.level--; // closing tag\n token.level = this.level;\n if (nesting > 0) this.level++; // opening tag\n\n this.tokens.push(token);\n return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (var max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n var ch;\n\n for (var max = this.src.length; pos < max; pos++) {\n ch = this.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n }\n return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n }\n return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (var max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break; }\n }\n return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n }\n return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n var i, lineIndent, ch, first, last, queue, lineStart,\n line = begin;\n\n if (begin >= end) {\n return '';\n }\n\n queue = new Array(end - begin);\n\n for (i = 0; line < end; line++, i++) {\n lineIndent = 0;\n lineStart = first = this.bMarks[line];\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n\n while (first < last && lineIndent < indent) {\n ch = this.src.charCodeAt(first);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n\n first++;\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n } else {\n queue[i] = this.src.slice(first, last);\n }\n }\n\n return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n [ 'text', require('./rules_inline/text') ],\n [ 'newline', require('./rules_inline/newline') ],\n [ 'escape', require('./rules_inline/escape') ],\n [ 'backticks', require('./rules_inline/backticks') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').tokenize ],\n [ 'emphasis', require('./rules_inline/emphasis').tokenize ],\n [ 'link', require('./rules_inline/link') ],\n [ 'image', require('./rules_inline/image') ],\n [ 'autolink', require('./rules_inline/autolink') ],\n [ 'html_inline', require('./rules_inline/html_inline') ],\n [ 'entity', require('./rules_inline/entity') ]\n];\n\nvar _rules2 = [\n [ 'balance_pairs', require('./rules_inline/balance_pairs') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').postProcess ],\n [ 'emphasis', require('./rules_inline/emphasis').postProcess ],\n [ 'text_collapse', require('./rules_inline/text_collapse') ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n var i;\n\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler();\n\n for (i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler();\n\n for (i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n var ok, i, pos = state.pos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n maxNesting = state.md.options.maxNesting,\n cache = state.cache;\n\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n\n if (ok) { break; }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n\n if (!ok) { state.pos++; }\n cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n end = state.posMax,\n maxNesting = state.md.options.maxNesting;\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) { break; }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break; }\n continue;\n }\n\n state.pending += state.src[state.pos++];\n }\n\n if (state.pending) {\n state.pushPending();\n }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n var i, rules, len;\n var state = new this.State(str, md, env, outTokens);\n\n this.tokenize(state);\n\n rules = this.ruler2.getRules('');\n len = rules.length;\n\n for (i = 0; i < len; i++) {\n rules[i](state);\n }\n};\n\n\nParserInline.prototype.State = require('./rules_inline/state_inline');\n\n\nmodule.exports = ParserInline;\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n'use strict';\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos;\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n\n if (pos === state.pos) { return false; }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n state.pos = pos;\n\n return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n};*/\n","// Proceess '\\n'\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function newline(state, silent) {\n var pmax, max, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n state.pending = state.pending.replace(/ +$/, '');\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++; }\n\n state.pos = pos;\n return true;\n};\n","// Process escaped chars and hardbreaks\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n var ch, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) { return false; }\n\n pos++;\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch < 256 && ESCAPED[ch] !== 0) {\n if (!silent) { state.pending += state.src[pos]; }\n state.pos += 2;\n return true;\n }\n\n if (ch === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n state.pos = pos;\n return true;\n }\n }\n\n if (!silent) { state.pending += '\\\\'; }\n state.pos++;\n return true;\n};\n","// Parse backticks\n\n'use strict';\n\nmodule.exports = function backtick(state, silent) {\n var start, max, marker, matchStart, matchEnd, token,\n pos = state.pos,\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x60/* ` */) { return false; }\n\n start = pos;\n pos++;\n max = state.posMax;\n\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n marker = state.src.slice(start, pos);\n\n matchStart = matchEnd = pos;\n\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1;\n\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n if (matchEnd - matchStart === marker.length) {\n if (!silent) {\n token = state.push('code_inline', 'code', 0);\n token.markup = marker;\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1');\n }\n state.pos = matchEnd;\n return true;\n }\n }\n\n if (!silent) { state.pending += marker; }\n state.pos += marker.length;\n return true;\n};\n","// Process [link]( \"stuff\")\n\n'use strict';\n\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function link(state, silent) {\n var attrs,\n code,\n label,\n labelEnd,\n labelStart,\n pos,\n res,\n ref,\n title,\n token,\n href = '',\n oldPos = state.pos,\n max = state.posMax,\n start = state.pos,\n parseReference = true;\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 1;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push('link_open', 'a', 1);\n token.attrs = attrs = [ [ 'href', href ] ];\n if (title) {\n attrs.push([ 'title', title ]);\n }\n\n state.md.inline.tokenize(state);\n\n token = state.push('link_close', 'a', -1);\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Process ![image]( \"title\")\n\n'use strict';\n\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function image(state, silent) {\n var attrs,\n code,\n content,\n label,\n labelEnd,\n labelStart,\n pos,\n ref,\n res,\n title,\n token,\n tokens,\n start,\n href = '',\n oldPos = state.pos,\n max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 2;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('image', 'img', 0);\n token.attrs = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n token.children = tokens;\n token.content = content;\n\n if (title) {\n attrs.push([ 'title', title ]);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Process autolinks ''\n\n'use strict';\n\n\n/*eslint max-len:0*/\nvar EMAIL_RE = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar AUTOLINK_RE = /^<([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)>/;\n\n\nmodule.exports = function autolink(state, silent) {\n var tail, linkMatch, emailMatch, url, fullUrl, token,\n pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n tail = state.src.slice(pos);\n\n if (tail.indexOf('>') < 0) { return false; }\n\n if (AUTOLINK_RE.test(tail)) {\n linkMatch = tail.match(AUTOLINK_RE);\n\n url = linkMatch[0].slice(1, -1);\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += linkMatch[0].length;\n return true;\n }\n\n if (EMAIL_RE.test(tail)) {\n emailMatch = tail.match(EMAIL_RE);\n\n url = emailMatch[0].slice(1, -1);\n fullUrl = state.md.normalizeLink('mailto:' + url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += emailMatch[0].length;\n return true;\n }\n\n return false;\n};\n","// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = state.src.slice(pos, pos + match[0].length);\n }\n state.pos += match[0].length;\n return true;\n};\n","// Process html entity - {, ¯, ", ...\n\n'use strict';\n\nvar entities = require('../common/entities');\nvar has = require('../common/utils').has;\nvar isValidEntityCode = require('../common/utils').isValidEntityCode;\nvar fromCodePoint = require('../common/utils').fromCodePoint;\n\n\nvar DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\nvar NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n var ch, code, match, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }\n\n if (pos + 1 < max) {\n ch = state.src.charCodeAt(pos + 1);\n\n if (ch === 0x23 /* # */) {\n match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n state.pending += isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n if (has(entities, match[1])) {\n if (!silent) { state.pending += entities[match[1]]; }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n }\n\n if (!silent) { state.pending += '&'; }\n state.pos++;\n return true;\n};\n","// For each opening emphasis-like marker find a matching closing one\n//\n'use strict';\n\n\nfunction processDelimiters(state, delimiters) {\n var closerIdx, openerIdx, closer, opener, minOpenerIdx, newMinOpenerIdx,\n isOddMatch, lastJump,\n openersBottom = {},\n max = delimiters.length;\n\n for (closerIdx = 0; closerIdx < max; closerIdx++) {\n closer = delimiters[closerIdx];\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0;\n\n if (!closer.close) continue;\n\n // Previously calculated lower bounds (previous fails)\n // for each marker and each delimiter length modulo 3.\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [ -1, -1, -1 ];\n }\n\n minOpenerIdx = openersBottom[closer.marker][closer.length % 3];\n newMinOpenerIdx = -1;\n\n openerIdx = closerIdx - closer.jump - 1;\n\n for (; openerIdx > minOpenerIdx; openerIdx -= opener.jump + 1) {\n opener = delimiters[openerIdx];\n\n if (opener.marker !== closer.marker) continue;\n\n if (newMinOpenerIdx === -1) newMinOpenerIdx = openerIdx;\n\n if (opener.open &&\n opener.end < 0 &&\n opener.level === closer.level) {\n\n isOddMatch = false;\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true;\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ?\n delimiters[openerIdx - 1].jump + 1 :\n 0;\n\n closer.jump = closerIdx - openerIdx + lastJump;\n closer.open = false;\n opener.end = closerIdx;\n opener.jump = lastJump;\n opener.close = false;\n newMinOpenerIdx = -1;\n break;\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.length || 0) % 3] = newMinOpenerIdx;\n }\n }\n}\n\n\nmodule.exports = function link_pairs(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n processDelimiters(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n'use strict';\n\n\nmodule.exports = function text_collapse(state) {\n var curr, last,\n level = 0,\n tokens = state.tokens,\n max = state.tokens.length;\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level--; // closing tag\n tokens[curr].level = level;\n if (tokens[curr].nesting > 0) level++; // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n};\n","// Inline parser state\n\n'use strict';\n\n\nvar Token = require('../token');\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n this.tokens_meta = Array(outTokens.length);\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {};\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = [];\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = [];\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n var token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token = new Token(type, tag, nesting);\n var token_meta = null;\n\n if (nesting < 0) {\n // closing tag\n this.level--;\n this.delimiters = this._prev_delimiters.pop();\n }\n\n token.level = this.level;\n\n if (nesting > 0) {\n // opening tag\n this.level++;\n this._prev_delimiters.push(this.delimiters);\n this.delimiters = [];\n token_meta = { delimiters: this.delimiters };\n }\n\n this.pendingLevel = this.level;\n this.tokens.push(token);\n this.tokens_meta.push(token_meta);\n return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' + // allow `I'm_king` if no pair found\n '\\\\.{2,}[a-zA-Z0-9%/&]|' + // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n (opts && opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n '\\\\,(?!' + re.src_ZCc + ').|' + // allow `,,,` in paths\n '\\\\!+(?!' + re.src_ZCc + '|[!]).|' + // allow `!!!` in paths, but not at the end\n '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","// markdown-it default options\n\n'use strict';\n\n\nmodule.exports = {\n options: {\n html: false, // Enable HTML tags in source\n xhtmlOut: false, // Use '/' to close single tags (
)\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with 0x10ffff || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = codePoint % 0x400 + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += String.fromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n\n return result;\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport { buildSearch } from './data';\nimport stringFromCodePoint from '../polyfills/stringFromCodePoint';\nimport { uncompress } from './data';\nvar COLONS_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/;\nvar SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF'];\n\nfunction unifiedToNative(unified) {\n var unicodes = unified.split('-'),\n codePoints = unicodes.map(function (u) {\n return \"0x\".concat(u);\n });\n return stringFromCodePoint.apply(null, codePoints);\n}\n\nfunction sanitize(emoji) {\n var name = emoji.name,\n short_names = emoji.short_names,\n skin_tone = emoji.skin_tone,\n skin_variations = emoji.skin_variations,\n emoticons = emoji.emoticons,\n unified = emoji.unified,\n custom = emoji.custom,\n customCategory = emoji.customCategory,\n imageUrl = emoji.imageUrl,\n id = emoji.id || short_names[0],\n colons = \":\".concat(id, \":\");\n\n if (custom) {\n return {\n id: id,\n name: name,\n short_names: short_names,\n colons: colons,\n emoticons: emoticons,\n custom: custom,\n customCategory: customCategory,\n imageUrl: imageUrl\n };\n }\n\n if (skin_tone) {\n colons += \":skin-tone-\".concat(skin_tone, \":\");\n }\n\n return {\n id: id,\n name: name,\n short_names: short_names,\n colons: colons,\n emoticons: emoticons,\n unified: unified.toLowerCase(),\n skin: skin_tone || (skin_variations ? 1 : null),\n \"native\": unifiedToNative(unified)\n };\n}\n\nfunction getSanitizedData() {\n return sanitize(getData.apply(void 0, arguments));\n}\n\nfunction getData(emoji, skin, set, data) {\n var emojiData = {};\n\n if (typeof emoji == 'string') {\n var matches = emoji.match(COLONS_REGEX);\n\n if (matches) {\n emoji = matches[1];\n\n if (matches[2]) {\n skin = parseInt(matches[2], 10);\n }\n }\n\n if (data.aliases.hasOwnProperty(emoji)) {\n emoji = data.aliases[emoji];\n }\n\n if (data.emojis.hasOwnProperty(emoji)) {\n emojiData = data.emojis[emoji];\n } else {\n return null;\n }\n } else if (emoji.id) {\n if (data.aliases.hasOwnProperty(emoji.id)) {\n emoji.id = data.aliases[emoji.id];\n }\n\n if (data.emojis.hasOwnProperty(emoji.id)) {\n emojiData = data.emojis[emoji.id];\n skin || (skin = emoji.skin);\n }\n }\n\n if (!Object.keys(emojiData).length) {\n emojiData = emoji;\n emojiData.custom = true;\n\n if (!emojiData.search) {\n emojiData.search = buildSearch(emoji);\n }\n }\n\n emojiData.emoticons || (emojiData.emoticons = []);\n emojiData.variations || (emojiData.variations = []);\n\n if (emojiData.skin_variations && skin > 1) {\n emojiData = JSON.parse(JSON.stringify(emojiData));\n var skinKey = SKINS[skin - 1],\n variationData = emojiData.skin_variations[skinKey];\n\n if (variationData) {\n if (!variationData.variations && emojiData.variations) {\n delete emojiData.variations;\n }\n\n if (set && (variationData[\"has_img_\".concat(set)] == undefined || variationData[\"has_img_\".concat(set)]) || !set) {\n emojiData.skin_tone = skin;\n\n for (var k in variationData) {\n var v = variationData[k];\n emojiData[k] = v;\n }\n }\n }\n }\n\n if (emojiData.variations && emojiData.variations.length) {\n emojiData = JSON.parse(JSON.stringify(emojiData));\n emojiData.unified = emojiData.variations.shift();\n }\n\n return emojiData;\n}\n\nfunction getEmojiDataFromNative(nativeString, set, data) {\n if (data.compressed) {\n uncompress(data);\n }\n\n var skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿'];\n var skinCodes = ['1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF'];\n var skin;\n var skinCode;\n var baseNativeString = nativeString;\n skinTones.forEach(function (skinTone, skinToneIndex) {\n if (nativeString.indexOf(skinTone) > 0) {\n skin = skinToneIndex + 2;\n skinCode = skinCodes[skinToneIndex];\n }\n });\n var emojiData;\n\n for (var id in data.emojis) {\n var emoji = data.emojis[id];\n var emojiUnified = emoji.unified;\n\n if (emoji.variations && emoji.variations.length) {\n emojiUnified = emoji.variations.shift();\n }\n\n if (skin && emoji.skin_variations && emoji.skin_variations[skinCode]) {\n emojiUnified = emoji.skin_variations[skinCode].unified;\n }\n\n if (unifiedToNative(emojiUnified) === baseNativeString) emojiData = emoji;\n }\n\n if (!emojiData) {\n return null;\n }\n\n emojiData.id = emojiData.short_names[0];\n return getSanitizedData(emojiData, skin, set, data);\n}\n\nfunction uniq(arr) {\n return arr.reduce(function (acc, item) {\n if (acc.indexOf(item) === -1) {\n acc.push(item);\n }\n\n return acc;\n }, []);\n}\n\nfunction intersect(a, b) {\n var uniqA = uniq(a);\n var uniqB = uniq(b);\n return uniqA.filter(function (item) {\n return uniqB.indexOf(item) >= 0;\n });\n}\n\nfunction deepMerge(a, b) {\n var o = {};\n\n for (var key in a) {\n var originalValue = a[key],\n value = originalValue;\n\n if (b.hasOwnProperty(key)) {\n value = b[key];\n }\n\n if (_typeof(value) === 'object') {\n value = deepMerge(originalValue, value);\n }\n\n o[key] = value;\n }\n\n return o;\n} // https://github.com/sonicdoe/measure-scrollbar\n\n\nfunction measureScrollbar() {\n if (typeof document == 'undefined') return 0;\n var div = document.createElement('div');\n div.style.width = '100px';\n div.style.height = '100px';\n div.style.overflow = 'scroll';\n div.style.position = 'absolute';\n div.style.top = '-9999px';\n document.body.appendChild(div);\n var scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n return scrollbarWidth;\n} // Use requestIdleCallback() if available, else fall back to setTimeout().\n// Throttle so as not to run too frequently.\n\n\nfunction throttleIdleTask(func) {\n var doIdleTask = typeof requestIdleCallback === 'function' ? requestIdleCallback : setTimeout;\n var running = false;\n return function throttled() {\n if (running) {\n return;\n }\n\n running = true;\n doIdleTask(function () {\n running = false;\n func();\n });\n };\n}\n\nexport { getData, getEmojiDataFromNative, getSanitizedData, uniq, intersect, deepMerge, unifiedToNative, measureScrollbar, throttleIdleTask };","var NAMESPACE = 'emoji-mart';\nvar isLocalStorageSupported = typeof window !== 'undefined' && 'localStorage' in window;\nvar getter;\nvar setter;\n\nfunction setHandlers(handlers) {\n handlers || (handlers = {});\n getter = handlers.getter;\n setter = handlers.setter;\n}\n\nfunction setNamespace(namespace) {\n NAMESPACE = namespace;\n}\n\nfunction update(state) {\n for (var key in state) {\n var value = state[key];\n set(key, value);\n }\n}\n\nfunction set(key, value) {\n if (setter) {\n setter(key, value);\n } else {\n if (!isLocalStorageSupported) return;\n\n try {\n window.localStorage[\"\".concat(NAMESPACE, \".\").concat(key)] = JSON.stringify(value);\n } catch (e) {}\n }\n}\n\nfunction get(key) {\n if (getter) {\n return getter(key);\n } else {\n if (!isLocalStorageSupported) return;\n\n try {\n var value = window.localStorage[\"\".concat(NAMESPACE, \".\").concat(key)];\n\n if (value) {\n return JSON.parse(value);\n }\n } catch (e) {\n return;\n }\n }\n}\n\nexport default {\n update: update,\n set: set,\n get: get,\n setNamespace: setNamespace,\n setHandlers: setHandlers\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport { getData, getSanitizedData, intersect } from '..';\nimport { uncompress } from '../data';\nimport store from '../store';\n\nvar NimbleEmojiIndex =\n/*#__PURE__*/\nfunction () {\n function NimbleEmojiIndex(data, set) {\n _classCallCheck(this, NimbleEmojiIndex);\n\n if (data.compressed) {\n uncompress(data);\n }\n\n this.data = data || {};\n this.set = set || null;\n this.originalPool = {};\n this.index = {};\n this.emojis = {};\n this.emoticons = {};\n this.customEmojisList = [];\n this.buildIndex();\n }\n\n _createClass(NimbleEmojiIndex, [{\n key: \"buildIndex\",\n value: function buildIndex() {\n var _this = this;\n\n var _loop = function _loop(emoji) {\n var emojiData = _this.data.emojis[emoji],\n short_names = emojiData.short_names,\n emoticons = emojiData.emoticons,\n skin_variations = emojiData.skin_variations,\n id = short_names[0];\n\n if (emoticons) {\n emoticons.forEach(function (emoticon) {\n if (_this.emoticons[emoticon]) {\n return;\n }\n\n _this.emoticons[emoticon] = id;\n });\n } // If skin variations include them\n\n\n if (skin_variations) {\n _this.emojis[id] = {};\n\n for (var skinTone = 1; skinTone <= 6; skinTone++) {\n _this.emojis[id][skinTone] = getSanitizedData({\n id: id,\n skin: skinTone\n }, skinTone, _this.set, _this.data);\n }\n } else {\n _this.emojis[id] = getSanitizedData(id, null, _this.set, _this.data);\n }\n\n _this.originalPool[id] = emojiData;\n };\n\n for (var emoji in this.data.emojis) {\n _loop(emoji);\n }\n }\n }, {\n key: \"clearCustomEmojis\",\n value: function clearCustomEmojis(pool) {\n var _this2 = this;\n\n this.customEmojisList.forEach(function (emoji) {\n var emojiId = emoji.id || emoji.short_names[0];\n delete pool[emojiId];\n delete _this2.emojis[emojiId];\n });\n }\n }, {\n key: \"addCustomToPool\",\n value: function addCustomToPool(custom, pool) {\n var _this3 = this;\n\n if (this.customEmojisList.length) this.clearCustomEmojis(pool);\n custom.forEach(function (emoji) {\n var emojiId = emoji.id || emoji.short_names[0];\n\n if (emojiId && !pool[emojiId]) {\n pool[emojiId] = getData(emoji, null, null, _this3.data);\n _this3.emojis[emojiId] = getSanitizedData(emoji, null, null, _this3.data);\n }\n });\n this.customEmojisList = custom;\n this.index = {};\n }\n }, {\n key: \"search\",\n value: function search(value) {\n var _this4 = this;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n emojisToShowFilter = _ref.emojisToShowFilter,\n maxResults = _ref.maxResults,\n include = _ref.include,\n exclude = _ref.exclude,\n _ref$custom = _ref.custom,\n custom = _ref$custom === void 0 ? [] : _ref$custom;\n\n if (this.customEmojisList != custom) this.addCustomToPool(custom, this.originalPool);\n var skinTone = store.get('skin') || 1;\n maxResults || (maxResults = 75);\n include || (include = []);\n exclude || (exclude = []);\n var results = null,\n pool = this.originalPool;\n\n if (value.length) {\n if (value == '-' || value == '-1') {\n return [this.emojis['-1'][skinTone]];\n }\n\n var values = value.toLowerCase().split(/[\\s|,|\\-|_]+/),\n allResults = [];\n\n if (values.length > 2) {\n values = [values[0], values[1]];\n }\n\n if (include.length || exclude.length) {\n pool = {};\n this.data.categories.forEach(function (category) {\n var isIncluded = include && include.length ? include.indexOf(category.id) > -1 : true;\n var isExcluded = exclude && exclude.length ? exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n return;\n }\n\n category.emojis.forEach(function (emojiId) {\n return pool[emojiId] = _this4.data.emojis[emojiId];\n });\n });\n\n if (custom.length) {\n var customIsIncluded = include && include.length ? include.indexOf('custom') > -1 : true;\n var customIsExcluded = exclude && exclude.length ? exclude.indexOf('custom') > -1 : false;\n\n if (customIsIncluded && !customIsExcluded) {\n this.addCustomToPool(custom, pool);\n }\n }\n }\n\n allResults = values.map(function (value) {\n var aPool = pool,\n aIndex = _this4.index,\n length = 0;\n\n for (var charIndex = 0; charIndex < value.length; charIndex++) {\n var _char = value[charIndex];\n length++;\n aIndex[_char] || (aIndex[_char] = {});\n aIndex = aIndex[_char];\n\n if (!aIndex.results) {\n (function () {\n var scores = {};\n aIndex.results = [];\n aIndex.pool = {};\n\n for (var id in aPool) {\n var emoji = aPool[id],\n search = emoji.search,\n sub = value.substr(0, length),\n subIndex = search.indexOf(sub);\n\n if (subIndex != -1) {\n var score = subIndex + 1;\n if (sub == id) score = 0;\n\n if (_this4.emojis[id] && _this4.emojis[id][skinTone]) {\n aIndex.results.push(_this4.emojis[id][skinTone]);\n } else {\n aIndex.results.push(_this4.emojis[id]);\n }\n\n aIndex.pool[id] = emoji;\n scores[id] = score;\n }\n }\n\n aIndex.results.sort(function (a, b) {\n var aScore = scores[a.id],\n bScore = scores[b.id];\n\n if (aScore == bScore) {\n return a.id.localeCompare(b.id);\n } else {\n return aScore - bScore;\n }\n });\n })();\n }\n\n aPool = aIndex.pool;\n }\n\n return aIndex.results;\n }).filter(function (a) {\n return a;\n });\n\n if (allResults.length > 1) {\n results = intersect.apply(null, allResults);\n } else if (allResults.length) {\n results = allResults[0];\n } else {\n results = [];\n }\n }\n\n if (results) {\n if (emojisToShowFilter) {\n results = results.filter(function (result) {\n return emojisToShowFilter(pool[result.id]);\n });\n }\n\n if (results && results.length > maxResults) {\n results = results.slice(0, maxResults);\n }\n }\n\n return results;\n }\n }]);\n\n return NimbleEmojiIndex;\n}();\n\nexport { NimbleEmojiIndex as default };","import data from '../../../data/all.json';\nimport NimbleEmojiIndex from './nimble-emoji-index';\nvar emojiIndex = new NimbleEmojiIndex(data);\nvar emojis = emojiIndex.emojis,\n emoticons = emojiIndex.emoticons;\n\nfunction search() {\n return emojiIndex.search.apply(emojiIndex, arguments);\n}\n\nexport default {\n search: search,\n emojis: emojis,\n emoticons: emoticons\n};","import store from './store';\nvar DEFAULTS = ['+1', 'grinning', 'kissing_heart', 'heart_eyes', 'laughing', 'stuck_out_tongue_winking_eye', 'sweat_smile', 'joy', 'scream', 'disappointed', 'unamused', 'weary', 'sob', 'sunglasses', 'heart', 'poop'];\nvar frequently, initialized;\nvar defaults = {};\n\nfunction init() {\n initialized = true;\n frequently = store.get('frequently');\n}\n\nfunction add(emoji) {\n if (!initialized) init();\n var id = emoji.id;\n frequently || (frequently = defaults);\n frequently[id] || (frequently[id] = 0);\n frequently[id] += 1;\n store.set('last', id);\n store.set('frequently', frequently);\n}\n\nfunction get(perLine) {\n if (!initialized) init();\n\n if (!frequently) {\n defaults = {};\n var result = [];\n\n for (var i = 0; i < perLine; i++) {\n defaults[DEFAULTS[i]] = perLine - i;\n result.push(DEFAULTS[i]);\n }\n\n return result;\n }\n\n var quantity = perLine * 4;\n var frequentlyKeys = [];\n\n for (var key in frequently) {\n if (frequently.hasOwnProperty(key)) {\n frequentlyKeys.push(key);\n }\n }\n\n var sorted = frequentlyKeys.sort(function (a, b) {\n return frequently[a] - frequently[b];\n }).reverse();\n var sliced = sorted.slice(0, quantity);\n var last = store.get('last');\n\n if (last && sliced.indexOf(last) == -1) {\n sliced.pop();\n sliced.push(last);\n }\n\n return sliced;\n}\n\nexport default {\n add: add,\n get: get\n};","import React from 'react';\nvar categories = {\n activity: function activity() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"\n }));\n },\n custom: function custom() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"g\", {\n transform: \"translate(2.000000, 1.000000)\"\n }, React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: \"8\",\n y: \"0\",\n width: \"3\",\n height: \"21\",\n rx: \"1.5\"\n }), React.createElement(\"rect\", {\n id: \"Rectangle\",\n transform: \"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \",\n x: \"8.343\",\n y: \"0.049\",\n width: \"3\",\n height: \"21\",\n rx: \"1.5\"\n }), React.createElement(\"rect\", {\n id: \"Rectangle\",\n transform: \"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \",\n x: \"8.343\",\n y: \"0.049\",\n width: \"3\",\n height: \"21\",\n rx: \"1.5\"\n })));\n },\n flags: function flags() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"\n }));\n },\n foods: function foods() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"\n }));\n },\n nature: function nature() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"\n }), React.createElement(\"path\", {\n d: \"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"\n }));\n },\n objects: function objects() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"\n }), React.createElement(\"path\", {\n d: \"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"\n }));\n },\n people: function people() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"\n }), React.createElement(\"path\", {\n d: \"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"\n }));\n },\n places: function places() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"\n }), React.createElement(\"path\", {\n d: \"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"\n }));\n },\n recent: function recent() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"\n }), React.createElement(\"path\", {\n d: \"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"\n }));\n },\n symbols: function symbols() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"\n }));\n }\n};\nvar search = {\n search: function search() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"13\",\n height: \"13\",\n viewBox: \"0 0 20 20\",\n opacity: \"0.5\"\n }, React.createElement(\"path\", {\n d: \"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z\"\n }));\n },\n \"delete\": function _delete() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"13\",\n height: \"13\",\n viewBox: \"0 0 20 20\",\n opacity: \"0.5\"\n }, React.createElement(\"path\", {\n d: \"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z\"\n }));\n }\n};\nexport { categories, search };","import PropTypes from 'prop-types';\nvar EmojiPropTypes = {\n data: PropTypes.object.isRequired,\n onOver: PropTypes.func,\n onLeave: PropTypes.func,\n onClick: PropTypes.func,\n fallback: PropTypes.func,\n backgroundImageFn: PropTypes.func,\n \"native\": PropTypes.bool,\n forceSize: PropTypes.bool,\n tooltip: PropTypes.bool,\n useButton: PropTypes.bool,\n skin: PropTypes.oneOf([1, 2, 3, 4, 5, 6]),\n sheetSize: PropTypes.oneOf([16, 20, 32, 64]),\n sheetColumns: PropTypes.number,\n sheetRows: PropTypes.number,\n set: PropTypes.oneOf(['apple', 'google', 'twitter', 'facebook']),\n size: PropTypes.number.isRequired,\n emoji: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nvar PickerPropTypes = {\n onClick: PropTypes.func,\n onSelect: PropTypes.func,\n onSkinChange: PropTypes.func,\n perLine: PropTypes.number,\n emojiSize: PropTypes.number,\n i18n: PropTypes.object,\n style: PropTypes.object,\n title: PropTypes.string,\n emoji: PropTypes.string,\n color: PropTypes.string,\n set: EmojiPropTypes.set,\n skin: EmojiPropTypes.skin,\n \"native\": PropTypes.bool,\n backgroundImageFn: EmojiPropTypes.backgroundImageFn,\n sheetSize: EmojiPropTypes.sheetSize,\n emojisToShowFilter: PropTypes.func,\n showPreview: PropTypes.bool,\n showSkinTones: PropTypes.bool,\n emojiTooltip: EmojiPropTypes.tooltip,\n useButton: EmojiPropTypes.useButton,\n theme: PropTypes.oneOf(['auto', 'light', 'dark']),\n include: PropTypes.arrayOf(PropTypes.string),\n exclude: PropTypes.arrayOf(PropTypes.string),\n recent: PropTypes.arrayOf(PropTypes.string),\n autoFocus: PropTypes.bool,\n enableFrequentEmojiSort: PropTypes.bool,\n custom: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n short_names: PropTypes.arrayOf(PropTypes.string).isRequired,\n emoticons: PropTypes.arrayOf(PropTypes.string),\n keywords: PropTypes.arrayOf(PropTypes.string),\n imageUrl: PropTypes.string,\n spriteUrl: PropTypes.string,\n sheet_x: PropTypes.number,\n sheet_y: PropTypes.number,\n size: PropTypes.number,\n sheetColumns: PropTypes.number,\n sheetRows: PropTypes.number\n })),\n skinEmoji: PropTypes.string,\n notFound: PropTypes.func,\n notFoundEmoji: PropTypes.string,\n icons: PropTypes.object\n};\nexport { EmojiPropTypes, PickerPropTypes };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Anchors =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Anchors, _React$PureComponent);\n\n function Anchors(props) {\n var _this;\n\n _classCallCheck(this, Anchors);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Anchors).call(this, props));\n var defaultCategory = props.categories.filter(function (category) {\n return category.first;\n })[0];\n _this.state = {\n selected: defaultCategory.name\n };\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Anchors, [{\n key: \"handleClick\",\n value: function handleClick(e) {\n var index = e.currentTarget.getAttribute('data-index');\n var _this$props = this.props,\n categories = _this$props.categories,\n onAnchorClick = _this$props.onAnchorClick;\n onAnchorClick(categories[index], index);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n categories = _this$props2.categories,\n color = _this$props2.color,\n i18n = _this$props2.i18n,\n icons = _this$props2.icons,\n selected = this.state.selected;\n return React.createElement(\"nav\", {\n className: \"emoji-mart-anchors\",\n \"aria-label\": i18n.categorieslabel\n }, categories.map(function (category, i) {\n var id = category.id,\n name = category.name,\n anchor = category.anchor,\n isSelected = name == selected;\n\n if (anchor === false) {\n return null;\n }\n\n var iconId = id.startsWith('custom-') ? 'custom' : id;\n return React.createElement(\"button\", {\n key: id,\n \"aria-label\": i18n.categories[id],\n title: i18n.categories[id],\n \"data-index\": i,\n type: 'button',\n onClick: _this2.handleClick,\n className: \"emoji-mart-anchor \".concat(isSelected ? 'emoji-mart-anchor-selected' : ''),\n style: {\n color: isSelected ? color : null\n }\n }, React.createElement(\"div\", {\n className: \"emoji-mart-anchor-icon\"\n }, icons.categories[iconId]()), React.createElement(\"span\", {\n className: \"emoji-mart-anchor-bar\",\n style: {\n backgroundColor: color\n }\n }));\n }));\n }\n }]);\n\n return Anchors;\n}(React.PureComponent);\n\nexport { Anchors as default };\nAnchors.propTypes\n/* remove-proptypes */\n= {\n categories: PropTypes.array,\n onAnchorClick: PropTypes.func,\n icons: PropTypes.object\n};\nAnchors.defaultProps = {\n categories: [],\n onAnchorClick: function onAnchorClick() {},\n icons: {}\n};","var EmojiDefaultProps = {\n skin: 1,\n set: 'apple',\n sheetSize: 64,\n sheetColumns: 57,\n sheetRows: 57,\n \"native\": false,\n forceSize: false,\n tooltip: false,\n useButton: true,\n backgroundImageFn: function backgroundImageFn(set, sheetSize) {\n return \"https://unpkg.com/emoji-datasource-\".concat(set, \"@\").concat(\"5.0.1\", \"/img/\").concat(set, \"/sheets-256/\").concat(sheetSize, \".png\");\n }\n};\nvar PickerDefaultProps = {\n onClick: function onClick() {},\n onSelect: function onSelect() {},\n onSkinChange: function onSkinChange() {},\n emojiSize: 24,\n perLine: 9,\n i18n: {},\n style: {},\n title: 'Emoji Mart™',\n emoji: 'department_store',\n color: '#ae65c5',\n set: EmojiDefaultProps.set,\n theme: 'light',\n skin: null,\n defaultSkin: EmojiDefaultProps.skin,\n \"native\": EmojiDefaultProps[\"native\"],\n sheetSize: EmojiDefaultProps.sheetSize,\n backgroundImageFn: EmojiDefaultProps.backgroundImageFn,\n emojisToShowFilter: null,\n showPreview: true,\n showSkinTones: true,\n emojiTooltip: EmojiDefaultProps.tooltip,\n useButton: EmojiDefaultProps.useButton,\n autoFocus: false,\n enableFrequentEmojiSort: false,\n custom: [],\n skinEmoji: '',\n notFound: function notFound() {},\n notFoundEmoji: 'sleuth_or_spy',\n icons: {}\n};\nexport { PickerDefaultProps, EmojiDefaultProps };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getData, getSanitizedData, unifiedToNative } from '../../utils';\nimport { uncompress } from '../../utils/data';\nimport { EmojiPropTypes } from '../../utils/shared-props';\nimport { EmojiDefaultProps } from '../../utils/shared-default-props';\n\nvar _getData = function _getData(props) {\n var emoji = props.emoji,\n skin = props.skin,\n set = props.set,\n data = props.data;\n return getData(emoji, skin, set, data);\n};\n\nvar _getPosition = function _getPosition(props) {\n var _getData2 = _getData(props),\n sheet_x = _getData2.sheet_x,\n sheet_y = _getData2.sheet_y,\n multiplyX = 100 / (props.sheetColumns - 1),\n multiplyY = 100 / (props.sheetRows - 1);\n\n return \"\".concat(multiplyX * sheet_x, \"% \").concat(multiplyY * sheet_y, \"%\");\n};\n\nvar _getSanitizedData = function _getSanitizedData(props) {\n var emoji = props.emoji,\n skin = props.skin,\n set = props.set,\n data = props.data;\n return getSanitizedData(emoji, skin, set, data);\n};\n\nvar _handleClick = function _handleClick(e, props) {\n if (!props.onClick) {\n return;\n }\n\n var onClick = props.onClick,\n emoji = _getSanitizedData(props);\n\n onClick(emoji, e);\n};\n\nvar _handleOver = function _handleOver(e, props) {\n if (!props.onOver) {\n return;\n }\n\n var onOver = props.onOver,\n emoji = _getSanitizedData(props);\n\n onOver(emoji, e);\n};\n\nvar _handleLeave = function _handleLeave(e, props) {\n if (!props.onLeave) {\n return;\n }\n\n var onLeave = props.onLeave,\n emoji = _getSanitizedData(props);\n\n onLeave(emoji, e);\n};\n\nvar _isNumeric = function _isNumeric(value) {\n return !isNaN(value - parseFloat(value));\n};\n\nvar _convertStyleToCSS = function _convertStyleToCSS(style) {\n var div = document.createElement('div');\n\n for (var key in style) {\n var value = style[key];\n\n if (_isNumeric(value)) {\n value += 'px';\n }\n\n div.style[key] = value;\n }\n\n return div.getAttribute('style');\n};\n\nvar NimbleEmoji = function NimbleEmoji(props) {\n if (props.data.compressed) {\n uncompress(props.data);\n }\n\n for (var k in NimbleEmoji.defaultProps) {\n if (props[k] == undefined && NimbleEmoji.defaultProps[k] != undefined) {\n props[k] = NimbleEmoji.defaultProps[k];\n }\n }\n\n var data = _getData(props);\n\n if (!data) {\n if (props.fallback) {\n return props.fallback(null, props);\n } else {\n return null;\n }\n }\n\n var unified = data.unified,\n custom = data.custom,\n short_names = data.short_names,\n imageUrl = data.imageUrl,\n style = {},\n children = props.children,\n className = 'emoji-mart-emoji',\n nativeEmoji = unified && unifiedToNative(unified),\n label = [nativeEmoji].concat(short_names).filter(Boolean).join(', '),\n title = null;\n\n if (!unified && !custom) {\n if (props.fallback) {\n return props.fallback(data, props);\n } else {\n return null;\n }\n }\n\n if (props.tooltip) {\n title = short_names[0];\n }\n\n if (props[\"native\"] && unified) {\n className += ' emoji-mart-emoji-native';\n style = {\n fontSize: props.size\n };\n children = nativeEmoji;\n\n if (props.forceSize) {\n style.display = 'inline-block';\n style.width = props.size;\n style.height = props.size;\n style.wordBreak = 'keep-all';\n }\n } else if (custom) {\n className += ' emoji-mart-emoji-custom';\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block'\n };\n\n if (data.spriteUrl) {\n style = _objectSpread({}, style, {\n backgroundImage: \"url(\".concat(data.spriteUrl, \")\"),\n backgroundSize: \"\".concat(100 * props.sheetColumns, \"% \").concat(100 * props.sheetRows, \"%\"),\n backgroundPosition: _getPosition(props)\n });\n } else {\n style = _objectSpread({}, style, {\n backgroundImage: \"url(\".concat(imageUrl, \")\"),\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n });\n }\n } else {\n var setHasEmoji = data[\"has_img_\".concat(props.set)] == undefined || data[\"has_img_\".concat(props.set)];\n\n if (!setHasEmoji) {\n if (props.fallback) {\n return props.fallback(data, props);\n } else {\n return null;\n }\n } else {\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block',\n backgroundImage: \"url(\".concat(props.backgroundImageFn(props.set, props.sheetSize), \")\"),\n backgroundSize: \"\".concat(100 * props.sheetColumns, \"% \").concat(100 * props.sheetRows, \"%\"),\n backgroundPosition: _getPosition(props)\n };\n }\n }\n\n var Tag = {\n name: 'span',\n props: {}\n };\n\n if (props.onClick && props.useButton) {\n Tag.name = 'button';\n Tag.props = {\n type: 'button'\n };\n }\n\n if (props.html) {\n style = _convertStyleToCSS(style);\n return \"<\".concat(Tag.name, \" style='\").concat(style, \"' aria-label='\").concat(label, \"' \").concat(title ? \"title='\".concat(title, \"'\") : '', \" class='\").concat(className, \"'>\").concat(children || '', \"\");\n } else {\n return React.createElement(Tag.name, _extends({\n onClick: function onClick(e) {\n return _handleClick(e, props);\n },\n onMouseEnter: function onMouseEnter(e) {\n return _handleOver(e, props);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _handleLeave(e, props);\n },\n \"aria-label\": label,\n title: title,\n className: className\n }, Tag.props), React.createElement(\"span\", {\n style: style\n }, children));\n }\n};\n\nNimbleEmoji.propTypes\n/* remove-proptypes */\n= _objectSpread({}, EmojiPropTypes, {\n data: PropTypes.object.isRequired\n});\nNimbleEmoji.defaultProps = EmojiDefaultProps;\nexport default NimbleEmoji;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport NimbleEmoji from './emoji/nimble-emoji';\n\nvar NotFound =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(NotFound, _React$PureComponent);\n\n function NotFound() {\n _classCallCheck(this, NotFound);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NotFound).apply(this, arguments));\n }\n\n _createClass(NotFound, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n data = _this$props.data,\n emojiProps = _this$props.emojiProps,\n i18n = _this$props.i18n,\n notFound = _this$props.notFound,\n notFoundEmoji = _this$props.notFoundEmoji;\n var component = notFound && notFound() || React.createElement(\"div\", {\n className: \"emoji-mart-no-results\"\n }, NimbleEmoji(_objectSpread({\n data: data\n }, emojiProps, {\n size: 38,\n emoji: notFoundEmoji,\n onOver: null,\n onLeave: null,\n onClick: null\n })), React.createElement(\"div\", {\n className: \"emoji-mart-no-results-label\"\n }, i18n.notfound));\n return component;\n }\n }]);\n\n return NotFound;\n}(React.PureComponent);\n\nexport { NotFound as default };\nNotFound.propTypes\n/* remove-proptypes */\n= {\n notFound: PropTypes.func.isRequired,\n emojiProps: PropTypes.object.isRequired\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport frequently from '../utils/frequently';\nimport { getData } from '../utils';\nimport NimbleEmoji from './emoji/nimble-emoji';\nimport NotFound from './not-found';\n\nvar Category =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Category, _React$Component);\n\n function Category(props) {\n var _this;\n\n _classCallCheck(this, Category);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Category).call(this, props));\n _this.data = props.data;\n _this.setContainerRef = _this.setContainerRef.bind(_assertThisInitialized(_this));\n _this.setLabelRef = _this.setLabelRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Category, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.margin = 0;\n this.minMargin = 0;\n this.memoizeSize();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var _this$props = this.props,\n name = _this$props.name,\n perLine = _this$props.perLine,\n _native = _this$props[\"native\"],\n hasStickyPosition = _this$props.hasStickyPosition,\n emojis = _this$props.emojis,\n emojiProps = _this$props.emojiProps,\n skin = emojiProps.skin,\n size = emojiProps.size,\n set = emojiProps.set,\n nextPerLine = nextProps.perLine,\n nextNative = nextProps[\"native\"],\n nextHasStickyPosition = nextProps.hasStickyPosition,\n nextEmojis = nextProps.emojis,\n nextEmojiProps = nextProps.emojiProps,\n nextSkin = nextEmojiProps.skin,\n nextSize = nextEmojiProps.size,\n nextSet = nextEmojiProps.set,\n shouldUpdate = false;\n\n if (name == 'Recent' && perLine != nextPerLine) {\n shouldUpdate = true;\n }\n\n if (name == 'Search') {\n shouldUpdate = !(emojis == nextEmojis);\n }\n\n if (skin != nextSkin || size != nextSize || _native != nextNative || set != nextSet || hasStickyPosition != nextHasStickyPosition) {\n shouldUpdate = true;\n }\n\n return shouldUpdate;\n }\n }, {\n key: \"memoizeSize\",\n value: function memoizeSize() {\n if (!this.container) {\n // probably this is a test environment, e.g. jest\n this.top = 0;\n this.maxMargin = 0;\n return;\n }\n\n var parent = this.container.parentElement;\n\n var _this$container$getBo = this.container.getBoundingClientRect(),\n top = _this$container$getBo.top,\n height = _this$container$getBo.height;\n\n var _parent$getBoundingCl = parent.getBoundingClientRect(),\n parentTop = _parent$getBoundingCl.top;\n\n var _this$label$getBoundi = this.label.getBoundingClientRect(),\n labelHeight = _this$label$getBoundi.height;\n\n this.top = top - parentTop + parent.scrollTop;\n\n if (height == 0) {\n this.maxMargin = 0;\n } else {\n this.maxMargin = height - labelHeight;\n }\n }\n }, {\n key: \"handleScroll\",\n value: function handleScroll(scrollTop) {\n var margin = scrollTop - this.top;\n margin = margin < this.minMargin ? this.minMargin : margin;\n margin = margin > this.maxMargin ? this.maxMargin : margin;\n if (margin == this.margin) return;\n\n if (!this.props.hasStickyPosition) {\n this.label.style.top = \"\".concat(margin, \"px\");\n }\n\n this.margin = margin;\n return true;\n }\n }, {\n key: \"getEmojis\",\n value: function getEmojis() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n name = _this$props2.name,\n emojis = _this$props2.emojis,\n recent = _this$props2.recent,\n perLine = _this$props2.perLine;\n\n if (name == 'Recent') {\n var custom = this.props.custom;\n var frequentlyUsed = recent || frequently.get(perLine);\n\n if (frequentlyUsed.length) {\n emojis = frequentlyUsed.map(function (id) {\n var emoji = custom.filter(function (e) {\n return e.id === id;\n })[0];\n\n if (emoji) {\n return emoji;\n }\n\n return id;\n }).filter(function (id) {\n return !!getData(id, null, null, _this2.data);\n });\n }\n\n if (emojis.length === 0 && frequentlyUsed.length > 0) {\n return null;\n }\n }\n\n if (emojis) {\n emojis = emojis.slice(0);\n }\n\n return emojis;\n }\n }, {\n key: \"updateDisplay\",\n value: function updateDisplay(display) {\n var emojis = this.getEmojis();\n\n if (!emojis || !this.container) {\n return;\n }\n\n this.container.style.display = display;\n }\n }, {\n key: \"setContainerRef\",\n value: function setContainerRef(c) {\n this.container = c;\n }\n }, {\n key: \"setLabelRef\",\n value: function setLabelRef(c) {\n this.label = c;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n id = _this$props3.id,\n name = _this$props3.name,\n hasStickyPosition = _this$props3.hasStickyPosition,\n emojiProps = _this$props3.emojiProps,\n i18n = _this$props3.i18n,\n notFound = _this$props3.notFound,\n notFoundEmoji = _this$props3.notFoundEmoji,\n emojis = this.getEmojis(),\n labelStyles = {},\n labelSpanStyles = {},\n containerStyles = {};\n\n if (!emojis) {\n containerStyles = {\n display: 'none'\n };\n }\n\n if (!hasStickyPosition) {\n labelStyles = {\n height: 28\n };\n labelSpanStyles = {\n position: 'absolute'\n };\n }\n\n var label = i18n.categories[id] || name;\n return React.createElement(\"section\", {\n ref: this.setContainerRef,\n className: \"emoji-mart-category\",\n \"aria-label\": label,\n style: containerStyles\n }, React.createElement(\"div\", {\n style: labelStyles,\n \"data-name\": name,\n className: \"emoji-mart-category-label\"\n }, React.createElement(\"span\", {\n style: labelSpanStyles,\n ref: this.setLabelRef,\n \"aria-hidden\": true\n /* already labeled by the section aria-label */\n\n }, label)), React.createElement(\"ul\", {\n className: \"emoji-mart-category-list\"\n }, emojis && emojis.map(function (emoji) {\n return React.createElement(\"li\", {\n key: emoji.short_names && emoji.short_names.join('_') || emoji\n }, NimbleEmoji(_objectSpread({\n emoji: emoji,\n data: _this3.data\n }, emojiProps)));\n })), emojis && !emojis.length && React.createElement(NotFound, {\n i18n: i18n,\n notFound: notFound,\n notFoundEmoji: notFoundEmoji,\n data: this.data,\n emojiProps: emojiProps\n }));\n }\n }]);\n\n return Category;\n}(React.Component);\n\nexport { Category as default };\nCategory.propTypes\n/* remove-proptypes */\n= {\n emojis: PropTypes.array,\n hasStickyPosition: PropTypes.bool,\n name: PropTypes.string.isRequired,\n \"native\": PropTypes.bool.isRequired,\n perLine: PropTypes.number.isRequired,\n emojiProps: PropTypes.object.isRequired,\n recent: PropTypes.arrayOf(PropTypes.string),\n notFound: PropTypes.func,\n notFoundEmoji: PropTypes.string.isRequired\n};\nCategory.defaultProps = {\n emojis: [],\n hasStickyPosition: true\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Skins =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Skins, _React$PureComponent);\n\n function Skins(props) {\n var _this;\n\n _classCallCheck(this, Skins);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Skins).call(this, props));\n _this.state = {\n opened: false\n };\n return _this;\n }\n\n _createClass(Skins, [{\n key: \"handleClick\",\n value: function handleClick(e) {\n var skin = parseInt(e.currentTarget.getAttribute('data-skin'));\n var onChange = this.props.onChange;\n\n if (!this.state.opened) {\n this.setState({\n opened: true\n });\n } else {\n this.setState({\n opened: false\n });\n\n if (skin != this.props.skin) {\n onChange(skin);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return Skins;\n}(React.PureComponent);\n\nexport { Skins as default };\nSkins.propTypes\n/* remove-proptypes */\n= {\n onChange: PropTypes.func,\n skin: PropTypes.number.isRequired\n};\nSkins.defaultProps = {\n onChange: function onChange() {}\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport NimbleEmoji from './emoji/nimble-emoji';\nimport Skins from './skins';\n\nvar SkinsEmoji =\n/*#__PURE__*/\nfunction (_Skins) {\n _inherits(SkinsEmoji, _Skins);\n\n function SkinsEmoji(props) {\n var _this;\n\n _classCallCheck(this, SkinsEmoji);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SkinsEmoji).call(this, props));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SkinsEmoji, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n skin = _this$props.skin,\n emojiProps = _this$props.emojiProps,\n data = _this$props.data,\n skinEmoji = _this$props.skinEmoji,\n i18n = _this$props.i18n;\n var opened = this.state.opened;\n var skinToneNodes = [];\n\n for (var skinTone = 1; skinTone <= 6; skinTone++) {\n var selected = skinTone === skin;\n skinToneNodes.push(React.createElement(\"span\", {\n key: \"skin-tone-\".concat(skinTone),\n className: \"emoji-mart-skin-swatch custom\".concat(selected ? ' selected' : '')\n }, React.createElement(\"span\", {\n onClick: this.handleClick,\n \"data-skin\": skinTone,\n className: \"emoji-mart-skin-tone-\".concat(skinTone)\n }, NimbleEmoji({\n emoji: skinEmoji,\n data: data,\n skin: skinTone,\n backgroundImageFn: emojiProps.backgroundImageFn,\n \"native\": emojiProps[\"native\"],\n set: emojiProps.set,\n sheetSize: emojiProps.sheetSize,\n size: 23\n }))));\n }\n\n return React.createElement(\"div\", {\n className: \"emoji-mart-skin-swatches custom\".concat(opened ? ' opened' : '')\n }, React.createElement(\"div\", {\n className: \"emoji-mart-skin-text\".concat(opened ? ' opened' : '')\n }, i18n.skintext), skinToneNodes);\n }\n }]);\n\n return SkinsEmoji;\n}(Skins);\n\nexport { SkinsEmoji as default };\nSkinsEmoji.propTypes\n/* remove-proptypes */\n= {\n onChange: PropTypes.func,\n skin: PropTypes.number.isRequired,\n emojiProps: PropTypes.object.isRequired,\n skinTone: PropTypes.number,\n skinEmoji: PropTypes.string.isRequired,\n i18n: PropTypes.object\n};\nSkinsEmoji.defaultProps = {\n onChange: function onChange() {},\n skinTone: null\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Skins from './skins';\n\nvar SkinsDot =\n/*#__PURE__*/\nfunction (_Skins) {\n _inherits(SkinsDot, _Skins);\n\n function SkinsDot(props) {\n var _this;\n\n _classCallCheck(this, SkinsDot);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SkinsDot).call(this, props));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SkinsDot, [{\n key: \"handleKeyDown\",\n value: function handleKeyDown(event) {\n // if either enter or space is pressed, then execute\n if (event.keyCode === 13 || event.keyCode === 32) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n skin = _this$props.skin,\n i18n = _this$props.i18n;\n var opened = this.state.opened;\n var skinToneNodes = [];\n\n for (var skinTone = 1; skinTone <= 6; skinTone++) {\n var selected = skinTone === skin;\n var visible = opened || selected;\n skinToneNodes.push(React.createElement(\"span\", _extends({\n key: \"skin-tone-\".concat(skinTone),\n className: \"emoji-mart-skin-swatch\".concat(selected ? ' selected' : ''),\n \"aria-label\": i18n.skintones[skinTone],\n \"aria-hidden\": !visible\n }, opened ? {\n role: 'menuitem'\n } : {}), React.createElement(\"span\", _extends({\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n role: \"button\"\n }, selected ? {\n 'aria-haspopup': true,\n 'aria-expanded': !!opened\n } : {}, opened ? {\n 'aria-pressed': !!selected\n } : {}, {\n tabIndex: visible ? '0' : '',\n \"aria-label\": i18n.skintones[skinTone],\n title: i18n.skintones[skinTone],\n \"data-skin\": skinTone,\n className: \"emoji-mart-skin emoji-mart-skin-tone-\".concat(skinTone)\n }))));\n }\n\n return React.createElement(\"section\", {\n className: \"emoji-mart-skin-swatches\".concat(opened ? ' opened' : ''),\n \"aria-label\": i18n.skintext\n }, React.createElement(\"div\", opened ? {\n role: 'menubar'\n } : {}, skinToneNodes));\n }\n }]);\n\n return SkinsDot;\n}(Skins);\n\nexport { SkinsDot as default };\nSkinsDot.propTypes\n/* remove-proptypes */\n= {\n onChange: PropTypes.func,\n skin: PropTypes.number.isRequired,\n i18n: PropTypes.object\n};\nSkinsDot.defaultProps = {\n onChange: function onChange() {}\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getData } from '../utils';\nimport NimbleEmoji from './emoji/nimble-emoji';\nimport SkinsEmoji from './skins-emoji';\nimport SkinsDot from './skins-dot';\n\nvar Preview =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Preview, _React$PureComponent);\n\n function Preview(props) {\n var _this;\n\n _classCallCheck(this, Preview);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Preview).call(this, props));\n _this.data = props.data;\n _this.state = {\n emoji: null\n };\n return _this;\n }\n\n _createClass(Preview, [{\n key: \"render\",\n value: function render() {\n var emoji = this.state.emoji,\n _this$props = this.props,\n emojiProps = _this$props.emojiProps,\n skinsProps = _this$props.skinsProps,\n showSkinTones = _this$props.showSkinTones,\n title = _this$props.title,\n idleEmoji = _this$props.emoji,\n i18n = _this$props.i18n,\n showPreview = _this$props.showPreview;\n\n if (emoji && showPreview) {\n var emojiData = getData(emoji, null, null, this.data),\n _emojiData$emoticons = emojiData.emoticons,\n emoticons = _emojiData$emoticons === void 0 ? [] : _emojiData$emoticons,\n knownEmoticons = [],\n listedEmoticons = [];\n emoticons.forEach(function (emoticon) {\n if (knownEmoticons.indexOf(emoticon.toLowerCase()) >= 0) {\n return;\n }\n\n knownEmoticons.push(emoticon.toLowerCase());\n listedEmoticons.push(emoticon);\n });\n return React.createElement(\"div\", {\n className: \"emoji-mart-preview\"\n }, React.createElement(\"div\", {\n className: \"emoji-mart-preview-emoji\",\n \"aria-hidden\": \"true\"\n }, NimbleEmoji(_objectSpread({\n key: emoji.id,\n emoji: emoji,\n data: this.data\n }, emojiProps))), React.createElement(\"div\", {\n className: \"emoji-mart-preview-data\",\n \"aria-hidden\": \"true\"\n }, React.createElement(\"div\", {\n className: \"emoji-mart-preview-name\"\n }, emoji.name), React.createElement(\"div\", {\n className: \"emoji-mart-preview-shortnames\"\n }, emojiData.short_names.map(function (short_name) {\n return React.createElement(\"span\", {\n key: short_name,\n className: \"emoji-mart-preview-shortname\"\n }, \":\", short_name, \":\");\n })), React.createElement(\"div\", {\n className: \"emoji-mart-preview-emoticons\"\n }, listedEmoticons.map(function (emoticon) {\n return React.createElement(\"span\", {\n key: emoticon,\n className: \"emoji-mart-preview-emoticon\"\n }, emoticon);\n }))));\n } else {\n return React.createElement(\"div\", {\n className: \"emoji-mart-preview\"\n }, React.createElement(\"div\", {\n className: \"emoji-mart-preview-emoji\",\n \"aria-hidden\": \"true\"\n }, idleEmoji && idleEmoji.length && NimbleEmoji(_objectSpread({\n emoji: idleEmoji,\n data: this.data\n }, emojiProps))), React.createElement(\"div\", {\n className: \"emoji-mart-preview-data\",\n \"aria-hidden\": \"true\"\n }, React.createElement(\"span\", {\n className: \"emoji-mart-title-label\"\n }, title)), showSkinTones && React.createElement(\"div\", {\n className: \"emoji-mart-preview-skins\".concat(skinsProps.skinEmoji ? ' custom' : '')\n }, skinsProps.skinEmoji ? React.createElement(SkinsEmoji, {\n skin: skinsProps.skin,\n emojiProps: emojiProps,\n data: this.data,\n skinEmoji: skinsProps.skinEmoji,\n i18n: i18n,\n onChange: skinsProps.onChange\n }) : React.createElement(SkinsDot, {\n skin: skinsProps.skin,\n i18n: i18n,\n onChange: skinsProps.onChange\n })));\n }\n }\n }]);\n\n return Preview;\n}(React.PureComponent);\n\nexport { Preview as default };\nPreview.propTypes\n/* remove-proptypes */\n= {\n showSkinTones: PropTypes.bool,\n title: PropTypes.string.isRequired,\n emoji: PropTypes.string.isRequired,\n emojiProps: PropTypes.object.isRequired,\n skinsProps: PropTypes.object.isRequired\n};\nPreview.defaultProps = {\n showSkinTones: true,\n onChange: function onChange() {}\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { search as icons } from '../svgs';\nimport NimbleEmojiIndex from '../utils/emoji-index/nimble-emoji-index';\nimport { throttleIdleTask } from '../utils/index';\nvar id = 0;\n\nvar Search =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Search, _React$PureComponent);\n\n function Search(props) {\n var _this;\n\n _classCallCheck(this, Search);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Search).call(this, props));\n _this.state = {\n icon: icons.search,\n isSearching: false,\n id: ++id\n };\n _this.data = props.data;\n _this.emojiIndex = new NimbleEmojiIndex(_this.data);\n _this.setRef = _this.setRef.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.handleKeyUp = _this.handleKeyUp.bind(_assertThisInitialized(_this)); // throttle keyboard input so that typing isn't delayed\n\n _this.handleChange = throttleIdleTask(_this.handleChange.bind(_assertThisInitialized(_this)));\n return _this;\n }\n\n _createClass(Search, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // in some cases (e.g. preact) the input may already be pre-populated\n // this.input is undefined in Jest tests\n if (this.input && this.input.value) {\n this.search(this.input.value);\n }\n }\n }, {\n key: \"search\",\n value: function search(value) {\n if (value == '') this.setState({\n icon: icons.search,\n isSearching: false\n });else this.setState({\n icon: icons[\"delete\"],\n isSearching: true\n });\n this.props.onSearch(this.emojiIndex.search(value, {\n emojisToShowFilter: this.props.emojisToShowFilter,\n maxResults: this.props.maxResults,\n include: this.props.include,\n exclude: this.props.exclude,\n custom: this.props.custom\n }));\n }\n }, {\n key: \"clear\",\n value: function clear() {\n if (this.input.value == '') return;\n this.input.value = '';\n this.input.focus();\n this.search('');\n }\n }, {\n key: \"handleChange\",\n value: function handleChange() {\n this.search(this.input.value);\n }\n }, {\n key: \"handleKeyUp\",\n value: function handleKeyUp(e) {\n if (e.keyCode === 13) {\n this.clear();\n }\n }\n }, {\n key: \"setRef\",\n value: function setRef(c) {\n this.input = c;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n i18n = _this$props.i18n,\n autoFocus = _this$props.autoFocus;\n var _this$state = this.state,\n icon = _this$state.icon,\n isSearching = _this$state.isSearching,\n id = _this$state.id;\n var inputId = \"emoji-mart-search-\".concat(id);\n return React.createElement(\"section\", {\n className: \"emoji-mart-search\",\n \"aria-label\": i18n.search\n }, React.createElement(\"input\", {\n id: inputId,\n ref: this.setRef,\n type: \"search\",\n onChange: this.handleChange,\n placeholder: i18n.search,\n autoFocus: autoFocus\n }), React.createElement(\"label\", {\n className: \"emoji-mart-sr-only\",\n htmlFor: inputId\n }, i18n.search), React.createElement(\"button\", {\n className: \"emoji-mart-search-icon\",\n onClick: this.clear,\n onKeyUp: this.handleKeyUp,\n \"aria-label\": i18n.clear,\n disabled: !isSearching\n }, icon()));\n }\n }]);\n\n return Search;\n}(React.PureComponent);\n\nexport { Search as default };\nSearch.propTypes\n/* remove-proptypes */\n= {\n onSearch: PropTypes.func,\n maxResults: PropTypes.number,\n emojisToShowFilter: PropTypes.func,\n autoFocus: PropTypes.bool\n};\nSearch.defaultProps = {\n onSearch: function onSearch() {},\n maxResults: 75,\n emojisToShowFilter: null,\n autoFocus: false\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../svgs';\nimport store from '../../utils/store';\nimport frequently from '../../utils/frequently';\nimport { deepMerge, measureScrollbar, getSanitizedData } from '../../utils';\nimport { uncompress } from '../../utils/data';\nimport { PickerPropTypes } from '../../utils/shared-props';\nimport Anchors from '../anchors';\nimport Category from '../category';\nimport Preview from '../preview';\nimport Search from '../search';\nimport { PickerDefaultProps } from '../../utils/shared-default-props';\nvar I18N = {\n search: 'Search',\n clear: 'Clear',\n // Accessible label on \"clear\" button\n notfound: 'No Emoji Found',\n skintext: 'Choose your default skin tone',\n categories: {\n search: 'Search Results',\n recent: 'Frequently Used',\n people: 'Smileys & People',\n nature: 'Animals & Nature',\n foods: 'Food & Drink',\n activity: 'Activity',\n places: 'Travel & Places',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n custom: 'Custom'\n },\n categorieslabel: 'Emoji categories',\n // Accessible title for the list of categories\n skintones: {\n 1: 'Default Skin Tone',\n 2: 'Light Skin Tone',\n 3: 'Medium-Light Skin Tone',\n 4: 'Medium Skin Tone',\n 5: 'Medium-Dark Skin Tone',\n 6: 'Dark Skin Tone'\n }\n};\n\nvar NimblePicker =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(NimblePicker, _React$PureComponent);\n\n function NimblePicker(props) {\n var _this;\n\n _classCallCheck(this, NimblePicker);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NimblePicker).call(this, props));\n _this.CUSTOM = [];\n _this.RECENT_CATEGORY = {\n id: 'recent',\n name: 'Recent',\n emojis: null\n };\n _this.SEARCH_CATEGORY = {\n id: 'search',\n name: 'Search',\n emojis: null,\n anchor: false\n };\n\n if (props.data.compressed) {\n uncompress(props.data);\n }\n\n _this.data = props.data;\n _this.i18n = deepMerge(I18N, props.i18n);\n _this.icons = deepMerge(icons, props.icons);\n _this.state = {\n firstRender: true\n };\n _this.categories = [];\n var allCategories = [].concat(_this.data.categories);\n\n if (props.custom.length > 0) {\n var customCategories = {};\n var customCategoriesCreated = 0;\n props.custom.forEach(function (emoji) {\n if (!customCategories[emoji.customCategory]) {\n customCategories[emoji.customCategory] = {\n id: emoji.customCategory ? \"custom-\".concat(emoji.customCategory) : 'custom',\n name: emoji.customCategory || 'Custom',\n emojis: [],\n anchor: customCategoriesCreated === 0\n };\n customCategoriesCreated++;\n }\n\n var category = customCategories[emoji.customCategory];\n\n var customEmoji = _objectSpread({}, emoji, {\n // `` expects emoji to have an `id`.\n id: emoji.short_names[0],\n custom: true\n });\n\n category.emojis.push(customEmoji);\n\n _this.CUSTOM.push(customEmoji);\n });\n allCategories = allCategories.concat(Object.keys(customCategories).map(function (key) {\n return customCategories[key];\n }));\n }\n\n _this.hideRecent = true;\n\n if (props.include != undefined) {\n allCategories.sort(function (a, b) {\n if (props.include.indexOf(a.id) > props.include.indexOf(b.id)) {\n return 1;\n }\n\n return -1;\n });\n }\n\n for (var categoryIndex = 0; categoryIndex < allCategories.length; categoryIndex++) {\n var category = allCategories[categoryIndex];\n var isIncluded = props.include && props.include.length ? props.include.indexOf(category.id) > -1 : true;\n var isExcluded = props.exclude && props.exclude.length ? props.exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n continue;\n }\n\n if (props.emojisToShowFilter) {\n var newEmojis = [];\n var emojis = category.emojis;\n\n for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex++) {\n var emoji = emojis[emojiIndex];\n\n if (props.emojisToShowFilter(_this.data.emojis[emoji] || emoji)) {\n newEmojis.push(emoji);\n }\n }\n\n if (newEmojis.length) {\n var newCategory = {\n emojis: newEmojis,\n name: category.name,\n id: category.id\n };\n\n _this.categories.push(newCategory);\n }\n } else {\n _this.categories.push(category);\n }\n }\n\n var includeRecent = props.include && props.include.length ? props.include.indexOf(_this.RECENT_CATEGORY.id) > -1 : true;\n var excludeRecent = props.exclude && props.exclude.length ? props.exclude.indexOf(_this.RECENT_CATEGORY.id) > -1 : false;\n\n if (includeRecent && !excludeRecent) {\n _this.hideRecent = false;\n\n _this.categories.unshift(_this.RECENT_CATEGORY);\n }\n\n if (_this.categories[0]) {\n _this.categories[0].first = true;\n }\n\n _this.categories.unshift(_this.SEARCH_CATEGORY);\n\n _this.setAnchorsRef = _this.setAnchorsRef.bind(_assertThisInitialized(_this));\n _this.handleAnchorClick = _this.handleAnchorClick.bind(_assertThisInitialized(_this));\n _this.setSearchRef = _this.setSearchRef.bind(_assertThisInitialized(_this));\n _this.handleSearch = _this.handleSearch.bind(_assertThisInitialized(_this));\n _this.setScrollRef = _this.setScrollRef.bind(_assertThisInitialized(_this));\n _this.handleScroll = _this.handleScroll.bind(_assertThisInitialized(_this));\n _this.handleScrollPaint = _this.handleScrollPaint.bind(_assertThisInitialized(_this));\n _this.handleEmojiOver = _this.handleEmojiOver.bind(_assertThisInitialized(_this));\n _this.handleEmojiLeave = _this.handleEmojiLeave.bind(_assertThisInitialized(_this));\n _this.handleEmojiClick = _this.handleEmojiClick.bind(_assertThisInitialized(_this));\n _this.handleEmojiSelect = _this.handleEmojiSelect.bind(_assertThisInitialized(_this));\n _this.setPreviewRef = _this.setPreviewRef.bind(_assertThisInitialized(_this));\n _this.handleSkinChange = _this.handleSkinChange.bind(_assertThisInitialized(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));\n _this.handleDarkMatchMediaChange = _this.handleDarkMatchMediaChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(NimblePicker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (this.state.firstRender) {\n this.testStickyPosition();\n this.firstRenderTimeout = setTimeout(function () {\n _this2.setState({\n firstRender: false\n });\n }, 60);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateCategoriesSize();\n this.handleScroll();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.SEARCH_CATEGORY.emojis = null;\n clearTimeout(this.leaveTimeout);\n clearTimeout(this.firstRenderTimeout);\n\n if (this.darkMatchMedia) {\n this.darkMatchMedia.removeListener(this.handleDarkMatchMediaChange);\n }\n }\n }, {\n key: \"testStickyPosition\",\n value: function testStickyPosition() {\n var stickyTestElement = document.createElement('div');\n var prefixes = ['', '-webkit-', '-ms-', '-moz-', '-o-'];\n prefixes.forEach(function (prefix) {\n return stickyTestElement.style.position = \"\".concat(prefix, \"sticky\");\n });\n this.hasStickyPosition = !!stickyTestElement.style.position.length;\n }\n }, {\n key: \"getPreferredTheme\",\n value: function getPreferredTheme() {\n if (this.props.theme != 'auto') return this.props.theme;\n if (this.state.theme) return this.state.theme;\n if (typeof matchMedia !== 'function') return PickerDefaultProps.theme;\n\n if (!this.darkMatchMedia) {\n this.darkMatchMedia = matchMedia('(prefers-color-scheme: dark)');\n this.darkMatchMedia.addListener(this.handleDarkMatchMediaChange);\n }\n\n if (this.darkMatchMedia.media.match(/^not/)) return PickerDefaultProps.theme;\n return this.darkMatchMedia.matches ? 'dark' : 'light';\n }\n }, {\n key: \"handleDarkMatchMediaChange\",\n value: function handleDarkMatchMediaChange() {\n this.setState({\n theme: this.darkMatchMedia.matches ? 'dark' : 'light'\n });\n }\n }, {\n key: \"handleEmojiOver\",\n value: function handleEmojiOver(emoji) {\n var preview = this.preview;\n\n if (!preview) {\n return;\n } // Use Array.prototype.find() when it is more widely supported.\n\n\n var emojiData = this.CUSTOM.filter(function (customEmoji) {\n return customEmoji.id === emoji.id;\n })[0];\n\n for (var key in emojiData) {\n if (emojiData.hasOwnProperty(key)) {\n emoji[key] = emojiData[key];\n }\n }\n\n preview.setState({\n emoji: emoji\n });\n clearTimeout(this.leaveTimeout);\n }\n }, {\n key: \"handleEmojiLeave\",\n value: function handleEmojiLeave(emoji) {\n var preview = this.preview;\n\n if (!preview) {\n return;\n }\n\n this.leaveTimeout = setTimeout(function () {\n preview.setState({\n emoji: null\n });\n }, 16);\n }\n }, {\n key: \"handleEmojiClick\",\n value: function handleEmojiClick(emoji, e) {\n this.props.onClick(emoji, e);\n this.handleEmojiSelect(emoji);\n }\n }, {\n key: \"handleEmojiSelect\",\n value: function handleEmojiSelect(emoji) {\n var _this3 = this;\n\n this.props.onSelect(emoji);\n if (!this.hideRecent && !this.props.recent) frequently.add(emoji);\n var component = this.categoryRefs['category-1'];\n\n if (component) {\n var maxMargin = component.maxMargin;\n\n if (this.props.enableFrequentEmojiSort) {\n component.forceUpdate();\n }\n\n requestAnimationFrame(function () {\n if (!_this3.scroll) return;\n component.memoizeSize();\n if (maxMargin == component.maxMargin) return;\n\n _this3.updateCategoriesSize();\n\n _this3.handleScrollPaint();\n\n if (_this3.SEARCH_CATEGORY.emojis) {\n component.updateDisplay('none');\n }\n });\n }\n }\n }, {\n key: \"handleScroll\",\n value: function handleScroll() {\n if (!this.waitingForPaint) {\n this.waitingForPaint = true;\n requestAnimationFrame(this.handleScrollPaint);\n }\n }\n }, {\n key: \"handleScrollPaint\",\n value: function handleScrollPaint() {\n this.waitingForPaint = false;\n\n if (!this.scroll) {\n return;\n }\n\n var activeCategory = null;\n\n if (this.SEARCH_CATEGORY.emojis) {\n activeCategory = this.SEARCH_CATEGORY;\n } else {\n var target = this.scroll,\n scrollTop = target.scrollTop,\n scrollingDown = scrollTop > (this.scrollTop || 0),\n minTop = 0;\n\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var ii = scrollingDown ? this.categories.length - 1 - i : i,\n category = this.categories[ii],\n component = this.categoryRefs[\"category-\".concat(ii)];\n\n if (component) {\n var active = component.handleScroll(scrollTop);\n\n if (!minTop || component.top < minTop) {\n if (component.top > 0) {\n minTop = component.top;\n }\n }\n\n if (active && !activeCategory) {\n activeCategory = category;\n }\n }\n }\n\n if (scrollTop < minTop) {\n activeCategory = this.categories.filter(function (category) {\n return !(category.anchor === false);\n })[0];\n } else if (scrollTop + this.clientHeight >= this.scrollHeight) {\n activeCategory = this.categories[this.categories.length - 1];\n }\n }\n\n if (activeCategory) {\n var anchors = this.anchors,\n _activeCategory = activeCategory,\n categoryName = _activeCategory.name;\n\n if (anchors.state.selected != categoryName) {\n anchors.setState({\n selected: categoryName\n });\n }\n }\n\n this.scrollTop = scrollTop;\n }\n }, {\n key: \"handleSearch\",\n value: function handleSearch(emojis) {\n this.SEARCH_CATEGORY.emojis = emojis;\n\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var component = this.categoryRefs[\"category-\".concat(i)];\n\n if (component && component.props.name != 'Search') {\n var display = emojis ? 'none' : 'inherit';\n component.updateDisplay(display);\n }\n }\n\n this.forceUpdate();\n\n if (this.scroll) {\n this.scroll.scrollTop = 0;\n }\n\n this.handleScroll();\n }\n }, {\n key: \"handleAnchorClick\",\n value: function handleAnchorClick(category, i) {\n var component = this.categoryRefs[\"category-\".concat(i)],\n scroll = this.scroll,\n anchors = this.anchors,\n scrollToComponent = null;\n\n scrollToComponent = function scrollToComponent() {\n if (component) {\n var top = component.top;\n\n if (category.first) {\n top = 0;\n } else {\n top += 1;\n }\n\n scroll.scrollTop = top;\n }\n };\n\n if (this.SEARCH_CATEGORY.emojis) {\n this.handleSearch(null);\n this.search.clear();\n requestAnimationFrame(scrollToComponent);\n } else {\n scrollToComponent();\n }\n }\n }, {\n key: \"handleSkinChange\",\n value: function handleSkinChange(skin) {\n var newState = {\n skin: skin\n },\n onSkinChange = this.props.onSkinChange;\n this.setState(newState);\n store.update(newState);\n onSkinChange(skin);\n }\n }, {\n key: \"handleKeyDown\",\n value: function handleKeyDown(e) {\n var handled = false;\n\n switch (e.keyCode) {\n case 13:\n var emoji;\n\n if (this.SEARCH_CATEGORY.emojis && this.SEARCH_CATEGORY.emojis.length && (emoji = getSanitizedData(this.SEARCH_CATEGORY.emojis[0], this.state.skin, this.props.set, this.props.data))) {\n this.handleEmojiSelect(emoji);\n handled = true;\n }\n\n break;\n }\n\n if (handled) {\n e.preventDefault();\n }\n }\n }, {\n key: \"updateCategoriesSize\",\n value: function updateCategoriesSize() {\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var component = this.categoryRefs[\"category-\".concat(i)];\n if (component) component.memoizeSize();\n }\n\n if (this.scroll) {\n var target = this.scroll;\n this.scrollHeight = target.scrollHeight;\n this.clientHeight = target.clientHeight;\n }\n }\n }, {\n key: \"getCategories\",\n value: function getCategories() {\n return this.state.firstRender ? this.categories.slice(0, 3) : this.categories;\n }\n }, {\n key: \"setAnchorsRef\",\n value: function setAnchorsRef(c) {\n this.anchors = c;\n }\n }, {\n key: \"setSearchRef\",\n value: function setSearchRef(c) {\n this.search = c;\n }\n }, {\n key: \"setPreviewRef\",\n value: function setPreviewRef(c) {\n this.preview = c;\n }\n }, {\n key: \"setScrollRef\",\n value: function setScrollRef(c) {\n this.scroll = c;\n }\n }, {\n key: \"setCategoryRef\",\n value: function setCategoryRef(name, c) {\n if (!this.categoryRefs) {\n this.categoryRefs = {};\n }\n\n this.categoryRefs[name] = c;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props = this.props,\n perLine = _this$props.perLine,\n emojiSize = _this$props.emojiSize,\n set = _this$props.set,\n sheetSize = _this$props.sheetSize,\n sheetColumns = _this$props.sheetColumns,\n sheetRows = _this$props.sheetRows,\n style = _this$props.style,\n title = _this$props.title,\n emoji = _this$props.emoji,\n color = _this$props.color,\n _native = _this$props[\"native\"],\n backgroundImageFn = _this$props.backgroundImageFn,\n emojisToShowFilter = _this$props.emojisToShowFilter,\n showPreview = _this$props.showPreview,\n showSkinTones = _this$props.showSkinTones,\n emojiTooltip = _this$props.emojiTooltip,\n useButton = _this$props.useButton,\n include = _this$props.include,\n exclude = _this$props.exclude,\n recent = _this$props.recent,\n autoFocus = _this$props.autoFocus,\n skinEmoji = _this$props.skinEmoji,\n notFound = _this$props.notFound,\n notFoundEmoji = _this$props.notFoundEmoji;\n var width = perLine * (emojiSize + 12) + 12 + 2 + measureScrollbar();\n var theme = this.getPreferredTheme();\n var skin = this.props.skin || this.state.skin || store.get('skin') || this.props.defaultSkin;\n return React.createElement(\"section\", {\n style: _objectSpread({\n width: width\n }, style),\n className: \"emoji-mart emoji-mart-\".concat(theme),\n \"aria-label\": title,\n onKeyDown: this.handleKeyDown\n }, React.createElement(\"div\", {\n className: \"emoji-mart-bar\"\n }, React.createElement(Anchors, {\n ref: this.setAnchorsRef,\n data: this.data,\n i18n: this.i18n,\n color: color,\n categories: this.categories,\n onAnchorClick: this.handleAnchorClick,\n icons: this.icons\n })), React.createElement(Search, {\n ref: this.setSearchRef,\n onSearch: this.handleSearch,\n data: this.data,\n i18n: this.i18n,\n emojisToShowFilter: emojisToShowFilter,\n include: include,\n exclude: exclude,\n custom: this.CUSTOM,\n autoFocus: autoFocus\n }), React.createElement(\"div\", {\n ref: this.setScrollRef,\n className: \"emoji-mart-scroll\",\n onScroll: this.handleScroll\n }, this.getCategories().map(function (category, i) {\n return React.createElement(Category, {\n ref: _this4.setCategoryRef.bind(_this4, \"category-\".concat(i)),\n key: category.name,\n id: category.id,\n name: category.name,\n emojis: category.emojis,\n perLine: perLine,\n \"native\": _native,\n hasStickyPosition: _this4.hasStickyPosition,\n data: _this4.data,\n i18n: _this4.i18n,\n recent: category.id == _this4.RECENT_CATEGORY.id ? recent : undefined,\n custom: category.id == _this4.RECENT_CATEGORY.id ? _this4.CUSTOM : undefined,\n emojiProps: {\n \"native\": _native,\n skin: skin,\n size: emojiSize,\n set: set,\n sheetSize: sheetSize,\n sheetColumns: sheetColumns,\n sheetRows: sheetRows,\n forceSize: _native,\n tooltip: emojiTooltip,\n backgroundImageFn: backgroundImageFn,\n useButton: useButton,\n onOver: _this4.handleEmojiOver,\n onLeave: _this4.handleEmojiLeave,\n onClick: _this4.handleEmojiClick\n },\n notFound: notFound,\n notFoundEmoji: notFoundEmoji\n });\n })), (showPreview || showSkinTones) && React.createElement(\"div\", {\n className: \"emoji-mart-bar\"\n }, React.createElement(Preview, {\n ref: this.setPreviewRef,\n data: this.data,\n title: title,\n emoji: emoji,\n showSkinTones: showSkinTones,\n showPreview: showPreview,\n emojiProps: {\n \"native\": _native,\n size: 38,\n skin: skin,\n set: set,\n sheetSize: sheetSize,\n sheetColumns: sheetColumns,\n sheetRows: sheetRows,\n backgroundImageFn: backgroundImageFn\n },\n skinsProps: {\n skin: skin,\n onChange: this.handleSkinChange,\n skinEmoji: skinEmoji\n },\n i18n: this.i18n\n })));\n }\n }]);\n\n return NimblePicker;\n}(React.PureComponent);\n\nexport { NimblePicker as default };\nNimblePicker.propTypes\n/* remove-proptypes */\n= _objectSpread({}, PickerPropTypes, {\n data: PropTypes.object.isRequired\n});\nNimblePicker.defaultProps = _objectSpread({}, PickerDefaultProps);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport data from '../../../data/all.json';\nimport NimblePicker from './nimble-picker';\nimport { PickerPropTypes } from '../../utils/shared-props';\nimport { PickerDefaultProps } from '../../utils/shared-default-props';\n\nvar Picker =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Picker, _React$PureComponent);\n\n function Picker() {\n _classCallCheck(this, Picker);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Picker).apply(this, arguments));\n }\n\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return React.createElement(NimblePicker, _extends({}, this.props, this.state));\n }\n }]);\n\n return Picker;\n}(React.PureComponent);\n\nexport { Picker as default };\nPicker.propTypes\n/* remove-proptypes */\n= PickerPropTypes;\nPicker.defaultProps = _objectSpread({}, PickerDefaultProps, {\n data: data\n});","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport data from '../../../data/all.json';\nimport NimbleEmoji from './nimble-emoji';\nimport { EmojiPropTypes } from '../../utils/shared-props';\nimport { EmojiDefaultProps } from '../../utils/shared-default-props';\n\nvar Emoji = function Emoji(props) {\n for (var k in Emoji.defaultProps) {\n if (props[k] == undefined && Emoji.defaultProps[k] != undefined) {\n props[k] = Emoji.defaultProps[k];\n }\n }\n\n return NimbleEmoji(_objectSpread({}, props));\n};\n\nEmoji.propTypes\n/* remove-proptypes */\n= EmojiPropTypes;\nEmoji.defaultProps = _objectSpread({}, EmojiDefaultProps, {\n data: data\n});\nexport default Emoji;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/build/5.chunk.13cc1.js b/build/5.chunk.13cc1.js new file mode 100644 index 000000000..f5bdc0091 --- /dev/null +++ b/build/5.chunk.13cc1.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{1371:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1377:function(e,n,t){},1379:function(e,n){},1407:function(e,n,t){var r={"./_lib/buildFormatLongFn/index.js":643,"./_lib/buildLocalizeFn/index.js":644,"./_lib/buildMatchFn/index.js":645,"./_lib/buildMatchPatternFn/index.js":646,"./af/_lib/formatDistance/index.js":969,"./af/_lib/formatLong/index.js":970,"./af/_lib/formatRelative/index.js":971,"./af/_lib/localize/index.js":972,"./af/_lib/match/index.js":973,"./af/index.js":1408,"./ar-DZ/_lib/formatDistance/index.js":974,"./ar-DZ/_lib/formatLong/index.js":975,"./ar-DZ/_lib/formatRelative/index.js":976,"./ar-DZ/_lib/localize/index.js":977,"./ar-DZ/_lib/match/index.js":978,"./ar-DZ/index.js":1409,"./ar-MA/_lib/formatDistance/index.js":979,"./ar-MA/_lib/formatLong/index.js":980,"./ar-MA/_lib/formatRelative/index.js":981,"./ar-MA/_lib/localize/index.js":982,"./ar-MA/_lib/match/index.js":983,"./ar-MA/index.js":1410,"./ar-SA/_lib/formatDistance/index.js":984,"./ar-SA/_lib/formatLong/index.js":985,"./ar-SA/_lib/formatRelative/index.js":986,"./ar-SA/_lib/localize/index.js":987,"./ar-SA/_lib/match/index.js":988,"./ar-SA/index.js":1411,"./az/_lib/formatDistance/index.js":989,"./az/_lib/formatLong/index.js":990,"./az/_lib/formatRelative/index.js":991,"./az/_lib/localize/index.js":992,"./az/_lib/match/index.js":993,"./az/index.js":1412,"./be/_lib/formatDistance/index.js":994,"./be/_lib/formatLong/index.js":995,"./be/_lib/formatRelative/index.js":996,"./be/_lib/localize/index.js":997,"./be/_lib/match/index.js":998,"./be/index.js":1416,"./bg/_lib/formatDistance/index.js":999,"./bg/_lib/formatLong/index.js":1e3,"./bg/_lib/formatRelative/index.js":1001,"./bg/_lib/localize/index.js":1002,"./bg/_lib/match/index.js":1003,"./bg/index.js":1417,"./bn/_lib/formatDistance/index.js":1004,"./bn/_lib/formatLong/index.js":1005,"./bn/_lib/formatRelative/index.js":1006,"./bn/_lib/localize/index.js":900,"./bn/_lib/match/index.js":1007,"./bn/index.js":1418,"./ca/_lib/formatDistance/index.js":1008,"./ca/_lib/formatLong/index.js":1009,"./ca/_lib/formatRelative/index.js":1010,"./ca/_lib/localize/index.js":1011,"./ca/_lib/match/index.js":1012,"./ca/index.js":1419,"./cs/_lib/formatDistance/index.js":1013,"./cs/_lib/formatLong/index.js":1014,"./cs/_lib/formatRelative/index.js":1015,"./cs/_lib/localize/index.js":1016,"./cs/_lib/match/index.js":1017,"./cs/index.js":1420,"./cy/_lib/formatDistance/index.js":1018,"./cy/_lib/formatLong/index.js":1019,"./cy/_lib/formatRelative/index.js":1020,"./cy/_lib/localize/index.js":1021,"./cy/_lib/match/index.js":1022,"./cy/index.js":1421,"./da/_lib/formatDistance/index.js":1023,"./da/_lib/formatLong/index.js":1024,"./da/_lib/formatRelative/index.js":1025,"./da/_lib/localize/index.js":1026,"./da/_lib/match/index.js":1027,"./da/index.js":1422,"./de/_lib/formatDistance/index.js":1028,"./de/_lib/formatLong/index.js":1029,"./de/_lib/formatRelative/index.js":1030,"./de/_lib/localize/index.js":1031,"./de/_lib/match/index.js":1032,"./de/index.js":1423,"./el/_lib/formatDistance/index.js":1033,"./el/_lib/formatLong/index.js":1034,"./el/_lib/formatRelative/index.js":1035,"./el/_lib/localize/index.js":1036,"./el/_lib/match/index.js":1037,"./el/index.js":1424,"./en-AU/_lib/formatLong/index.js":1038,"./en-AU/index.js":1425,"./en-CA/_lib/formatDistance/index.js":1039,"./en-CA/_lib/formatLong/index.js":1040,"./en-CA/index.js":1426,"./en-GB/_lib/formatLong/index.js":1041,"./en-GB/index.js":1427,"./en-IN/_lib/formatLong/index.js":1042,"./en-IN/index.js":1428,"./en-NZ/_lib/formatLong/index.js":1043,"./en-NZ/index.js":1429,"./en-US/_lib/formatDistance/index.js":713,"./en-US/_lib/formatLong/index.js":1044,"./en-US/_lib/formatRelative/index.js":693,"./en-US/_lib/localize/index.js":694,"./en-US/_lib/match/index.js":695,"./en-US/index.js":1430,"./eo/_lib/formatDistance/index.js":1045,"./eo/_lib/formatLong/index.js":1046,"./eo/_lib/formatRelative/index.js":1047,"./eo/_lib/localize/index.js":1048,"./eo/_lib/match/index.js":1049,"./eo/index.js":1431,"./es/_lib/formatDistance/index.js":1050,"./es/_lib/formatLong/index.js":1051,"./es/_lib/formatRelative/index.js":1052,"./es/_lib/localize/index.js":1053,"./es/_lib/match/index.js":1054,"./es/index.js":1432,"./et/_lib/formatDistance/index.js":1055,"./et/_lib/formatLong/index.js":1056,"./et/_lib/formatRelative/index.js":1057,"./et/_lib/localize/index.js":1058,"./et/_lib/match/index.js":1059,"./et/index.js":1433,"./eu/_lib/formatDistance/index.js":1060,"./eu/_lib/formatLong/index.js":1061,"./eu/_lib/formatRelative/index.js":1062,"./eu/_lib/localize/index.js":1063,"./eu/_lib/match/index.js":1064,"./eu/index.js":1434,"./fa-IR/_lib/formatDistance/index.js":1065,"./fa-IR/_lib/formatLong/index.js":1066,"./fa-IR/_lib/formatRelative/index.js":1067,"./fa-IR/_lib/localize/index.js":1068,"./fa-IR/_lib/match/index.js":1069,"./fa-IR/index.js":1435,"./fi/_lib/formatDistance/index.js":1070,"./fi/_lib/formatLong/index.js":1071,"./fi/_lib/formatRelative/index.js":1072,"./fi/_lib/localize/index.js":1073,"./fi/_lib/match/index.js":1074,"./fi/index.js":1436,"./fr-CA/_lib/formatLong/index.js":1075,"./fr-CA/index.js":1437,"./fr-CH/_lib/formatDistance/index.js":1076,"./fr-CH/_lib/formatLong/index.js":1077,"./fr-CH/_lib/formatRelative/index.js":1078,"./fr-CH/_lib/formatters/index.js":1438,"./fr-CH/_lib/localize/index.js":1079,"./fr-CH/_lib/match/index.js":1080,"./fr-CH/index.js":1439,"./fr/_lib/formatDistance/index.js":901,"./fr/_lib/formatLong/index.js":1081,"./fr/_lib/formatRelative/index.js":902,"./fr/_lib/formatters/index.js":1440,"./fr/_lib/localize/index.js":903,"./fr/_lib/match/index.js":904,"./fr/index.js":1441,"./gd/_lib/formatDistance/index.js":1082,"./gd/_lib/formatLong/index.js":1083,"./gd/_lib/formatRelative/index.js":1084,"./gd/_lib/localize/index.js":1085,"./gd/_lib/match/index.js":1086,"./gd/index.js":1442,"./gl/_lib/formatDistance/index.js":1087,"./gl/_lib/formatLong/index.js":1088,"./gl/_lib/formatRelative/index.js":1089,"./gl/_lib/localize/index.js":1090,"./gl/_lib/match/index.js":1091,"./gl/index.js":1443,"./gu/_lib/formatDistance/index.js":1092,"./gu/_lib/formatLong/index.js":1093,"./gu/_lib/formatRelative/index.js":1094,"./gu/_lib/localize/index.js":1095,"./gu/_lib/match/index.js":1096,"./gu/index.js":1444,"./he/_lib/formatDistance/index.js":1097,"./he/_lib/formatLong/index.js":1098,"./he/_lib/formatRelative/index.js":1099,"./he/_lib/localize/index.js":1100,"./he/_lib/match/index.js":1101,"./he/index.js":1445,"./hi/_lib/formatDistance/index.js":1102,"./hi/_lib/formatLong/index.js":1103,"./hi/_lib/formatRelative/index.js":1104,"./hi/_lib/localize/index.js":812,"./hi/_lib/match/index.js":1105,"./hi/index.js":1446,"./hr/_lib/formatDistance/index.js":1106,"./hr/_lib/formatLong/index.js":1107,"./hr/_lib/formatRelative/index.js":1108,"./hr/_lib/localize/index.js":1109,"./hr/_lib/match/index.js":1110,"./hr/index.js":1447,"./hu/_lib/formatDistance/index.js":1111,"./hu/_lib/formatLong/index.js":1112,"./hu/_lib/formatRelative/index.js":1113,"./hu/_lib/localize/index.js":1114,"./hu/_lib/match/index.js":1115,"./hu/index.js":1448,"./hy/_lib/formatDistance/index.js":1116,"./hy/_lib/formatLong/index.js":1117,"./hy/_lib/formatRelative/index.js":1118,"./hy/_lib/localize/index.js":1119,"./hy/_lib/match/index.js":1120,"./hy/index.js":1449,"./id/_lib/formatDistance/index.js":1121,"./id/_lib/formatLong/index.js":1122,"./id/_lib/formatRelative/index.js":1123,"./id/_lib/localize/index.js":1124,"./id/_lib/match/index.js":1125,"./id/index.js":1450,"./is/_lib/formatDistance/index.js":1126,"./is/_lib/formatLong/index.js":1127,"./is/_lib/formatRelative/index.js":1128,"./is/_lib/localize/index.js":1129,"./is/_lib/match/index.js":1130,"./is/index.js":1451,"./it/_lib/formatDistance/index.js":1131,"./it/_lib/formatLong/index.js":1132,"./it/_lib/formatRelative/index.js":1133,"./it/_lib/localize/index.js":1134,"./it/_lib/match/index.js":1135,"./it/index.js":1452,"./ja/_lib/formatDistance/index.js":1136,"./ja/_lib/formatLong/index.js":1137,"./ja/_lib/formatRelative/index.js":1138,"./ja/_lib/localize/index.js":1139,"./ja/_lib/match/index.js":1140,"./ja/index.js":1453,"./ka/_lib/formatDistance/index.js":1141,"./ka/_lib/formatLong/index.js":1142,"./ka/_lib/formatRelative/index.js":1143,"./ka/_lib/localize/index.js":1144,"./ka/_lib/match/index.js":1145,"./ka/index.js":1454,"./kk/_lib/formatDistance/index.js":1146,"./kk/_lib/formatLong/index.js":1147,"./kk/_lib/formatRelative/index.js":1148,"./kk/_lib/localize/index.js":1149,"./kk/_lib/match/index.js":1150,"./kk/index.js":1455,"./kn/_lib/formatDistance/index.js":1151,"./kn/_lib/formatLong/index.js":1152,"./kn/_lib/formatRelative/index.js":1153,"./kn/_lib/localize/index.js":1154,"./kn/_lib/match/index.js":1155,"./kn/index.js":1456,"./ko/_lib/formatDistance/index.js":1156,"./ko/_lib/formatLong/index.js":1157,"./ko/_lib/formatRelative/index.js":1158,"./ko/_lib/localize/index.js":1159,"./ko/_lib/match/index.js":1160,"./ko/index.js":1457,"./lt/_lib/formatDistance/index.js":1161,"./lt/_lib/formatLong/index.js":1162,"./lt/_lib/formatRelative/index.js":1163,"./lt/_lib/localize/index.js":1164,"./lt/_lib/match/index.js":1165,"./lt/index.js":1458,"./lv/_lib/formatDistance/index.js":1166,"./lv/_lib/formatLong/index.js":1167,"./lv/_lib/formatRelative/index.js":1168,"./lv/_lib/localize/index.js":1169,"./lv/_lib/match/index.js":1170,"./lv/index.js":1459,"./mk/_lib/formatDistance/index.js":1171,"./mk/_lib/formatLong/index.js":1172,"./mk/_lib/formatRelative/index.js":1173,"./mk/_lib/localize/index.js":1174,"./mk/_lib/match/index.js":1175,"./mk/index.js":1460,"./ms/_lib/formatDistance/index.js":1176,"./ms/_lib/formatLong/index.js":1177,"./ms/_lib/formatRelative/index.js":1178,"./ms/_lib/localize/index.js":1179,"./ms/_lib/match/index.js":1180,"./ms/index.js":1461,"./mt/_lib/formatDistance/index.js":1181,"./mt/_lib/formatLong/index.js":1182,"./mt/_lib/formatRelative/index.js":1183,"./mt/_lib/localize/index.js":1184,"./mt/_lib/match/index.js":1185,"./mt/index.js":1462,"./nb/_lib/formatDistance/index.js":1186,"./nb/_lib/formatLong/index.js":1187,"./nb/_lib/formatRelative/index.js":1188,"./nb/_lib/localize/index.js":1189,"./nb/_lib/match/index.js":1190,"./nb/index.js":1463,"./nl-BE/_lib/formatDistance/index.js":1191,"./nl-BE/_lib/formatLong/index.js":1192,"./nl-BE/_lib/formatRelative/index.js":1193,"./nl-BE/_lib/localize/index.js":1194,"./nl-BE/_lib/match/index.js":1195,"./nl-BE/index.js":1464,"./nl/_lib/formatDistance/index.js":1196,"./nl/_lib/formatLong/index.js":1197,"./nl/_lib/formatRelative/index.js":1198,"./nl/_lib/localize/index.js":1199,"./nl/_lib/match/index.js":1200,"./nl/index.js":1465,"./nn/_lib/formatDistance/index.js":1201,"./nn/_lib/formatLong/index.js":1202,"./nn/_lib/formatRelative/index.js":1203,"./nn/_lib/localize/index.js":1204,"./nn/_lib/match/index.js":1205,"./nn/index.js":1466,"./pl/_lib/formatDistance/index.js":1206,"./pl/_lib/formatLong/index.js":1207,"./pl/_lib/formatRelative/index.js":1208,"./pl/_lib/localize/index.js":1209,"./pl/_lib/match/index.js":1210,"./pl/index.js":1467,"./pt-BR/_lib/formatDistance/index.js":1211,"./pt-BR/_lib/formatLong/index.js":1212,"./pt-BR/_lib/formatRelative/index.js":1213,"./pt-BR/_lib/localize/index.js":1214,"./pt-BR/_lib/match/index.js":1215,"./pt-BR/index.js":1468,"./pt/_lib/formatDistance/index.js":1216,"./pt/_lib/formatLong/index.js":1217,"./pt/_lib/formatRelative/index.js":1218,"./pt/_lib/localize/index.js":1219,"./pt/_lib/match/index.js":1220,"./pt/index.js":1469,"./ro/_lib/formatDistance/index.js":1221,"./ro/_lib/formatLong/index.js":1222,"./ro/_lib/formatRelative/index.js":1223,"./ro/_lib/localize/index.js":1224,"./ro/_lib/match/index.js":1225,"./ro/index.js":1470,"./ru/_lib/formatDistance/index.js":1226,"./ru/_lib/formatLong/index.js":1227,"./ru/_lib/formatRelative/index.js":1228,"./ru/_lib/localize/index.js":1229,"./ru/_lib/match/index.js":1230,"./ru/index.js":1471,"./sk/_lib/formatDistance/index.js":1231,"./sk/_lib/formatLong/index.js":1232,"./sk/_lib/formatRelative/index.js":1233,"./sk/_lib/localize/index.js":1234,"./sk/_lib/match/index.js":1235,"./sk/index.js":1472,"./sl/_lib/formatDistance/index.js":1236,"./sl/_lib/formatLong/index.js":1237,"./sl/_lib/formatRelative/index.js":1238,"./sl/_lib/localize/index.js":1239,"./sl/_lib/match/index.js":1240,"./sl/index.js":1473,"./sr-Latn/_lib/formatDistance/index.js":1241,"./sr-Latn/_lib/formatLong/index.js":1242,"./sr-Latn/_lib/formatRelative/index.js":1243,"./sr-Latn/_lib/localize/index.js":1244,"./sr-Latn/_lib/match/index.js":1245,"./sr-Latn/index.js":1474,"./sr/_lib/formatDistance/index.js":1246,"./sr/_lib/formatLong/index.js":1247,"./sr/_lib/formatRelative/index.js":1248,"./sr/_lib/localize/index.js":1249,"./sr/_lib/match/index.js":1250,"./sr/index.js":1475,"./sv/_lib/formatDistance/index.js":1251,"./sv/_lib/formatLong/index.js":1252,"./sv/_lib/formatRelative/index.js":1253,"./sv/_lib/localize/index.js":1254,"./sv/_lib/match/index.js":1255,"./sv/index.js":1476,"./ta/_lib/formatDistance/index.js":1256,"./ta/_lib/formatLong/index.js":1257,"./ta/_lib/formatRelative/index.js":1258,"./ta/_lib/localize/index.js":1259,"./ta/_lib/match/index.js":1260,"./ta/index.js":1477,"./te/_lib/formatDistance/index.js":1261,"./te/_lib/formatLong/index.js":1262,"./te/_lib/formatRelative/index.js":1263,"./te/_lib/localize/index.js":1264,"./te/_lib/match/index.js":1265,"./te/index.js":1478,"./th/_lib/formatDistance/index.js":1266,"./th/_lib/formatLong/index.js":1267,"./th/_lib/formatRelative/index.js":1268,"./th/_lib/localize/index.js":1269,"./th/_lib/match/index.js":1270,"./th/index.js":1479,"./tr/_lib/formatDistance/index.js":1271,"./tr/_lib/formatLong/index.js":1272,"./tr/_lib/formatRelative/index.js":1273,"./tr/_lib/localize/index.js":1274,"./tr/_lib/match/index.js":1275,"./tr/index.js":1480,"./ug/_lib/formatDistance/index.js":1276,"./ug/_lib/formatLong/index.js":1277,"./ug/_lib/formatRelative/index.js":1278,"./ug/_lib/localize/index.js":1279,"./ug/_lib/match/index.js":1280,"./ug/index.js":1481,"./uk/_lib/formatDistance/index.js":1281,"./uk/_lib/formatLong/index.js":1282,"./uk/_lib/formatRelative/index.js":1283,"./uk/_lib/localize/index.js":1284,"./uk/_lib/match/index.js":1285,"./uk/index.js":1482,"./uz/_lib/formatDistance/index.js":1286,"./uz/_lib/formatLong/index.js":1287,"./uz/_lib/formatRelative/index.js":1288,"./uz/_lib/localize/index.js":1289,"./uz/_lib/match/index.js":1290,"./uz/index.js":1483,"./vi/_lib/formatDistance/index.js":1291,"./vi/_lib/formatLong/index.js":1292,"./vi/_lib/formatRelative/index.js":1293,"./vi/_lib/localize/index.js":1294,"./vi/_lib/match/index.js":1295,"./vi/index.js":1484,"./zh-CN/_lib/formatDistance/index.js":1296,"./zh-CN/_lib/formatLong/index.js":1297,"./zh-CN/_lib/formatRelative/index.js":1298,"./zh-CN/_lib/localize/index.js":1299,"./zh-CN/_lib/match/index.js":1300,"./zh-CN/index.js":1485,"./zh-TW/_lib/formatDistance/index.js":1301,"./zh-TW/_lib/formatLong/index.js":1302,"./zh-TW/_lib/formatRelative/index.js":1303,"./zh-TW/_lib/localize/index.js":1304,"./zh-TW/_lib/match/index.js":1305,"./zh-TW/index.js":1486};function o(e){var n=i(e);return t(n)}function i(e){if(!t.o(r,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=1407},1487:function(e,n,t){e.exports={button:"button__3e1dX","button--nude":"button--nude__oLLi8","button--outline":"button--outline__3jYhl","button--loading":"button--loading__1OpgK","button--danger":"button--danger__Iy_nb","button--secondary":"button--secondary__2llNV","button--img":"button--img__2ISo-","button--stack":"button--stack__DpWG_","button--small":"button--small__3Ekpu","button--disabled":"button--disabled__138mI","button-loading-rotation":"button-loading-rotation__3syhb","button--icon":"button--icon__3a2Uu",button__badge:"button__badge__A7TBZ"}},1488:function(e,n,t){e.exports={"button-group":"button-group__2wVZy","button-group__item":"button-group__item__35pYh"}},1489:function(e,n,t){e.exports={modal__overlay:"modal__overlay__1IgTH",modal:"modal__Gy54_","modal--animated":"modal--animated__2je9C",fadeInUp:"fadeInUp__2U9Hr",modal__message:"modal__message__ZU6Zd"}},1490:function(e,n,t){"use strict";t.r(n),t.d(n,"loadResource",(function(){return s}));var r=t(688),o=t(656),i=t(968);function a(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}var s=function(){var e,n=(e=regeneratorRuntime.mark((function e(n){var r,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t(1491)("./".concat(n,".json"));case 2:return r=e.sent,o=r.default.translation,e.abrupt("return",o);case 5:case"end":return e.stop()}}),e)})),function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function s(e){a(i,r,o,s,_,"next",e)}function _(e){a(i,r,o,s,_,"throw",e)}s(void 0)}))});return function(e){return n.apply(this,arguments)}}();n.default=r.a.use({type:"backend",read:function(e,n,t){s(e).then((function(e){t(null,e)})).catch((function(e){t(e,null)}))}}).use(o.b).init({lng:Object(i.d)(Object(i.b)()||Object(i.a)()),fallbackLng:"en",react:{useSuspense:!1}})},1491:function(e,n,t){var r={"./af.json":[1727,6],"./ar.json":[1728,7],"./az.json":[1729,8],"./be-BY.json":[1730,9],"./be_BY.json":[1731,10],"./bg.json":[1732,11],"./bs.json":[1733,12],"./ca.json":[1734,13],"./cs.json":[1735,14],"./cy.json":[1736,15],"./da.json":[1737,16],"./de-AT.json":[1738,17],"./de-IN.json":[1739,18],"./de.json":[1740,19],"./de_AT.json":[1741,20],"./default.json":[1742,21],"./el.json":[1743,22],"./en.json":[1744,23],"./eo.json":[1745,24],"./es.json":[1746,25],"./et.json":[1747,26],"./eu.json":[1748,27],"./fa.json":[1749,28],"./fi.json":[1750,29],"./fr.json":[1751,30],"./he.json":[1752,31],"./hr.json":[1753,32],"./hu.json":[1754,33],"./id.json":[1755,34],"./it.json":[1756,35],"./ja.json":[1757,36],"./km.json":[1758,37],"./ko.json":[1759,38],"./ku.json":[1760,39],"./lo.json":[1761,40],"./lt.json":[1762,41],"./lv.json":[1763,42],"./mn.json":[1764,43],"./ms-MY.json":[1765,44],"./ms_MY.json":[1766,45],"./nl.json":[1767,46],"./no.json":[1768,47],"./pl.json":[1769,48],"./pt-BR.json":[1770,49],"./pt.json":[1771,50],"./pt_BR.json":[1772,51],"./ro.json":[1773,52],"./ru.json":[1774,53],"./sk-SK.json":[1775,54],"./sk_SK.json":[1776,55],"./sl-SI.json":[1777,56],"./sl_SI.json":[1778,57],"./sq.json":[1779,58],"./sr.json":[1780,59],"./sv.json":[1781,60],"./ta-IN.json":[1782,61],"./ta_IN.json":[1783,62],"./th-TH.json":[1784,63],"./th_TH.json":[1785,64],"./tr.json":[1786,65],"./ug.json":[1787,66],"./uk.json":[1788,67],"./vi-VN.json":[1789,68],"./vi_VN.json":[1790,69],"./zh-HK.json":[1791,70],"./zh-TW.json":[1792,71],"./zh.json":[1793,72],"./zh_HK.json":[1794,73],"./zh_TW.json":[1795,74]};function o(e){if(!t.o(r,e))return Promise.resolve().then((function(){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=r[e],o=n[0];return t.e(n[1]).then((function(){return t.t(o,3)}))}o.keys=function(){return Object.keys(r)},o.id=1491,e.exports=o},1504:function(e,n){},1506:function(e,n){},1516:function(e,n){},1518:function(e,n){},1543:function(e,n){},1545:function(e,n){},1546:function(e,n){},1551:function(e,n){},1553:function(e,n){},1559:function(e,n){},1561:function(e,n){},1580:function(e,n){},1592:function(e,n){},1595:function(e,n){},1602:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",version:"1.0",width:"357.333",height:"330.667",viewBox:"0 0 268 248"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1603:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1604:function(e,n,t){e.exports={avatar:"avatar__GFJvS",avatar__image:"avatar__image__1eLmO",avatar__status:"avatar__status__Wsps9","avatar__status--small":"avatar__status--small__1rB0Q","avatar__status--large":"avatar__status--large__1XQtY","avatar__status--status-online":"avatar__status--status-online__15xk6","avatar__status--status-away":"avatar__status--status-away__JIVRl","avatar__status--status-busy":"avatar__status--status-busy__2Zv0K","avatar--nobg":"avatar--nobg__1Xmft","avatar--small":"avatar--small__2-TCM","avatar--large":"avatar--large__3MrZD"}},1605:function(e,n,t){e.exports={composer:"composer__27x96",composer__input:"composer__input___Cggy","composer--connecting":"composer--connecting__3MFFw"}},1606:function(e,n,t){e.exports={composer__action:"composer__action__2ZuQd"}},1607:function(e,n,t){e.exports={composer__actions:"composer__actions__3eA8B"}},1608:function(e,n,t){e.exports={drop:"drop__6UUiL","drop--overlayed":"drop--overlayed__JT4ny","drop--dragover":"drop--dragover__2EYfW",fadein:"fadein__1UAhl",drop__input:"drop__input__2o6so"}},1609:function(e,n,t){e.exports={popover__overlay:"popover__overlay__2FLro","popover__overlay--visible":"popover__overlay--visible__220hl",popover__container:"popover__container__1sbvl"}},1610:function(e,n,t){e.exports={menu:"menu__14x2m",menu__group:"menu__group__cJiQf","menu__group-title":"menu__group-title__2LjPN",menu__item:"menu__item__1wXnR","menu__item--primary":"menu__item--primary__3jawX","menu__item--danger":"menu__item--danger__10H3r","menu__item--disabled":"menu__item--disabled__31ezP",menu__item__icon:"menu__item__icon__sTZTu","menu--hidden":"menu--hidden__3uGW9","menu--placement":"menu--placement__3ylkS","menu--placement-left-top":"menu--placement-left-top__2kTUb","menu--placement-right-top":"menu--placement-right-top__10AnG","menu--placement-right-bottom":"menu--placement-right-bottom__12XOK","menu--placement-left-bottom":"menu--placement-left-bottom__2-Hou","popover-menu__overlay":"popover-menu__overlay__3VEFt"}},1611:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 1500 272",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1612:function(e,n,t){e.exports={footer:"footer__1V22a",footer__content:"footer__content__1tgEl",footer__options:"footer__options__g5T_a",footer__remainder:"footer__remainder__3XLQw","footer__remainder--highlight":"footer__remainder--highlight__1YH6i","powered-by":"powered-by__1DxxE","powered-by__logo":"powered-by__logo__2Y08v"}},1613:function(e,n,t){e.exports={"message-bubble":"message-bubble__35HAq","message-bubble--inverse":"message-bubble--inverse__8y9eJ","message-bubble--nude":"message-bubble--nude__2DB1l","message-bubble--quoted":"message-bubble--quoted__3pELB","message-bubble--system":"message-bubble--system__2-OfO","message-container":"message-container__3n9XC","message-bubble--friendlyChat":"message-bubble--friendlyChat__iva0y","message-bubble--myfirst":"message-bubble--myfirst__29ezA","message-bubble--mymid":"message-bubble--mymid__hqph2","message-bubble--mylast":"message-bubble--mylast__12qIj","message-bubble--yourfirst":"message-bubble--yourfirst__ufCo5","message-bubble--yourmid":"message-bubble--yourmid__2BDTX","message-bubble--yourlast":"message-bubble--yourlast__2Xo6z"}},1614:function(e,n,t){e.exports={"audio-attachment__inner":"audio-attachment__inner__im_cm"}},1615:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1616:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1617:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1618:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1619:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1620:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1621:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1622:function(e,n,t){e.exports={"file-attachment":"file-attachment__3usPx","file-attachment__inner":"file-attachment__inner__4KqWu","file-attachment__download-button":"file-attachment__download-button__JXzbE","file-attachment__title":"file-attachment__title__8QXST"}},1623:function(e,n,t){e.exports={"image-attachment__inner":"image-attachment__inner__3qFwJ"}},1624:function(e,n,t){e.exports={"attachment-component__inner":"attachment-component__inner__3-hlh",button:"button__1sGni"}},1625:function(e,n,t){e.exports={"message-avatars":"message-avatars__3vj_P","message-avatars__avatar":"message-avatars__avatar__2w8Pn"}},1626:function(e,n,t){e.exports={"uikit-actions-block":"uikit-actions-block__3kFjZ","uikit-actions-block__item":"uikit-actions-block__item__257n5"}},1627:function(e,n,t){e.exports={"uikit-button":"uikit-button__3X6Eh","button-loading-rotation":"button-loading-rotation__2Fl4_","uikit-button--style-primary":"uikit-button--style-primary__3DERb","uikit-button--style-danger":"uikit-button--style-danger__2qDlz"}},1628:function(e,n,t){e.exports={"uikit-context-block":"uikit-context-block__2WzDn","uikit-context-block__item":"uikit-context-block__item__3dfvB"}},1629:function(e,n,t){e.exports={"date-input":"date-input__32np5","date-input--small":"date-input--small__1nGy1","date-input--disabled":"date-input--disabled__V83aQ","date-input--error":"date-input--error__3giSy"}},1630:function(e,n,t){e.exports={"uikit-divider-block":"uikit-divider-block__Z-3HK"}},1631:function(e,n,t){e.exports={"uikit-image-block":"uikit-image-block__1angW","uikit-image-block__title":"uikit-image-block__title__1xJGc","uikit-image-block__content":"uikit-image-block__content__zXi9F","uikit-image-block__content--loading":"uikit-image-block__content--loading__3GZqc","uikit-image-block__wrapper":"uikit-image-block__wrapper__1-Ukv","uikit-image-block__link":"uikit-image-block__link__27wvk"}},1632:function(e,n,t){e.exports={"uikit-image":"uikit-image__W6cSQ","uikit-image--accessory":"uikit-image--accessory__xfSNy","uikit-image--context":"uikit-image--context__3myst"}},1686:function(e,n,t){e.exports={"uikit-mrkdwn":"uikit-mrkdwn__3YVwY"}},1687:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1688:function(e,n,t){e.exports={"uikit-overflow__trigger":"uikit-overflow__trigger__1nYqP"}},1689:function(e,n,t){e.exports={"uikit-plain-text":"uikit-plain-text__IgVqw"}},1690:function(e,n,t){e.exports={"uikit-section-block":"uikit-section-block__Y4Gbb","uikit-section-block__content":"uikit-section-block__content__h4FtV","uikit-section-block__text":"uikit-section-block__text__1ccTA","uikit-section-block__fields":"uikit-section-block__fields__1u9yU","uikit-section-block__field":"uikit-section-block__field__34-8Y","uikit-section-block__accessory":"uikit-section-block__accessory__1a702"}},1691:function(e,n,t){e.exports={"select-input":"select-input__23YB7","select-input__select":"select-input__select__3eBo4","select-input__select--small":"select-input__select--small__dHwaf","select-input__select--disabled":"select-input__select--disabled__YbxwQ","select-input__select--error":"select-input__select--error__1r_NO","select-input__select--placeholder":"select-input__select--placeholder__1ZiPY","select-input__option":"select-input__option__HpPGW","select-input__arrow":"select-input__arrow__2jglH"}},1692:function(e,n,t){e.exports={"uikit-static-select":"uikit-static-select__1TWLI"}},1693:function(e,n,t){e.exports={"message-blocks":"message-blocks__1PDtT"}},1694:function(e,n,t){e.exports={"message-container":"message-container__19jeU","message-container--compact":"message-container--compact__374zr","message-container--reverse":"message-container--reverse__3x9rK","message-container--system":"message-container--system__1eZ2Y","message-container-break":"message-container-break__2yxLd"}},1695:function(e,n,t){e.exports={"message-content":"message-content__1DkcS","message-content--reverse":"message-content--reverse__o_hmd"}},1696:function(e,n,t){e.exports={"message-text":"message-text__4m75x","message-text--system":"message-text--system__mdDfo"}},1697:function(e,n,t){e.exports={"message-time":"message-time__2e1gz","message-time-wrapper":"message-time-wrapper__JEbuq","message-time--normal":"message-time--normal__2jM19","message-time--inverted":"message-time--inverted__1Y9Du"}},1698:function(e,n,t){e.exports={"video-attachment__inner":"video-attachment__inner__1-nfC"}},1699:function(e,n,t){e.exports={closedChatButton__content:"closedChatButton__content__2Oizb",surveyText__content:"surveyText__content__Cn3AQ"}},1700:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1701:function(e,n,t){e.exports={separator:"separator__2hKm1",separator__text:"separator__text__CCH47",separator__line:"separator__line__31sRI","separator--date":"separator--date__2KXC7","separator--unread":"separator--unread__26QDF"}},1702:function(e,n,t){e.exports={"typing-dots":"typing-dots__2dVrQ","typing-dots__dot":"typing-dots__dot__hqh2c","typing-dots__indicator":"typing-dots__indicator__379kG"}},1703:function(e,n,t){e.exports={"message-list":"message-list__1jRl9","message-list__content":"message-list__content__3TyF4"}},1704:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",width:"25pt",height:"32",viewBox:"0 0 25 24"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1705:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 18"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1706:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 18"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1707:function(e,n,t){e.exports={alert:"alert__2_6E-",alert__content:"alert__content__WiDgC",alert__close:"alert__close__N2TJw","alert--success":"alert--success__2BSNz","alert--warning":"alert--warning__18Xi6","alert--error":"alert--error__3ttMA"}},1708:function(e,n,t){e.exports={header:"header__13Vuj",header__actions:"header__actions__aNMyg",header__content:"header__content__pXDMp",header__item:"header__item__EmXV-",header__picture:"header__picture__3W5Fb",header__title:"header__title__PtLVn",header__subtitle:"header__subtitle__1ncvc","header__custom-field":"header__custom-field__1xJH3",header__action:"header__action__2wnEh",header__post:"header__post__VA2cW","header--large":"header--large__2keTG"}},1709:function(e,n,t){e.exports={tooltip:"tooltip__mOwTr","tooltip--hidden":"tooltip--hidden__vIBh0","tooltip--placement-left":"tooltip--placement-left__1AH9w","tooltip--placement-right":"tooltip--placement-right__3LZFt","tooltip--placement-top":"tooltip--placement-top__NfRdd","tooltip--placement-top-left":"tooltip--placement-top-left__3tiWm","tooltip--placement-top-right":"tooltip--placement-top-right__1jba4","tooltip--placement-bottom":"tooltip--placement-bottom__15Yxs","tooltip--placement-bottom-left":"tooltip--placement-bottom-left__DatSn","tooltip--placement-bottom-right":"tooltip--placement-bottom-right__2bsJB","tooltip--floating":"tooltip--floating__1PBGg"}},1710:function(e,n,t){e.exports={screen:"screen__sskEr",screen__inner:"screen__inner__ihfK6","screen__chat-button":"screen__chat-button__2h7Ad","screen__chat-close-button":"screen__chat-close-button__isEmn","screen--minimized":"screen--minimized__2cVSs","screen--expanded":"screen--expanded__1zqIP","screen--windowed":"screen--windowed__Ad1VZ","screen--triggered":"screen--triggered__2c_Iw","screen__inner--fitTextSize":"screen__inner--fitTextSize__1x0T7",screen__main:"screen__main__DBTEi","screen__main--nopadding":"screen__main--nopadding__16Bsg","screen__main--triggered":"screen__main--triggered__3xccT","screen__agent-email":"screen__agent-email__3DONj"}},1711:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1712:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1713:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1714:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1715:function(e,n,t){var r=t(132),o=t(655);e.exports={attributes:{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},content:''};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},1716:function(e,n,t){e.exports={chat__messages:"chat__messages__f3sJg","chat__messages--atBottom":"chat__messages--atBottom__1wPuF","chat__messages--loading":"chat__messages--loading__gsc8d","loader-rotate":"loader-rotate__3AWNK",chat:"chat__1ggQU",none__action:"none__action__1hdXV","emoji-picker-icon":"emoji-picker-icon__3OTWb"}},1717:function(e,n,t){e.exports={"chat-finished__greeting":"chat-finished__greeting__zxo1Q","chat-finished__message":"chat-finished__message__2Ly5q"}},1718:function(e,n,t){e.exports={"gdpr__consent-text":"gdpr__consent-text__1K91W",gdpr__instructions:"gdpr__instructions__lHoQt"}},1719:function(e,n,t){},1720:function(e,n,t){e.exports={"form-field":"form-field__16wVs","form-field__label-wrapper":"form-field__label-wrapper__1ZXe4","form-field__description":"form-field__description__32VwT","form-field__input":"form-field__input__3OQDq","form-field__label":"form-field__label__1hSc7","form-field--error":"form-field--error__2cgpb","form-field--required":"form-field--required__1ehIJ"}},1721:function(e,n,t){e.exports={"text-input":"text-input__15vLf","text-input--small":"text-input--small__1a0F7","text-input--disabled":"text-input--disabled__9qba3","text-input--error":"text-input--error__3nahC","text-input--multiple":"text-input--multiple__3Fm0v"}},1722:function(e,n,t){e.exports={"password-input":"password-input__Fh-H5","password-input--small":"password-input--small__23_jZ","password-input--disabled":"password-input--disabled__1b3hY","password-input--error":"password-input--error__3hzSx"}},1723:function(e,n,t){e.exports={"leave-message":"leave-message__2DhUH","leave-message__main":"leave-message__main__2qjg1","leave-message__message":"leave-message__message__3XDZW"}},1724:function(e,n,t){e.exports={register__message:"register__message__XfDRi"}},1725:function(e,n,t){e.exports={"switch-department__message":"switch-department__message__1eSbv"}},1726:function(e,n,t){e.exports={"trigger-message__message":"trigger-message__message__3z2MP","trigger-message__footer":"trigger-message__footer__1BGi7","trigger-message__separator":"trigger-message__separator__29Hse","trigger-message__link-reply":"trigger-message__link-reply__1eF72"}},1796:function(e,n,t){"use strict";t.r(n);var r=t(132),o=t(653),i=t(688),a=t(684),s=t(961),_=t.n(s),c=t(656),l=t(1798),u=Object(l.a)(),m=t(657),f="UNREAD_MESSAGES",d="CONNECTING_AGENT",p="LIVECHAT_CONNECTED",h="LIVECHAT_DISCONNECTED",g="LIVECHAT_QUEUE_MESSAGE",b="livechat_webrtc_video_call",v="jitsi_call_started",y=t(724),w=t(1403),k=t.n(w);function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function x(e,n){for(var t=0;te.length)&&(n=e.length);for(var t=0,r=new Array(n);t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}(e.entries());try{for(o.s();!(t=o.n()).done;){var i=L(t.value,2),a=i[0],s=n(i[1],a,e);Array.isArray(s)?r.push.apply(r,z(s)):r.push(s)}}catch(e){o.e(e)}finally{o.f()}return r}var F=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return[e[n]].concat(z(M(Object.entries(t),(function(t){var r=L(t,2),o=r[0],i=r[1];return[i&&e["".concat(n,"--").concat(o)],"boolean"!=typeof i&&e["".concat(n,"--").concat(o,"-").concat(i)]]})).filter((function(e){return!!e}))),z(r.filter((function(e){return!!e})))).join(" ")};function U(e,n){return B.apply(this,arguments)}function B(){return(B=A(regeneratorRuntime.mark((function e(n,t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=0;case 1:if(!(re[a+1])return a;i=a-1}}return e.length>0?e.length:0}function K(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=e.findIndex(t);return o>-1?(e[o]=n,e):(e.splice(W(e,n,r),0,n),e)}var X=function(){return m.b?"SameSite=None; Secure;":""},G=function(){document.cookie="rc_is_widget=t; path=/; ".concat(X()),document.cookie="rc_room_type=l; path=/; ".concat(X())},Z=function(e,n){document.cookie="rc_rid=".concat(e,"; path=/; ").concat(X()),document.cookie="rc_token=".concat(n,"; path=/; ").concat(X()),document.cookie="rc_room_type=l; path=/; ".concat(X())},$=function(e){return e?"".concat(m.a.client.host,"/avatar/").concat(e):null},Q=["livechat_video_call","livechat_navigation_history","au","command","uj","ul"],J=["customer_idle_timeout"],Y=function(e){var n=e.t,t=e.msg;return!Q.includes(n)&&!J.includes(t)},ee=function(e){return"".concat(m.a.client.host).concat(e)},ne=function(e,n,t){return e.sort((function(e,r){return e[n]0&&void 0!==arguments[0]?arguments[0]:{},n=window.location.origin;return Object.assign(e,{host:n})},re=function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}},oe=void 0!==document.hidden?{get hidden(){return document.hidden},addListener:function(e){return document.addEventListener("visibilitychange",e,!1)},removeListener:function(e){return document.removeEventListener("visibilitychange",e,!1)}}:void 0!==document.msHidden?{get hidden(){return document.msHidden},addListener:function(e){return document.addEventListener("msvisibilitychange",e,!1)},removeListener:function(e){return document.removeEventListener("msvisibilitychange",e,!1)}}:void 0!==document.webkitHidden?{get hidden(){return document.webkitHidden},addListener:function(e){return document.addEventListener("webkitvisibilitychange",e,!1)},removeListener:function(e){return document.removeEventListener("webkitvisibilitychange",e,!1)}}:{hidden:!0,addListener:function(){},removeListener:function(){}},ie=function(e){C(t,e);var n=R(t);function t(){return O(this,t),n.apply(this,arguments)}return S(t,[{key:"shouldComponentUpdate",value:function(e){var n=this.props;for(var t in n)if(n[t]!==e[t])return!0;for(var r in e)if(!(r in n))return!0;return!1}}]),t}(r.Component),ae=function(e){return function(n){C(r,n);var t=R(r);function r(){var n;O(this,r);for(var o=arguments.length,i=new Array(o),a=0;a":">",'"':""","'":"'","`":"`"},le=new RegExp("(?:".concat(Object.keys(ce).join("|"),")"),"g"),ue=k()((function(e){return e.replace(le,(function(e){return ce[e]}))})),me=function(e){return[{plain:e}].map((function(e){var n=e.plain,t=e.html;return n?ue(n):t||""})).join("")},fe=["agent","room","guest","resources","queueInfo"];function de(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function pe(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function he(e){for(var n=1;n0&&(o?i.a.t("your_spot_is_spot_estimated_wait_time_estimatedwai",{spot:n,estimatedWaitTime:o}):i.a.t("your_spot_is_spot",{spot:n}))}};function ze(e,n){for(var t=0;t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Qe(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function Je(e,n){for(var t=0;t0&&setTimeout((function(){return e.triggerDismiss()}),n)}},{key:"componentWillUnmount",value:function(){this.mounted=!1,window.removeEventListener("keydown",this.handleKeyDown,!1)}}])&&Je(n.prototype,t),o&&Je(n,o),a}(r.Component);rn.defaultProps={dismissByOverlay:!0};var on=Object(c.c)()((function(e){var n=e.text,t=e.confirmButtonText,o=e.cancelButtonText,i=e.onConfirm,a=e.onCancel,s=e.t,_=$e(e,Ke);return Object(r.h)(rn,Ze({open:!0,animated:!0,dismissByOverlay:!1},_),Object(r.h)(rn.Message,null,n),Object(r.h)(He,null,Object(r.h)(Fe,{outline:!0,secondary:!0,onClick:a},o||s("no")),Object(r.h)(Fe,{danger:!0,onClick:i},t||s("yes"))))})),an=Object(c.c)()((function(e){var n=e.text,t=e.buttonText,o=e.onConfirm,i=e.t,a=$e(e,Xe);return Object(r.h)(rn,Ze({open:!0,animated:!0,dismissByOverlay:!1},a),Object(r.h)(rn.Message,null,n),Object(r.h)(He,null,Object(r.h)(Fe,{secondary:!0,onClick:o},t||i("ok"))))}));rn.Message=function(e){var n=e.children;return Object(r.h)("div",{className:F(Ve.a,"modal__message")},n)},rn.Confirm=on,rn.Alert=an;var sn=rn;function _n(){return(_n=Object.assign||function(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(n){var t=function(e){return function(){o.c.setState({modal:null}),n({success:e})}};o.c.setState({modal:Object(r.h)(sn.Confirm,_n({},e,{onConfirm:t(!0),onCancel:t(!1)}))})}))},ln=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(n){o.c.setState({modal:Object(r.h)(sn.Alert,_n({},e,{onConfirm:function(){o.c.setState({modal:null}),n({success:!0})}}))})}))},un=t(1490),mn=t(1492),fn=t.n(mn);function dn(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function pn(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function hn(e,n){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"logs";pn(this,e);var r=window,o=r.localStorage,i=r.sessionStorage;this.localStorage=o,this.sessionStorage=i,this.name=n,this.localStorageKey=t,this.activeLogs=this.localStorage.getItem(this.localStorageKey)||"",this.localStorage.setItem(this.localStorageKey,this.activeLogs)}var n,r,i,a,s;return n=e,(r=[{key:"info",value:function(){for(var e=arguments.length,n=new Array(e),t=0;t0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e&&u&&u.idleWarningTimer&&clearTimeout(u.idleWarningTimer),n&&u&&u.idleTimeoutTimer&&clearInterval(u.idleTimeoutTimer)},d=function(e){var n=Math.floor(e/3600),t=Math.floor((e-3600*n)/60),r=e-3600*n-60*t;return"".concat(n&&"".concat(n.toString(),"h ")||"").concat(t.toString().padStart(2,"0"),"m ").concat(r.toString().padStart(2,"0"),"s")},p=function(){var e=xn(regeneratorRuntime.mark((function e(n){var t,i,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=o.e.state.alerts,i=d(n),a={id:"idleTimeoutWarning",children:r.replace(/%t/g,i)||"Are you still there? Please send a message within ".concat(i," or this chat will time out."),warning:!0,hideCloseButton:!0,timeout:0,style:{height:"auto"},contentStyle:{"white-space":"normal"}},t=t.filter((function(e){return"idleTimeoutWarning"!==e.id})),e.next=6,o.e.setState({alerts:(t.push(a),t)});case 6:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),h=function(){var e=xn(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.e.state.alerts,e.next=3,o.e.setState({alerts:n.filter((function(e){return"idleTimeoutWarning"!==e.id}))});case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),g=function(){var e=xn(regeneratorRuntime.mark((function e(){var n,t,r,i,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=o.e.state,t=n.token,r=n.room,i=(r=void 0===r?{}:r)._id,vn.info("Closing chat on widget timeout"),a=Object(yn.a)("Chat Session","closed",{close_method:"timeout"},"session"),m.a.sendLogsToSNS(a),!t||!i){e.next=11;break}return e.next=9,Promise.all([m.a.sendMessage({msg:"customer_idle_timeout",token:t,rid:i})]);case 9:return e.next=11,ln({text:un.default.t("chat_ended_timeout")});case 11:return e.next=13,o.e.setState({idleTimeout:kn(kn({},o.e.state.idleTimeout),{},{idleTimeoutRunning:!1}),idleTimeoutTimers:kn(kn({},o.e.state.idleTimeoutTimers),{},{idleTimeoutTimer:null,idleWarningTimer:null})});case 13:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),b=function(){var e=xn(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=a-i,_=setInterval(xn(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:p(n-=1),0===n&&(clearInterval(_),h(),g());case 3:case"end":return e.stop()}}),e)}))),1e3),e.next=4,o.e.setState({idleTimeout:kn({},o.e.state.idleTimeout),idleTimeoutTimers:kn(kn({},o.e.state.idleTimeoutTimers),{},{idleTimeoutTimer:_})});case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),v=function(){var e=xn(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:f(!1,!0),p(a-i),b();case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),f(),"start"===t?s=setTimeout(v,1e3*i):h(),e.next=19,o.e.setState({idleTimeout:{idleTimeoutMessage:r,idleTimeoutWarningTime:i,idleTimeoutTimeoutTime:a,idleTimeoutRunning:"start"===t},idleTimeoutTimers:{idleTimeoutTimer:_,idleWarningTimer:s}});case 19:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),Cn=t(671),Pn=t(672);function Rn(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function Tn(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){Rn(i,r,o,a,s,"next",e)}function s(e){Rn(i,r,o,a,s,"throw",e)}a(void 0)}))}}var En=function(){var e=Tn(regeneratorRuntime.mark((function e(n){var t,r,i,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.e.state,r=t.parentMessages,i=void 0===r?[]:r,a=n.tmid,i.find((function(e){return e._id===a}))){e.next=6;break}return e.next=6,o.e.setState({parentMessages:K(i,n,(function(e){return e._id===n._id}),(function(e){return e.ts}))});case 6:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),Dn=function(){var e=Tn(regeneratorRuntime.mark((function e(n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n&&n.replies){e.next=2;break}return e.abrupt("return",!1);case 2:return e.next=4,En(n);case 4:return e.abrupt("return",!0);case 5:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),An=function(){var e=Tn(regeneratorRuntime.mark((function e(n){var t,r,i,a,s,_,c,l,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.e.state,r=t.parentMessages,i=void 0===r?[]:r,a=t.room,s=t.alerts,_=i.find((function(e){return e._id===n}))){e.next=19;break}return c=a._id,e.prev=5,e.next=8,m.a.message(n,{rid:c});case 8:return _=e.sent,e.next=11,En(_);case 11:e.next=19;break;case 13:return e.prev=13,e.t0=e.catch(5),l=e.t0.data.error,u={id:Object(Pn.b)(),children:l,error:!0,timeout:5e3},e.next=19,o.e.setState({alerts:(s.push(u),s)});case 19:return e.abrupt("return",_);case 20:case"end":return e.stop()}}),e,null,[[5,13]])})));return function(n){return e.apply(this,arguments)}}(),zn=function(){var e=Tn(regeneratorRuntime.mark((function e(n){var t,r,i,a,s,_,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.e.state,r=t.messages,i=(void 0===r?[]:r).find((function(e){return e._id===n.tmid}))){e.next=7;break}return e.next=6,An(n.tmid);case 6:i=e.sent;case 7:return s=(a=i).msg,_=a.attachments,c=void 0===_?[]:_,e.abrupt("return",Object.assign(n,{threadMsg:i,attachments:[{attachments:c,text:s,tmid:n.tmid}]}));case 9:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),Ln=function(){var e=Tn(regeneratorRuntime.mark((function e(n){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Dn(n);case 2:if(!e.sent){e.next=5;break}return e.abrupt("return",null);case 5:if((t=n.attachments)&&t.length>0&&Object.assign(n,{actionsVisible:!0}),!n||!n.tmid||n.threadMsg){e.next=9;break}return e.abrupt("return",zn(n));case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),Nn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Promise.all(e.filter((function(e){return!!Ln(e)})))},In=function(){var e=!1;if("maxTouchPoints"in navigator)e=navigator.maxTouchPoints>0;else if("msMaxTouchPoints"in navigator)e=navigator.msMaxTouchPoints>0;else{var n=window.matchMedia&&matchMedia("(pointer:coarse)");if(n&&"(pointer:coarse)"===n.media)e=!!n.matches;else if("orientation"in window)e=!0;else{var t=navigator.userAgent;e=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(t)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(t)}}return e},Mn=["minimized","visible","undocked","expanded","businessUnit"];function Fn(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return Un(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Un(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Un(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Wn(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function Kn(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){Wn(i,r,o,a,s,"next",e)}function s(e){Wn(i,r,o,a,s,"throw",e)}a(void 0)}))}}var Xn=new Le,Gn=function(){var e=Kn(regeneratorRuntime.mark((function e(){var n,t,r,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=o.e.state.config,t=(n=void 0===n?{}:n).settings,!(t=void 0===t?{}:t).clearLocalStorageWhenChatEnded){e.next=9;break}return r=Object(o.d)(),r.minimized,r.visible,r.undocked,r.expanded,r.businessUnit,i=Vn(r,Mn),e.next=9,o.e.setState(i);case 9:return e.next=11,o.e.setState({loading:!0});case 11:return e.next=13,we();case 13:return e.next=15,o.e.setState({alerts:[],chatClosed:!1,composerConfig:{disable:!0,disableText:"Close Chat",removeComposer:!0,onDisabledComposerClick:function(){}},postChatUrl:null,room:null});case 15:return In()?Object(a.b)("/chat-finished"):(o.e.setState({minimized:!0}),Object(Cn.a)("minimizeWindow"),Object(a.b)("/")),e.next=18,o.e.setState({loading:!1});case 18:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Zn=function(){var e=Kn(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o.e.setState({alerts:[]}),vn.info("Closing chat"),Object(Cn.a)("callback","chat-ended"),o.e.setState({composerConfig:{disable:!0,disableText:"Close Chat",removeComposer:!0,onDisabledComposerClick:Gn},chatClosed:!0}),vn.info("Composer disabled and chat closed"),vn.sendLogsToES();case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),$n=function(e){var n={disable:!1,disableText:"Please Wait"};if(!e)return n;var t=e.customFields,r=void 0===t?{}:t,o=e.attachments,i=void 0===o?[]:o;if(r.disableInput)return{disable:!0,disableText:r.disableInputMessage||"Please Wait"};for(var a=0;au.length,loading:!1});case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),dt=function(){var e={},n=o.e.state.defaultAgent,t=void 0===n?{}:n;return t&&t._id&&Object.assign(e,{agentId:t._id}),e},pt=function(){var e=Kn(regeneratorRuntime.mark((function e(){var n,t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(vn.info("Room assign request initiated"),!o.e.state.room){e.next=4;break}return e.abrupt("return");case 4:return n=dt(),e.next=7,m.a.room(n);case 7:return t=e.sent,e.next=10,o.e.setState({room:t});case 10:return e.next=12,tt();case 12:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();function ht(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function gt(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){ht(i,r,o,a,s,"next",e)}function s(e){ht(i,r,o,a,s,"throw",e)}a(void 0)}))}}o.e.on("change",(function(e){var n=Fn(e,2),t=n[0];!n[1].room&&t.room&&Object(a.b)("/")}));var bt=!1,vt=h,yt=p,wt=function(e){return e.stop()},kt={init:function(){var e=this;return gt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!bt){n.next=2;break}return n.abrupt("return");case 2:return bt=!0,it=e,n.next=6,e.connect();case 6:case"end":return n.stop()}}),n)})))()},connect:function(){var e=this;return gt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,e.clearListeners(),n.next=4,we();case 4:return n.next=6,Promise.resolve().then(t.bind(null,1490));case 6:return n.next=8,m.a.connect();case 8:e.addListeners(),e.clearAlerts(),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(0),console.error("Connecting error: ",n.t0);case 15:case"end":return n.stop()}}),n,null,[[0,12]])})))()},reconnect:function(){var e=this;at||(at=setTimeout(gt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,clearTimeout(at),at=!1,n.next=5,e.connect();case 5:return n.next=7,ut();case 7:n.next=13;break;case 9:n.prev=9,n.t0=n.catch(0),console.error("Reconecting error: ",n.t0),e.reconnect();case 13:case"end":return n.stop()}}),n,null,[[0,9]])}))),5e3))},clearAlerts:function(){return gt(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.c.state.alerts,e.next=3,o.c.setState({alerts:n.filter((function(e){return![vt,yt].includes(e.id)}))});case 3:case"end":return e.stop()}}),e)})))()},displayAlert:function(){var e=arguments;return gt(regeneratorRuntime.mark((function n(){var t,r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.length>0&&void 0!==e[0]?e[0]:{},r=o.c.state.alerts,n.next=4,o.c.setState({alerts:(r.push(t),r)});case 4:case"end":return n.stop()}}),n)})))()},handleConnected:function(){return gt(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,it.clearAlerts();case 2:return e.next=4,ut();case 4:case"end":return e.stop()}}),e)})))()},handleDisconnected:function(){return gt(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,it.clearAlerts();case 2:it.reconnect();case 3:case"end":return e.stop()}}),e)})))()},addListeners:function(){st||(st=m.a.onStreamData("connected",this.handleConnected)),_t||(_t=m.a.onStreamData("close",this.handleDisconnected))},clearListeners:function(){st&&(st.then(wt),st=!1),_t&&(_t.then(wt),_t=!1)}};function jt(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return Ot(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ot(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ot(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t2&&void 0!==i[2])||i[2],this._started){e.next=4;break}return this._queue[n]={value:t,overwrite:r},e.abrupt("return");case 4:return o=m.a.credentials.token,e.next=7,m.a.sendCustomField({token:o,key:n,value:t,overwrite:r});case 7:case"end":return e.stop()}}),e,this)}))),function(e,n){return i.apply(this,arguments)})},{key:"setOnCustomFieldsUpdated",value:function(e){this._callback=e||function(){}}},{key:"isEmpty",value:function(){return 0===Object.keys(this._queue).length}}])&&Ct(n.prototype,t),r&&Ct(n,r),e}());function Rt(e){return function(e){if(Array.isArray(e))return Tt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,n){if(!e)return;if("string"==typeof e)return Tt(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Tt(e,n)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tt(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&(this._started=!0,this._triggers=Rt(a),i.forEach((function(n){e._triggers.forEach((function(e){e._id===n&&(e.skip=!0)}))})))}}},{key:"fire",value:(i=Nt(regeneratorRuntime.mark((function e(n){var t,r,i,s,_,c,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.c.state,r=t.token,i=t.user,s=t.firedTriggers,_=void 0===s?[]:s,c=t.config.settings.registrationForm,!(!this._enabled||n.skip||n.registeredOnly&&c&&!i)){e.next=3;break}return e.abrupt("return");case 3:return l=n.actions,e.next=6,U(l,(function(e){var t;"send-message"===e.name?(n.skip=!0,(t=e,It||(It=new Promise(function(){var e=Nt(regeneratorRuntime.mark((function e(n,r){var i,a,s,_,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("queue"!==(i=t.params).sender){e.next=19;break}if(a=o.c.state,s=a.defaultAgent,_=a.iframe.guest.department,!(s&&s.ts&&Date.now()-s.ts<36e5)){e.next=6;break}return e.abrupt("return",n(s));case 6:return e.prev=6,e.next=9,m.a.nextAgent(_);case 9:c=e.sent,e.next=15;break;case 12:return e.prev=12,e.t0=e.catch(6),e.abrupt("return",r(e.t0));case 15:o.c.setState({defaultAgent:At(At({},c),{},{ts:Date.now()})}),n(c),e.next=20;break;case 19:"custom"===i.sender?n({username:i.name}):r("Unknown sender");case 20:case"end":return e.stop()}}),e,null,[[6,12]])})));return function(n,t){return e.apply(this,arguments)}}()),setTimeout((function(){It=null}),36e5),It)).then(function(){var n=Nt(regeneratorRuntime.mark((function n(t){var i,s;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=new Date,s={msg:e.params.msg,token:r,u:t,ts:i.toISOString(),_id:Object(Pn.b)(),trigger:!0},n.next=4,o.c.setState({triggered:!0,messages:K(o.c.state.messages,s,(function(e){return e._id===s._id}),(function(e){return e.ts}))});case 4:return n.next=6,ke();case 6:if(!t||!t._id){n.next=10;break}return n.next=9,o.c.setState({agent:t});case 9:Object(Cn.a)("callback",["assign-agent",De(t)]);case 10:Object(a.b)("/trigger-messages"),o.c.setState({minimized:!1});case 12:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}())):"start-session"===e.name&&(vn.info("Firing initial trigger"),Mt(e).then((function(){o.c.setState({triggered:!0})})))}));case 6:n.runOnce&&(n.skip=!0,_.push(n._id),o.c.setState({firedTriggers:_}));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"processRequest",value:function(e){this._requests.push(e),this._started&&this.processTriggers()}},{key:"processChatOpened",value:function(){this._chatOpened=!0,this._started&&this.processTriggers()}},{key:"processTriggers",value:function(){var e=this;this._triggers.forEach((function(n){n.skip||n.conditions.forEach((function(t){switch(t.name){case"page-url":new RegExp(t.value,"g").test(window.location.href)&&e.fire(n);break;case"time-on-site":n.timeout=setTimeout((function(){e.fire(n)}),1e3*parseInt(t.value,10));break;case"chat-opened-by-visitor":if(!e._chatOpened)break;e._chatOpened=!1,e.fire(n)}}))})),this._requests=[]}},{key:"triggers",set:function(e){this._triggers=Rt(e)}},{key:"enabled",set:function(e){this._enabled=e}}])&&Et(n.prototype,t),r&&Et(n,r),e}()),Ut=["_id","username"];function Bt(e,n){for(var t=0;t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Vt(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function Wt(e){for(var n=1;n2&&void 0!==arguments[2])||arguments[2];Pt.setCustomField(e,n,t)},setTheme:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.color,t=e.fontColor,r=e.iconColor,i=e.title,a=e.offlineTitle,s=o.e.state,_=s.iframe,c=s.iframe.theme;o.e.setState({iframe:Wt(Wt({},_),{},{theme:Wt(Wt({},c),{},{color:n,fontColor:t,iconColor:r,title:i,offlineTitle:a})})})},setDepartment:function(e){var n=o.e.state.config.departments,t=(void 0===n?[]:n).find((function(n){return n._id===e||n.name===e})),r=t&&t._id||"";$t({department:r})},setBusinessUnit:function(e){return Gt(regeneratorRuntime.mark((function n(){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e&&e.trim().length){n.next=2;break}throw new Error("Error! Invalid business ids");case 2:return t=o.e.state.businessUnit,n.abrupt("return",t!==e&&ye(e));case 4:case"end":return n.stop()}}),n)})))()},clearBusinessUnit:function(){return Gt(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.e.state.businessUnit,e.abrupt("return",n&&ye());case 2:case"end":return e.stop()}}),e)})))()},clearDepartment:function(){$t({department:""})},setAgent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e._id,t=e.username,r=qt(e,Ut);if(!n||!t)return console.warn("The fields _id and username are mandatory.");o.e.setState({defaultAgent:Wt({_id:n,username:t,ts:Date.now()},r)})},setExpanded:function(e){o.e.setState({expanded:e})},setGuestToken:function(e){return Gt(regeneratorRuntime.mark((function n(){var t,r,i,a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=o.e.state,r=t.token,i=t.iframe,a=t.iframe.guest,e!==r){n.next=3;break}return n.abrupt("return");case 3:return o.e.setState({token:e,iframe:Wt(Wt({},i),{},{guest:Wt(Wt({},a),{},{token:e})})}),n.next=6,we();case 6:case"end":return n.stop()}}),n)})))()},setGuestName:function(e){$t({name:e})},setGuestPhone:function(e){$t({phone:null!=e?e:""})},setGuestEmail:function(e){$t({email:e})},registerGuest:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"object"===Ht(e)&&(e.token||(e.token=Object(Pn.b)()),e.department&&Qt.setDepartment(e.department),Zt(e))},setLanguage:function(e){return Gt(regeneratorRuntime.mark((function n(){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=o.e.state.iframe,n.next=3,o.e.setState({iframe:Wt(Wt({},t),{},{language:e})});case 3:i.a.changeLanguage(e);case 4:case"end":return n.stop()}}),n)})))()},showWidget:function(){var e=o.e.state.iframe;o.e.setState({iframe:Wt(Wt({},e),{},{visible:!0})}),Object(Cn.a)("showWidget")},hideWidget:function(){var e=o.e.state.iframe;o.e.setState({iframe:Wt(Wt({},e),{},{visible:!1})}),Object(Cn.a)("hideWidget")},showPrint:function(){o.e.setState({hidePrint:!1}),Object(Cn.a)("showPrint")},hidePrint:function(){o.e.setState({hidePrint:!0}),Object(Cn.a)("hidePrint")},minimizeWidget:function(){o.e.setState({minimized:!0}),Object(Cn.a)("closeWidget")},maximizeWidget:function(){o.e.setState({minimized:!1}),Object(Cn.a)("openWidget")},dropTriggerMessage:function(){o.e.setState({dropTriggerMessage:!0}),Object(Cn.a)("dropTriggerMessage")}},Jt=function(e){if(e.source!==e.target&&"object"===Ht(e.data)&&void 0!==e.data.src&&"rocketchat"===e.data.src&&void 0!==Qt[e.data.fn]&&"function"==typeof Qt[e.data.fn]){var n=[].concat(e.data.args||[]);Qt[e.data.fn].apply(null,n)}},Yt=new(function(){function e(){return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),e.instance||(this._started=!1,e.instance=this),e.instance}var n,t,r;return n=e,(t=[{key:"init",value:function(){this._started||(this._started=!0,window.addEventListener("message",Jt,!1))}},{key:"reset",value:function(){this._started=!1,window.removeEventListener("message",Jt,!1)}}])&&Bt(n.prototype,t),r&&Bt(n,r),e}());function er(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function nr(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){er(i,r,o,a,s,"next",e)}function s(e){er(i,r,o,a,s,"throw",e)}a(void 0)}))}}function tr(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return rr(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rr(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rr(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);te.length)&&(n=e.length);for(var t=0,r=new Array(n);t=630)){e.next=13;break}return p(),e.abrupt("break",16);case 13:return e.next=15,a({ongoingCall:{callStatus:Se,time:{time:s}}});case 15:return e.abrupt("break",16);case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),g=function(){var e=Ar(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m.a.updateCallStatus(Oe,_,c);case 2:return e.next=4,m.a.notifyCallDeclined(_);case 4:return e.next=6,a({incomingCallAlert:null,ongoingCall:{callStatus:Oe,time:{time:s}}});case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return Object(r.h)("div",{className:F(mr.a,"call-notification")},f&&Object(r.h)("div",{className:F(mr.a,"call-notification__content")},Object(r.h)("div",{className:F(mr.a,"call-notification__content-avatar")},Object(r.h)(Er,{src:$(t),large:!0})),Object(r.h)("div",{className:F(mr.a,"call-notification__content-message")},l("incoming_video_call")),Object(r.h)("div",{className:F(mr.a,"call-notification__content-actions")},Object(r.h)(Fe,{onClick:g,className:F(mr.a,"call-notification__content-actions-decline")},Object(r.h)(wr.a,{width:20,height:20}),Object(r.h)("span",{style:"margin-left:5px"}," ",l("decline")," ")),Object(r.h)(Fe,{onClick:h,className:F(mr.a,"call-notification__content-actions-accept")},Object(r.h)(vr.a,{width:20,height:20}),Object(r.h)("span",{style:"margin-left:5px"}," ",l("accept")," ")))))})),Ir=t(1605),Mr=t.n(Ir),Fr=t(1606),Ur=t.n(Fr),Br=ae((function(e){var n=e.text,t=e.onClick,o=e.className,i=e.style,a=void 0===i?{}:i,s=e.children;return Object(r.h)("button",{type:"button","aria-label":n,onClick:t,className:F(Ur.a,"composer__action",{},[o]),style:a},s)})),Hr=t(1607),qr=t.n(Hr),Vr=ae((function(e){var n=e.className,t=e.style,o=void 0===t?{}:t,i=e.children;return Object(r.h)("div",{className:F(qr.a,"composer__actions",{},[n]),style:o},i)}));function Wr(e){return(Wr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Kr(){return(Kr=Object.assign||function(e){for(var n=1;n=0;r--){var o=e(t[r]);if(null!==o)return o}return null}(e),t=document.activeElement===e;if(null!==n&&null!==n.nodeValue&&t){var r=document.createRange(),o=window.getSelection();r.setStart(n,n.nodeValue.length),r.collapse(!0),o.removeAllRanges(),o.addRange(r),e instanceof HTMLElement&&e.focus()}},to=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&$r(e,n)}(a,e);var n,t,o,i=Qr(a);function a(e){var n;return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,a),(n=i.call(this,e)).handleRef=function(e){n.el=e},n.handleInput=function(e){return function(){n.state.inputLock||e&&e(n.el.innerText)}},n.handleKeypress=function(e){return function(t){13!==t.which||t.shiftKey||(t.preventDefault(),e&&e(n.el.innerText),n.el.innerText="")}},n.handlePaste=function(e){return function(){var t=Gr(regeneratorRuntime.mark((function t(r){var o,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.clipboardData&&r.clipboardData.items){t.next=2;break}return t.abrupt("return");case 2:if(r.preventDefault(),o=Array.from(r.clipboardData.items),!(i=o.filter((function(e){return"file"===e.kind&&/^image\//.test(e.type)})).map((function(e){return e.getAsFile()}))).length){t.next=8;break}return e&&e(i),t.abrupt("return");case 8:return t.next=10,Promise.all(o.filter((function(e){return"string"===e.kind&&/^text\/plain/.test(e.type)})).map((function(e){return new Promise((function(n){return e.getAsString(n)}))})));case 10:t.sent.forEach((function(e){return n.pasteText(me(e))}));case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},n.handleDrop=function(e){return function(){var t=Gr(regeneratorRuntime.mark((function t(r){var o,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.dataTransfer&&r.dataTransfer.items){t.next=2;break}return t.abrupt("return");case 2:if(r.preventDefault(),o=Array.from(r.dataTransfer.items),!(i=o.filter((function(e){return"file"===e.kind&&/^image\//.test(e.type)})).map((function(e){return e.getAsFile()}))).length){t.next=8;break}return e&&e(i),t.abrupt("return");case 8:return t.next=10,Promise.all(o.filter((function(e){return"string"===e.kind&&/^text\/plain/.test(e.type)})).map((function(e){return new Promise((function(n){return e.getAsString(n)}))})));case 10:t.sent.forEach((function(e){return n.pasteText(me(e))}));case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},n.handleClick=function(){var e=n.props.handleEmojiClick;e&&e()},n.pasteText=function(e){if(n.el.focus(),document.queryCommandSupported("insertText"))document.execCommand("insertText",!1,e);else{var t=document.getSelection().getRangeAt(0);t.deleteContents();var r=document.createTextNode(e);t.insertNode(r),t.selectNodeContents(r),t.collapse(!1);var o=window.getSelection();o.removeAllRanges(),o.addRange(t)}},n.render=function(e){var t=e.pre,o=e.post,i=e.value,a=e.placeholder,s=e.onChange,_=e.onSubmit,c=e.onUpload,l=e.className,u=e.style;return Object(r.h)("div",{className:F(Mr.a,"composer",{},[l]),style:u},t,Object(r.h)("div",Kr({ref:n.handleRef},{contentEditable:!0,"data-placeholder":a,onInput:n.handleInput(s),onKeypress:n.handleKeypress(_),onPaste:n.handlePaste(c),onDrop:n.handleDrop(c),onClick:n.handleClick},{onCompositionStart:function(){n.handleInputLock(!0)},onCompositionEnd:function(){n.handleInputLock(!1),s&&s(n.el.innerText)},className:F(Mr.a,"composer__input")}),i),o)},n.state={inputLock:!1},n.value=n.props.value,n.handleNotifyEmojiSelect=n.handleNotifyEmojiSelect.bind(Yr(n)),"function"==typeof n.props.notifyEmojiSelect&&n.props.notifyEmojiSelect(n.handleNotifyEmojiSelect),n}return n=a,(t=[{key:"shouldComponentUpdate",value:function(e){var n=e.value,t=this.props,r=t.value,o=t.limitTextLength;return(!n||0===n.length)!=(!r||0===r.length)||n.length===o||r.length===o}},{key:"componentDidUpdate",value:function(){var e=this.el;e&&(this.props.value!==e.innerHTML&&(this.value=this.props.value,e.innerHTML=this.value),no(e))}},{key:"handleNotifyEmojiSelect",value:function(e){var n=this.props.onChange,t=this.getCaretPosition(this.el),r=this.el.innerText,o="".concat(r.substr(0,t)).concat(e," ").concat(r.substr(t));this.el.innerHTML=o,this.moveCursorToEndAndFocus(t+e.length+1),n&&n(this.el.innerText)}},{key:"moveCursorToEndAndFocus",value:function(e){var n=document.createRange(),t=window.getSelection();n.setStart(this.el.childNodes[0],e),n.collapse(!0),t.removeAllRanges(),t.addRange(n)}},{key:"getCaretPosition",value:function(e){var n=e.ownerDocument||e.document,t=n.defaultView||n.parentWindow;if(void 0!==t.getSelection&&t.getSelection().rangeCount>0){var r=t.getSelection().getRangeAt(0),o=r.cloneRange();return o.selectNodeContents(e),o.setEnd(r.endContainer,r.endOffset),o.toString().length}if(n.selection&&"Control"!==n.selection.type){var i=n.selection.createRange(),a=n.body.createTextRange();return a.moveToElementText(e),a.setEndPoint("EndToEnd",i),a.text.length}return 0}},{key:"handleInputLock",value:function(e){return this.setState({inputLock:e}),0}}])&&Zr(n.prototype,t),o&&Zr(n,o),a}(r.Component),ro=t(1608),oo=t.n(ro);function io(e){return(io="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ao(e,n){for(var t=0;t0},[_]),style:l},Object(r.h)("input",{ref:e.handleInputRef,type:"file",accept:a,multiple:s,onChange:e.handleInputChange,className:F(oo.a,"drop__input")}),u)},e}return n=a,t&&ao(n.prototype,t),o&&ao(n,o),n}(r.Component),po=function(e){var n=e.isEnabled,t=e.children;return n?Object(r.h)(fo,e):t},ho=t(1609),go=t.n(ho),bo=["children","className","visible"],vo=["children"];function yo(e){return(yo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wo(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function ko(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Do=Object(r.createContext)(),Ao=function(e){var n=e.children,t=e.className,o=e.visible,i=Eo(e,bo);return Object(r.h)("div",To({className:F(go.a,"popover__overlay",{visible:o},[t])},i),n)},zo=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&So(e,n)}(a,e);var n,t,o,i=Co(a);function a(){var e;Oo(this,a);for(var n=arguments.length,t=new Array(n),o=0;o2&&void 0!==arguments[2]?arguments[2]:{},a=i.currentTarget;e.overlayRef&&(r=re(e.overlayRef.base.getBoundingClientRect())),a&&(o=re(a.getBoundingClientRect())),e.setState(ko(ko({renderer:n},t),{},{overlayBounds:r,triggerBounds:o}))},e.dismiss=function(){e.setState({renderer:null,overlayBounds:null,triggerBounds:null})},e.handleOverlayGesture=function(n){n.currentTarget===n.target&&e.dismiss()},e.handleKeyDown=function(n){"Escape"===n.key&&e.dismiss()},e.handleOverlayRef=function(n){e.overlayRef=n},e.render=function(n,t){var o=n.children,i=t.renderer,a=t.overlayProps,s=t.overlayBounds,_=t.triggerBounds;return Object(r.h)(Do.Provider,{value:{open:e.open}},Object(r.h)("div",{className:F(go.a,"popover__container")},o,Object(r.h)(Ao,To({ref:e.handleOverlayRef,onMouseDown:e.handleOverlayGesture,onTouchStart:e.handleOverlayGesture,visible:!!i},a),i?i({dismiss:e.dismiss,overlayBounds:s,triggerBounds:_}):null)))},e}return n=a,(t=[{key:"componentDidMount",value:function(){this.mounted=!0,window.addEventListener("keydown",this.handleKeyDown,!1)}},{key:"componentWillUnmount",value:function(){this.mounted=!1,window.removeEventListener("keydown",this.handleKeyDown,!1)}}])&&xo(n.prototype,t),o&&xo(n,o),a}(r.Component),Lo=function(e){var n=e.children,t=Eo(e,vo);return Object(r.h)(Do.Consumer,null,(function(e){var r=e.open;return n[0]({pop:r.bind(null,n[1],t)})}))},No=t(1610),Io=t.n(No),Mo=["children","hidden","placement"],Fo=["children","title"],Uo=["children","primary","danger","disabled","icon"];function Bo(e){return(Bo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ho(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function qo(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Yo=function(e){var n=e.children,t=e.hidden,o=e.placement,i=Jo(e,Mo);return Object(r.h)("div",Qo({className:F(Io.a,"menu",{hidden:t,placement:o})},i),n)},ei=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&Xo(e,n)}(a,e);var n,t,o,i=Go(a);function a(){var e;Wo(this,a);for(var n=arguments.length,t=new Array(n),o=0;o=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var mi=function(e){var n=e.children,t=e.className,o=ui(e,si);return Object(r.h)("footer",li({className:F(ai.a,"footer",{},[t])},o),n)},fi=function(e){var n=e.children,t=e.className,o=ui(e,_i);return Object(r.h)("div",li({className:F(ai.a,"footer__content",{},[t])},o),n)},di=(Object(c.c)()((function(e){var n=e.className,t=e.t,o=ui(e,ci);return Object(r.h)("h3",li({className:F(ai.a,"powered-by",{},[n])},o),t("powered_by_rocket_chat").split("Rocket.Chat")[0],Object(r.h)("a",{href:"https://rocket.chat",target:"_blank",rel:"noopener noreferrer"},Object(r.h)(oi.a,{className:F(ai.a,"powered-by__logo"),width:60,height:10.88,role:"img","aria-label":"Rocket.Chat"})),t("powered_by_rocket_chat").split("Rocket.Chat")[1])})),function(e){return e.target.blur()}),pi=Object(c.c)()((function(e){var n=e.pop,t=e.t;return Object(r.h)("button",{className:F(ai.a,"footer__options"),onClick:n,onMouseUp:di},t("options"))})),hi=function(e){var n=e.children;return Object(r.h)(ni,{trigger:pi,overlayed:!0},n)},gi=function(e){var n=e.className,t=e.style,o=void 0===t?{}:t,i=e.textLength,a=e.limitTextLength;return Object(r.h)("span",{className:F(ai.a,"footer__remainder",{highlight:i===a},[n]),style:o},i," / ",a)},bi=t(1613),vi=t.n(bi),yi=ae((function(e){var n=e.inverse,t=e.msgSequence,i=e.nude,a=e.quoted,s=e.className,_=e.style,c=void 0===_?{}:_,l=e.children,u=e.system,m=void 0!==u&&u,f=o.c.state.config.settings.livechat_friendly_chat,d={inverse:n,friendlyChat:f,nude:i,quoted:a,system:m,myfirst:f&&n&&"first"===t,mymid:f&&n&&"mid"===t,mylast:f&&n&&"last"===t,yourfirst:f&&!n&&"first"===t,yourmid:f&&!n&&"mid"===t,yourlast:f&&!n&&"last"===t};return Object(r.h)("div",{className:F(vi.a,"message-bubble",d,[s]),style:c},Object(r.h)("div",{className:F(vi.a,"message-bubble__inner")},l))})),wi=t(1614),ki=t.n(wi),ji=["url","className","t"];function Oi(){return(Oi=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Si=ae((function(e){var n=e.url,t=e.className,o=e.t,i=xi(e,ji);return Object(r.h)(yi,Oi({nude:!0,className:F(ki.a,"audio-attachment",{},[t])},i),Object(r.h)("audio",{src:n,controls:!0,className:F(ki.a,"audio-attachment__inner")},o("you_browser_doesn_t_support_audio_element")))})),Ci=Object(c.c)()(Si),Pi=t(1615),Ri=t.n(Pi),Ti=t(1616),Ei=t.n(Ti),Di=t(1617),Ai=t.n(Di),zi=t(1618),Li=t.n(zi),Ni=t(1619),Ii=t.n(Ni),Mi=t(1620),Fi=t.n(Mi),Ui=t(1621),Bi=t.n(Ui),Hi=ae((function(e){var n=e.url,t=n?n.split(".").pop():null,o=/pdf/i.test(t)&&Li.a||/doc|docx|rtf|txt|odt|pages|log/i.test(t)&&Ei.a||/ppt|pptx|pps/i.test(t)&&Ii.a||/xls|xlsx|csv/i.test(t)&&Fi.a||/zip|rar|7z|gz/i.test(t)&&Bi.a||Ai.a;return Object(r.h)(o,{width:32})})),qi=t(1622),Vi=t.n(qi),Wi=["url","title","className"];function Ki(){return(Ki=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Gi=ae((function(e){var n=e.url,t=e.title,o=e.className,i=Xi(e,Wi);return Object(r.h)(yi,Ki({className:F(Vi.a,"file-attachment",{},[o])},i),Object(r.h)("a",{href:n,download:!0,target:"_blank",rel:"noopener noreferrer",className:F(Vi.a,"file-attachment__inner")},Object(r.h)(Hi,{url:n}),Object(r.h)("span",{className:F(Vi.a,"file-attachment__title")},t),Object(r.h)(Ri.a,{width:20,height:20,className:F(Vi.a,"file-attachment__download-button")})))})),Zi=t(1623),$i=t.n(Zi),Qi=["url","className"];function Ji(){return(Ji=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var ea=ae((function(e){var n=e.url,t=e.className,o=Yi(e,Qi);return Object(r.h)(yi,Ji({nude:!0,className:F($i.a,"image-attachment",{},[t])},o),Object(r.h)("img",{src:n,className:F($i.a,"image-attachment__inner")}))})),na=t(722),ta=t(805);function ra(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function oa(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){ra(i,r,o,a,s,"next",e)}function s(e){ra(i,r,o,a,s,"throw",e)}a(void 0)}))}}var ia=function(){var e=oa(regeneratorRuntime.mark((function e(){var n,t,r,i,a,s,_;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.c.state,t=n.user,r=t.token,i=t.visitorEmails,a=n.room._id,s=i&&i.length>0?i[0].address:"",e.next=4,m.a.requestTranscript(s,{token:r,rid:a});case 4:return _=e.sent,e.abrupt("return",_);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),aa=function(e){for(var n=e.replace(/^data:\w+\/[-+.\w]+;base64,/,""),t=atob(n),r=t.length,o=new Uint8Array(r);r--;)o[r]=t.charCodeAt(r);return new Blob([o],{type:"application/pdf"})},sa=function(){var e=oa(regeneratorRuntime.mark((function e(){var n,t,r,i,a,s,_,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=o.c.state.config.settings,(n=void 0===n?{}:n).transcript){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,ia();case 7:t=e.sent,r=null==t?void 0:t.transcript,i="Viasat-Customer-Support_Transcript-".concat(Date.now().toString(),".pdf"),t&&t.success&&(navigator.userAgent.match(new RegExp("(".concat(["WebView","(iPhone|iPod|iPad)(?!.*Safari)","Android.*(wv|.0.0.0)","Linux; U; Android"].join("|"),")"),"ig"))?(a=JSON.stringify({eventType:"transcript",data:{value:r,name:i}}),window.ReactNativeWebView?window.ReactNativeWebView.postMessage(a):Object(Cn.a)("postMessage",a)):(s=aa(r),_=URL.createObjectURL(s),(c=document.createElement("a")).href=_,c.download=i,document.body.appendChild(c),c.click(),window.open(_)));case 11:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_a=t(1624),ca=t.n(_a),la=["url","className","actions","resetLastAction","closeChat","randomWord","getSessionId","sendMessage","addButton"];function ua(){return(ua=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function pa(e){for(var n="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=t.length,o=0;o=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Oa={MODAL_OPEN:"modal.open",MODAL_CLOSE:"modal.close",MODAL_UPDATE:"modal.update",ERRORS:"errors"},xa="blockAction",Sa="message",Ca=new Map,Pa=function(e){var n=Ca.get(e);return Ca.delete(e),n},Ra=function(e){var n=Object(Pn.a)();return Ca.set(n,e),setTimeout(Pa,5e3,n),n},Ta=function(e,n){var t=n.triggerId,r=ja(n,ya);if(Ca.has(t)&&Pa(t)){var o=r.view,i=r.viewId;if(o&&o.id&&(i=o.id),i)return[Oa.ERRORS].includes(e)?Oa.ERRORS:[Oa.MODAL_UPDATE].includes(e)?Oa.MODAL_UPDATE:[Oa.MODAL_OPEN].includes(e)?Oa.MODAL_OPEN:Oa.MODAL_ClOSE}},Ea=function(){var e,n=(e=regeneratorRuntime.mark((function e(n){var t,r,o,i,a,s,_,c,l,u,f,d,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.appId,r=n.type,o=n.actionId,i=n.rid,a=n.mid,s=n.viewId,_=n.container,c=n.payload,l=Ra(t),e.prev=2,u={type:r,actionId:o,rid:i,mid:a,viewId:s,container:_,triggerId:l,payload:c},e.next=6,Promise.race([fetch("".concat(m.a.client.host,"/api/").concat(encodeURI("apps/ui.interaction/".concat(t))),{method:"POST",body:m.a.client.getBody(u),headers:Object.assign({"x-visitor-token":m.a.credentials.token},m.a.client.getHeaders())}).then(m.a.client.handle),new Promise((function(e,n){setTimeout((function(){n(new Error(l))}),5e3)}))]);case 6:return f=e.sent,d=f.type,p=ja(f,wa),e.abrupt("return",Ta(d,p));case 11:throw e.prev=11,e.t0=e.catch(2),Pa(l),e.t0;case 15:case"end":return e.stop()}}),e,null,[[2,11]])})),function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){ka(i,r,o,a,s,"next",e)}function s(e){ka(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return n.apply(this,arguments)}}(),Da=t(720),Aa=Object(r.createContext)({dispatchAction:function(){}}),za=Object(gr.g)((function(e){var n=e.children,t=e.dispatchAction;return Object(r.h)(Aa.Provider,{children:n,value:{dispatchAction:t}})}));function La(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function Na(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){La(i,r,o,a,s,"next",e)}function s(e){La(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Ia(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return Ma(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ma(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ma(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&void 0!==s[0]?s[0]:{},i(!0),r.prev=2,r.next=5,t({appId:n,actionId:e,payload:o});case 5:return r.prev=5,a.current&&i(!1),r.finish(5);case 8:case"end":return r.stop()}}),r,null,[[2,,5,8]])}))),[e,n,t]),o]},Ba=Object(gr.g)((function(e){var n=e.appId,t=e.blockId,o=e.children;return Object(r.h)(Fa.Provider,{children:o,value:{appId:n,blockId:t}})})),Ha=t(1626),qa=t.n(Ha);function Va(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return Wa(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Wa(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Wa(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0,f=Object(gr.h)((function(){c(!1)}),[]);return Object(r.h)(Ba,{appId:n,blockId:t},Object(r.h)("div",{className:F(qa.a,"uikit-actions-block")},l.map((function(e,n){var t=i.renderActions(e,Da.BLOCK_CONTEXT.ACTION);return t?Object(r.h)("div",{key:n,className:F(qa.a,"uikit-actions-block__item")},t):null})),m&&Object(r.h)(Fe,{outline:!0,secondary:!0,small:!0,onClick:f},a("hiddenelementscount_more",{hiddenElementsCount:u}))))})),Xa=t(1627),Ga=t.n(Xa);function Za(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function $a(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return Qa(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Qa(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qa(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);te.length)&&(n=e.length);for(var t=0,r=new Array(n);te.length)&&(n=e.length);for(var t=0,r=new Array(n);t:-)":"😆","':-(":"😓",">:-(":"😠",":'-(":"😢","O:-)":"😇","0:-3":"😇","0:-)":"😇","0;^)":"😇","O;-)":"😇","0;-)":"😇","O:-3":"😇","-__-":"😑",":-Þ":"😛",":)":"😆",">;)":"😆",">=)":"😆",";-)":"😉","*-)":"😉",";-]":"😉",";^)":"😉","':(":"😓","'=(":"😓",":-*":"😘",":^*":"😘",">:P":"😜","X-P":"😜",">:[":"😞",":-(":"😞",":-[":"😞",">:(":"😠",":'(":"😢",";-(":"😢",">.<":"😣","#-)":"😵","%-)":"😵","X-)":"😵","\\0/":"🙆","\\O/":"🙆","0:3":"😇","0:)":"😇","O:)":"😇","O=)":"😇","O:3":"😇","B-)":"😎","8-)":"😎","B-D":"😎","8-D":"😎","-_-":"😑",">:\\":"😕",">:/":"😕",":-/":"😕",":-.":"😕",":-P":"😛",":Þ":"😛",":-b":"😛",":-O":"😮",O_O:"😮",">:O":"😮",":-X":"😶",":-#":"😶",":-)":"🙂","(y)":"👍","<3":"❤","=D":"😃",";)":"😉","*)":"😉",";]":"😉",";D":"😉",":*":"😘","=*":"😘",":(":"😞",":[":"😞","=(":"😞",":@":"😠",";(":"😢","D:":"😨",":$":"😳","=$":"😳","#)":"😵","%)":"😵","X)":"😵","B)":"😎","8)":"😎",":/":"😕",":\\":"😕","=/":"😕","=\\":"😕",":L":"😕","=L":"😕",":P":"😛","=P":"😛",":b":"😛",":O":"😮",":X":"😶",":#":"😶","=X":"😶","=#":"😶",":)":"🙂","=]":"🙂","=)":"🙂",":]":"🙂",":D":"😄"},ks={":england:":"🏴󠁧󠁢󠁥󠁮󠁧󠁿",":scotland:":"🏴󠁧󠁢󠁳󠁣󠁴󠁿",":wales:":"🏴󠁧󠁢󠁷󠁬󠁳󠁿",":men_holding_hands_medium_light_skin_tone_light_skin_tone:":"👨🏼‍🤝‍👨🏻",":men_holding_hands_tone2_tone1:":"👨🏼‍🤝‍👨🏻",":men_holding_hands_medium_skin_tone_light_skin_tone:":"👨🏽‍🤝‍👨🏻",":men_holding_hands_tone3_tone1:":"👨🏽‍🤝‍👨🏻",":men_holding_hands_medium_skin_tone_medium_light_skin_tone:":"👨🏽‍🤝‍👨🏼",":men_holding_hands_tone3_tone2:":"👨🏽‍🤝‍👨🏼",":men_holding_hands_medium_dark_skin_tone_light_skin_tone:":"👨🏾‍🤝‍👨🏻",":men_holding_hands_tone4_tone1:":"👨🏾‍🤝‍👨🏻",":men_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:":"👨🏾‍🤝‍👨🏼",":men_holding_hands_tone4_tone2:":"👨🏾‍🤝‍👨🏼",":men_holding_hands_medium_dark_skin_tone_medium_skin_tone:":"👨🏾‍🤝‍👨🏽",":men_holding_hands_tone4_tone3:":"👨🏾‍🤝‍👨🏽",":men_holding_hands_dark_skin_tone_light_skin_tone:":"👨🏿‍🤝‍👨🏻",":men_holding_hands_tone5_tone1:":"👨🏿‍🤝‍👨🏻",":men_holding_hands_dark_skin_tone_medium_light_skin_tone:":"👨🏿‍🤝‍👨🏼",":men_holding_hands_tone5_tone2:":"👨🏿‍🤝‍👨🏼",":men_holding_hands_dark_skin_tone_medium_skin_tone:":"👨🏿‍🤝‍👨🏽",":men_holding_hands_tone5_tone3:":"👨🏿‍🤝‍👨🏽",":men_holding_hands_dark_skin_tone_medium_dark_skin_tone:":"👨🏿‍🤝‍👨🏾",":men_holding_hands_tone5_tone4:":"👨🏿‍🤝‍👨🏾",":people_holding_hands_light_skin_tone:":"🧑🏻‍🤝‍🧑🏻",":people_holding_hands_tone1:":"🧑🏻‍🤝‍🧑🏻",":people_holding_hands_medium_light_skin_tone:":"🧑🏼‍🤝‍🧑🏼",":people_holding_hands_tone2:":"🧑🏼‍🤝‍🧑🏼",":people_holding_hands_medium_light_skin_tone_light_skin_tone:":"🧑🏼‍🤝‍🧑🏻",":people_holding_hands_tone2_tone1:":"🧑🏼‍🤝‍🧑🏻",":people_holding_hands_medium_skin_tone:":"🧑🏽‍🤝‍🧑🏽",":people_holding_hands_tone3:":"🧑🏽‍🤝‍🧑🏽",":people_holding_hands_medium_skin_tone_light_skin_tone:":"🧑🏽‍🤝‍🧑🏻",":people_holding_hands_tone3_tone1:":"🧑🏽‍🤝‍🧑🏻",":people_holding_hands_medium_skin_tone_medium_light_skin_tone:":"🧑🏽‍🤝‍🧑🏼",":people_holding_hands_tone3_tone2:":"🧑🏽‍🤝‍🧑🏼",":people_holding_hands_medium_dark_skin_tone:":"🧑🏾‍🤝‍🧑🏾",":people_holding_hands_tone4:":"🧑🏾‍🤝‍🧑🏾",":people_holding_hands_medium_dark_skin_tone_light_skin_tone:":"🧑🏾‍🤝‍🧑🏻",":people_holding_hands_tone4_tone1:":"🧑🏾‍🤝‍🧑🏻",":people_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:":"🧑🏾‍🤝‍🧑🏼",":people_holding_hands_tone4_tone2:":"🧑🏾‍🤝‍🧑🏼",":people_holding_hands_medium_dark_skin_tone_medium_skin_tone:":"🧑🏾‍🤝‍🧑🏽",":people_holding_hands_tone4_tone3:":"🧑🏾‍🤝‍🧑🏽",":people_holding_hands_dark_skin_tone:":"🧑🏿‍🤝‍🧑🏿",":people_holding_hands_tone5:":"🧑🏿‍🤝‍🧑🏿",":people_holding_hands_dark_skin_tone_light_skin_tone:":"🧑🏿‍🤝‍🧑🏻",":people_holding_hands_tone5_tone1:":"🧑🏿‍🤝‍🧑🏻",":people_holding_hands_dark_skin_tone_medium_light_skin_tone:":"🧑🏿‍🤝‍🧑🏼",":people_holding_hands_tone5_tone2:":"🧑🏿‍🤝‍🧑🏼",":people_holding_hands_dark_skin_tone_medium_skin_tone:":"🧑🏿‍🤝‍🧑🏽",":people_holding_hands_tone5_tone3:":"🧑🏿‍🤝‍🧑🏽",":people_holding_hands_dark_skin_tone_medium_dark_skin_tone:":"🧑🏿‍🤝‍🧑🏾",":people_holding_hands_tone5_tone4:":"🧑🏿‍🤝‍🧑🏾",":woman_and_man_holding_hands_light_skin_tone_medium_light_skin_tone:":"👩🏻‍🤝‍👨🏼",":woman_and_man_holding_hands_tone1_tone2:":"👩🏻‍🤝‍👨🏼",":woman_and_man_holding_hands_light_skin_tone_medium_skin_tone:":"👩🏻‍🤝‍👨🏽",":woman_and_man_holding_hands_tone1_tone3:":"👩🏻‍🤝‍👨🏽",":woman_and_man_holding_hands_light_skin_tone_medium_dark_skin_tone:":"👩🏻‍🤝‍👨🏾",":woman_and_man_holding_hands_tone1_tone4:":"👩🏻‍🤝‍👨🏾",":woman_and_man_holding_hands_light_skin_tone_dark_skin_tone:":"👩🏻‍🤝‍👨🏿",":woman_and_man_holding_hands_tone1_tone5:":"👩🏻‍🤝‍👨🏿",":woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone:":"👩🏼‍🤝‍👨🏻",":woman_and_man_holding_hands_tone2_tone1:":"👩🏼‍🤝‍👨🏻",":woman_and_man_holding_hands_medium_light_skin_tone_medium_skin_tone:":"👩🏼‍🤝‍👨🏽",":woman_and_man_holding_hands_tone2_tone3:":"👩🏼‍🤝‍👨🏽",":woman_and_man_holding_hands_medium_light_skin_tone_medium_dark_skin_tone:":"👩🏼‍🤝‍👨🏾",":woman_and_man_holding_hands_tone2_tone4:":"👩🏼‍🤝‍👨🏾",":woman_and_man_holding_hands_medium_light_skin_tone_dark_skin_tone:":"👩🏼‍🤝‍👨🏿",":woman_and_man_holding_hands_tone2_tone5:":"👩🏼‍🤝‍👨🏿",":woman_and_man_holding_hands_medium_skin_tone_light_skin_tone:":"👩🏽‍🤝‍👨🏻",":woman_and_man_holding_hands_tone3_tone1:":"👩🏽‍🤝‍👨🏻",":woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone:":"👩🏽‍🤝‍👨🏼",":woman_and_man_holding_hands_tone3_tone2:":"👩🏽‍🤝‍👨🏼",":woman_and_man_holding_hands_medium_skin_tone_medium_dark_skin_tone:":"👩🏽‍🤝‍👨🏾",":woman_and_man_holding_hands_tone3_tone4:":"👩🏽‍🤝‍👨🏾",":woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone:":"👩🏽‍🤝‍👨🏿",":woman_and_man_holding_hands_tone3_tone5:":"👩🏽‍🤝‍👨🏿",":woman_and_man_holding_hands_medium_dark_skin_tone_light_skin_tone:":"👩🏾‍🤝‍👨🏻",":woman_and_man_holding_hands_tone4_tone1:":"👩🏾‍🤝‍👨🏻",":woman_and_man_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:":"👩🏾‍🤝‍👨🏼",":woman_and_man_holding_hands_tone4_tone2:":"👩🏾‍🤝‍👨🏼",":woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone:":"👩🏾‍🤝‍👨🏽",":woman_and_man_holding_hands_tone4_tone3:":"👩🏾‍🤝‍👨🏽",":woman_and_man_holding_hands_medium_dark_skin_tone_dark_skin_tone:":"👩🏾‍🤝‍👨🏿",":woman_and_man_holding_hands_tone4_tone5:":"👩🏾‍🤝‍👨🏿",":woman_and_man_holding_hands_dark_skin_tone_light_skin_tone:":"👩🏿‍🤝‍👨🏻",":woman_and_man_holding_hands_tone5_tone1:":"👩🏿‍🤝‍👨🏻",":woman_and_man_holding_hands_dark_skin_tone_medium_light_skin_tone:":"👩🏿‍🤝‍👨🏼",":woman_and_man_holding_hands_tone5_tone2:":"👩🏿‍🤝‍👨🏼",":woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone:":"👩🏿‍🤝‍👨🏽",":woman_and_man_holding_hands_tone5_tone3:":"👩🏿‍🤝‍👨🏽",":woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone:":"👩🏿‍🤝‍👨🏾",":woman_and_man_holding_hands_tone5_tone4:":"👩🏿‍🤝‍👨🏾",":women_holding_hands_medium_light_skin_tone_light_skin_tone:":"👩🏼‍🤝‍👩🏻",":women_holding_hands_tone2_tone1:":"👩🏼‍🤝‍👩🏻",":women_holding_hands_medium_skin_tone_light_skin_tone:":"👩🏽‍🤝‍👩🏻",":women_holding_hands_tone3_tone1:":"👩🏽‍🤝‍👩🏻",":women_holding_hands_medium_skin_tone_medium_light_skin_tone:":"👩🏽‍🤝‍👩🏼",":women_holding_hands_tone3_tone2:":"👩🏽‍🤝‍👩🏼",":women_holding_hands_medium_dark_skin_tone_light_skin_tone:":"👩🏾‍🤝‍👩🏻",":women_holding_hands_tone4_tone1:":"👩🏾‍🤝‍👩🏻",":women_holding_hands_medium_dark_skin_tone_medium_light_skin_tone:":"👩🏾‍🤝‍👩🏼",":women_holding_hands_tone4_tone2:":"👩🏾‍🤝‍👩🏼",":women_holding_hands_medium_dark_skin_tone_medium_skin_tone:":"👩🏾‍🤝‍👩🏽",":women_holding_hands_tone4_tone3:":"👩🏾‍🤝‍👩🏽",":women_holding_hands_dark_skin_tone_light_skin_tone:":"👩🏿‍🤝‍👩🏻",":women_holding_hands_tone5_tone1:":"👩🏿‍🤝‍👩🏻",":women_holding_hands_dark_skin_tone_medium_light_skin_tone:":"👩🏿‍🤝‍👩🏼",":women_holding_hands_tone5_tone2:":"👩🏿‍🤝‍👩🏼",":women_holding_hands_dark_skin_tone_medium_skin_tone:":"👩🏿‍🤝‍👩🏽",":women_holding_hands_tone5_tone3:":"👩🏿‍🤝‍👩🏽",":women_holding_hands_dark_skin_tone_medium_dark_skin_tone:":"👩🏿‍🤝‍👩🏾",":women_holding_hands_tone5_tone4:":"👩🏿‍🤝‍👩🏾",":family_mmbb:":"👨‍👨‍👦‍👦",":family_mmgb:":"👨‍👨‍👧‍👦",":family_mmgg:":"👨‍👨‍👧‍👧",":family_mwbb:":"👨‍👩‍👦‍👦",":family_mwgb:":"👨‍👩‍👧‍👦",":family_mwgg:":"👨‍👩‍👧‍👧",":family_wwbb:":"👩‍👩‍👦‍👦",":family_wwgb:":"👩‍👩‍👧‍👦",":family_wwgg:":"👩‍👩‍👧‍👧",":couplekiss_mm:":"👨‍❤️‍💋👨",":kiss_mm:":"👨‍❤️‍💋👨",":kiss_woman_man:":"👩‍❤️‍💋👨",":couplekiss_ww:":"👩‍❤️‍💋👩",":kiss_ww:":"👩‍❤️‍💋👩",":family_man_boy_boy:":"👨‍👦‍👦",":family_man_girl_boy:":"👨‍👧‍👦",":family_man_girl_girl:":"👨‍👧‍👧",":family_man_woman_boy:":"👨‍👩‍👦",":family_mmb:":"👨‍👨‍👦",":family_mmg:":"👨‍👨‍👧",":family_mwg:":"👨‍👩‍👧",":family_woman_boy_boy:":"👩‍👦‍👦",":family_woman_girl_boy:":"👩‍👧‍👦",":family_woman_girl_girl:":"👩‍👧‍👧",":family_wwb:":"👩‍👩‍👦",":family_wwg:":"👩‍👩‍👧",":man_artist_light_skin_tone:":"👨🏻‍🎨",":man_artist_tone1:":"👨🏻‍🎨",":man_artist_medium_light_skin_tone:":"👨🏼‍🎨",":man_artist_tone2:":"👨🏼‍🎨",":man_artist_medium_skin_tone:":"👨🏽‍🎨",":man_artist_tone3:":"👨🏽‍🎨",":man_artist_medium_dark_skin_tone:":"👨🏾‍🎨",":man_artist_tone4:":"👨🏾‍🎨",":man_artist_dark_skin_tone:":"👨🏿‍🎨",":man_artist_tone5:":"👨🏿‍🎨",":man_astronaut_light_skin_tone:":"👨🏻‍🚀",":man_astronaut_tone1:":"👨🏻‍🚀",":man_astronaut_medium_light_skin_tone:":"👨🏼‍🚀",":man_astronaut_tone2:":"👨🏼‍🚀",":man_astronaut_medium_skin_tone:":"👨🏽‍🚀",":man_astronaut_tone3:":"👨🏽‍🚀",":man_astronaut_medium_dark_skin_tone:":"👨🏾‍🚀",":man_astronaut_tone4:":"👨🏾‍🚀",":man_astronaut_dark_skin_tone:":"👨🏿‍🚀",":man_astronaut_tone5:":"👨🏿‍🚀",":man_bald_light_skin_tone:":"👨🏻‍🦲",":man_bald_tone1:":"👨🏻‍🦲",":man_bald_medium_light_skin_tone:":"👨🏼‍🦲",":man_bald_tone2:":"👨🏼‍🦲",":man_bald_medium_skin_tone:":"👨🏽‍🦲",":man_bald_tone3:":"👨🏽‍🦲",":man_bald_medium_dark_skin_tone:":"👨🏾‍🦲",":man_bald_tone4:":"👨🏾‍🦲",":man_bald_dark_skin_tone:":"👨🏿‍🦲",":man_bald_tone5:":"👨🏿‍🦲",":man_cook_light_skin_tone:":"👨🏻‍🍳",":man_cook_tone1:":"👨🏻‍🍳",":man_cook_medium_light_skin_tone:":"👨🏼‍🍳",":man_cook_tone2:":"👨🏼‍🍳",":man_cook_medium_skin_tone:":"👨🏽‍🍳",":man_cook_tone3:":"👨🏽‍🍳",":man_cook_medium_dark_skin_tone:":"👨🏾‍🍳",":man_cook_tone4:":"👨🏾‍🍳",":man_cook_dark_skin_tone:":"👨🏿‍🍳",":man_cook_tone5:":"👨🏿‍🍳",":man_curly_haired_light_skin_tone:":"👨🏻‍🦱",":man_curly_haired_tone1:":"👨🏻‍🦱",":man_curly_haired_medium_light_skin_tone:":"👨🏼‍🦱",":man_curly_haired_tone2:":"👨🏼‍🦱",":man_curly_haired_medium_skin_tone:":"👨🏽‍🦱",":man_curly_haired_tone3:":"👨🏽‍🦱",":man_curly_haired_medium_dark_skin_tone:":"👨🏾‍🦱",":man_curly_haired_tone4:":"👨🏾‍🦱",":man_curly_haired_dark_skin_tone:":"👨🏿‍🦱",":man_curly_haired_tone5:":"👨🏿‍🦱",":man_factory_worker_light_skin_tone:":"👨🏻‍🏭",":man_factory_worker_tone1:":"👨🏻‍🏭",":man_factory_worker_medium_light_skin_tone:":"👨🏼‍🏭",":man_factory_worker_tone2:":"👨🏼‍🏭",":man_factory_worker_medium_skin_tone:":"👨🏽‍🏭",":man_factory_worker_tone3:":"👨🏽‍🏭",":man_factory_worker_medium_dark_skin_tone:":"👨🏾‍🏭",":man_factory_worker_tone4:":"👨🏾‍🏭",":man_factory_worker_dark_skin_tone:":"👨🏿‍🏭",":man_factory_worker_tone5:":"👨🏿‍🏭",":man_farmer_light_skin_tone:":"👨🏻‍🌾",":man_farmer_tone1:":"👨🏻‍🌾",":man_farmer_medium_light_skin_tone:":"👨🏼‍🌾",":man_farmer_tone2:":"👨🏼‍🌾",":man_farmer_medium_skin_tone:":"👨🏽‍🌾",":man_farmer_tone3:":"👨🏽‍🌾",":man_farmer_medium_dark_skin_tone:":"👨🏾‍🌾",":man_farmer_tone4:":"👨🏾‍🌾",":man_farmer_dark_skin_tone:":"👨🏿‍🌾",":man_farmer_tone5:":"👨🏿‍🌾",":man_firefighter_light_skin_tone:":"👨🏻‍🚒",":man_firefighter_tone1:":"👨🏻‍🚒",":man_firefighter_medium_light_skin_tone:":"👨🏼‍🚒",":man_firefighter_tone2:":"👨🏼‍🚒",":man_firefighter_medium_skin_tone:":"👨🏽‍🚒",":man_firefighter_tone3:":"👨🏽‍🚒",":man_firefighter_medium_dark_skin_tone:":"👨🏾‍🚒",":man_firefighter_tone4:":"👨🏾‍🚒",":man_firefighter_dark_skin_tone:":"👨🏿‍🚒",":man_firefighter_tone5:":"👨🏿‍🚒",":man_in_manual_wheelchair_light_skin_tone:":"👨🏻‍🦽",":man_in_manual_wheelchair_tone1:":"👨🏻‍🦽",":man_in_manual_wheelchair_medium_light_skin_tone:":"👨🏼‍🦽",":man_in_manual_wheelchair_tone2:":"👨🏼‍🦽",":man_in_manual_wheelchair_medium_skin_tone:":"👨🏽‍🦽",":man_in_manual_wheelchair_tone3:":"👨🏽‍🦽",":man_in_manual_wheelchair_medium_dark_skin_tone:":"👨🏾‍🦽",":man_in_manual_wheelchair_tone4:":"👨🏾‍🦽",":man_in_manual_wheelchair_dark_skin_tone:":"👨🏿‍🦽",":man_in_manual_wheelchair_tone5:":"👨🏿‍🦽",":man_in_motorized_wheelchair_light_skin_tone:":"👨🏻‍🦼",":man_in_motorized_wheelchair_tone1:":"👨🏻‍🦼",":man_in_motorized_wheelchair_medium_light_skin_tone:":"👨🏼‍🦼",":man_in_motorized_wheelchair_tone2:":"👨🏼‍🦼",":man_in_motorized_wheelchair_medium_skin_tone:":"👨🏽‍🦼",":man_in_motorized_wheelchair_tone3:":"👨🏽‍🦼",":man_in_motorized_wheelchair_medium_dark_skin_tone:":"👨🏾‍🦼",":man_in_motorized_wheelchair_tone4:":"👨🏾‍🦼",":man_in_motorized_wheelchair_dark_skin_tone:":"👨🏿‍🦼",":man_in_motorized_wheelchair_tone5:":"👨🏿‍🦼",":man_mechanic_light_skin_tone:":"👨🏻‍🔧",":man_mechanic_tone1:":"👨🏻‍🔧",":man_mechanic_medium_light_skin_tone:":"👨🏼‍🔧",":man_mechanic_tone2:":"👨🏼‍🔧",":man_mechanic_medium_skin_tone:":"👨🏽‍🔧",":man_mechanic_tone3:":"👨🏽‍🔧",":man_mechanic_medium_dark_skin_tone:":"👨🏾‍🔧",":man_mechanic_tone4:":"👨🏾‍🔧",":man_mechanic_dark_skin_tone:":"👨🏿‍🔧",":man_mechanic_tone5:":"👨🏿‍🔧",":man_office_worker_light_skin_tone:":"👨🏻‍💼",":man_office_worker_tone1:":"👨🏻‍💼",":man_office_worker_medium_light_skin_tone:":"👨🏼‍💼",":man_office_worker_tone2:":"👨🏼‍💼",":man_office_worker_medium_skin_tone:":"👨🏽‍💼",":man_office_worker_tone3:":"👨🏽‍💼",":man_office_worker_medium_dark_skin_tone:":"👨🏾‍💼",":man_office_worker_tone4:":"👨🏾‍💼",":man_office_worker_dark_skin_tone:":"👨🏿‍💼",":man_office_worker_tone5:":"👨🏿‍💼",":man_red_haired_light_skin_tone:":"👨🏻‍🦰",":man_red_haired_tone1:":"👨🏻‍🦰",":man_red_haired_medium_light_skin_tone:":"👨🏼‍🦰",":man_red_haired_tone2:":"👨🏼‍🦰",":man_red_haired_medium_skin_tone:":"👨🏽‍🦰",":man_red_haired_tone3:":"👨🏽‍🦰",":man_red_haired_medium_dark_skin_tone:":"👨🏾‍🦰",":man_red_haired_tone4:":"👨🏾‍🦰",":man_red_haired_dark_skin_tone:":"👨🏿‍🦰",":man_red_haired_tone5:":"👨🏿‍🦰",":man_scientist_light_skin_tone:":"👨🏻‍🔬",":man_scientist_tone1:":"👨🏻‍🔬",":man_scientist_medium_light_skin_tone:":"👨🏼‍🔬",":man_scientist_tone2:":"👨🏼‍🔬",":man_scientist_medium_skin_tone:":"👨🏽‍🔬",":man_scientist_tone3:":"👨🏽‍🔬",":man_scientist_medium_dark_skin_tone:":"👨🏾‍🔬",":man_scientist_tone4:":"👨🏾‍🔬",":man_scientist_dark_skin_tone:":"👨🏿‍🔬",":man_scientist_tone5:":"👨🏿‍🔬",":man_singer_light_skin_tone:":"👨🏻‍🎤",":man_singer_tone1:":"👨🏻‍🎤",":man_singer_medium_light_skin_tone:":"👨🏼‍🎤",":man_singer_tone2:":"👨🏼‍🎤",":man_singer_medium_skin_tone:":"👨🏽‍🎤",":man_singer_tone3:":"👨🏽‍🎤",":man_singer_medium_dark_skin_tone:":"👨🏾‍🎤",":man_singer_tone4:":"👨🏾‍🎤",":man_singer_dark_skin_tone:":"👨🏿‍🎤",":man_singer_tone5:":"👨🏿‍🎤",":man_student_light_skin_tone:":"👨🏻‍🎓",":man_student_tone1:":"👨🏻‍🎓",":man_student_medium_light_skin_tone:":"👨🏼‍🎓",":man_student_tone2:":"👨🏼‍🎓",":man_student_medium_skin_tone:":"👨🏽‍🎓",":man_student_tone3:":"👨🏽‍🎓",":man_student_medium_dark_skin_tone:":"👨🏾‍🎓",":man_student_tone4:":"👨🏾‍🎓",":man_student_dark_skin_tone:":"👨🏿‍🎓",":man_student_tone5:":"👨🏿‍🎓",":man_teacher_light_skin_tone:":"👨🏻‍🏫",":man_teacher_tone1:":"👨🏻‍🏫",":man_teacher_medium_light_skin_tone:":"👨🏼‍🏫",":man_teacher_tone2:":"👨🏼‍🏫",":man_teacher_medium_skin_tone:":"👨🏽‍🏫",":man_teacher_tone3:":"👨🏽‍🏫",":man_teacher_medium_dark_skin_tone:":"👨🏾‍🏫",":man_teacher_tone4:":"👨🏾‍🏫",":man_teacher_dark_skin_tone:":"👨🏿‍🏫",":man_teacher_tone5:":"👨🏿‍🏫",":man_technologist_light_skin_tone:":"👨🏻‍💻",":man_technologist_tone1:":"👨🏻‍💻",":man_technologist_medium_light_skin_tone:":"👨🏼‍💻",":man_technologist_tone2:":"👨🏼‍💻",":man_technologist_medium_skin_tone:":"👨🏽‍💻",":man_technologist_tone3:":"👨🏽‍💻",":man_technologist_medium_dark_skin_tone:":"👨🏾‍💻",":man_technologist_tone4:":"👨🏾‍💻",":man_technologist_dark_skin_tone:":"👨🏿‍💻",":man_technologist_tone5:":"👨🏿‍💻",":man_white_haired_light_skin_tone:":"👨🏻‍🦳",":man_white_haired_tone1:":"👨🏻‍🦳",":man_white_haired_medium_light_skin_tone:":"👨🏼‍🦳",":man_white_haired_tone2:":"👨🏼‍🦳",":man_white_haired_medium_skin_tone:":"👨🏽‍🦳",":man_white_haired_tone3:":"👨🏽‍🦳",":man_white_haired_medium_dark_skin_tone:":"👨🏾‍🦳",":man_white_haired_tone4:":"👨🏾‍🦳",":man_white_haired_dark_skin_tone:":"👨🏿‍🦳",":man_white_haired_tone5:":"👨🏿‍🦳",":man_with_probing_cane_light_skin_tone:":"👨🏻‍🦯",":man_with_probing_cane_tone1:":"👨🏻‍🦯",":man_with_probing_cane_medium_light_skin_tone:":"👨🏼‍🦯",":man_with_probing_cane_tone2:":"👨🏼‍🦯",":man_with_probing_cane_medium_skin_tone:":"👨🏽‍🦯",":man_with_probing_cane_tone3:":"👨🏽‍🦯",":man_with_probing_cane_medium_dark_skin_tone:":"👨🏾‍🦯",":man_with_probing_cane_tone4:":"👨🏾‍🦯",":man_with_probing_cane_dark_skin_tone:":"👨🏿‍🦯",":man_with_probing_cane_tone5:":"👨🏿‍🦯",":people_holding_hands:":"🧑‍🤝‍🧑",":woman_artist_light_skin_tone:":"👩🏻‍🎨",":woman_artist_tone1:":"👩🏻‍🎨",":woman_artist_medium_light_skin_tone:":"👩🏼‍🎨",":woman_artist_tone2:":"👩🏼‍🎨",":woman_artist_medium_skin_tone:":"👩🏽‍🎨",":woman_artist_tone3:":"👩🏽‍🎨",":woman_artist_medium_dark_skin_tone:":"👩🏾‍🎨",":woman_artist_tone4:":"👩🏾‍🎨",":woman_artist_dark_skin_tone:":"👩🏿‍🎨",":woman_artist_tone5:":"👩🏿‍🎨",":woman_astronaut_light_skin_tone:":"👩🏻‍🚀",":woman_astronaut_tone1:":"👩🏻‍🚀",":woman_astronaut_medium_light_skin_tone:":"👩🏼‍🚀",":woman_astronaut_tone2:":"👩🏼‍🚀",":woman_astronaut_medium_skin_tone:":"👩🏽‍🚀",":woman_astronaut_tone3:":"👩🏽‍🚀",":woman_astronaut_medium_dark_skin_tone:":"👩🏾‍🚀",":woman_astronaut_tone4:":"👩🏾‍🚀",":woman_astronaut_dark_skin_tone:":"👩🏿‍🚀",":woman_astronaut_tone5:":"👩🏿‍🚀",":woman_bald_light_skin_tone:":"👩🏻‍🦲",":woman_bald_tone1:":"👩🏻‍🦲",":woman_bald_medium_light_skin_tone:":"👩🏼‍🦲",":woman_bald_tone2:":"👩🏼‍🦲",":woman_bald_medium_skin_tone:":"👩🏽‍🦲",":woman_bald_tone3:":"👩🏽‍🦲",":woman_bald_medium_dark_skin_tone:":"👩🏾‍🦲",":woman_bald_tone4:":"👩🏾‍🦲",":woman_bald_dark_skin_tone:":"👩🏿‍🦲",":woman_bald_tone5:":"👩🏿‍🦲",":woman_cook_light_skin_tone:":"👩🏻‍🍳",":woman_cook_tone1:":"👩🏻‍🍳",":woman_cook_medium_light_skin_tone:":"👩🏼‍🍳",":woman_cook_tone2:":"👩🏼‍🍳",":woman_cook_medium_skin_tone:":"👩🏽‍🍳",":woman_cook_tone3:":"👩🏽‍🍳",":woman_cook_medium_dark_skin_tone:":"👩🏾‍🍳",":woman_cook_tone4:":"👩🏾‍🍳",":woman_cook_dark_skin_tone:":"👩🏿‍🍳",":woman_cook_tone5:":"👩🏿‍🍳",":woman_curly_haired_light_skin_tone:":"👩🏻‍🦱",":woman_curly_haired_tone1:":"👩🏻‍🦱",":woman_curly_haired_medium_light_skin_tone:":"👩🏼‍🦱",":woman_curly_haired_tone2:":"👩🏼‍🦱",":woman_curly_haired_medium_skin_tone:":"👩🏽‍🦱",":woman_curly_haired_tone3:":"👩🏽‍🦱",":woman_curly_haired_medium_dark_skin_tone:":"👩🏾‍🦱",":woman_curly_haired_tone4:":"👩🏾‍🦱",":woman_curly_haired_dark_skin_tone:":"👩🏿‍🦱",":woman_curly_haired_tone5:":"👩🏿‍🦱",":woman_factory_worker_light_skin_tone:":"👩🏻‍🏭",":woman_factory_worker_tone1:":"👩🏻‍🏭",":woman_factory_worker_medium_light_skin_tone:":"👩🏼‍🏭",":woman_factory_worker_tone2:":"👩🏼‍🏭",":woman_factory_worker_medium_skin_tone:":"👩🏽‍🏭",":woman_factory_worker_tone3:":"👩🏽‍🏭",":woman_factory_worker_medium_dark_skin_tone:":"👩🏾‍🏭",":woman_factory_worker_tone4:":"👩🏾‍🏭",":woman_factory_worker_dark_skin_tone:":"👩🏿‍🏭",":woman_factory_worker_tone5:":"👩🏿‍🏭",":woman_farmer_light_skin_tone:":"👩🏻‍🌾",":woman_farmer_tone1:":"👩🏻‍🌾",":woman_farmer_medium_light_skin_tone:":"👩🏼‍🌾",":woman_farmer_tone2:":"👩🏼‍🌾",":woman_farmer_medium_skin_tone:":"👩🏽‍🌾",":woman_farmer_tone3:":"👩🏽‍🌾",":woman_farmer_medium_dark_skin_tone:":"👩🏾‍🌾",":woman_farmer_tone4:":"👩🏾‍🌾",":woman_farmer_dark_skin_tone:":"👩🏿‍🌾",":woman_farmer_tone5:":"👩🏿‍🌾",":woman_firefighter_light_skin_tone:":"👩🏻‍🚒",":woman_firefighter_tone1:":"👩🏻‍🚒",":woman_firefighter_medium_light_skin_tone:":"👩🏼‍🚒",":woman_firefighter_tone2:":"👩🏼‍🚒",":woman_firefighter_medium_skin_tone:":"👩🏽‍🚒",":woman_firefighter_tone3:":"👩🏽‍🚒",":woman_firefighter_medium_dark_skin_tone:":"👩🏾‍🚒",":woman_firefighter_tone4:":"👩🏾‍🚒",":woman_firefighter_dark_skin_tone:":"👩🏿‍🚒",":woman_firefighter_tone5:":"👩🏿‍🚒",":woman_in_manual_wheelchair_light_skin_tone:":"👩🏻‍🦽",":woman_in_manual_wheelchair_tone1:":"👩🏻‍🦽",":woman_in_manual_wheelchair_medium_light_skin_tone:":"👩🏼‍🦽",":woman_in_manual_wheelchair_tone2:":"👩🏼‍🦽",":woman_in_manual_wheelchair_medium_skin_tone:":"👩🏽‍🦽",":woman_in_manual_wheelchair_tone3:":"👩🏽‍🦽",":woman_in_manual_wheelchair_medium_dark_skin_tone:":"👩🏾‍🦽",":woman_in_manual_wheelchair_tone4:":"👩🏾‍🦽",":woman_in_manual_wheelchair_dark_skin_tone:":"👩🏿‍🦽",":woman_in_manual_wheelchair_tone5:":"👩🏿‍🦽",":woman_in_motorized_wheelchair_light_skin_tone:":"👩🏻‍🦼",":woman_in_motorized_wheelchair_tone1:":"👩🏻‍🦼",":woman_in_motorized_wheelchair_medium_light_skin_tone:":"👩🏼‍🦼",":woman_in_motorized_wheelchair_tone2:":"👩🏼‍🦼",":woman_in_motorized_wheelchair_medium_skin_tone:":"👩🏽‍🦼",":woman_in_motorized_wheelchair_tone3:":"👩🏽‍🦼",":woman_in_motorized_wheelchair_medium_dark_skin_tone:":"👩🏾‍🦼",":woman_in_motorized_wheelchair_tone4:":"👩🏾‍🦼",":woman_in_motorized_wheelchair_dark_skin_tone:":"👩🏿‍🦼",":woman_in_motorized_wheelchair_tone5:":"👩🏿‍🦼",":woman_mechanic_light_skin_tone:":"👩🏻‍🔧",":woman_mechanic_tone1:":"👩🏻‍🔧",":woman_mechanic_medium_light_skin_tone:":"👩🏼‍🔧",":woman_mechanic_tone2:":"👩🏼‍🔧",":woman_mechanic_medium_skin_tone:":"👩🏽‍🔧",":woman_mechanic_tone3:":"👩🏽‍🔧",":woman_mechanic_medium_dark_skin_tone:":"👩🏾‍🔧",":woman_mechanic_tone4:":"👩🏾‍🔧",":woman_mechanic_dark_skin_tone:":"👩🏿‍🔧",":woman_mechanic_tone5:":"👩🏿‍🔧",":woman_office_worker_light_skin_tone:":"👩🏻‍💼",":woman_office_worker_tone1:":"👩🏻‍💼",":woman_office_worker_medium_light_skin_tone:":"👩🏼‍💼",":woman_office_worker_tone2:":"👩🏼‍💼",":woman_office_worker_medium_skin_tone:":"👩🏽‍💼",":woman_office_worker_tone3:":"👩🏽‍💼",":woman_office_worker_medium_dark_skin_tone:":"👩🏾‍💼",":woman_office_worker_tone4:":"👩🏾‍💼",":woman_office_worker_dark_skin_tone:":"👩🏿‍💼",":woman_office_worker_tone5:":"👩🏿‍💼",":woman_red_haired_light_skin_tone:":"👩🏻‍🦰",":woman_red_haired_tone1:":"👩🏻‍🦰",":woman_red_haired_medium_light_skin_tone:":"👩🏼‍🦰",":woman_red_haired_tone2:":"👩🏼‍🦰",":woman_red_haired_medium_skin_tone:":"👩🏽‍🦰",":woman_red_haired_tone3:":"👩🏽‍🦰",":woman_red_haired_medium_dark_skin_tone:":"👩🏾‍🦰",":woman_red_haired_tone4:":"👩🏾‍🦰",":woman_red_haired_dark_skin_tone:":"👩🏿‍🦰",":woman_red_haired_tone5:":"👩🏿‍🦰",":woman_scientist_light_skin_tone:":"👩🏻‍🔬",":woman_scientist_tone1:":"👩🏻‍🔬",":woman_scientist_medium_light_skin_tone:":"👩🏼‍🔬",":woman_scientist_tone2:":"👩🏼‍🔬",":woman_scientist_medium_skin_tone:":"👩🏽‍🔬",":woman_scientist_tone3:":"👩🏽‍🔬",":woman_scientist_medium_dark_skin_tone:":"👩🏾‍🔬",":woman_scientist_tone4:":"👩🏾‍🔬",":woman_scientist_dark_skin_tone:":"👩🏿‍🔬",":woman_scientist_tone5:":"👩🏿‍🔬",":woman_singer_light_skin_tone:":"👩🏻‍🎤",":woman_singer_tone1:":"👩🏻‍🎤",":woman_singer_medium_light_skin_tone:":"👩🏼‍🎤",":woman_singer_tone2:":"👩🏼‍🎤",":woman_singer_medium_skin_tone:":"👩🏽‍🎤",":woman_singer_tone3:":"👩🏽‍🎤",":woman_singer_medium_dark_skin_tone:":"👩🏾‍🎤",":woman_singer_tone4:":"👩🏾‍🎤",":woman_singer_dark_skin_tone:":"👩🏿‍🎤",":woman_singer_tone5:":"👩🏿‍🎤",":woman_student_light_skin_tone:":"👩🏻‍🎓",":woman_student_tone1:":"👩🏻‍🎓",":woman_student_medium_light_skin_tone:":"👩🏼‍🎓",":woman_student_tone2:":"👩🏼‍🎓",":woman_student_medium_skin_tone:":"👩🏽‍🎓",":woman_student_tone3:":"👩🏽‍🎓",":woman_student_medium_dark_skin_tone:":"👩🏾‍🎓",":woman_student_tone4:":"👩🏾‍🎓",":woman_student_dark_skin_tone:":"👩🏿‍🎓",":woman_student_tone5:":"👩🏿‍🎓",":woman_teacher_light_skin_tone:":"👩🏻‍🏫",":woman_teacher_tone1:":"👩🏻‍🏫",":woman_teacher_medium_light_skin_tone:":"👩🏼‍🏫",":woman_teacher_tone2:":"👩🏼‍🏫",":woman_teacher_medium_skin_tone:":"👩🏽‍🏫",":woman_teacher_tone3:":"👩🏽‍🏫",":woman_teacher_medium_dark_skin_tone:":"👩🏾‍🏫",":woman_teacher_tone4:":"👩🏾‍🏫",":woman_teacher_dark_skin_tone:":"👩🏿‍🏫",":woman_teacher_tone5:":"👩🏿‍🏫",":woman_technologist_light_skin_tone:":"👩🏻‍💻",":woman_technologist_tone1:":"👩🏻‍💻",":woman_technologist_medium_light_skin_tone:":"👩🏼‍💻",":woman_technologist_tone2:":"👩🏼‍💻",":woman_technologist_medium_skin_tone:":"👩🏽‍💻",":woman_technologist_tone3:":"👩🏽‍💻",":woman_technologist_medium_dark_skin_tone:":"👩🏾‍💻",":woman_technologist_tone4:":"👩🏾‍💻",":woman_technologist_dark_skin_tone:":"👩🏿‍💻",":woman_technologist_tone5:":"👩🏿‍💻",":woman_white_haired_light_skin_tone:":"👩🏻‍🦳",":woman_white_haired_tone1:":"👩🏻‍🦳",":woman_white_haired_medium_light_skin_tone:":"👩🏼‍🦳",":woman_white_haired_tone2:":"👩🏼‍🦳",":woman_white_haired_medium_skin_tone:":"👩🏽‍🦳",":woman_white_haired_tone3:":"👩🏽‍🦳",":woman_white_haired_medium_dark_skin_tone:":"👩🏾‍🦳",":woman_white_haired_tone4:":"👩🏾‍🦳",":woman_white_haired_dark_skin_tone:":"👩🏿‍🦳",":woman_white_haired_tone5:":"👩🏿‍🦳",":woman_with_probing_cane_light_skin_tone:":"👩🏻‍🦯",":woman_with_probing_cane_tone1:":"👩🏻‍🦯",":woman_with_probing_cane_medium_light_skin_tone:":"👩🏼‍🦯",":woman_with_probing_cane_tone2:":"👩🏼‍🦯",":woman_with_probing_cane_medium_skin_tone:":"👩🏽‍🦯",":woman_with_probing_cane_tone3:":"👩🏽‍🦯",":woman_with_probing_cane_medium_dark_skin_tone:":"👩🏾‍🦯",":woman_with_probing_cane_tone4:":"👩🏾‍🦯",":woman_with_probing_cane_dark_skin_tone:":"👩🏿‍🦯",":woman_with_probing_cane_tone5:":"👩🏿‍🦯",":blond-haired_man_light_skin_tone:":"👱🏻‍♂️",":blond-haired_man_tone1:":"👱🏻‍♂️",":blond-haired_man_medium_light_skin_tone:":"👱🏼‍♂️",":blond-haired_man_tone2:":"👱🏼‍♂️",":blond-haired_man_medium_skin_tone:":"👱🏽‍♂️",":blond-haired_man_tone3:":"👱🏽‍♂️",":blond-haired_man_medium_dark_skin_tone:":"👱🏾‍♂️",":blond-haired_man_tone4:":"👱🏾‍♂️",":blond-haired_man_dark_skin_tone:":"👱🏿‍♂️",":blond-haired_man_tone5:":"👱🏿‍♂️",":blond-haired_woman_light_skin_tone:":"👱🏻‍♀️",":blond-haired_woman_tone1:":"👱🏻‍♀️",":blond-haired_woman_medium_light_skin_tone:":"👱🏼‍♀️",":blond-haired_woman_tone2:":"👱🏼‍♀️",":blond-haired_woman_medium_skin_tone:":"👱🏽‍♀️",":blond-haired_woman_tone3:":"👱🏽‍♀️",":blond-haired_woman_medium_dark_skin_tone:":"👱🏾‍♀️",":blond-haired_woman_tone4:":"👱🏾‍♀️",":blond-haired_woman_dark_skin_tone:":"👱🏿‍♀️",":blond-haired_woman_tone5:":"👱🏿‍♀️",":couple_with_heart_mm:":"👨‍❤️‍👨",":couple_mm:":"👨‍❤️‍👨",":couple_with_heart_woman_man:":"👩‍❤️‍👨",":couple_with_heart_ww:":"👩‍❤️‍👩",":couple_ww:":"👩‍❤️‍👩",":deaf_man_light_skin_tone:":"🧏🏻‍♂️",":deaf_man_tone1:":"🧏🏻‍♂️",":deaf_man_medium_light_skin_tone:":"🧏🏼‍♂️",":deaf_man_tone2:":"🧏🏼‍♂️",":deaf_man_medium_skin_tone:":"🧏🏽‍♂️",":deaf_man_tone3:":"🧏🏽‍♂️",":deaf_man_medium_dark_skin_tone:":"🧏🏾‍♂️",":deaf_man_tone4:":"🧏🏾‍♂️",":deaf_man_dark_skin_tone:":"🧏🏿‍♂️",":deaf_man_tone5:":"🧏🏿‍♂️",":deaf_woman_light_skin_tone:":"🧏🏻‍♀️",":deaf_woman_tone1:":"🧏🏻‍♀️",":deaf_woman_medium_light_skin_tone:":"🧏🏼‍♀️",":deaf_woman_tone2:":"🧏🏼‍♀️",":deaf_woman_medium_skin_tone:":"🧏🏽‍♀️",":deaf_woman_tone3:":"🧏🏽‍♀️",":deaf_woman_medium_dark_skin_tone:":"🧏🏾‍♀️",":deaf_woman_tone4:":"🧏🏾‍♀️",":deaf_woman_dark_skin_tone:":"🧏🏿‍♀️",":deaf_woman_tone5:":"🧏🏿‍♀️",":man_biking_light_skin_tone:":"🚴🏻‍♂️",":man_biking_tone1:":"🚴🏻‍♂️",":man_biking_medium_light_skin_tone:":"🚴🏼‍♂️",":man_biking_tone2:":"🚴🏼‍♂️",":man_biking_medium_skin_tone:":"🚴🏽‍♂️",":man_biking_tone3:":"🚴🏽‍♂️",":man_biking_medium_dark_skin_tone:":"🚴🏾‍♂️",":man_biking_tone4:":"🚴🏾‍♂️",":man_biking_dark_skin_tone:":"🚴🏿‍♂️",":man_biking_tone5:":"🚴🏿‍♂️",":man_bowing_light_skin_tone:":"🙇🏻‍♂️",":man_bowing_tone1:":"🙇🏻‍♂️",":man_bowing_medium_light_skin_tone:":"🙇🏼‍♂️",":man_bowing_tone2:":"🙇🏼‍♂️",":man_bowing_medium_skin_tone:":"🙇🏽‍♂️",":man_bowing_tone3:":"🙇🏽‍♂️",":man_bowing_medium_dark_skin_tone:":"🙇🏾‍♂️",":man_bowing_tone4:":"🙇🏾‍♂️",":man_bowing_dark_skin_tone:":"🙇🏿‍♂️",":man_bowing_tone5:":"🙇🏿‍♂️",":man_cartwheeling_light_skin_tone:":"🤸🏻‍♂️",":man_cartwheeling_tone1:":"🤸🏻‍♂️",":man_cartwheeling_medium_light_skin_tone:":"🤸🏼‍♂️",":man_cartwheeling_tone2:":"🤸🏼‍♂️",":man_cartwheeling_medium_skin_tone:":"🤸🏽‍♂️",":man_cartwheeling_tone3:":"🤸🏽‍♂️",":man_cartwheeling_medium_dark_skin_tone:":"🤸🏾‍♂️",":man_cartwheeling_tone4:":"🤸🏾‍♂️",":man_cartwheeling_dark_skin_tone:":"🤸🏿‍♂️",":man_cartwheeling_tone5:":"🤸🏿‍♂️",":man_climbing_light_skin_tone:":"🧗🏻‍♂️",":man_climbing_tone1:":"🧗🏻‍♂️",":man_climbing_medium_light_skin_tone:":"🧗🏼‍♂️",":man_climbing_tone2:":"🧗🏼‍♂️",":man_climbing_medium_skin_tone:":"🧗🏽‍♂️",":man_climbing_tone3:":"🧗🏽‍♂️",":man_climbing_medium_dark_skin_tone:":"🧗🏾‍♂️",":man_climbing_tone4:":"🧗🏾‍♂️",":man_climbing_dark_skin_tone:":"🧗🏿‍♂️",":man_climbing_tone5:":"🧗🏿‍♂️",":man_construction_worker_light_skin_tone:":"👷🏻‍♂️",":man_construction_worker_tone1:":"👷🏻‍♂️",":man_construction_worker_medium_light_skin_tone:":"👷🏼‍♂️",":man_construction_worker_tone2:":"👷🏼‍♂️",":man_construction_worker_medium_skin_tone:":"👷🏽‍♂️",":man_construction_worker_tone3:":"👷🏽‍♂️",":man_construction_worker_medium_dark_skin_tone:":"👷🏾‍♂️",":man_construction_worker_tone4:":"👷🏾‍♂️",":man_construction_worker_dark_skin_tone:":"👷🏿‍♂️",":man_construction_worker_tone5:":"👷🏿‍♂️",":man_detective_light_skin_tone:":"🕵️🏻‍♂️",":man_detective_tone1:":"🕵️🏻‍♂️",":man_detective_medium_light_skin_tone:":"🕵️🏼‍♂️",":man_detective_tone2:":"🕵️🏼‍♂️",":man_detective_medium_skin_tone:":"🕵️🏽‍♂️",":man_detective_tone3:":"🕵️🏽‍♂️",":man_detective_medium_dark_skin_tone:":"🕵️🏾‍♂️",":man_detective_tone4:":"🕵️🏾‍♂️",":man_detective_dark_skin_tone:":"🕵️🏿‍♂️",":man_detective_tone5:":"🕵️🏿‍♂️",":man_elf_light_skin_tone:":"🧝🏻‍♂️",":man_elf_tone1:":"🧝🏻‍♂️",":man_elf_medium_light_skin_tone:":"🧝🏼‍♂️",":man_elf_tone2:":"🧝🏼‍♂️",":man_elf_medium_skin_tone:":"🧝🏽‍♂️",":man_elf_tone3:":"🧝🏽‍♂️",":man_elf_medium_dark_skin_tone:":"🧝🏾‍♂️",":man_elf_tone4:":"🧝🏾‍♂️",":man_elf_dark_skin_tone:":"🧝🏿‍♂️",":man_elf_tone5:":"🧝🏿‍♂️",":man_facepalming_light_skin_tone:":"🤦🏻‍♂️",":man_facepalming_tone1:":"🤦🏻‍♂️",":man_facepalming_medium_light_skin_tone:":"🤦🏼‍♂️",":man_facepalming_tone2:":"🤦🏼‍♂️",":man_facepalming_medium_skin_tone:":"🤦🏽‍♂️",":man_facepalming_tone3:":"🤦🏽‍♂️",":man_facepalming_medium_dark_skin_tone:":"🤦🏾‍♂️",":man_facepalming_tone4:":"🤦🏾‍♂️",":man_facepalming_dark_skin_tone:":"🤦🏿‍♂️",":man_facepalming_tone5:":"🤦🏿‍♂️",":man_fairy_light_skin_tone:":"🧚🏻‍♂️",":man_fairy_tone1:":"🧚🏻‍♂️",":man_fairy_medium_light_skin_tone:":"🧚🏼‍♂️",":man_fairy_tone2:":"🧚🏼‍♂️",":man_fairy_medium_skin_tone:":"🧚🏽‍♂️",":man_fairy_tone3:":"🧚🏽‍♂️",":man_fairy_medium_dark_skin_tone:":"🧚🏾‍♂️",":man_fairy_tone4:":"🧚🏾‍♂️",":man_fairy_dark_skin_tone:":"🧚🏿‍♂️",":man_fairy_tone5:":"🧚🏿‍♂️",":man_frowning_light_skin_tone:":"🙍🏻‍♂️",":man_frowning_tone1:":"🙍🏻‍♂️",":man_frowning_medium_light_skin_tone:":"🙍🏼‍♂️",":man_frowning_tone2:":"🙍🏼‍♂️",":man_frowning_medium_skin_tone:":"🙍🏽‍♂️",":man_frowning_tone3:":"🙍🏽‍♂️",":man_frowning_medium_dark_skin_tone:":"🙍🏾‍♂️",":man_frowning_tone4:":"🙍🏾‍♂️",":man_frowning_dark_skin_tone:":"🙍🏿‍♂️",":man_frowning_tone5:":"🙍🏿‍♂️",":man_gesturing_no_light_skin_tone:":"🙅🏻‍♂️",":man_gesturing_no_tone1:":"🙅🏻‍♂️",":man_gesturing_no_medium_light_skin_tone:":"🙅🏼‍♂️",":man_gesturing_no_tone2:":"🙅🏼‍♂️",":man_gesturing_no_medium_skin_tone:":"🙅🏽‍♂️",":man_gesturing_no_tone3:":"🙅🏽‍♂️",":man_gesturing_no_medium_dark_skin_tone:":"🙅🏾‍♂️",":man_gesturing_no_tone4:":"🙅🏾‍♂️",":man_gesturing_no_dark_skin_tone:":"🙅🏿‍♂️",":man_gesturing_no_tone5:":"🙅🏿‍♂️",":man_gesturing_ok_light_skin_tone:":"🙆🏻‍♂️",":man_gesturing_ok_tone1:":"🙆🏻‍♂️",":man_gesturing_ok_medium_light_skin_tone:":"🙆🏼‍♂️",":man_gesturing_ok_tone2:":"🙆🏼‍♂️",":man_gesturing_ok_medium_skin_tone:":"🙆🏽‍♂️",":man_gesturing_ok_tone3:":"🙆🏽‍♂️",":man_gesturing_ok_medium_dark_skin_tone:":"🙆🏾‍♂️",":man_gesturing_ok_tone4:":"🙆🏾‍♂️",":man_gesturing_ok_dark_skin_tone:":"🙆🏿‍♂️",":man_gesturing_ok_tone5:":"🙆🏿‍♂️",":man_getting_face_massage_light_skin_tone:":"💆🏻‍♂️",":man_getting_face_massage_tone1:":"💆🏻‍♂️",":man_getting_face_massage_medium_light_skin_tone:":"💆🏼‍♂️",":man_getting_face_massage_tone2:":"💆🏼‍♂️",":man_getting_face_massage_medium_skin_tone:":"💆🏽‍♂️",":man_getting_face_massage_tone3:":"💆🏽‍♂️",":man_getting_face_massage_medium_dark_skin_tone:":"💆🏾‍♂️",":man_getting_face_massage_tone4:":"💆🏾‍♂️",":man_getting_face_massage_dark_skin_tone:":"💆🏿‍♂️",":man_getting_face_massage_tone5:":"💆🏿‍♂️",":man_getting_haircut_light_skin_tone:":"💇🏻‍♂️",":man_getting_haircut_tone1:":"💇🏻‍♂️",":man_getting_haircut_medium_light_skin_tone:":"💇🏼‍♂️",":man_getting_haircut_tone2:":"💇🏼‍♂️",":man_getting_haircut_medium_skin_tone:":"💇🏽‍♂️",":man_getting_haircut_tone3:":"💇🏽‍♂️",":man_getting_haircut_medium_dark_skin_tone:":"💇🏾‍♂️",":man_getting_haircut_tone4:":"💇🏾‍♂️",":man_getting_haircut_dark_skin_tone:":"💇🏿‍♂️",":man_getting_haircut_tone5:":"💇🏿‍♂️",":man_golfing_light_skin_tone:":"🏌️🏻‍♂️",":man_golfing_tone1:":"🏌️🏻‍♂️",":man_golfing_medium_light_skin_tone:":"🏌️🏼‍♂️",":man_golfing_tone2:":"🏌️🏼‍♂️",":man_golfing_medium_skin_tone:":"🏌️🏽‍♂️",":man_golfing_tone3:":"🏌️🏽‍♂️",":man_golfing_medium_dark_skin_tone:":"🏌️🏾‍♂️",":man_golfing_tone4:":"🏌️🏾‍♂️",":man_golfing_dark_skin_tone:":"🏌️🏿‍♂️",":man_golfing_tone5:":"🏌️🏿‍♂️",":man_guard_light_skin_tone:":"💂🏻‍♂️",":man_guard_tone1:":"💂🏻‍♂️",":man_guard_medium_light_skin_tone:":"💂🏼‍♂️",":man_guard_tone2:":"💂🏼‍♂️",":man_guard_medium_skin_tone:":"💂🏽‍♂️",":man_guard_tone3:":"💂🏽‍♂️",":man_guard_medium_dark_skin_tone:":"💂🏾‍♂️",":man_guard_tone4:":"💂🏾‍♂️",":man_guard_dark_skin_tone:":"💂🏿‍♂️",":man_guard_tone5:":"💂🏿‍♂️",":man_health_worker_light_skin_tone:":"👨🏻‍⚕️",":man_health_worker_tone1:":"👨🏻‍⚕️",":man_health_worker_medium_light_skin_tone:":"👨🏼‍⚕️",":man_health_worker_tone2:":"👨🏼‍⚕️",":man_health_worker_medium_skin_tone:":"👨🏽‍⚕️",":man_health_worker_tone3:":"👨🏽‍⚕️",":man_health_worker_medium_dark_skin_tone:":"👨🏾‍⚕️",":man_health_worker_tone4:":"👨🏾‍⚕️",":man_health_worker_dark_skin_tone:":"👨🏿‍⚕️",":man_health_worker_tone5:":"👨🏿‍⚕️",":man_in_lotus_position_light_skin_tone:":"🧘🏻‍♂️",":man_in_lotus_position_tone1:":"🧘🏻‍♂️",":man_in_lotus_position_medium_light_skin_tone:":"🧘🏼‍♂️",":man_in_lotus_position_tone2:":"🧘🏼‍♂️",":man_in_lotus_position_medium_skin_tone:":"🧘🏽‍♂️",":man_in_lotus_position_tone3:":"🧘🏽‍♂️",":man_in_lotus_position_medium_dark_skin_tone:":"🧘🏾‍♂️",":man_in_lotus_position_tone4:":"🧘🏾‍♂️",":man_in_lotus_position_dark_skin_tone:":"🧘🏿‍♂️",":man_in_lotus_position_tone5:":"🧘🏿‍♂️",":man_in_steamy_room_light_skin_tone:":"🧖🏻‍♂️",":man_in_steamy_room_tone1:":"🧖🏻‍♂️",":man_in_steamy_room_medium_light_skin_tone:":"🧖🏼‍♂️",":man_in_steamy_room_tone2:":"🧖🏼‍♂️",":man_in_steamy_room_medium_skin_tone:":"🧖🏽‍♂️",":man_in_steamy_room_tone3:":"🧖🏽‍♂️",":man_in_steamy_room_medium_dark_skin_tone:":"🧖🏾‍♂️",":man_in_steamy_room_tone4:":"🧖🏾‍♂️",":man_in_steamy_room_dark_skin_tone:":"🧖🏿‍♂️",":man_in_steamy_room_tone5:":"🧖🏿‍♂️",":man_judge_light_skin_tone:":"👨🏻‍⚖️",":man_judge_tone1:":"👨🏻‍⚖️",":man_judge_medium_light_skin_tone:":"👨🏼‍⚖️",":man_judge_tone2:":"👨🏼‍⚖️",":man_judge_medium_skin_tone:":"👨🏽‍⚖️",":man_judge_tone3:":"👨🏽‍⚖️",":man_judge_medium_dark_skin_tone:":"👨🏾‍⚖️",":man_judge_tone4:":"👨🏾‍⚖️",":man_judge_dark_skin_tone:":"👨🏿‍⚖️",":man_judge_tone5:":"👨🏿‍⚖️",":man_juggling_light_skin_tone:":"🤹🏻‍♂️",":man_juggling_tone1:":"🤹🏻‍♂️",":man_juggling_medium_light_skin_tone:":"🤹🏼‍♂️",":man_juggling_tone2:":"🤹🏼‍♂️",":man_juggling_medium_skin_tone:":"🤹🏽‍♂️",":man_juggling_tone3:":"🤹🏽‍♂️",":man_juggling_medium_dark_skin_tone:":"🤹🏾‍♂️",":man_juggling_tone4:":"🤹🏾‍♂️",":man_juggling_dark_skin_tone:":"🤹🏿‍♂️",":man_juggling_tone5:":"🤹🏿‍♂️",":man_kneeling_light_skin_tone:":"🧎🏻‍♂️",":man_kneeling_tone1:":"🧎🏻‍♂️",":man_kneeling_medium_light_skin_tone:":"🧎🏼‍♂️",":man_kneeling_tone2:":"🧎🏼‍♂️",":man_kneeling_medium_skin_tone:":"🧎🏽‍♂️",":man_kneeling_tone3:":"🧎🏽‍♂️",":man_kneeling_medium_dark_skin_tone:":"🧎🏾‍♂️",":man_kneeling_tone4:":"🧎🏾‍♂️",":man_kneeling_dark_skin_tone:":"🧎🏿‍♂️",":man_kneeling_tone5:":"🧎🏿‍♂️",":man_lifting_weights_light_skin_tone:":"🏋️🏻‍♂️",":man_lifting_weights_tone1:":"🏋️🏻‍♂️",":man_lifting_weights_medium_light_skin_tone:":"🏋️🏼‍♂️",":man_lifting_weights_tone2:":"🏋️🏼‍♂️",":man_lifting_weights_medium_skin_tone:":"🏋️🏽‍♂️",":man_lifting_weights_tone3:":"🏋️🏽‍♂️",":man_lifting_weights_medium_dark_skin_tone:":"🏋️🏾‍♂️",":man_lifting_weights_tone4:":"🏋️🏾‍♂️",":man_lifting_weights_dark_skin_tone:":"🏋️🏿‍♂️",":man_lifting_weights_tone5:":"🏋️🏿‍♂️",":man_mage_light_skin_tone:":"🧙🏻‍♂️",":man_mage_tone1:":"🧙🏻‍♂️",":man_mage_medium_light_skin_tone:":"🧙🏼‍♂️",":man_mage_tone2:":"🧙🏼‍♂️",":man_mage_medium_skin_tone:":"🧙🏽‍♂️",":man_mage_tone3:":"🧙🏽‍♂️",":man_mage_medium_dark_skin_tone:":"🧙🏾‍♂️",":man_mage_tone4:":"🧙🏾‍♂️",":man_mage_dark_skin_tone:":"🧙🏿‍♂️",":man_mage_tone5:":"🧙🏿‍♂️",":man_mountain_biking_light_skin_tone:":"🚵🏻‍♂️",":man_mountain_biking_tone1:":"🚵🏻‍♂️",":man_mountain_biking_medium_light_skin_tone:":"🚵🏼‍♂️",":man_mountain_biking_tone2:":"🚵🏼‍♂️",":man_mountain_biking_medium_skin_tone:":"🚵🏽‍♂️",":man_mountain_biking_tone3:":"🚵🏽‍♂️",":man_mountain_biking_medium_dark_skin_tone:":"🚵🏾‍♂️",":man_mountain_biking_tone4:":"🚵🏾‍♂️",":man_mountain_biking_dark_skin_tone:":"🚵🏿‍♂️",":man_mountain_biking_tone5:":"🚵🏿‍♂️",":man_pilot_light_skin_tone:":"👨🏻‍✈️",":man_pilot_tone1:":"👨🏻‍✈️",":man_pilot_medium_light_skin_tone:":"👨🏼‍✈️",":man_pilot_tone2:":"👨🏼‍✈️",":man_pilot_medium_skin_tone:":"👨🏽‍✈️",":man_pilot_tone3:":"👨🏽‍✈️",":man_pilot_medium_dark_skin_tone:":"👨🏾‍✈️",":man_pilot_tone4:":"👨🏾‍✈️",":man_pilot_dark_skin_tone:":"👨🏿‍✈️",":man_pilot_tone5:":"👨🏿‍✈️",":man_playing_handball_light_skin_tone:":"🤾🏻‍♂️",":man_playing_handball_tone1:":"🤾🏻‍♂️",":man_playing_handball_medium_light_skin_tone:":"🤾🏼‍♂️",":man_playing_handball_tone2:":"🤾🏼‍♂️",":man_playing_handball_medium_skin_tone:":"🤾🏽‍♂️",":man_playing_handball_tone3:":"🤾🏽‍♂️",":man_playing_handball_medium_dark_skin_tone:":"🤾🏾‍♂️",":man_playing_handball_tone4:":"🤾🏾‍♂️",":man_playing_handball_dark_skin_tone:":"🤾🏿‍♂️",":man_playing_handball_tone5:":"🤾🏿‍♂️",":man_playing_water_polo_light_skin_tone:":"🤽🏻‍♂️",":man_playing_water_polo_tone1:":"🤽🏻‍♂️",":man_playing_water_polo_medium_light_skin_tone:":"🤽🏼‍♂️",":man_playing_water_polo_tone2:":"🤽🏼‍♂️",":man_playing_water_polo_medium_skin_tone:":"🤽🏽‍♂️",":man_playing_water_polo_tone3:":"🤽🏽‍♂️",":man_playing_water_polo_medium_dark_skin_tone:":"🤽🏾‍♂️",":man_playing_water_polo_tone4:":"🤽🏾‍♂️",":man_playing_water_polo_dark_skin_tone:":"🤽🏿‍♂️",":man_playing_water_polo_tone5:":"🤽🏿‍♂️",":man_police_officer_light_skin_tone:":"👮🏻‍♂️",":man_police_officer_tone1:":"👮🏻‍♂️",":man_police_officer_medium_light_skin_tone:":"👮🏼‍♂️",":man_police_officer_tone2:":"👮🏼‍♂️",":man_police_officer_medium_skin_tone:":"👮🏽‍♂️",":man_police_officer_tone3:":"👮🏽‍♂️",":man_police_officer_medium_dark_skin_tone:":"👮🏾‍♂️",":man_police_officer_tone4:":"👮🏾‍♂️",":man_police_officer_dark_skin_tone:":"👮🏿‍♂️",":man_police_officer_tone5:":"👮🏿‍♂️",":man_pouting_light_skin_tone:":"🙎🏻‍♂️",":man_pouting_tone1:":"🙎🏻‍♂️",":man_pouting_medium_light_skin_tone:":"🙎🏼‍♂️",":man_pouting_tone2:":"🙎🏼‍♂️",":man_pouting_medium_skin_tone:":"🙎🏽‍♂️",":man_pouting_tone3:":"🙎🏽‍♂️",":man_pouting_medium_dark_skin_tone:":"🙎🏾‍♂️",":man_pouting_tone4:":"🙎🏾‍♂️",":man_pouting_dark_skin_tone:":"🙎🏿‍♂️",":man_pouting_tone5:":"🙎🏿‍♂️",":man_raising_hand_light_skin_tone:":"🙋🏻‍♂️",":man_raising_hand_tone1:":"🙋🏻‍♂️",":man_raising_hand_medium_light_skin_tone:":"🙋🏼‍♂️",":man_raising_hand_tone2:":"🙋🏼‍♂️",":man_raising_hand_medium_skin_tone:":"🙋🏽‍♂️",":man_raising_hand_tone3:":"🙋🏽‍♂️",":man_raising_hand_medium_dark_skin_tone:":"🙋🏾‍♂️",":man_raising_hand_tone4:":"🙋🏾‍♂️",":man_raising_hand_dark_skin_tone:":"🙋🏿‍♂️",":man_raising_hand_tone5:":"🙋🏿‍♂️",":man_rowing_boat_light_skin_tone:":"🚣🏻‍♂️",":man_rowing_boat_tone1:":"🚣🏻‍♂️",":man_rowing_boat_medium_light_skin_tone:":"🚣🏼‍♂️",":man_rowing_boat_tone2:":"🚣🏼‍♂️",":man_rowing_boat_medium_skin_tone:":"🚣🏽‍♂️",":man_rowing_boat_tone3:":"🚣🏽‍♂️",":man_rowing_boat_medium_dark_skin_tone:":"🚣🏾‍♂️",":man_rowing_boat_tone4:":"🚣🏾‍♂️",":man_rowing_boat_dark_skin_tone:":"🚣🏿‍♂️",":man_rowing_boat_tone5:":"🚣🏿‍♂️",":man_running_light_skin_tone:":"🏃🏻‍♂️",":man_running_tone1:":"🏃🏻‍♂️",":man_running_medium_light_skin_tone:":"🏃🏼‍♂️",":man_running_tone2:":"🏃🏼‍♂️",":man_running_medium_skin_tone:":"🏃🏽‍♂️",":man_running_tone3:":"🏃🏽‍♂️",":man_running_medium_dark_skin_tone:":"🏃🏾‍♂️",":man_running_tone4:":"🏃🏾‍♂️",":man_running_dark_skin_tone:":"🏃🏿‍♂️",":man_running_tone5:":"🏃🏿‍♂️",":man_shrugging_light_skin_tone:":"🤷🏻‍♂️",":man_shrugging_tone1:":"🤷🏻‍♂️",":man_shrugging_medium_light_skin_tone:":"🤷🏼‍♂️",":man_shrugging_tone2:":"🤷🏼‍♂️",":man_shrugging_medium_skin_tone:":"🤷🏽‍♂️",":man_shrugging_tone3:":"🤷🏽‍♂️",":man_shrugging_medium_dark_skin_tone:":"🤷🏾‍♂️",":man_shrugging_tone4:":"🤷🏾‍♂️",":man_shrugging_dark_skin_tone:":"🤷🏿‍♂️",":man_shrugging_tone5:":"🤷🏿‍♂️",":man_standing_light_skin_tone:":"🧍🏻‍♂️",":man_standing_tone1:":"🧍🏻‍♂️",":man_standing_medium_light_skin_tone:":"🧍🏼‍♂️",":man_standing_tone2:":"🧍🏼‍♂️",":man_standing_medium_skin_tone:":"🧍🏽‍♂️",":man_standing_tone3:":"🧍🏽‍♂️",":man_standing_medium_dark_skin_tone:":"🧍🏾‍♂️",":man_standing_tone4:":"🧍🏾‍♂️",":man_standing_dark_skin_tone:":"🧍🏿‍♂️",":man_standing_tone5:":"🧍🏿‍♂️",":man_superhero_light_skin_tone:":"🦸🏻‍♂️",":man_superhero_tone1:":"🦸🏻‍♂️",":man_superhero_medium_light_skin_tone:":"🦸🏼‍♂️",":man_superhero_tone2:":"🦸🏼‍♂️",":man_superhero_medium_skin_tone:":"🦸🏽‍♂️",":man_superhero_tone3:":"🦸🏽‍♂️",":man_superhero_medium_dark_skin_tone:":"🦸🏾‍♂️",":man_superhero_tone4:":"🦸🏾‍♂️",":man_superhero_dark_skin_tone:":"🦸🏿‍♂️",":man_superhero_tone5:":"🦸🏿‍♂️",":man_supervillain_light_skin_tone:":"🦹🏻‍♂️",":man_supervillain_tone1:":"🦹🏻‍♂️",":man_supervillain_medium_light_skin_tone:":"🦹🏼‍♂️",":man_supervillain_tone2:":"🦹🏼‍♂️",":man_supervillain_medium_skin_tone:":"🦹🏽‍♂️",":man_supervillain_tone3:":"🦹🏽‍♂️",":man_supervillain_medium_dark_skin_tone:":"🦹🏾‍♂️",":man_supervillain_tone4:":"🦹🏾‍♂️",":man_supervillain_dark_skin_tone:":"🦹🏿‍♂️",":man_supervillain_tone5:":"🦹🏿‍♂️",":man_surfing_light_skin_tone:":"🏄🏻‍♂️",":man_surfing_tone1:":"🏄🏻‍♂️",":man_surfing_medium_light_skin_tone:":"🏄🏼‍♂️",":man_surfing_tone2:":"🏄🏼‍♂️",":man_surfing_medium_skin_tone:":"🏄🏽‍♂️",":man_surfing_tone3:":"🏄🏽‍♂️",":man_surfing_medium_dark_skin_tone:":"🏄🏾‍♂️",":man_surfing_tone4:":"🏄🏾‍♂️",":man_surfing_dark_skin_tone:":"🏄🏿‍♂️",":man_surfing_tone5:":"🏄🏿‍♂️",":man_swimming_light_skin_tone:":"🏊🏻‍♂️",":man_swimming_tone1:":"🏊🏻‍♂️",":man_swimming_medium_light_skin_tone:":"🏊🏼‍♂️",":man_swimming_tone2:":"🏊🏼‍♂️",":man_swimming_medium_skin_tone:":"🏊🏽‍♂️",":man_swimming_tone3:":"🏊🏽‍♂️",":man_swimming_medium_dark_skin_tone:":"🏊🏾‍♂️",":man_swimming_tone4:":"🏊🏾‍♂️",":man_swimming_dark_skin_tone:":"🏊🏿‍♂️",":man_swimming_tone5:":"🏊🏿‍♂️",":man_tipping_hand_light_skin_tone:":"💁🏻‍♂️",":man_tipping_hand_tone1:":"💁🏻‍♂️",":man_tipping_hand_medium_light_skin_tone:":"💁🏼‍♂️",":man_tipping_hand_tone2:":"💁🏼‍♂️",":man_tipping_hand_medium_skin_tone:":"💁🏽‍♂️",":man_tipping_hand_tone3:":"💁🏽‍♂️",":man_tipping_hand_medium_dark_skin_tone:":"💁🏾‍♂️",":man_tipping_hand_tone4:":"💁🏾‍♂️",":man_tipping_hand_dark_skin_tone:":"💁🏿‍♂️",":man_tipping_hand_tone5:":"💁🏿‍♂️",":man_vampire_light_skin_tone:":"🧛🏻‍♂️",":man_vampire_tone1:":"🧛🏻‍♂️",":man_vampire_medium_light_skin_tone:":"🧛🏼‍♂️",":man_vampire_tone2:":"🧛🏼‍♂️",":man_vampire_medium_skin_tone:":"🧛🏽‍♂️",":man_vampire_tone3:":"🧛🏽‍♂️",":man_vampire_medium_dark_skin_tone:":"🧛🏾‍♂️",":man_vampire_tone4:":"🧛🏾‍♂️",":man_vampire_dark_skin_tone:":"🧛🏿‍♂️",":man_vampire_tone5:":"🧛🏿‍♂️",":man_walking_light_skin_tone:":"🚶🏻‍♂️",":man_walking_tone1:":"🚶🏻‍♂️",":man_walking_medium_light_skin_tone:":"🚶🏼‍♂️",":man_walking_tone2:":"🚶🏼‍♂️",":man_walking_medium_skin_tone:":"🚶🏽‍♂️",":man_walking_tone3:":"🚶🏽‍♂️",":man_walking_medium_dark_skin_tone:":"🚶🏾‍♂️",":man_walking_tone4:":"🚶🏾‍♂️",":man_walking_dark_skin_tone:":"🚶🏿‍♂️",":man_walking_tone5:":"🚶🏿‍♂️",":man_wearing_turban_light_skin_tone:":"👳🏻‍♂️",":man_wearing_turban_tone1:":"👳🏻‍♂️",":man_wearing_turban_medium_light_skin_tone:":"👳🏼‍♂️",":man_wearing_turban_tone2:":"👳🏼‍♂️",":man_wearing_turban_medium_skin_tone:":"👳🏽‍♂️",":man_wearing_turban_tone3:":"👳🏽‍♂️",":man_wearing_turban_medium_dark_skin_tone:":"👳🏾‍♂️",":man_wearing_turban_tone4:":"👳🏾‍♂️",":man_wearing_turban_dark_skin_tone:":"👳🏿‍♂️",":man_wearing_turban_tone5:":"👳🏿‍♂️",":mermaid_light_skin_tone:":"🧜🏻‍♀️",":mermaid_tone1:":"🧜🏻‍♀️",":mermaid_medium_light_skin_tone:":"🧜🏼‍♀️",":mermaid_tone2:":"🧜🏼‍♀️",":mermaid_medium_skin_tone:":"🧜🏽‍♀️",":mermaid_tone3:":"🧜🏽‍♀️",":mermaid_medium_dark_skin_tone:":"🧜🏾‍♀️",":mermaid_tone4:":"🧜🏾‍♀️",":mermaid_dark_skin_tone:":"🧜🏿‍♀️",":mermaid_tone5:":"🧜🏿‍♀️",":merman_light_skin_tone:":"🧜🏻‍♂️",":merman_tone1:":"🧜🏻‍♂️",":merman_medium_light_skin_tone:":"🧜🏼‍♂️",":merman_tone2:":"🧜🏼‍♂️",":merman_medium_skin_tone:":"🧜🏽‍♂️",":merman_tone3:":"🧜🏽‍♂️",":merman_medium_dark_skin_tone:":"🧜🏾‍♂️",":merman_tone4:":"🧜🏾‍♂️",":merman_dark_skin_tone:":"🧜🏿‍♂️",":merman_tone5:":"🧜🏿‍♂️",":woman_biking_light_skin_tone:":"🚴🏻‍♀️",":woman_biking_tone1:":"🚴🏻‍♀️",":woman_biking_medium_light_skin_tone:":"🚴🏼‍♀️",":woman_biking_tone2:":"🚴🏼‍♀️",":woman_biking_medium_skin_tone:":"🚴🏽‍♀️",":woman_biking_tone3:":"🚴🏽‍♀️",":woman_biking_medium_dark_skin_tone:":"🚴🏾‍♀️",":woman_biking_tone4:":"🚴🏾‍♀️",":woman_biking_dark_skin_tone:":"🚴🏿‍♀️",":woman_biking_tone5:":"🚴🏿‍♀️",":woman_bowing_light_skin_tone:":"🙇🏻‍♀️",":woman_bowing_tone1:":"🙇🏻‍♀️",":woman_bowing_medium_light_skin_tone:":"🙇🏼‍♀️",":woman_bowing_tone2:":"🙇🏼‍♀️",":woman_bowing_medium_skin_tone:":"🙇🏽‍♀️",":woman_bowing_tone3:":"🙇🏽‍♀️",":woman_bowing_medium_dark_skin_tone:":"🙇🏾‍♀️",":woman_bowing_tone4:":"🙇🏾‍♀️",":woman_bowing_dark_skin_tone:":"🙇🏿‍♀️",":woman_bowing_tone5:":"🙇🏿‍♀️",":woman_cartwheeling_light_skin_tone:":"🤸🏻‍♀️",":woman_cartwheeling_tone1:":"🤸🏻‍♀️",":woman_cartwheeling_medium_light_skin_tone:":"🤸🏼‍♀️",":woman_cartwheeling_tone2:":"🤸🏼‍♀️",":woman_cartwheeling_medium_skin_tone:":"🤸🏽‍♀️",":woman_cartwheeling_tone3:":"🤸🏽‍♀️",":woman_cartwheeling_medium_dark_skin_tone:":"🤸🏾‍♀️",":woman_cartwheeling_tone4:":"🤸🏾‍♀️",":woman_cartwheeling_dark_skin_tone:":"🤸🏿‍♀️",":woman_cartwheeling_tone5:":"🤸🏿‍♀️",":woman_climbing_light_skin_tone:":"🧗🏻‍♀️",":woman_climbing_tone1:":"🧗🏻‍♀️",":woman_climbing_medium_light_skin_tone:":"🧗🏼‍♀️",":woman_climbing_tone2:":"🧗🏼‍♀️",":woman_climbing_medium_skin_tone:":"🧗🏽‍♀️",":woman_climbing_tone3:":"🧗🏽‍♀️",":woman_climbing_medium_dark_skin_tone:":"🧗🏾‍♀️",":woman_climbing_tone4:":"🧗🏾‍♀️",":woman_climbing_dark_skin_tone:":"🧗🏿‍♀️",":woman_climbing_tone5:":"🧗🏿‍♀️",":woman_construction_worker_light_skin_tone:":"👷🏻‍♀️",":woman_construction_worker_tone1:":"👷🏻‍♀️",":woman_construction_worker_medium_light_skin_tone:":"👷🏼‍♀️",":woman_construction_worker_tone2:":"👷🏼‍♀️",":woman_construction_worker_medium_skin_tone:":"👷🏽‍♀️",":woman_construction_worker_tone3:":"👷🏽‍♀️",":woman_construction_worker_medium_dark_skin_tone:":"👷🏾‍♀️",":woman_construction_worker_tone4:":"👷🏾‍♀️",":woman_construction_worker_dark_skin_tone:":"👷🏿‍♀️",":woman_construction_worker_tone5:":"👷🏿‍♀️",":woman_detective_light_skin_tone:":"🕵️🏻‍♀️",":woman_detective_tone1:":"🕵️🏻‍♀️",":woman_detective_medium_light_skin_tone:":"🕵️🏼‍♀️",":woman_detective_tone2:":"🕵️🏼‍♀️",":woman_detective_medium_skin_tone:":"🕵️🏽‍♀️",":woman_detective_tone3:":"🕵️🏽‍♀️",":woman_detective_medium_dark_skin_tone:":"🕵️🏾‍♀️",":woman_detective_tone4:":"🕵️🏾‍♀️",":woman_detective_dark_skin_tone:":"🕵️🏿‍♀️",":woman_detective_tone5:":"🕵️🏿‍♀️",":woman_elf_light_skin_tone:":"🧝🏻‍♀️",":woman_elf_tone1:":"🧝🏻‍♀️",":woman_elf_medium_light_skin_tone:":"🧝🏼‍♀️",":woman_elf_tone2:":"🧝🏼‍♀️",":woman_elf_medium_skin_tone:":"🧝🏽‍♀️",":woman_elf_tone3:":"🧝🏽‍♀️",":woman_elf_medium_dark_skin_tone:":"🧝🏾‍♀️",":woman_elf_tone4:":"🧝🏾‍♀️",":woman_elf_dark_skin_tone:":"🧝🏿‍♀️",":woman_elf_tone5:":"🧝🏿‍♀️",":woman_facepalming_light_skin_tone:":"🤦🏻‍♀️",":woman_facepalming_tone1:":"🤦🏻‍♀️",":woman_facepalming_medium_light_skin_tone:":"🤦🏼‍♀️",":woman_facepalming_tone2:":"🤦🏼‍♀️",":woman_facepalming_medium_skin_tone:":"🤦🏽‍♀️",":woman_facepalming_tone3:":"🤦🏽‍♀️",":woman_facepalming_medium_dark_skin_tone:":"🤦🏾‍♀️",":woman_facepalming_tone4:":"🤦🏾‍♀️",":woman_facepalming_dark_skin_tone:":"🤦🏿‍♀️",":woman_facepalming_tone5:":"🤦🏿‍♀️",":woman_fairy_light_skin_tone:":"🧚🏻‍♀️",":woman_fairy_tone1:":"🧚🏻‍♀️",":woman_fairy_medium_light_skin_tone:":"🧚🏼‍♀️",":woman_fairy_tone2:":"🧚🏼‍♀️",":woman_fairy_medium_skin_tone:":"🧚🏽‍♀️",":woman_fairy_tone3:":"🧚🏽‍♀️",":woman_fairy_medium_dark_skin_tone:":"🧚🏾‍♀️",":woman_fairy_tone4:":"🧚🏾‍♀️",":woman_fairy_dark_skin_tone:":"🧚🏿‍♀️",":woman_fairy_tone5:":"🧚🏿‍♀️",":woman_frowning_light_skin_tone:":"🙍🏻‍♀️",":woman_frowning_tone1:":"🙍🏻‍♀️",":woman_frowning_medium_light_skin_tone:":"🙍🏼‍♀️",":woman_frowning_tone2:":"🙍🏼‍♀️",":woman_frowning_medium_skin_tone:":"🙍🏽‍♀️",":woman_frowning_tone3:":"🙍🏽‍♀️",":woman_frowning_medium_dark_skin_tone:":"🙍🏾‍♀️",":woman_frowning_tone4:":"🙍🏾‍♀️",":woman_frowning_dark_skin_tone:":"🙍🏿‍♀️",":woman_frowning_tone5:":"🙍🏿‍♀️",":woman_gesturing_no_light_skin_tone:":"🙅🏻‍♀️",":woman_gesturing_no_tone1:":"🙅🏻‍♀️",":woman_gesturing_no_medium_light_skin_tone:":"🙅🏼‍♀️",":woman_gesturing_no_tone2:":"🙅🏼‍♀️",":woman_gesturing_no_medium_skin_tone:":"🙅🏽‍♀️",":woman_gesturing_no_tone3:":"🙅🏽‍♀️",":woman_gesturing_no_medium_dark_skin_tone:":"🙅🏾‍♀️",":woman_gesturing_no_tone4:":"🙅🏾‍♀️",":woman_gesturing_no_dark_skin_tone:":"🙅🏿‍♀️",":woman_gesturing_no_tone5:":"🙅🏿‍♀️",":woman_gesturing_ok_light_skin_tone:":"🙆🏻‍♀️",":woman_gesturing_ok_tone1:":"🙆🏻‍♀️",":woman_gesturing_ok_medium_light_skin_tone:":"🙆🏼‍♀️",":woman_gesturing_ok_tone2:":"🙆🏼‍♀️",":woman_gesturing_ok_medium_skin_tone:":"🙆🏽‍♀️",":woman_gesturing_ok_tone3:":"🙆🏽‍♀️",":woman_gesturing_ok_medium_dark_skin_tone:":"🙆🏾‍♀️",":woman_gesturing_ok_tone4:":"🙆🏾‍♀️",":woman_gesturing_ok_dark_skin_tone:":"🙆🏿‍♀️",":woman_gesturing_ok_tone5:":"🙆🏿‍♀️",":woman_getting_face_massage_light_skin_tone:":"💆🏻‍♀️",":woman_getting_face_massage_tone1:":"💆🏻‍♀️",":woman_getting_face_massage_medium_light_skin_tone:":"💆🏼‍♀️",":woman_getting_face_massage_tone2:":"💆🏼‍♀️",":woman_getting_face_massage_medium_skin_tone:":"💆🏽‍♀️",":woman_getting_face_massage_tone3:":"💆🏽‍♀️",":woman_getting_face_massage_medium_dark_skin_tone:":"💆🏾‍♀️",":woman_getting_face_massage_tone4:":"💆🏾‍♀️",":woman_getting_face_massage_dark_skin_tone:":"💆🏿‍♀️",":woman_getting_face_massage_tone5:":"💆🏿‍♀️",":woman_getting_haircut_light_skin_tone:":"💇🏻‍♀️",":woman_getting_haircut_tone1:":"💇🏻‍♀️",":woman_getting_haircut_medium_light_skin_tone:":"💇🏼‍♀️",":woman_getting_haircut_tone2:":"💇🏼‍♀️",":woman_getting_haircut_medium_skin_tone:":"💇🏽‍♀️",":woman_getting_haircut_tone3:":"💇🏽‍♀️",":woman_getting_haircut_medium_dark_skin_tone:":"💇🏾‍♀️",":woman_getting_haircut_tone4:":"💇🏾‍♀️",":woman_getting_haircut_dark_skin_tone:":"💇🏿‍♀️",":woman_getting_haircut_tone5:":"💇🏿‍♀️",":woman_golfing_light_skin_tone:":"🏌️🏻‍♀️",":woman_golfing_tone1:":"🏌️🏻‍♀️",":woman_golfing_medium_light_skin_tone:":"🏌️🏼‍♀️",":woman_golfing_tone2:":"🏌️🏼‍♀️",":woman_golfing_medium_skin_tone:":"🏌️🏽‍♀️",":woman_golfing_tone3:":"🏌️🏽‍♀️",":woman_golfing_medium_dark_skin_tone:":"🏌️🏾‍♀️",":woman_golfing_tone4:":"🏌️🏾‍♀️",":woman_golfing_dark_skin_tone:":"🏌️🏿‍♀️",":woman_golfing_tone5:":"🏌️🏿‍♀️",":woman_guard_light_skin_tone:":"💂🏻‍♀️",":woman_guard_tone1:":"💂🏻‍♀️",":woman_guard_medium_light_skin_tone:":"💂🏼‍♀️",":woman_guard_tone2:":"💂🏼‍♀️",":woman_guard_medium_skin_tone:":"💂🏽‍♀️",":woman_guard_tone3:":"💂🏽‍♀️",":woman_guard_medium_dark_skin_tone:":"💂🏾‍♀️",":woman_guard_tone4:":"💂🏾‍♀️",":woman_guard_dark_skin_tone:":"💂🏿‍♀️",":woman_guard_tone5:":"💂🏿‍♀️",":woman_health_worker_light_skin_tone:":"👩🏻‍⚕️",":woman_health_worker_tone1:":"👩🏻‍⚕️",":woman_health_worker_medium_light_skin_tone:":"👩🏼‍⚕️",":woman_health_worker_tone2:":"👩🏼‍⚕️",":woman_health_worker_medium_skin_tone:":"👩🏽‍⚕️",":woman_health_worker_tone3:":"👩🏽‍⚕️",":woman_health_worker_medium_dark_skin_tone:":"👩🏾‍⚕️",":woman_health_worker_tone4:":"👩🏾‍⚕️",":woman_health_worker_dark_skin_tone:":"👩🏿‍⚕️",":woman_health_worker_tone5:":"👩🏿‍⚕️",":woman_in_lotus_position_light_skin_tone:":"🧘🏻‍♀️",":woman_in_lotus_position_tone1:":"🧘🏻‍♀️",":woman_in_lotus_position_medium_light_skin_tone:":"🧘🏼‍♀️",":woman_in_lotus_position_tone2:":"🧘🏼‍♀️",":woman_in_lotus_position_medium_skin_tone:":"🧘🏽‍♀️",":woman_in_lotus_position_tone3:":"🧘🏽‍♀️",":woman_in_lotus_position_medium_dark_skin_tone:":"🧘🏾‍♀️",":woman_in_lotus_position_tone4:":"🧘🏾‍♀️",":woman_in_lotus_position_dark_skin_tone:":"🧘🏿‍♀️",":woman_in_lotus_position_tone5:":"🧘🏿‍♀️",":woman_in_steamy_room_light_skin_tone:":"🧖🏻‍♀️",":woman_in_steamy_room_tone1:":"🧖🏻‍♀️",":woman_in_steamy_room_medium_light_skin_tone:":"🧖🏼‍♀️",":woman_in_steamy_room_tone2:":"🧖🏼‍♀️",":woman_in_steamy_room_medium_skin_tone:":"🧖🏽‍♀️",":woman_in_steamy_room_tone3:":"🧖🏽‍♀️",":woman_in_steamy_room_medium_dark_skin_tone:":"🧖🏾‍♀️",":woman_in_steamy_room_tone4:":"🧖🏾‍♀️",":woman_in_steamy_room_dark_skin_tone:":"🧖🏿‍♀️",":woman_in_steamy_room_tone5:":"🧖🏿‍♀️",":woman_judge_light_skin_tone:":"👩🏻‍⚖️",":woman_judge_tone1:":"👩🏻‍⚖️",":woman_judge_medium_light_skin_tone:":"👩🏼‍⚖️",":woman_judge_tone2:":"👩🏼‍⚖️",":woman_judge_medium_skin_tone:":"👩🏽‍⚖️",":woman_judge_tone3:":"👩🏽‍⚖️",":woman_judge_medium_dark_skin_tone:":"👩🏾‍⚖️",":woman_judge_tone4:":"👩🏾‍⚖️",":woman_judge_dark_skin_tone:":"👩🏿‍⚖️",":woman_judge_tone5:":"👩🏿‍⚖️",":woman_juggling_light_skin_tone:":"🤹🏻‍♀️",":woman_juggling_tone1:":"🤹🏻‍♀️",":woman_juggling_medium_light_skin_tone:":"🤹🏼‍♀️",":woman_juggling_tone2:":"🤹🏼‍♀️",":woman_juggling_medium_skin_tone:":"🤹🏽‍♀️",":woman_juggling_tone3:":"🤹🏽‍♀️",":woman_juggling_medium_dark_skin_tone:":"🤹🏾‍♀️",":woman_juggling_tone4:":"🤹🏾‍♀️",":woman_juggling_dark_skin_tone:":"🤹🏿‍♀️",":woman_juggling_tone5:":"🤹🏿‍♀️",":woman_kneeling_light_skin_tone:":"🧎🏻‍♀️",":woman_kneeling_tone1:":"🧎🏻‍♀️",":woman_kneeling_medium_light_skin_tone:":"🧎🏼‍♀️",":woman_kneeling_tone2:":"🧎🏼‍♀️",":woman_kneeling_medium_skin_tone:":"🧎🏽‍♀️",":woman_kneeling_tone3:":"🧎🏽‍♀️",":woman_kneeling_medium_dark_skin_tone:":"🧎🏾‍♀️",":woman_kneeling_tone4:":"🧎🏾‍♀️",":woman_kneeling_dark_skin_tone:":"🧎🏿‍♀️",":woman_kneeling_tone5:":"🧎🏿‍♀️",":woman_lifting_weights_light_skin_tone:":"🏋️🏻‍♀️",":woman_lifting_weights_tone1:":"🏋️🏻‍♀️",":woman_lifting_weights_medium_light_skin_tone:":"🏋️🏼‍♀️",":woman_lifting_weights_tone2:":"🏋️🏼‍♀️",":woman_lifting_weights_medium_skin_tone:":"🏋️🏽‍♀️",":woman_lifting_weights_tone3:":"🏋️🏽‍♀️",":woman_lifting_weights_medium_dark_skin_tone:":"🏋️🏾‍♀️",":woman_lifting_weights_tone4:":"🏋️🏾‍♀️",":woman_lifting_weights_dark_skin_tone:":"🏋️🏿‍♀️",":woman_lifting_weights_tone5:":"🏋️🏿‍♀️",":woman_mage_light_skin_tone:":"🧙🏻‍♀️",":woman_mage_tone1:":"🧙🏻‍♀️",":woman_mage_medium_light_skin_tone:":"🧙🏼‍♀️",":woman_mage_tone2:":"🧙🏼‍♀️",":woman_mage_medium_skin_tone:":"🧙🏽‍♀️",":woman_mage_tone3:":"🧙🏽‍♀️",":woman_mage_medium_dark_skin_tone:":"🧙🏾‍♀️",":woman_mage_tone4:":"🧙🏾‍♀️",":woman_mage_dark_skin_tone:":"🧙🏿‍♀️",":woman_mage_tone5:":"🧙🏿‍♀️",":woman_mountain_biking_light_skin_tone:":"🚵🏻‍♀️",":woman_mountain_biking_tone1:":"🚵🏻‍♀️",":woman_mountain_biking_medium_light_skin_tone:":"🚵🏼‍♀️",":woman_mountain_biking_tone2:":"🚵🏼‍♀️",":woman_mountain_biking_medium_skin_tone:":"🚵🏽‍♀️",":woman_mountain_biking_tone3:":"🚵🏽‍♀️",":woman_mountain_biking_medium_dark_skin_tone:":"🚵🏾‍♀️",":woman_mountain_biking_tone4:":"🚵🏾‍♀️",":woman_mountain_biking_dark_skin_tone:":"🚵🏿‍♀️",":woman_mountain_biking_tone5:":"🚵🏿‍♀️",":woman_pilot_light_skin_tone:":"👩🏻‍✈️",":woman_pilot_tone1:":"👩🏻‍✈️",":woman_pilot_medium_light_skin_tone:":"👩🏼‍✈️",":woman_pilot_tone2:":"👩🏼‍✈️",":woman_pilot_medium_skin_tone:":"👩🏽‍✈️",":woman_pilot_tone3:":"👩🏽‍✈️",":woman_pilot_medium_dark_skin_tone:":"👩🏾‍✈️",":woman_pilot_tone4:":"👩🏾‍✈️",":woman_pilot_dark_skin_tone:":"👩🏿‍✈️",":woman_pilot_tone5:":"👩🏿‍✈️",":woman_playing_handball_light_skin_tone:":"🤾🏻‍♀️",":woman_playing_handball_tone1:":"🤾🏻‍♀️",":woman_playing_handball_medium_light_skin_tone:":"🤾🏼‍♀️",":woman_playing_handball_tone2:":"🤾🏼‍♀️",":woman_playing_handball_medium_skin_tone:":"🤾🏽‍♀️",":woman_playing_handball_tone3:":"🤾🏽‍♀️",":woman_playing_handball_medium_dark_skin_tone:":"🤾🏾‍♀️",":woman_playing_handball_tone4:":"🤾🏾‍♀️",":woman_playing_handball_dark_skin_tone:":"🤾🏿‍♀️",":woman_playing_handball_tone5:":"🤾🏿‍♀️",":woman_playing_water_polo_light_skin_tone:":"🤽🏻‍♀️",":woman_playing_water_polo_tone1:":"🤽🏻‍♀️",":woman_playing_water_polo_medium_light_skin_tone:":"🤽🏼‍♀️",":woman_playing_water_polo_tone2:":"🤽🏼‍♀️",":woman_playing_water_polo_medium_skin_tone:":"🤽🏽‍♀️",":woman_playing_water_polo_tone3:":"🤽🏽‍♀️",":woman_playing_water_polo_medium_dark_skin_tone:":"🤽🏾‍♀️",":woman_playing_water_polo_tone4:":"🤽🏾‍♀️",":woman_playing_water_polo_dark_skin_tone:":"🤽🏿‍♀️",":woman_playing_water_polo_tone5:":"🤽🏿‍♀️",":woman_police_officer_light_skin_tone:":"👮🏻‍♀️",":woman_police_officer_tone1:":"👮🏻‍♀️",":woman_police_officer_medium_light_skin_tone:":"👮🏼‍♀️",":woman_police_officer_tone2:":"👮🏼‍♀️",":woman_police_officer_medium_skin_tone:":"👮🏽‍♀️",":woman_police_officer_tone3:":"👮🏽‍♀️",":woman_police_officer_medium_dark_skin_tone:":"👮🏾‍♀️",":woman_police_officer_tone4:":"👮🏾‍♀️",":woman_police_officer_dark_skin_tone:":"👮🏿‍♀️",":woman_police_officer_tone5:":"👮🏿‍♀️",":woman_pouting_light_skin_tone:":"🙎🏻‍♀️",":woman_pouting_tone1:":"🙎🏻‍♀️",":woman_pouting_medium_light_skin_tone:":"🙎🏼‍♀️",":woman_pouting_tone2:":"🙎🏼‍♀️",":woman_pouting_medium_skin_tone:":"🙎🏽‍♀️",":woman_pouting_tone3:":"🙎🏽‍♀️",":woman_pouting_medium_dark_skin_tone:":"🙎🏾‍♀️",":woman_pouting_tone4:":"🙎🏾‍♀️",":woman_pouting_dark_skin_tone:":"🙎🏿‍♀️",":woman_pouting_tone5:":"🙎🏿‍♀️",":woman_raising_hand_light_skin_tone:":"🙋🏻‍♀️",":woman_raising_hand_tone1:":"🙋🏻‍♀️",":woman_raising_hand_medium_light_skin_tone:":"🙋🏼‍♀️",":woman_raising_hand_tone2:":"🙋🏼‍♀️",":woman_raising_hand_medium_skin_tone:":"🙋🏽‍♀️",":woman_raising_hand_tone3:":"🙋🏽‍♀️",":woman_raising_hand_medium_dark_skin_tone:":"🙋🏾‍♀️",":woman_raising_hand_tone4:":"🙋🏾‍♀️",":woman_raising_hand_dark_skin_tone:":"🙋🏿‍♀️",":woman_raising_hand_tone5:":"🙋🏿‍♀️",":woman_rowing_boat_light_skin_tone:":"🚣🏻‍♀️",":woman_rowing_boat_tone1:":"🚣🏻‍♀️",":woman_rowing_boat_medium_light_skin_tone:":"🚣🏼‍♀️",":woman_rowing_boat_tone2:":"🚣🏼‍♀️",":woman_rowing_boat_medium_skin_tone:":"🚣🏽‍♀️",":woman_rowing_boat_tone3:":"🚣🏽‍♀️",":woman_rowing_boat_medium_dark_skin_tone:":"🚣🏾‍♀️",":woman_rowing_boat_tone4:":"🚣🏾‍♀️",":woman_rowing_boat_dark_skin_tone:":"🚣🏿‍♀️",":woman_rowing_boat_tone5:":"🚣🏿‍♀️",":woman_running_light_skin_tone:":"🏃🏻‍♀️",":woman_running_tone1:":"🏃🏻‍♀️",":woman_running_medium_light_skin_tone:":"🏃🏼‍♀️",":woman_running_tone2:":"🏃🏼‍♀️",":woman_running_medium_skin_tone:":"🏃🏽‍♀️",":woman_running_tone3:":"🏃🏽‍♀️",":woman_running_medium_dark_skin_tone:":"🏃🏾‍♀️",":woman_running_tone4:":"🏃🏾‍♀️",":woman_running_dark_skin_tone:":"🏃🏿‍♀️",":woman_running_tone5:":"🏃🏿‍♀️",":woman_shrugging_light_skin_tone:":"🤷🏻‍♀️",":woman_shrugging_tone1:":"🤷🏻‍♀️",":woman_shrugging_medium_light_skin_tone:":"🤷🏼‍♀️",":woman_shrugging_tone2:":"🤷🏼‍♀️",":woman_shrugging_medium_skin_tone:":"🤷🏽‍♀️",":woman_shrugging_tone3:":"🤷🏽‍♀️",":woman_shrugging_medium_dark_skin_tone:":"🤷🏾‍♀️",":woman_shrugging_tone4:":"🤷🏾‍♀️",":woman_shrugging_dark_skin_tone:":"🤷🏿‍♀️",":woman_shrugging_tone5:":"🤷🏿‍♀️",":woman_standing_light_skin_tone:":"🧍🏻‍♀️",":woman_standing_tone1:":"🧍🏻‍♀️",":woman_standing_medium_light_skin_tone:":"🧍🏼‍♀️",":woman_standing_tone2:":"🧍🏼‍♀️",":woman_standing_medium_skin_tone:":"🧍🏽‍♀️",":woman_standing_tone3:":"🧍🏽‍♀️",":woman_standing_medium_dark_skin_tone:":"🧍🏾‍♀️",":woman_standing_tone4:":"🧍🏾‍♀️",":woman_standing_dark_skin_tone:":"🧍🏿‍♀️",":woman_standing_tone5:":"🧍🏿‍♀️",":woman_superhero_light_skin_tone:":"🦸🏻‍♀️",":woman_superhero_tone1:":"🦸🏻‍♀️",":woman_superhero_medium_light_skin_tone:":"🦸🏼‍♀️",":woman_superhero_tone2:":"🦸🏼‍♀️",":woman_superhero_medium_skin_tone:":"🦸🏽‍♀️",":woman_superhero_tone3:":"🦸🏽‍♀️",":woman_superhero_medium_dark_skin_tone:":"🦸🏾‍♀️",":woman_superhero_tone4:":"🦸🏾‍♀️",":woman_superhero_dark_skin_tone:":"🦸🏿‍♀️",":woman_superhero_tone5:":"🦸🏿‍♀️",":woman_supervillain_light_skin_tone:":"🦹🏻‍♀️",":woman_supervillain_tone1:":"🦹🏻‍♀️",":woman_supervillain_medium_light_skin_tone:":"🦹🏼‍♀️",":woman_supervillain_tone2:":"🦹🏼‍♀️",":woman_supervillain_medium_skin_tone:":"🦹🏽‍♀️",":woman_supervillain_tone3:":"🦹🏽‍♀️",":woman_supervillain_medium_dark_skin_tone:":"🦹🏾‍♀️",":woman_supervillain_tone4:":"🦹🏾‍♀️",":woman_supervillain_dark_skin_tone:":"🦹🏿‍♀️",":woman_supervillain_tone5:":"🦹🏿‍♀️",":woman_surfing_light_skin_tone:":"🏄🏻‍♀️",":woman_surfing_tone1:":"🏄🏻‍♀️",":woman_surfing_medium_light_skin_tone:":"🏄🏼‍♀️",":woman_surfing_tone2:":"🏄🏼‍♀️",":woman_surfing_medium_skin_tone:":"🏄🏽‍♀️",":woman_surfing_tone3:":"🏄🏽‍♀️",":woman_surfing_medium_dark_skin_tone:":"🏄🏾‍♀️",":woman_surfing_tone4:":"🏄🏾‍♀️",":woman_surfing_dark_skin_tone:":"🏄🏿‍♀️",":woman_surfing_tone5:":"🏄🏿‍♀️",":woman_swimming_light_skin_tone:":"🏊🏻‍♀️",":woman_swimming_tone1:":"🏊🏻‍♀️",":woman_swimming_medium_light_skin_tone:":"🏊🏼‍♀️",":woman_swimming_tone2:":"🏊🏼‍♀️",":woman_swimming_medium_skin_tone:":"🏊🏽‍♀️",":woman_swimming_tone3:":"🏊🏽‍♀️",":woman_swimming_medium_dark_skin_tone:":"🏊🏾‍♀️",":woman_swimming_tone4:":"🏊🏾‍♀️",":woman_swimming_dark_skin_tone:":"🏊🏿‍♀️",":woman_swimming_tone5:":"🏊🏿‍♀️",":woman_tipping_hand_light_skin_tone:":"💁🏻‍♀️",":woman_tipping_hand_tone1:":"💁🏻‍♀️",":woman_tipping_hand_medium_light_skin_tone:":"💁🏼‍♀️",":woman_tipping_hand_tone2:":"💁🏼‍♀️",":woman_tipping_hand_medium_skin_tone:":"💁🏽‍♀️",":woman_tipping_hand_tone3:":"💁🏽‍♀️",":woman_tipping_hand_medium_dark_skin_tone:":"💁🏾‍♀️",":woman_tipping_hand_tone4:":"💁🏾‍♀️",":woman_tipping_hand_dark_skin_tone:":"💁🏿‍♀️",":woman_tipping_hand_tone5:":"💁🏿‍♀️",":woman_vampire_light_skin_tone:":"🧛🏻‍♀️",":woman_vampire_tone1:":"🧛🏻‍♀️",":woman_vampire_medium_light_skin_tone:":"🧛🏼‍♀️",":woman_vampire_tone2:":"🧛🏼‍♀️",":woman_vampire_medium_skin_tone:":"🧛🏽‍♀️",":woman_vampire_tone3:":"🧛🏽‍♀️",":woman_vampire_medium_dark_skin_tone:":"🧛🏾‍♀️",":woman_vampire_tone4:":"🧛🏾‍♀️",":woman_vampire_dark_skin_tone:":"🧛🏿‍♀️",":woman_vampire_tone5:":"🧛🏿‍♀️",":woman_walking_light_skin_tone:":"🚶🏻‍♀️",":woman_walking_tone1:":"🚶🏻‍♀️",":woman_walking_medium_light_skin_tone:":"🚶🏼‍♀️",":woman_walking_tone2:":"🚶🏼‍♀️",":woman_walking_medium_skin_tone:":"🚶🏽‍♀️",":woman_walking_tone3:":"🚶🏽‍♀️",":woman_walking_medium_dark_skin_tone:":"🚶🏾‍♀️",":woman_walking_tone4:":"🚶🏾‍♀️",":woman_walking_dark_skin_tone:":"🚶🏿‍♀️",":woman_walking_tone5:":"🚶🏿‍♀️",":woman_wearing_turban_light_skin_tone:":"👳🏻‍♀️",":woman_wearing_turban_tone1:":"👳🏻‍♀️",":woman_wearing_turban_medium_light_skin_tone:":"👳🏼‍♀️",":woman_wearing_turban_tone2:":"👳🏼‍♀️",":woman_wearing_turban_medium_skin_tone:":"👳🏽‍♀️",":woman_wearing_turban_tone3:":"👳🏽‍♀️",":woman_wearing_turban_medium_dark_skin_tone:":"👳🏾‍♀️",":woman_wearing_turban_tone4:":"👳🏾‍♀️",":woman_wearing_turban_dark_skin_tone:":"👳🏿‍♀️",":woman_wearing_turban_tone5:":"👳🏿‍♀️",":man_bouncing_ball_light_skin_tone:":"⛹️🏻‍♂️",":man_bouncing_ball_tone1:":"⛹️🏻‍♂️",":man_bouncing_ball_medium_light_skin_tone:":"⛹️🏼‍♂️",":man_bouncing_ball_tone2:":"⛹️🏼‍♂️",":man_bouncing_ball_medium_skin_tone:":"⛹️🏽‍♂️",":man_bouncing_ball_tone3:":"⛹️🏽‍♂️",":man_bouncing_ball_medium_dark_skin_tone:":"⛹️🏾‍♂️",":man_bouncing_ball_tone4:":"⛹️🏾‍♂️",":man_bouncing_ball_dark_skin_tone:":"⛹️🏿‍♂️",":man_bouncing_ball_tone5:":"⛹️🏿‍♂️",":woman_bouncing_ball_light_skin_tone:":"⛹️🏻‍♀️",":woman_bouncing_ball_tone1:":"⛹️🏻‍♀️",":woman_bouncing_ball_medium_light_skin_tone:":"⛹️🏼‍♀️",":woman_bouncing_ball_tone2:":"⛹️🏼‍♀️",":woman_bouncing_ball_medium_skin_tone:":"⛹️🏽‍♀️",":woman_bouncing_ball_tone3:":"⛹️🏽‍♀️",":woman_bouncing_ball_medium_dark_skin_tone:":"⛹️🏾‍♀️",":woman_bouncing_ball_tone4:":"⛹️🏾‍♀️",":woman_bouncing_ball_dark_skin_tone:":"⛹️🏿‍♀️",":woman_bouncing_ball_tone5:":"⛹️🏿‍♀️",":adult_light_skin_tone:":"🧑🏻",":adult_tone1:":"🧑🏻",":adult_medium_light_skin_tone:":"🧑🏼",":adult_tone2:":"🧑🏼",":adult_medium_skin_tone:":"🧑🏽",":adult_tone3:":"🧑🏽",":adult_medium_dark_skin_tone:":"🧑🏾",":adult_tone4:":"🧑🏾",":adult_dark_skin_tone:":"🧑🏿",":adult_tone5:":"🧑🏿",":angel_tone1:":"👼🏻",":angel_tone2:":"👼🏼",":angel_tone3:":"👼🏽",":angel_tone4:":"👼🏾",":angel_tone5:":"👼🏿",":baby_tone1:":"👶🏻",":baby_tone2:":"👶🏼",":baby_tone3:":"👶🏽",":baby_tone4:":"👶🏾",":baby_tone5:":"👶🏿",":bath_tone1:":"🛀🏻",":bath_tone2:":"🛀🏼",":bath_tone3:":"🛀🏽",":bath_tone4:":"🛀🏾",":bath_tone5:":"🛀🏿",":bearded_person_light_skin_tone:":"🧔🏻",":bearded_person_tone1:":"🧔🏻",":bearded_person_medium_light_skin_tone:":"🧔🏼",":bearded_person_tone2:":"🧔🏼",":bearded_person_medium_skin_tone:":"🧔🏽",":bearded_person_tone3:":"🧔🏽",":bearded_person_medium_dark_skin_tone:":"🧔🏾",":bearded_person_tone4:":"🧔🏾",":bearded_person_dark_skin_tone:":"🧔🏿",":bearded_person_tone5:":"🧔🏿",":person_with_blond_hair_tone1:":"👱🏻",":blond_haired_person_tone1:":"👱🏻",":person_with_blond_hair_tone2:":"👱🏼",":blond_haired_person_tone2:":"👱🏼",":person_with_blond_hair_tone3:":"👱🏽",":blond_haired_person_tone3:":"👱🏽",":person_with_blond_hair_tone4:":"👱🏾",":blond_haired_person_tone4:":"👱🏾",":person_with_blond_hair_tone5:":"👱🏿",":blond_haired_person_tone5:":"👱🏿",":boy_tone1:":"👦🏻",":boy_tone2:":"👦🏼",":boy_tone3:":"👦🏽",":boy_tone4:":"👦🏾",":boy_tone5:":"👦🏿",":breast_feeding_light_skin_tone:":"🤱🏻",":breast_feeding_tone1:":"🤱🏻",":breast_feeding_medium_light_skin_tone:":"🤱🏼",":breast_feeding_tone2:":"🤱🏼",":breast_feeding_medium_skin_tone:":"🤱🏽",":breast_feeding_tone3:":"🤱🏽",":breast_feeding_medium_dark_skin_tone:":"🤱🏾",":breast_feeding_tone4:":"🤱🏾",":breast_feeding_dark_skin_tone:":"🤱🏿",":breast_feeding_tone5:":"🤱🏿",":bride_with_veil_tone1:":"👰🏻",":bride_with_veil_tone2:":"👰🏼",":bride_with_veil_tone3:":"👰🏽",":bride_with_veil_tone4:":"👰🏾",":bride_with_veil_tone5:":"👰🏿",":call_me_hand_tone1:":"🤙🏻",":call_me_tone1:":"🤙🏻",":call_me_hand_tone2:":"🤙🏼",":call_me_tone2:":"🤙🏼",":call_me_hand_tone3:":"🤙🏽",":call_me_tone3:":"🤙🏽",":call_me_hand_tone4:":"🤙🏾",":call_me_tone4:":"🤙🏾",":call_me_hand_tone5:":"🤙🏿",":call_me_tone5:":"🤙🏿",":child_light_skin_tone:":"🧒🏻",":child_tone1:":"🧒🏻",":child_medium_light_skin_tone:":"🧒🏼",":child_tone2:":"🧒🏼",":child_medium_skin_tone:":"🧒🏽",":child_tone3:":"🧒🏽",":child_medium_dark_skin_tone:":"🧒🏾",":child_tone4:":"🧒🏾",":child_dark_skin_tone:":"🧒🏿",":child_tone5:":"🧒🏿",":clap_tone1:":"👏🏻",":clap_tone2:":"👏🏼",":clap_tone3:":"👏🏽",":clap_tone4:":"👏🏾",":clap_tone5:":"👏🏿",":construction_worker_tone1:":"👷🏻",":construction_worker_tone2:":"👷🏼",":construction_worker_tone3:":"👷🏽",":construction_worker_tone4:":"👷🏾",":construction_worker_tone5:":"👷🏿",":dancer_tone1:":"💃🏻",":dancer_tone2:":"💃🏼",":dancer_tone3:":"💃🏽",":dancer_tone4:":"💃🏾",":dancer_tone5:":"💃🏿",":deaf_person_light_skin_tone:":"🧏🏻",":deaf_person_tone1:":"🧏🏻",":deaf_person_medium_light_skin_tone:":"🧏🏼",":deaf_person_tone2:":"🧏🏼",":deaf_person_medium_skin_tone:":"🧏🏽",":deaf_person_tone3:":"🧏🏽",":deaf_person_medium_dark_skin_tone:":"🧏🏾",":deaf_person_tone4:":"🧏🏾",":deaf_person_dark_skin_tone:":"🧏🏿",":deaf_person_tone5:":"🧏🏿",":spy_tone1:":"🕵️🏻",":sleuth_or_spy_tone1:":"🕵️🏻",":detective_tone1:":"🕵️🏻",":spy_tone2:":"🕵️🏼",":sleuth_or_spy_tone2:":"🕵️🏼",":detective_tone2:":"🕵️🏼",":spy_tone3:":"🕵️🏽",":sleuth_or_spy_tone3:":"🕵️🏽",":detective_tone3:":"🕵️🏽",":spy_tone4:":"🕵️🏾",":sleuth_or_spy_tone4:":"🕵️🏾",":detective_tone4:":"🕵️🏾",":spy_tone5:":"🕵️🏿",":sleuth_or_spy_tone5:":"🕵️🏿",":detective_tone5:":"🕵️🏿",":ear_tone1:":"👂🏻",":ear_tone2:":"👂🏼",":ear_tone3:":"👂🏽",":ear_tone4:":"👂🏾",":ear_tone5:":"👂🏿",":ear_with_hearing_aid_light_skin_tone:":"🦻🏻",":ear_with_hearing_aid_tone1:":"🦻🏻",":ear_with_hearing_aid_medium_light_skin_tone:":"🦻🏼",":ear_with_hearing_aid_tone2:":"🦻🏼",":ear_with_hearing_aid_medium_skin_tone:":"🦻🏽",":ear_with_hearing_aid_tone3:":"🦻🏽",":ear_with_hearing_aid_medium_dark_skin_tone:":"🦻🏾",":ear_with_hearing_aid_tone4:":"🦻🏾",":ear_with_hearing_aid_dark_skin_tone:":"🦻🏿",":ear_with_hearing_aid_tone5:":"🦻🏿",":elf_light_skin_tone:":"🧝🏻",":elf_tone1:":"🧝🏻",":elf_medium_light_skin_tone:":"🧝🏼",":elf_tone2:":"🧝🏼",":elf_medium_skin_tone:":"🧝🏽",":elf_tone3:":"🧝🏽",":elf_medium_dark_skin_tone:":"🧝🏾",":elf_tone4:":"🧝🏾",":elf_dark_skin_tone:":"🧝🏿",":elf_tone5:":"🧝🏿",":eye_in_speech_bubble:":"👁️‍🗨️",":fairy_light_skin_tone:":"🧚🏻",":fairy_tone1:":"🧚🏻",":fairy_medium_light_skin_tone:":"🧚🏼",":fairy_tone2:":"🧚🏼",":fairy_medium_skin_tone:":"🧚🏽",":fairy_tone3:":"🧚🏽",":fairy_medium_dark_skin_tone:":"🧚🏾",":fairy_tone4:":"🧚🏾",":fairy_dark_skin_tone:":"🧚🏿",":fairy_tone5:":"🧚🏿",":family_man_boy:":"👨‍👦",":family_man_girl:":"👨‍👧",":family_woman_boy:":"👩‍👦",":family_woman_girl:":"👩‍👧",":hand_with_index_and_middle_fingers_crossed_tone1:":"🤞🏻",":fingers_crossed_tone1:":"🤞🏻",":hand_with_index_and_middle_fingers_crossed_tone2:":"🤞🏼",":fingers_crossed_tone2:":"🤞🏼",":hand_with_index_and_middle_fingers_crossed_tone3:":"🤞🏽",":fingers_crossed_tone3:":"🤞🏽",":hand_with_index_and_middle_fingers_crossed_tone4:":"🤞🏾",":fingers_crossed_tone4:":"🤞🏾",":hand_with_index_and_middle_fingers_crossed_tone5:":"🤞🏿",":fingers_crossed_tone5:":"🤞🏿",":ac:":"🇦🇨",":flag_ac:":"🇦🇨",":ad:":"🇦🇩",":flag_ad:":"🇦🇩",":ae:":"🇦🇪",":flag_ae:":"🇦🇪",":af:":"🇦🇫",":flag_af:":"🇦🇫",":ag:":"🇦🇬",":flag_ag:":"🇦🇬",":ai:":"🇦🇮",":flag_ai:":"🇦🇮",":al:":"🇦🇱",":flag_al:":"🇦🇱",":am:":"🇦🇲",":flag_am:":"🇦🇲",":ao:":"🇦🇴",":flag_ao:":"🇦🇴",":aq:":"🇦🇶",":flag_aq:":"🇦🇶",":ar:":"🇦🇷",":flag_ar:":"🇦🇷",":as:":"🇦🇸",":flag_as:":"🇦🇸",":at:":"🇦🇹",":flag_at:":"🇦🇹",":au:":"🇦🇺",":flag_au:":"🇦🇺",":aw:":"🇦🇼",":flag_aw:":"🇦🇼",":ax:":"🇦🇽",":flag_ax:":"🇦🇽",":az:":"🇦🇿",":flag_az:":"🇦🇿",":ba:":"🇧🇦",":flag_ba:":"🇧🇦",":bb:":"🇧🇧",":flag_bb:":"🇧🇧",":bd:":"🇧🇩",":flag_bd:":"🇧🇩",":be:":"🇧🇪",":flag_be:":"🇧🇪",":bf:":"🇧🇫",":flag_bf:":"🇧🇫",":bg:":"🇧🇬",":flag_bg:":"🇧🇬",":bh:":"🇧🇭",":flag_bh:":"🇧🇭",":bi:":"🇧🇮",":flag_bi:":"🇧🇮",":bj:":"🇧🇯",":flag_bj:":"🇧🇯",":bm:":"🇧🇲",":flag_bm:":"🇧🇲",":bn:":"🇧🇳",":flag_bn:":"🇧🇳",":bo:":"🇧🇴",":flag_bo:":"🇧🇴",":br:":"🇧🇷",":flag_br:":"🇧🇷",":bs:":"🇧🇸",":flag_bs:":"🇧🇸",":bt:":"🇧🇹",":flag_bt:":"🇧🇹",":bv:":"🇧🇻",":flag_bv:":"🇧🇻",":bw:":"🇧🇼",":flag_bw:":"🇧🇼",":by:":"🇧🇾",":flag_by:":"🇧🇾",":bz:":"🇧🇿",":flag_bz:":"🇧🇿",":ca:":"🇨🇦",":flag_ca:":"🇨🇦",":cc:":"🇨🇨",":flag_cc:":"🇨🇨",":congo:":"🇨🇩",":flag_cd:":"🇨🇩",":cf:":"🇨🇫",":flag_cf:":"🇨🇫",":cg:":"🇨🇬",":flag_cg:":"🇨🇬",":ch:":"🇨🇭",":flag_ch:":"🇨🇭",":ci:":"🇨🇮",":flag_ci:":"🇨🇮",":ck:":"🇨🇰",":flag_ck:":"🇨🇰",":chile:":"🇨🇱",":flag_cl:":"🇨🇱",":cm:":"🇨🇲",":flag_cm:":"🇨🇲",":cn:":"🇨🇳",":flag_cn:":"🇨🇳",":co:":"🇨🇴",":flag_co:":"🇨🇴",":cp:":"🇨🇵",":flag_cp:":"🇨🇵",":cr:":"🇨🇷",":flag_cr:":"🇨🇷",":cu:":"🇨🇺",":flag_cu:":"🇨🇺",":cv:":"🇨🇻",":flag_cv:":"🇨🇻",":cw:":"🇨🇼",":flag_cw:":"🇨🇼",":cx:":"🇨🇽",":flag_cx:":"🇨🇽",":cy:":"🇨🇾",":flag_cy:":"🇨🇾",":cz:":"🇨🇿",":flag_cz:":"🇨🇿",":de:":"🇩🇪",":flag_de:":"🇩🇪",":dj:":"🇩🇯",":flag_dj:":"🇩🇯",":dk:":"🇩🇰",":flag_dk:":"🇩🇰",":dm:":"🇩🇲",":flag_dm:":"🇩🇲",":do:":"🇩🇴",":flag_do:":"🇩🇴",":dz:":"🇩🇿",":flag_dz:":"🇩🇿",":ec:":"🇪🇨",":flag_ec:":"🇪🇨",":ee:":"🇪🇪",":flag_ee:":"🇪🇪",":eg:":"🇪🇬",":flag_eg:":"🇪🇬",":er:":"🇪🇷",":flag_er:":"🇪🇷",":es:":"🇪🇸",":flag_es:":"🇪🇸",":et:":"🇪🇹",":flag_et:":"🇪🇹",":eu:":"🇪🇺",":flag_eu:":"🇪🇺",":fi:":"🇫🇮",":flag_fi:":"🇫🇮",":fj:":"🇫🇯",":flag_fj:":"🇫🇯",":fm:":"🇫🇲",":flag_fm:":"🇫🇲",":fo:":"🇫🇴",":flag_fo:":"🇫🇴",":fr:":"🇫🇷",":flag_fr:":"🇫🇷",":ga:":"🇬🇦",":flag_ga:":"🇬🇦",":gb:":"🇬🇧",":flag_gb:":"🇬🇧",":gd:":"🇬🇩",":flag_gd:":"🇬🇩",":ge:":"🇬🇪",":flag_ge:":"🇬🇪",":gg:":"🇬🇬",":flag_gg:":"🇬🇬",":gh:":"🇬🇭",":flag_gh:":"🇬🇭",":gi:":"🇬🇮",":flag_gi:":"🇬🇮",":gl:":"🇬🇱",":flag_gl:":"🇬🇱",":gm:":"🇬🇲",":flag_gm:":"🇬🇲",":gn:":"🇬🇳",":flag_gn:":"🇬🇳",":gq:":"🇬🇶",":flag_gq:":"🇬🇶",":gr:":"🇬🇷",":flag_gr:":"🇬🇷",":gt:":"🇬🇹",":flag_gt:":"🇬🇹",":gu:":"🇬🇺",":flag_gu:":"🇬🇺",":gw:":"🇬🇼",":flag_gw:":"🇬🇼",":gy:":"🇬🇾",":flag_gy:":"🇬🇾",":hk:":"🇭🇰",":flag_hk:":"🇭🇰",":hm:":"🇭🇲",":flag_hm:":"🇭🇲",":hn:":"🇭🇳",":flag_hn:":"🇭🇳",":hr:":"🇭🇷",":flag_hr:":"🇭🇷",":ht:":"🇭🇹",":flag_ht:":"🇭🇹",":hu:":"🇭🇺",":flag_hu:":"🇭🇺",":ic:":"🇮🇨",":flag_ic:":"🇮🇨",":indonesia:":"🇮🇩",":flag_id:":"🇮🇩",":ie:":"🇮🇪",":flag_ie:":"🇮🇪",":il:":"🇮🇱",":flag_il:":"🇮🇱",":im:":"🇮🇲",":flag_im:":"🇮🇲",":in:":"🇮🇳",":flag_in:":"🇮🇳",":io:":"🇮🇴",":flag_io:":"🇮🇴",":iq:":"🇮🇶",":flag_iq:":"🇮🇶",":ir:":"🇮🇷",":flag_ir:":"🇮🇷",":is:":"🇮🇸",":flag_is:":"🇮🇸",":it:":"🇮🇹",":flag_it:":"🇮🇹",":je:":"🇯🇪",":flag_je:":"🇯🇪",":jm:":"🇯🇲",":flag_jm:":"🇯🇲",":jo:":"🇯🇴",":flag_jo:":"🇯🇴",":jp:":"🇯🇵",":flag_jp:":"🇯🇵",":ke:":"🇰🇪",":flag_ke:":"🇰🇪",":kg:":"🇰🇬",":flag_kg:":"🇰🇬",":kh:":"🇰🇭",":flag_kh:":"🇰🇭",":ki:":"🇰🇮",":flag_ki:":"🇰🇮",":km:":"🇰🇲",":flag_km:":"🇰🇲",":kn:":"🇰🇳",":flag_kn:":"🇰🇳",":kp:":"🇰🇵",":flag_kp:":"🇰🇵",":kr:":"🇰🇷",":flag_kr:":"🇰🇷",":kw:":"🇰🇼",":flag_kw:":"🇰🇼",":ky:":"🇰🇾",":flag_ky:":"🇰🇾",":kz:":"🇰🇿",":flag_kz:":"🇰🇿",":la:":"🇱🇦",":flag_la:":"🇱🇦",":lb:":"🇱🇧",":flag_lb:":"🇱🇧",":lc:":"🇱🇨",":flag_lc:":"🇱🇨",":li:":"🇱🇮",":flag_li:":"🇱🇮",":lk:":"🇱🇰",":flag_lk:":"🇱🇰",":lr:":"🇱🇷",":flag_lr:":"🇱🇷",":ls:":"🇱🇸",":flag_ls:":"🇱🇸",":lt:":"🇱🇹",":flag_lt:":"🇱🇹",":lu:":"🇱🇺",":flag_lu:":"🇱🇺",":lv:":"🇱🇻",":flag_lv:":"🇱🇻",":ly:":"🇱🇾",":flag_ly:":"🇱🇾",":ma:":"🇲🇦",":flag_ma:":"🇲🇦",":mc:":"🇲🇨",":flag_mc:":"🇲🇨",":md:":"🇲🇩",":flag_md:":"🇲🇩",":me:":"🇲🇪",":flag_me:":"🇲🇪",":mg:":"🇲🇬",":flag_mg:":"🇲🇬",":mh:":"🇲🇭",":flag_mh:":"🇲🇭",":mk:":"🇲🇰",":flag_mk:":"🇲🇰",":ml:":"🇲🇱",":flag_ml:":"🇲🇱",":mm:":"🇲🇲",":flag_mm:":"🇲🇲",":mn:":"🇲🇳",":flag_mn:":"🇲🇳",":mo:":"🇲🇴",":flag_mo:":"🇲🇴",":mp:":"🇲🇵",":flag_mp:":"🇲🇵",":mr:":"🇲🇷",":flag_mr:":"🇲🇷",":ms:":"🇲🇸",":flag_ms:":"🇲🇸",":mt:":"🇲🇹",":flag_mt:":"🇲🇹",":mu:":"🇲🇺",":flag_mu:":"🇲🇺",":mv:":"🇲🇻",":flag_mv:":"🇲🇻",":mw:":"🇲🇼",":flag_mw:":"🇲🇼",":mx:":"🇲🇽",":flag_mx:":"🇲🇽",":my:":"🇲🇾",":flag_my:":"🇲🇾",":mz:":"🇲🇿",":flag_mz:":"🇲🇿",":na:":"🇳🇦",":flag_na:":"🇳🇦",":ne:":"🇳🇪",":flag_ne:":"🇳🇪",":nf:":"🇳🇫",":flag_nf:":"🇳🇫",":nigeria:":"🇳🇬",":flag_ng:":"🇳🇬",":ni:":"🇳🇮",":flag_ni:":"🇳🇮",":nl:":"🇳🇱",":flag_nl:":"🇳🇱",":no:":"🇳🇴",":flag_no:":"🇳🇴",":np:":"🇳🇵",":flag_np:":"🇳🇵",":nr:":"🇳🇷",":flag_nr:":"🇳🇷",":nu:":"🇳🇺",":flag_nu:":"🇳🇺",":nz:":"🇳🇿",":flag_nz:":"🇳🇿",":om:":"🇴🇲",":flag_om:":"🇴🇲",":pa:":"🇵🇦",":flag_pa:":"🇵🇦",":pe:":"🇵🇪",":flag_pe:":"🇵🇪",":pf:":"🇵🇫",":flag_pf:":"🇵🇫",":pg:":"🇵🇬",":flag_pg:":"🇵🇬",":ph:":"🇵🇭",":flag_ph:":"🇵🇭",":pk:":"🇵🇰",":flag_pk:":"🇵🇰",":pl:":"🇵🇱",":flag_pl:":"🇵🇱",":pn:":"🇵🇳",":flag_pn:":"🇵🇳",":pr:":"🇵🇷",":flag_pr:":"🇵🇷",":ps:":"🇵🇸",":flag_ps:":"🇵🇸",":pt:":"🇵🇹",":flag_pt:":"🇵🇹",":pw:":"🇵🇼",":flag_pw:":"🇵🇼",":py:":"🇵🇾",":flag_py:":"🇵🇾",":qa:":"🇶🇦",":flag_qa:":"🇶🇦",":ro:":"🇷🇴",":flag_ro:":"🇷🇴",":rs:":"🇷🇸",":flag_rs:":"🇷🇸",":ru:":"🇷🇺",":flag_ru:":"🇷🇺",":rw:":"🇷🇼",":flag_rw:":"🇷🇼",":saudiarabia:":"🇸🇦",":saudi:":"🇸🇦",":flag_sa:":"🇸🇦",":sb:":"🇸🇧",":flag_sb:":"🇸🇧",":sc:":"🇸🇨",":flag_sc:":"🇸🇨",":sd:":"🇸🇩",":flag_sd:":"🇸🇩",":se:":"🇸🇪",":flag_se:":"🇸🇪",":sg:":"🇸🇬",":flag_sg:":"🇸🇬",":sh:":"🇸🇭",":flag_sh:":"🇸🇭",":si:":"🇸🇮",":flag_si:":"🇸🇮",":sj:":"🇸🇯",":flag_sj:":"🇸🇯",":sk:":"🇸🇰",":flag_sk:":"🇸🇰",":sl:":"🇸🇱",":flag_sl:":"🇸🇱",":sm:":"🇸🇲",":flag_sm:":"🇸🇲",":sn:":"🇸🇳",":flag_sn:":"🇸🇳",":so:":"🇸🇴",":flag_so:":"🇸🇴",":sr:":"🇸🇷",":flag_sr:":"🇸🇷",":ss:":"🇸🇸",":flag_ss:":"🇸🇸",":st:":"🇸🇹",":flag_st:":"🇸🇹",":sv:":"🇸🇻",":flag_sv:":"🇸🇻",":sx:":"🇸🇽",":flag_sx:":"🇸🇽",":sy:":"🇸🇾",":flag_sy:":"🇸🇾",":sz:":"🇸🇿",":flag_sz:":"🇸🇿",":ta:":"🇹🇦",":flag_ta:":"🇹🇦",":tc:":"🇹🇨",":flag_tc:":"🇹🇨",":td:":"🇹🇩",":flag_td:":"🇹🇩",":tg:":"🇹🇬",":flag_tg:":"🇹🇬",":th:":"🇹🇭",":flag_th:":"🇹🇭",":tj:":"🇹🇯",":flag_tj:":"🇹🇯",":tk:":"🇹🇰",":flag_tk:":"🇹🇰",":tl:":"🇹🇱",":flag_tl:":"🇹🇱",":turkmenistan:":"🇹🇲",":flag_tm:":"🇹🇲",":tn:":"🇹🇳",":flag_tn:":"🇹🇳",":to:":"🇹🇴",":flag_to:":"🇹🇴",":tr:":"🇹🇷",":flag_tr:":"🇹🇷",":tt:":"🇹🇹",":flag_tt:":"🇹🇹",":tuvalu:":"🇹🇻",":flag_tv:":"🇹🇻",":tw:":"🇹🇼",":flag_tw:":"🇹🇼",":tz:":"🇹🇿",":flag_tz:":"🇹🇿",":ua:":"🇺🇦",":flag_ua:":"🇺🇦",":ug:":"🇺🇬",":flag_ug:":"🇺🇬",":um:":"🇺🇲",":flag_um:":"🇺🇲",":us:":"🇺🇸",":flag_us:":"🇺🇸",":uy:":"🇺🇾",":flag_uy:":"🇺🇾",":uz:":"🇺🇿",":flag_uz:":"🇺🇿",":va:":"🇻🇦",":flag_va:":"🇻🇦",":vc:":"🇻🇨",":flag_vc:":"🇻🇨",":ve:":"🇻🇪",":flag_ve:":"🇻🇪",":vg:":"🇻🇬",":flag_vg:":"🇻🇬",":vi:":"🇻🇮",":flag_vi:":"🇻🇮",":vn:":"🇻🇳",":flag_vn:":"🇻🇳",":vu:":"🇻🇺",":flag_vu:":"🇻🇺",":ws:":"🇼🇸",":flag_ws:":"🇼🇸",":ye:":"🇾🇪",":flag_ye:":"🇾🇪",":za:":"🇿🇦",":flag_za:":"🇿🇦",":zm:":"🇿🇲",":flag_zm:":"🇿🇲",":zw:":"🇿🇼",":flag_zw:":"🇿🇼",":foot_light_skin_tone:":"🦶🏻",":foot_tone1:":"🦶🏻",":foot_medium_light_skin_tone:":"🦶🏼",":foot_tone2:":"🦶🏼",":foot_medium_skin_tone:":"🦶🏽",":foot_tone3:":"🦶🏽",":foot_medium_dark_skin_tone:":"🦶🏾",":foot_tone4:":"🦶🏾",":foot_dark_skin_tone:":"🦶🏿",":foot_tone5:":"🦶🏿",":girl_tone1:":"👧🏻",":girl_tone2:":"👧🏼",":girl_tone3:":"👧🏽",":girl_tone4:":"👧🏾",":girl_tone5:":"👧🏿",":guardsman_tone1:":"💂🏻",":guard_tone1:":"💂🏻",":guardsman_tone2:":"💂🏼",":guard_tone2:":"💂🏼",":guardsman_tone3:":"💂🏽",":guard_tone3:":"💂🏽",":guardsman_tone4:":"💂🏾",":guard_tone4:":"💂🏾",":guardsman_tone5:":"💂🏿",":guard_tone5:":"💂🏿",":raised_hand_with_fingers_splayed_tone1:":"🖐️🏻",":hand_splayed_tone1:":"🖐️🏻",":raised_hand_with_fingers_splayed_tone2:":"🖐️🏼",":hand_splayed_tone2:":"🖐️🏼",":raised_hand_with_fingers_splayed_tone3:":"🖐️🏽",":hand_splayed_tone3:":"🖐️🏽",":raised_hand_with_fingers_splayed_tone4:":"🖐️🏾",":hand_splayed_tone4:":"🖐️🏾",":raised_hand_with_fingers_splayed_tone5:":"🖐️🏿",":hand_splayed_tone5:":"🖐️🏿",":horse_racing_tone1:":"🏇🏻",":horse_racing_tone2:":"🏇🏼",":horse_racing_tone3:":"🏇🏽",":horse_racing_tone4:":"🏇🏾",":horse_racing_tone5:":"🏇🏿",":left_fist_tone1:":"🤛🏻",":left_facing_fist_tone1:":"🤛🏻",":left_fist_tone2:":"🤛🏼",":left_facing_fist_tone2:":"🤛🏼",":left_fist_tone3:":"🤛🏽",":left_facing_fist_tone3:":"🤛🏽",":left_fist_tone4:":"🤛🏾",":left_facing_fist_tone4:":"🤛🏾",":left_fist_tone5:":"🤛🏿",":left_facing_fist_tone5:":"🤛🏿",":leg_light_skin_tone:":"🦵🏻",":leg_tone1:":"🦵🏻",":leg_medium_light_skin_tone:":"🦵🏼",":leg_tone2:":"🦵🏼",":leg_medium_skin_tone:":"🦵🏽",":leg_tone3:":"🦵🏽",":leg_medium_dark_skin_tone:":"🦵🏾",":leg_tone4:":"🦵🏾",":leg_dark_skin_tone:":"🦵🏿",":leg_tone5:":"🦵🏿",":man_in_business_suit_levitating_tone1:":"🕴️🏻",":man_in_business_suit_levitating_light_skin_tone:":"🕴️🏻",":levitate_tone1:":"🕴️🏻",":man_in_business_suit_levitating_tone2:":"🕴️🏼",":man_in_business_suit_levitating_medium_light_skin_tone:":"🕴️🏼",":levitate_tone2:":"🕴️🏼",":man_in_business_suit_levitating_tone3:":"🕴️🏽",":man_in_business_suit_levitating_medium_skin_tone:":"🕴️🏽",":levitate_tone3:":"🕴️🏽",":man_in_business_suit_levitating_tone4:":"🕴️🏾",":man_in_business_suit_levitating_medium_dark_skin_tone:":"🕴️🏾",":levitate_tone4:":"🕴️🏾",":man_in_business_suit_levitating_tone5:":"🕴️🏿",":man_in_business_suit_levitating_dark_skin_tone:":"🕴️🏿",":levitate_tone5:":"🕴️🏿",":love_you_gesture_light_skin_tone:":"🤟🏻",":love_you_gesture_tone1:":"🤟🏻",":love_you_gesture_medium_light_skin_tone:":"🤟🏼",":love_you_gesture_tone2:":"🤟🏼",":love_you_gesture_medium_skin_tone:":"🤟🏽",":love_you_gesture_tone3:":"🤟🏽",":love_you_gesture_medium_dark_skin_tone:":"🤟🏾",":love_you_gesture_tone4:":"🤟🏾",":love_you_gesture_dark_skin_tone:":"🤟🏿",":love_you_gesture_tone5:":"🤟🏿",":mage_light_skin_tone:":"🧙🏻",":mage_tone1:":"🧙🏻",":mage_medium_light_skin_tone:":"🧙🏼",":mage_tone2:":"🧙🏼",":mage_medium_skin_tone:":"🧙🏽",":mage_tone3:":"🧙🏽",":mage_medium_dark_skin_tone:":"🧙🏾",":mage_tone4:":"🧙🏾",":mage_dark_skin_tone:":"🧙🏿",":mage_tone5:":"🧙🏿",":man_artist:":"👨‍🎨",":man_astronaut:":"👨‍🚀",":man_bald:":"👨‍🦲",":man_cook:":"👨‍🍳",":man_curly_haired:":"👨‍🦱",":male_dancer_tone1:":"🕺🏻",":man_dancing_tone1:":"🕺🏻",":male_dancer_tone2:":"🕺🏼",":man_dancing_tone2:":"🕺🏼",":male_dancer_tone3:":"🕺🏽",":man_dancing_tone3:":"🕺🏽",":male_dancer_tone4:":"🕺🏾",":man_dancing_tone4:":"🕺🏾",":male_dancer_tone5:":"🕺🏿",":man_dancing_tone5:":"🕺🏿",":man_factory_worker:":"👨‍🏭",":man_farmer:":"👨‍🌾",":man_firefighter:":"👨‍🚒",":man_in_manual_wheelchair:":"👨‍🦽",":man_in_motorized_wheelchair:":"👨‍🦼",":tuxedo_tone1:":"🤵🏻",":man_in_tuxedo_tone1:":"🤵🏻",":tuxedo_tone2:":"🤵🏼",":man_in_tuxedo_tone2:":"🤵🏼",":tuxedo_tone3:":"🤵🏽",":man_in_tuxedo_tone3:":"🤵🏽",":tuxedo_tone4:":"🤵🏾",":man_in_tuxedo_tone4:":"🤵🏾",":tuxedo_tone5:":"🤵🏿",":man_in_tuxedo_tone5:":"🤵🏿",":man_mechanic:":"👨‍🔧",":man_office_worker:":"👨‍💼",":man_red_haired:":"👨‍🦰",":man_scientist:":"👨‍🔬",":man_singer:":"👨‍🎤",":man_student:":"👨‍🎓",":man_teacher:":"👨‍🏫",":man_technologist:":"👨‍💻",":man_tone1:":"👨🏻",":man_tone2:":"👨🏼",":man_tone3:":"👨🏽",":man_tone4:":"👨🏾",":man_tone5:":"👨🏿",":man_white_haired:":"👨‍🦳",":man_with_gua_pi_mao_tone1:":"👲🏻",":man_with_chinese_cap_tone1:":"👲🏻",":man_with_gua_pi_mao_tone2:":"👲🏼",":man_with_chinese_cap_tone2:":"👲🏼",":man_with_gua_pi_mao_tone3:":"👲🏽",":man_with_chinese_cap_tone3:":"👲🏽",":man_with_gua_pi_mao_tone4:":"👲🏾",":man_with_chinese_cap_tone4:":"👲🏾",":man_with_gua_pi_mao_tone5:":"👲🏿",":man_with_chinese_cap_tone5:":"👲🏿",":man_with_probing_cane:":"👨‍🦯",":men_holding_hands_light_skin_tone:":"👬🏻",":men_holding_hands_tone1:":"👬🏻",":men_holding_hands_medium_light_skin_tone:":"👬🏼",":men_holding_hands_tone2:":"👬🏼",":men_holding_hands_medium_skin_tone:":"👬🏽",":men_holding_hands_tone3:":"👬🏽",":men_holding_hands_medium_dark_skin_tone:":"👬🏾",":men_holding_hands_tone4:":"👬🏾",":men_holding_hands_dark_skin_tone:":"👬🏿",":men_holding_hands_tone5:":"👬🏿",":merperson_light_skin_tone:":"🧜🏻",":merperson_tone1:":"🧜🏻",":merperson_medium_light_skin_tone:":"🧜🏼",":merperson_tone2:":"🧜🏼",":merperson_medium_skin_tone:":"🧜🏽",":merperson_tone3:":"🧜🏽",":merperson_medium_dark_skin_tone:":"🧜🏾",":merperson_tone4:":"🧜🏾",":merperson_dark_skin_tone:":"🧜🏿",":merperson_tone5:":"🧜🏿",":sign_of_the_horns_tone1:":"🤘🏻",":metal_tone1:":"🤘🏻",":sign_of_the_horns_tone2:":"🤘🏼",":metal_tone2:":"🤘🏼",":sign_of_the_horns_tone3:":"🤘🏽",":metal_tone3:":"🤘🏽",":sign_of_the_horns_tone4:":"🤘🏾",":metal_tone4:":"🤘🏾",":sign_of_the_horns_tone5:":"🤘🏿",":metal_tone5:":"🤘🏿",":reversed_hand_with_middle_finger_extended_tone1:":"🖕🏻",":middle_finger_tone1:":"🖕🏻",":reversed_hand_with_middle_finger_extended_tone2:":"🖕🏼",":middle_finger_tone2:":"🖕🏼",":reversed_hand_with_middle_finger_extended_tone3:":"🖕🏽",":middle_finger_tone3:":"🖕🏽",":reversed_hand_with_middle_finger_extended_tone4:":"🖕🏾",":middle_finger_tone4:":"🖕🏾",":reversed_hand_with_middle_finger_extended_tone5:":"🖕🏿",":middle_finger_tone5:":"🖕🏿",":mother_christmas_tone1:":"🤶🏻",":mrs_claus_tone1:":"🤶🏻",":mother_christmas_tone2:":"🤶🏼",":mrs_claus_tone2:":"🤶🏼",":mother_christmas_tone3:":"🤶🏽",":mrs_claus_tone3:":"🤶🏽",":mother_christmas_tone4:":"🤶🏾",":mrs_claus_tone4:":"🤶🏾",":mother_christmas_tone5:":"🤶🏿",":mrs_claus_tone5:":"🤶🏿",":muscle_tone1:":"💪🏻",":muscle_tone2:":"💪🏼",":muscle_tone3:":"💪🏽",":muscle_tone4:":"💪🏾",":muscle_tone5:":"💪🏿",":nail_care_tone1:":"💅🏻",":nail_care_tone2:":"💅🏼",":nail_care_tone3:":"💅🏽",":nail_care_tone4:":"💅🏾",":nail_care_tone5:":"💅🏿",":nose_tone1:":"👃🏻",":nose_tone2:":"👃🏼",":nose_tone3:":"👃🏽",":nose_tone4:":"👃🏾",":nose_tone5:":"👃🏿",":ok_hand_tone1:":"👌🏻",":ok_hand_tone2:":"👌🏼",":ok_hand_tone3:":"👌🏽",":ok_hand_tone4:":"👌🏾",":ok_hand_tone5:":"👌🏿",":older_adult_light_skin_tone:":"🧓🏻",":older_adult_tone1:":"🧓🏻",":older_adult_medium_light_skin_tone:":"🧓🏼",":older_adult_tone2:":"🧓🏼",":older_adult_medium_skin_tone:":"🧓🏽",":older_adult_tone3:":"🧓🏽",":older_adult_medium_dark_skin_tone:":"🧓🏾",":older_adult_tone4:":"🧓🏾",":older_adult_dark_skin_tone:":"🧓🏿",":older_adult_tone5:":"🧓🏿",":older_man_tone1:":"👴🏻",":older_man_tone2:":"👴🏼",":older_man_tone3:":"👴🏽",":older_man_tone4:":"👴🏾",":older_man_tone5:":"👴🏿",":grandma_tone1:":"👵🏻",":older_woman_tone1:":"👵🏻",":grandma_tone2:":"👵🏼",":older_woman_tone2:":"👵🏼",":grandma_tone3:":"👵🏽",":older_woman_tone3:":"👵🏽",":grandma_tone4:":"👵🏾",":older_woman_tone4:":"👵🏾",":grandma_tone5:":"👵🏿",":older_woman_tone5:":"👵🏿",":open_hands_tone1:":"👐🏻",":open_hands_tone2:":"👐🏼",":open_hands_tone3:":"👐🏽",":open_hands_tone4:":"👐🏾",":open_hands_tone5:":"👐🏿",":palms_up_together_light_skin_tone:":"🤲🏻",":palms_up_together_tone1:":"🤲🏻",":palms_up_together_medium_light_skin_tone:":"🤲🏼",":palms_up_together_tone2:":"🤲🏼",":palms_up_together_medium_skin_tone:":"🤲🏽",":palms_up_together_tone3:":"🤲🏽",":palms_up_together_medium_dark_skin_tone:":"🤲🏾",":palms_up_together_tone4:":"🤲🏾",":palms_up_together_dark_skin_tone:":"🤲🏿",":palms_up_together_tone5:":"🤲🏿",":bicyclist_tone1:":"🚴🏻",":person_biking_tone1:":"🚴🏻",":bicyclist_tone2:":"🚴🏼",":person_biking_tone2:":"🚴🏼",":bicyclist_tone3:":"🚴🏽",":person_biking_tone3:":"🚴🏽",":bicyclist_tone4:":"🚴🏾",":person_biking_tone4:":"🚴🏾",":bicyclist_tone5:":"🚴🏿",":person_biking_tone5:":"🚴🏿",":bow_tone1:":"🙇🏻",":person_bowing_tone1:":"🙇🏻",":bow_tone2:":"🙇🏼",":person_bowing_tone2:":"🙇🏼",":bow_tone3:":"🙇🏽",":person_bowing_tone3:":"🙇🏽",":bow_tone4:":"🙇🏾",":person_bowing_tone4:":"🙇🏾",":bow_tone5:":"🙇🏿",":person_bowing_tone5:":"🙇🏿",":person_climbing_light_skin_tone:":"🧗🏻",":person_climbing_tone1:":"🧗🏻",":person_climbing_medium_light_skin_tone:":"🧗🏼",":person_climbing_tone2:":"🧗🏼",":person_climbing_medium_skin_tone:":"🧗🏽",":person_climbing_tone3:":"🧗🏽",":person_climbing_medium_dark_skin_tone:":"🧗🏾",":person_climbing_tone4:":"🧗🏾",":person_climbing_dark_skin_tone:":"🧗🏿",":person_climbing_tone5:":"🧗🏿",":cartwheel_tone1:":"🤸🏻",":person_doing_cartwheel_tone1:":"🤸🏻",":cartwheel_tone2:":"🤸🏼",":person_doing_cartwheel_tone2:":"🤸🏼",":cartwheel_tone3:":"🤸🏽",":person_doing_cartwheel_tone3:":"🤸🏽",":cartwheel_tone4:":"🤸🏾",":person_doing_cartwheel_tone4:":"🤸🏾",":cartwheel_tone5:":"🤸🏿",":person_doing_cartwheel_tone5:":"🤸🏿",":face_palm_tone1:":"🤦🏻",":facepalm_tone1:":"🤦🏻",":person_facepalming_tone1:":"🤦🏻",":face_palm_tone2:":"🤦🏼",":facepalm_tone2:":"🤦🏼",":person_facepalming_tone2:":"🤦🏼",":face_palm_tone3:":"🤦🏽",":facepalm_tone3:":"🤦🏽",":person_facepalming_tone3:":"🤦🏽",":face_palm_tone4:":"🤦🏾",":facepalm_tone4:":"🤦🏾",":person_facepalming_tone4:":"🤦🏾",":face_palm_tone5:":"🤦🏿",":facepalm_tone5:":"🤦🏿",":person_facepalming_tone5:":"🤦🏿",":person_frowning_tone1:":"🙍🏻",":person_frowning_tone2:":"🙍🏼",":person_frowning_tone3:":"🙍🏽",":person_frowning_tone4:":"🙍🏾",":person_frowning_tone5:":"🙍🏿",":no_good_tone1:":"🙅🏻",":person_gesturing_no_tone1:":"🙅🏻",":no_good_tone2:":"🙅🏼",":person_gesturing_no_tone2:":"🙅🏼",":no_good_tone3:":"🙅🏽",":person_gesturing_no_tone3:":"🙅🏽",":no_good_tone4:":"🙅🏾",":person_gesturing_no_tone4:":"🙅🏾",":no_good_tone5:":"🙅🏿",":person_gesturing_no_tone5:":"🙅🏿",":ok_woman_tone1:":"🙆🏻",":person_gesturing_ok_tone1:":"🙆🏻",":ok_woman_tone2:":"🙆🏼",":person_gesturing_ok_tone2:":"🙆🏼",":ok_woman_tone3:":"🙆🏽",":person_gesturing_ok_tone3:":"🙆🏽",":ok_woman_tone4:":"🙆🏾",":person_gesturing_ok_tone4:":"🙆🏾",":ok_woman_tone5:":"🙆🏿",":person_gesturing_ok_tone5:":"🙆🏿",":haircut_tone1:":"💇🏻",":person_getting_haircut_tone1:":"💇🏻",":haircut_tone2:":"💇🏼",":person_getting_haircut_tone2:":"💇🏼",":haircut_tone3:":"💇🏽",":person_getting_haircut_tone3:":"💇🏽",":haircut_tone4:":"💇🏾",":person_getting_haircut_tone4:":"💇🏾",":haircut_tone5:":"💇🏿",":person_getting_haircut_tone5:":"💇🏿",":massage_tone1:":"💆🏻",":person_getting_massage_tone1:":"💆🏻",":massage_tone2:":"💆🏼",":person_getting_massage_tone2:":"💆🏼",":massage_tone3:":"💆🏽",":person_getting_massage_tone3:":"💆🏽",":massage_tone4:":"💆🏾",":person_getting_massage_tone4:":"💆🏾",":massage_tone5:":"💆🏿",":person_getting_massage_tone5:":"💆🏿",":person_golfing_light_skin_tone:":"🏌️🏻",":person_golfing_tone1:":"🏌️🏻",":person_golfing_medium_light_skin_tone:":"🏌️🏼",":person_golfing_tone2:":"🏌️🏼",":person_golfing_medium_skin_tone:":"🏌️🏽",":person_golfing_tone3:":"🏌️🏽",":person_golfing_medium_dark_skin_tone:":"🏌️🏾",":person_golfing_tone4:":"🏌️🏾",":person_golfing_dark_skin_tone:":"🏌️🏿",":person_golfing_tone5:":"🏌️🏿",":person_in_bed_light_skin_tone:":"🛌🏻",":person_in_bed_tone1:":"🛌🏻",":person_in_bed_medium_light_skin_tone:":"🛌🏼",":person_in_bed_tone2:":"🛌🏼",":person_in_bed_medium_skin_tone:":"🛌🏽",":person_in_bed_tone3:":"🛌🏽",":person_in_bed_medium_dark_skin_tone:":"🛌🏾",":person_in_bed_tone4:":"🛌🏾",":person_in_bed_dark_skin_tone:":"🛌🏿",":person_in_bed_tone5:":"🛌🏿",":person_in_lotus_position_light_skin_tone:":"🧘🏻",":person_in_lotus_position_tone1:":"🧘🏻",":person_in_lotus_position_medium_light_skin_tone:":"🧘🏼",":person_in_lotus_position_tone2:":"🧘🏼",":person_in_lotus_position_medium_skin_tone:":"🧘🏽",":person_in_lotus_position_tone3:":"🧘🏽",":person_in_lotus_position_medium_dark_skin_tone:":"🧘🏾",":person_in_lotus_position_tone4:":"🧘🏾",":person_in_lotus_position_dark_skin_tone:":"🧘🏿",":person_in_lotus_position_tone5:":"🧘🏿",":person_in_steamy_room_light_skin_tone:":"🧖🏻",":person_in_steamy_room_tone1:":"🧖🏻",":person_in_steamy_room_medium_light_skin_tone:":"🧖🏼",":person_in_steamy_room_tone2:":"🧖🏼",":person_in_steamy_room_medium_skin_tone:":"🧖🏽",":person_in_steamy_room_tone3:":"🧖🏽",":person_in_steamy_room_medium_dark_skin_tone:":"🧖🏾",":person_in_steamy_room_tone4:":"🧖🏾",":person_in_steamy_room_dark_skin_tone:":"🧖🏿",":person_in_steamy_room_tone5:":"🧖🏿",":juggling_tone1:":"🤹🏻",":juggler_tone1:":"🤹🏻",":person_juggling_tone1:":"🤹🏻",":juggling_tone2:":"🤹🏼",":juggler_tone2:":"🤹🏼",":person_juggling_tone2:":"🤹🏼",":juggling_tone3:":"🤹🏽",":juggler_tone3:":"🤹🏽",":person_juggling_tone3:":"🤹🏽",":juggling_tone4:":"🤹🏾",":juggler_tone4:":"🤹🏾",":person_juggling_tone4:":"🤹🏾",":juggling_tone5:":"🤹🏿",":juggler_tone5:":"🤹🏿",":person_juggling_tone5:":"🤹🏿",":person_kneeling_light_skin_tone:":"🧎🏻",":person_kneeling_tone1:":"🧎🏻",":person_kneeling_medium_light_skin_tone:":"🧎🏼",":person_kneeling_tone2:":"🧎🏼",":person_kneeling_medium_skin_tone:":"🧎🏽",":person_kneeling_tone3:":"🧎🏽",":person_kneeling_medium_dark_skin_tone:":"🧎🏾",":person_kneeling_tone4:":"🧎🏾",":person_kneeling_dark_skin_tone:":"🧎🏿",":person_kneeling_tone5:":"🧎🏿",":lifter_tone1:":"🏋️🏻",":weight_lifter_tone1:":"🏋️🏻",":person_lifting_weights_tone1:":"🏋️🏻",":lifter_tone2:":"🏋️🏼",":weight_lifter_tone2:":"🏋️🏼",":person_lifting_weights_tone2:":"🏋️🏼",":lifter_tone3:":"🏋️🏽",":weight_lifter_tone3:":"🏋️🏽",":person_lifting_weights_tone3:":"🏋️🏽",":lifter_tone4:":"🏋️🏾",":weight_lifter_tone4:":"🏋️🏾",":person_lifting_weights_tone4:":"🏋️🏾",":lifter_tone5:":"🏋️🏿",":weight_lifter_tone5:":"🏋️🏿",":person_lifting_weights_tone5:":"🏋️🏿",":mountain_bicyclist_tone1:":"🚵🏻",":person_mountain_biking_tone1:":"🚵🏻",":mountain_bicyclist_tone2:":"🚵🏼",":person_mountain_biking_tone2:":"🚵🏼",":mountain_bicyclist_tone3:":"🚵🏽",":person_mountain_biking_tone3:":"🚵🏽",":mountain_bicyclist_tone4:":"🚵🏾",":person_mountain_biking_tone4:":"🚵🏾",":mountain_bicyclist_tone5:":"🚵🏿",":person_mountain_biking_tone5:":"🚵🏿",":handball_tone1:":"🤾🏻",":person_playing_handball_tone1:":"🤾🏻",":handball_tone2:":"🤾🏼",":person_playing_handball_tone2:":"🤾🏼",":handball_tone3:":"🤾🏽",":person_playing_handball_tone3:":"🤾🏽",":handball_tone4:":"🤾🏾",":person_playing_handball_tone4:":"🤾🏾",":handball_tone5:":"🤾🏿",":person_playing_handball_tone5:":"🤾🏿",":water_polo_tone1:":"🤽🏻",":person_playing_water_polo_tone1:":"🤽🏻",":water_polo_tone2:":"🤽🏼",":person_playing_water_polo_tone2:":"🤽🏼",":water_polo_tone3:":"🤽🏽",":person_playing_water_polo_tone3:":"🤽🏽",":water_polo_tone4:":"🤽🏾",":person_playing_water_polo_tone4:":"🤽🏾",":water_polo_tone5:":"🤽🏿",":person_playing_water_polo_tone5:":"🤽🏿",":person_with_pouting_face_tone1:":"🙎🏻",":person_pouting_tone1:":"🙎🏻",":person_with_pouting_face_tone2:":"🙎🏼",":person_pouting_tone2:":"🙎🏼",":person_with_pouting_face_tone3:":"🙎🏽",":person_pouting_tone3:":"🙎🏽",":person_with_pouting_face_tone4:":"🙎🏾",":person_pouting_tone4:":"🙎🏾",":person_with_pouting_face_tone5:":"🙎🏿",":person_pouting_tone5:":"🙎🏿",":raising_hand_tone1:":"🙋🏻",":person_raising_hand_tone1:":"🙋🏻",":raising_hand_tone2:":"🙋🏼",":person_raising_hand_tone2:":"🙋🏼",":raising_hand_tone3:":"🙋🏽",":person_raising_hand_tone3:":"🙋🏽",":raising_hand_tone4:":"🙋🏾",":person_raising_hand_tone4:":"🙋🏾",":raising_hand_tone5:":"🙋🏿",":person_raising_hand_tone5:":"🙋🏿",":rowboat_tone1:":"🚣🏻",":person_rowing_boat_tone1:":"🚣🏻",":rowboat_tone2:":"🚣🏼",":person_rowing_boat_tone2:":"🚣🏼",":rowboat_tone3:":"🚣🏽",":person_rowing_boat_tone3:":"🚣🏽",":rowboat_tone4:":"🚣🏾",":person_rowing_boat_tone4:":"🚣🏾",":rowboat_tone5:":"🚣🏿",":person_rowing_boat_tone5:":"🚣🏿",":runner_tone1:":"🏃🏻",":person_running_tone1:":"🏃🏻",":runner_tone2:":"🏃🏼",":person_running_tone2:":"🏃🏼",":runner_tone3:":"🏃🏽",":person_running_tone3:":"🏃🏽",":runner_tone4:":"🏃🏾",":person_running_tone4:":"🏃🏾",":runner_tone5:":"🏃🏿",":person_running_tone5:":"🏃🏿",":shrug_tone1:":"🤷🏻",":person_shrugging_tone1:":"🤷🏻",":shrug_tone2:":"🤷🏼",":person_shrugging_tone2:":"🤷🏼",":shrug_tone3:":"🤷🏽",":person_shrugging_tone3:":"🤷🏽",":shrug_tone4:":"🤷🏾",":person_shrugging_tone4:":"🤷🏾",":shrug_tone5:":"🤷🏿",":person_shrugging_tone5:":"🤷🏿",":person_standing_light_skin_tone:":"🧍🏻",":person_standing_tone1:":"🧍🏻",":person_standing_medium_light_skin_tone:":"🧍🏼",":person_standing_tone2:":"🧍🏼",":person_standing_medium_skin_tone:":"🧍🏽",":person_standing_tone3:":"🧍🏽",":person_standing_medium_dark_skin_tone:":"🧍🏾",":person_standing_tone4:":"🧍🏾",":person_standing_dark_skin_tone:":"🧍🏿",":person_standing_tone5:":"🧍🏿",":surfer_tone1:":"🏄🏻",":person_surfing_tone1:":"🏄🏻",":surfer_tone2:":"🏄🏼",":person_surfing_tone2:":"🏄🏼",":surfer_tone3:":"🏄🏽",":person_surfing_tone3:":"🏄🏽",":surfer_tone4:":"🏄🏾",":person_surfing_tone4:":"🏄🏾",":surfer_tone5:":"🏄🏿",":person_surfing_tone5:":"🏄🏿",":swimmer_tone1:":"🏊🏻",":person_swimming_tone1:":"🏊🏻",":swimmer_tone2:":"🏊🏼",":person_swimming_tone2:":"🏊🏼",":swimmer_tone3:":"🏊🏽",":person_swimming_tone3:":"🏊🏽",":swimmer_tone4:":"🏊🏾",":person_swimming_tone4:":"🏊🏾",":swimmer_tone5:":"🏊🏿",":person_swimming_tone5:":"🏊🏿",":information_desk_person_tone1:":"💁🏻",":person_tipping_hand_tone1:":"💁🏻",":information_desk_person_tone2:":"💁🏼",":person_tipping_hand_tone2:":"💁🏼",":information_desk_person_tone3:":"💁🏽",":person_tipping_hand_tone3:":"💁🏽",":information_desk_person_tone4:":"💁🏾",":person_tipping_hand_tone4:":"💁🏾",":information_desk_person_tone5:":"💁🏿",":person_tipping_hand_tone5:":"💁🏿",":walking_tone1:":"🚶🏻",":person_walking_tone1:":"🚶🏻",":walking_tone2:":"🚶🏼",":person_walking_tone2:":"🚶🏼",":walking_tone3:":"🚶🏽",":person_walking_tone3:":"🚶🏽",":walking_tone4:":"🚶🏾",":person_walking_tone4:":"🚶🏾",":walking_tone5:":"🚶🏿",":person_walking_tone5:":"🚶🏿",":man_with_turban_tone1:":"👳🏻",":person_wearing_turban_tone1:":"👳🏻",":man_with_turban_tone2:":"👳🏼",":person_wearing_turban_tone2:":"👳🏼",":man_with_turban_tone3:":"👳🏽",":person_wearing_turban_tone3:":"👳🏽",":man_with_turban_tone4:":"👳🏾",":person_wearing_turban_tone4:":"👳🏾",":man_with_turban_tone5:":"👳🏿",":person_wearing_turban_tone5:":"👳🏿",":pinching_hand_light_skin_tone:":"🤏🏻",":pinching_hand_tone1:":"🤏🏻",":pinching_hand_medium_light_skin_tone:":"🤏🏼",":pinching_hand_tone2:":"🤏🏼",":pinching_hand_medium_skin_tone:":"🤏🏽",":pinching_hand_tone3:":"🤏🏽",":pinching_hand_medium_dark_skin_tone:":"🤏🏾",":pinching_hand_tone4:":"🤏🏾",":pinching_hand_dark_skin_tone:":"🤏🏿",":pinching_hand_tone5:":"🤏🏿",":point_down_tone1:":"👇🏻",":point_down_tone2:":"👇🏼",":point_down_tone3:":"👇🏽",":point_down_tone4:":"👇🏾",":point_down_tone5:":"👇🏿",":point_left_tone1:":"👈🏻",":point_left_tone2:":"👈🏼",":point_left_tone3:":"👈🏽",":point_left_tone4:":"👈🏾",":point_left_tone5:":"👈🏿",":point_right_tone1:":"👉🏻",":point_right_tone2:":"👉🏼",":point_right_tone3:":"👉🏽",":point_right_tone4:":"👉🏾",":point_right_tone5:":"👉🏿",":point_up_2_tone1:":"👆🏻",":point_up_2_tone2:":"👆🏼",":point_up_2_tone3:":"👆🏽",":point_up_2_tone4:":"👆🏾",":point_up_2_tone5:":"👆🏿",":cop_tone1:":"👮🏻",":police_officer_tone1:":"👮🏻",":cop_tone2:":"👮🏼",":police_officer_tone2:":"👮🏼",":cop_tone3:":"👮🏽",":police_officer_tone3:":"👮🏽",":cop_tone4:":"👮🏾",":police_officer_tone4:":"👮🏾",":cop_tone5:":"👮🏿",":police_officer_tone5:":"👮🏿",":pray_tone1:":"🙏🏻",":pray_tone2:":"🙏🏼",":pray_tone3:":"🙏🏽",":pray_tone4:":"🙏🏾",":pray_tone5:":"🙏🏿",":expecting_woman_tone1:":"🤰🏻",":pregnant_woman_tone1:":"🤰🏻",":expecting_woman_tone2:":"🤰🏼",":pregnant_woman_tone2:":"🤰🏼",":expecting_woman_tone3:":"🤰🏽",":pregnant_woman_tone3:":"🤰🏽",":expecting_woman_tone4:":"🤰🏾",":pregnant_woman_tone4:":"🤰🏾",":expecting_woman_tone5:":"🤰🏿",":pregnant_woman_tone5:":"🤰🏿",":prince_tone1:":"🤴🏻",":prince_tone2:":"🤴🏼",":prince_tone3:":"🤴🏽",":prince_tone4:":"🤴🏾",":prince_tone5:":"🤴🏿",":princess_tone1:":"👸🏻",":princess_tone2:":"👸🏼",":princess_tone3:":"👸🏽",":princess_tone4:":"👸🏾",":princess_tone5:":"👸🏿",":punch_tone1:":"👊🏻",":punch_tone2:":"👊🏼",":punch_tone3:":"👊🏽",":punch_tone4:":"👊🏾",":punch_tone5:":"👊🏿",":gay_pride_flag:":"🏳️‍🌈",":rainbow_flag:":"🏳️‍🌈",":back_of_hand_tone1:":"🤚🏻",":raised_back_of_hand_tone1:":"🤚🏻",":back_of_hand_tone2:":"🤚🏼",":raised_back_of_hand_tone2:":"🤚🏼",":back_of_hand_tone3:":"🤚🏽",":raised_back_of_hand_tone3:":"🤚🏽",":back_of_hand_tone4:":"🤚🏾",":raised_back_of_hand_tone4:":"🤚🏾",":back_of_hand_tone5:":"🤚🏿",":raised_back_of_hand_tone5:":"🤚🏿",":raised_hands_tone1:":"🙌🏻",":raised_hands_tone2:":"🙌🏼",":raised_hands_tone3:":"🙌🏽",":raised_hands_tone4:":"🙌🏾",":raised_hands_tone5:":"🙌🏿",":right_fist_tone1:":"🤜🏻",":right_facing_fist_tone1:":"🤜🏻",":right_fist_tone2:":"🤜🏼",":right_facing_fist_tone2:":"🤜🏼",":right_fist_tone3:":"🤜🏽",":right_facing_fist_tone3:":"🤜🏽",":right_fist_tone4:":"🤜🏾",":right_facing_fist_tone4:":"🤜🏾",":right_fist_tone5:":"🤜🏿",":right_facing_fist_tone5:":"🤜🏿",":santa_tone1:":"🎅🏻",":santa_tone2:":"🎅🏼",":santa_tone3:":"🎅🏽",":santa_tone4:":"🎅🏾",":santa_tone5:":"🎅🏿",":selfie_tone1:":"🤳🏻",":selfie_tone2:":"🤳🏼",":selfie_tone3:":"🤳🏽",":selfie_tone4:":"🤳🏾",":selfie_tone5:":"🤳🏿",":service_dog:":"🐕‍🦺",":snowboarder_light_skin_tone:":"🏂🏻",":snowboarder_tone1:":"🏂🏻",":snowboarder_medium_light_skin_tone:":"🏂🏼",":snowboarder_tone2:":"🏂🏼",":snowboarder_medium_skin_tone:":"🏂🏽",":snowboarder_tone3:":"🏂🏽",":snowboarder_medium_dark_skin_tone:":"🏂🏾",":snowboarder_tone4:":"🏂🏾",":snowboarder_dark_skin_tone:":"🏂🏿",":snowboarder_tone5:":"🏂🏿",":superhero_light_skin_tone:":"🦸🏻",":superhero_tone1:":"🦸🏻",":superhero_medium_light_skin_tone:":"🦸🏼",":superhero_tone2:":"🦸🏼",":superhero_medium_skin_tone:":"🦸🏽",":superhero_tone3:":"🦸🏽",":superhero_medium_dark_skin_tone:":"🦸🏾",":superhero_tone4:":"🦸🏾",":superhero_dark_skin_tone:":"🦸🏿",":superhero_tone5:":"🦸🏿",":supervillain_light_skin_tone:":"🦹🏻",":supervillain_tone1:":"🦹🏻",":supervillain_medium_light_skin_tone:":"🦹🏼",":supervillain_tone2:":"🦹🏼",":supervillain_medium_skin_tone:":"🦹🏽",":supervillain_tone3:":"🦹🏽",":supervillain_medium_dark_skin_tone:":"🦹🏾",":supervillain_tone4:":"🦹🏾",":supervillain_dark_skin_tone:":"🦹🏿",":supervillain_tone5:":"🦹🏿",":-1_tone1:":"👎🏻",":thumbdown_tone1:":"👎🏻",":thumbsdown_tone1:":"👎🏻",":-1_tone2:":"👎🏼",":thumbdown_tone2:":"👎🏼",":thumbsdown_tone2:":"👎🏼",":-1_tone3:":"👎🏽",":thumbdown_tone3:":"👎🏽",":thumbsdown_tone3:":"👎🏽",":-1_tone4:":"👎🏾",":thumbdown_tone4:":"👎🏾",":thumbsdown_tone4:":"👎🏾",":-1_tone5:":"👎🏿",":thumbdown_tone5:":"👎🏿",":thumbsdown_tone5:":"👎🏿",":+1_tone1:":"👍🏻",":thumbup_tone1:":"👍🏻",":thumbsup_tone1:":"👍🏻",":+1_tone2:":"👍🏼",":thumbup_tone2:":"👍🏼",":thumbsup_tone2:":"👍🏼",":+1_tone3:":"👍🏽",":thumbup_tone3:":"👍🏽",":thumbsup_tone3:":"👍🏽",":+1_tone4:":"👍🏾",":thumbup_tone4:":"👍🏾",":thumbsup_tone4:":"👍🏾",":+1_tone5:":"👍🏿",":thumbup_tone5:":"👍🏿",":thumbsup_tone5:":"👍🏿",":united_nations:":"🇺🇳",":vampire_light_skin_tone:":"🧛🏻",":vampire_tone1:":"🧛🏻",":vampire_medium_light_skin_tone:":"🧛🏼",":vampire_tone2:":"🧛🏼",":vampire_medium_skin_tone:":"🧛🏽",":vampire_tone3:":"🧛🏽",":vampire_medium_dark_skin_tone:":"🧛🏾",":vampire_tone4:":"🧛🏾",":vampire_dark_skin_tone:":"🧛🏿",":vampire_tone5:":"🧛🏿",":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":"🖖🏻",":vulcan_tone1:":"🖖🏻",":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":"🖖🏼",":vulcan_tone2:":"🖖🏼",":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":"🖖🏽",":vulcan_tone3:":"🖖🏽",":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":"🖖🏾",":vulcan_tone4:":"🖖🏾",":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":"🖖🏿",":vulcan_tone5:":"🖖🏿",":wave_tone1:":"👋🏻",":wave_tone2:":"👋🏼",":wave_tone3:":"👋🏽",":wave_tone4:":"👋🏾",":wave_tone5:":"👋🏿",":woman_and_man_holding_hands_light_skin_tone:":"👫🏻",":woman_and_man_holding_hands_tone1:":"👫🏻",":woman_and_man_holding_hands_medium_light_skin_tone:":"👫🏼",":woman_and_man_holding_hands_tone2:":"👫🏼",":woman_and_man_holding_hands_medium_skin_tone:":"👫🏽",":woman_and_man_holding_hands_tone3:":"👫🏽",":woman_and_man_holding_hands_medium_dark_skin_tone:":"👫🏾",":woman_and_man_holding_hands_tone4:":"👫🏾",":woman_and_man_holding_hands_dark_skin_tone:":"👫🏿",":woman_and_man_holding_hands_tone5:":"👫🏿",":woman_artist:":"👩‍🎨",":woman_astronaut:":"👩‍🚀",":woman_bald:":"👩‍🦲",":woman_cook:":"👩‍🍳",":woman_curly_haired:":"👩‍🦱",":woman_factory_worker:":"👩‍🏭",":woman_farmer:":"👩‍🌾",":woman_firefighter:":"👩‍🚒",":woman_in_manual_wheelchair:":"👩‍🦽",":woman_in_motorized_wheelchair:":"👩‍🦼",":woman_mechanic:":"👩‍🔧",":woman_office_worker:":"👩‍💼",":woman_red_haired:":"👩‍🦰",":woman_scientist:":"👩‍🔬",":woman_singer:":"👩‍🎤",":woman_student:":"👩‍🎓",":woman_teacher:":"👩‍🏫",":woman_technologist:":"👩‍💻",":woman_tone1:":"👩🏻",":woman_tone2:":"👩🏼",":woman_tone3:":"👩🏽",":woman_tone4:":"👩🏾",":woman_tone5:":"👩🏿",":woman_white_haired:":"👩‍🦳",":woman_with_headscarf_light_skin_tone:":"🧕🏻",":woman_with_headscarf_tone1:":"🧕🏻",":woman_with_headscarf_medium_light_skin_tone:":"🧕🏼",":woman_with_headscarf_tone2:":"🧕🏼",":woman_with_headscarf_medium_skin_tone:":"🧕🏽",":woman_with_headscarf_tone3:":"🧕🏽",":woman_with_headscarf_medium_dark_skin_tone:":"🧕🏾",":woman_with_headscarf_tone4:":"🧕🏾",":woman_with_headscarf_dark_skin_tone:":"🧕🏿",":woman_with_headscarf_tone5:":"🧕🏿",":woman_with_probing_cane:":"👩‍🦯",":women_holding_hands_light_skin_tone:":"👭🏻",":women_holding_hands_tone1:":"👭🏻",":women_holding_hands_medium_light_skin_tone:":"👭🏼",":women_holding_hands_tone2:":"👭🏼",":women_holding_hands_medium_skin_tone:":"👭🏽",":women_holding_hands_tone3:":"👭🏽",":women_holding_hands_medium_dark_skin_tone:":"👭🏾",":women_holding_hands_tone4:":"👭🏾",":women_holding_hands_dark_skin_tone:":"👭🏿",":women_holding_hands_tone5:":"👭🏿",":blond-haired_man:":"👱‍♂️",":blond-haired_woman:":"👱‍♀️",":deaf_man:":"🧏‍♂️",":deaf_woman:":"🧏‍♀️",":fist_tone1:":"✊🏻",":fist_tone2:":"✊🏼",":fist_tone3:":"✊🏽",":fist_tone4:":"✊🏾",":fist_tone5:":"✊🏿",":man_biking:":"🚴‍♂️",":man_bowing:":"🙇‍♂️",":man_cartwheeling:":"🤸‍♂️",":man_climbing:":"🧗‍♂️",":man_construction_worker:":"👷‍♂️",":man_detective:":"🕵️‍♂️",":man_elf:":"🧝‍♂️",":man_facepalming:":"🤦‍♂️",":man_fairy:":"🧚‍♂️",":man_frowning:":"🙍‍♂️",":man_genie:":"🧞‍♂️",":man_gesturing_no:":"🙅‍♂️",":man_gesturing_ok:":"🙆‍♂️",":man_getting_face_massage:":"💆‍♂️",":man_getting_haircut:":"💇‍♂️",":man_golfing:":"🏌️‍♂️",":man_guard:":"💂‍♂️",":man_health_worker:":"👨‍⚕️",":man_in_lotus_position:":"🧘‍♂️",":man_in_steamy_room:":"🧖‍♂️",":man_judge:":"👨‍⚖️",":man_juggling:":"🤹‍♂️",":man_kneeling:":"🧎‍♂️",":man_lifting_weights:":"🏋️‍♂️",":man_mage:":"🧙‍♂️",":man_mountain_biking:":"🚵‍♂️",":man_pilot:":"👨‍✈️",":man_playing_handball:":"🤾‍♂️",":man_playing_water_polo:":"🤽‍♂️",":man_police_officer:":"👮‍♂️",":man_pouting:":"🙎‍♂️",":man_raising_hand:":"🙋‍♂️",":man_rowing_boat:":"🚣‍♂️",":man_running:":"🏃‍♂️",":man_shrugging:":"🤷‍♂️",":man_standing:":"🧍‍♂️",":man_superhero:":"🦸‍♂️",":man_supervillain:":"🦹‍♂️",":man_surfing:":"🏄‍♂️",":man_swimming:":"🏊‍♂️",":man_tipping_hand:":"💁‍♂️",":man_vampire:":"🧛‍♂️",":man_walking:":"🚶‍♂️",":man_wearing_turban:":"👳‍♂️",":man_zombie:":"🧟‍♂️",":men_with_bunny_ears_partying:":"👯‍♂️",":men_wrestling:":"🤼♂️",":mermaid:":"🧜‍♀️",":merman:":"🧜‍♂️",":basketball_player_tone1:":"⛹️🏻",":person_with_ball_tone1:":"⛹️🏻",":person_bouncing_ball_tone1:":"⛹️🏻",":basketball_player_tone2:":"⛹️🏼",":person_with_ball_tone2:":"⛹️🏼",":person_bouncing_ball_tone2:":"⛹️🏼",":basketball_player_tone3:":"⛹️🏽",":person_with_ball_tone3:":"⛹️🏽",":person_bouncing_ball_tone3:":"⛹️🏽",":basketball_player_tone4:":"⛹️🏾",":person_with_ball_tone4:":"⛹️🏾",":person_bouncing_ball_tone4:":"⛹️🏾",":basketball_player_tone5:":"⛹️🏿",":person_with_ball_tone5:":"⛹️🏿",":person_bouncing_ball_tone5:":"⛹️🏿",":pirate_flag:":"🏴‍☠️",":point_up_tone1:":"☝️🏻",":point_up_tone2:":"☝️🏼",":point_up_tone3:":"☝️🏽",":point_up_tone4:":"☝️🏾",":point_up_tone5:":"☝️🏿",":raised_hand_tone1:":"✋🏻",":raised_hand_tone2:":"✋🏼",":raised_hand_tone3:":"✋🏽",":raised_hand_tone4:":"✋🏾",":raised_hand_tone5:":"✋🏿",":v_tone1:":"✌️🏻",":v_tone2:":"✌️🏼",":v_tone3:":"✌️🏽",":v_tone4:":"✌️🏾",":v_tone5:":"✌️🏿",":woman_biking:":"🚴‍♀️",":woman_bowing:":"🙇‍♀️",":woman_cartwheeling:":"🤸‍♀️",":woman_climbing:":"🧗‍♀️",":woman_construction_worker:":"👷‍♀️",":woman_detective:":"🕵️‍♀️",":woman_elf:":"🧝‍♀️",":woman_facepalming:":"🤦‍♀️",":woman_fairy:":"🧚‍♀️",":woman_frowning:":"🙍‍♀️",":woman_genie:":"🧞‍♀️",":woman_gesturing_no:":"🙅‍♀️",":woman_gesturing_ok:":"🙆‍♀️",":woman_getting_face_massage:":"💆‍♀️",":woman_getting_haircut:":"💇‍♀️",":woman_golfing:":"🏌️‍♀️",":woman_guard:":"💂‍♀️",":woman_health_worker:":"👩‍⚕️",":woman_in_lotus_position:":"🧘‍♀️",":woman_in_steamy_room:":"🧖‍♀️",":woman_judge:":"👩‍⚖️",":woman_juggling:":"🤹‍♀️",":woman_kneeling:":"🧎‍♀️",":woman_lifting_weights:":"🏋️‍♀️",":woman_mage:":"🧙‍♀️",":woman_mountain_biking:":"🚵‍♀️",":woman_pilot:":"👩‍✈️",":woman_playing_handball:":"🤾‍♀️",":woman_playing_water_polo:":"🤽‍♀️",":woman_police_officer:":"👮‍♀️",":woman_pouting:":"🙎‍♀️",":woman_raising_hand:":"🙋‍♀️",":woman_rowing_boat:":"🚣‍♀️",":woman_running:":"🏃‍♀️",":woman_shrugging:":"🤷‍♀️",":woman_standing:":"🧍‍♀️",":woman_superhero:":"🦸‍♀️",":woman_supervillain:":"🦹‍♀️",":woman_surfing:":"🏄‍♀️",":woman_swimming:":"🏊‍♀️",":woman_tipping_hand:":"💁‍♀️",":woman_vampire:":"🧛‍♀️",":woman_walking:":"🚶‍♀️",":woman_wearing_turban:":"👳‍♀️",":woman_zombie:":"🧟‍♀️",":women_with_bunny_ears_partying:":"👯‍♀️",":women_wrestling:":"🤼♀️",":writing_hand_tone1:":"✍️🏻",":writing_hand_tone2:":"✍️🏼",":writing_hand_tone3:":"✍️🏽",":writing_hand_tone4:":"✍️🏾",":writing_hand_tone5:":"✍️🏿",":keycap_asterisk:":"*️⃣",":asterisk:":"*️⃣",":eight:":"8️⃣",":five:":"5️⃣",":four:":"4️⃣",":hash:":"#️⃣",":man_bouncing_ball:":"⛹️‍♂️",":nine:":"9️⃣",":one:":"1️⃣",":seven:":"7️⃣",":six:":"6️⃣",":three:":"3️⃣",":two:":"2️⃣",":woman_bouncing_ball:":"⛹️‍♀️",":zero:":"0️⃣",":100:":"💯",":1234:":"🔢",":8ball:":"🎱",":a:":"🅰️",":ab:":"🆎",":abacus:":"🧮",":abc:":"🔤",":abcd:":"🔡",":accept:":"🉑",":adhesive_bandage:":"🩹",":adult:":"🧑",":aerial_tramway:":"🚡",":airplane_arriving:":"🛬",":airplane_departure:":"🛫",":small_airplane:":"🛩️",":airplane_small:":"🛩️",":alien:":"👽",":ambulance:":"🚑",":amphora:":"🏺",":angel:":"👼",":anger:":"💢",":right_anger_bubble:":"🗯️",":anger_right:":"🗯️",":angry:":"😠",":anguished:":"😧",":ant:":"🐜",":apple:":"🍎",":arrow_down_small:":"🔽",":arrow_up_small:":"🔼",":arrows_clockwise:":"🔃",":arrows_counterclockwise:":"🔄",":art:":"🎨",":articulated_lorry:":"🚛",":astonished:":"😲",":athletic_shoe:":"👟",":atm:":"🏧",":auto_rickshaw:":"🛺",":avocado:":"🥑",":axe:":"🪓",":b:":"🅱️",":baby:":"👶",":baby_bottle:":"🍼",":baby_chick:":"🐤",":baby_symbol:":"🚼",":back:":"🔙",":bacon:":"🥓",":badger:":"🦡",":badminton:":"🏸",":bagel:":"🥯",":baggage_claim:":"🛄",":bald:":"🦲",":ballet_shoes:":"🩰",":balloon:":"🎈",":ballot_box_with_ballot:":"🗳️",":ballot_box:":"🗳️",":bamboo:":"🎍",":banana:":"🍌",":banjo:":"🪕",":bank:":"🏦",":bar_chart:":"📊",":barber:":"💈",":basket:":"🧺",":basketball:":"🏀",":bat:":"🦇",":bath:":"🛀",":bathtub:":"🛁",":battery:":"🔋",":beach_with_umbrella:":"🏖️",":beach:":"🏖️",":bear:":"🐻",":bearded_person:":"🧔",":bed:":"🛏️",":bee:":"🐝",":beer:":"🍺",":beers:":"🍻",":beetle:":"🐞",":beginner:":"🔰",":bell:":"🔔",":bellhop_bell:":"🛎️",":bellhop:":"🛎️",":bento:":"🍱",":beverage_box:":"🧃",":bike:":"🚲",":bikini:":"👙",":billed_cap:":"🧢",":bird:":"🐦",":birthday:":"🎂",":black_heart:":"🖤",":black_joker:":"🃏",":black_square_button:":"🔲",":person_with_blond_hair:":"👱",":blond_haired_person:":"👱",":blossom:":"🌼",":blowfish:":"🐡",":blue_book:":"📘",":blue_car:":"🚙",":blue_circle:":"🔵",":blue_heart:":"💙",":blue_square:":"🟦",":blush:":"😊",":boar:":"🐗",":bomb:":"💣",":bone:":"🦴",":book:":"📖",":bookmark:":"🔖",":bookmark_tabs:":"📑",":books:":"📚",":boom:":"💥",":boot:":"👢",":bouquet:":"💐",":archery:":"🏹",":bow_and_arrow:":"🏹",":bowl_with_spoon:":"🥣",":bowling:":"🎳",":boxing_gloves:":"🥊",":boxing_glove:":"🥊",":boy:":"👦",":brain:":"🧠",":bread:":"🍞",":breast_feeding:":"🤱",":bricks:":"🧱",":bride_with_veil:":"👰",":bridge_at_night:":"🌉",":briefcase:":"💼",":briefs:":"🩲",":broccoli:":"🥦",":broken_heart:":"💔",":broom:":"🧹",":brown_circle:":"🟤",":brown_heart:":"🤎",":brown_square:":"🟫",":bug:":"🐛",":bulb:":"💡",":bullettrain_front:":"🚅",":bullettrain_side:":"🚄",":burrito:":"🌯",":bus:":"🚌",":busstop:":"🚏",":bust_in_silhouette:":"👤",":busts_in_silhouette:":"👥",":butter:":"🧈",":butterfly:":"🦋",":cactus:":"🌵",":cake:":"🍰",":calendar:":"📆",":spiral_calendar_pad:":"🗓️",":calendar_spiral:":"🗓️",":call_me_hand:":"🤙",":call_me:":"🤙",":calling:":"📲",":camel:":"🐫",":camera:":"📷",":camera_with_flash:":"📸",":camping:":"🏕️",":candle:":"🕯️",":candy:":"🍬",":canned_food:":"🥫",":kayak:":"🛶",":canoe:":"🛶",":capital_abcd:":"🔠",":card_file_box:":"🗃️",":card_box:":"🗃️",":card_index:":"📇",":carousel_horse:":"🎠",":carrot:":"🥕",":cat2:":"🐈",":cat:":"🐱",":cd:":"💿",":chair:":"🪑",":bottle_with_popping_cork:":"🍾",":champagne:":"🍾",":clinking_glass:":"🥂",":champagne_glass:":"🥂",":chart:":"💹",":chart_with_downwards_trend:":"📉",":chart_with_upwards_trend:":"📈",":checkered_flag:":"🏁",":cheese_wedge:":"🧀",":cheese:":"🧀",":cherries:":"🍒",":cherry_blossom:":"🌸",":chestnut:":"🌰",":chicken:":"🐔",":child:":"🧒",":children_crossing:":"🚸",":chipmunk:":"🐿️",":chocolate_bar:":"🍫",":chopsticks:":"🥢",":christmas_tree:":"🎄",":cinema:":"🎦",":circus_tent:":"🎪",":city_dusk:":"🌆",":city_sunrise:":"🌇",":city_sunset:":"🌇",":cityscape:":"🏙️",":cl:":"🆑",":clap:":"👏",":clapper:":"🎬",":classical_building:":"🏛️",":clipboard:":"📋",":clock1030:":"🕥",":clock10:":"🕙",":clock1130:":"🕦",":clock11:":"🕚",":clock1230:":"🕧",":clock12:":"🕛",":clock130:":"🕜",":clock1:":"🕐",":clock230:":"🕝",":clock2:":"🕑",":clock330:":"🕞",":clock3:":"🕒",":clock430:":"🕟",":clock4:":"🕓",":clock530:":"🕠",":clock5:":"🕔",":clock630:":"🕡",":clock6:":"🕕",":clock730:":"🕢",":clock7:":"🕖",":clock830:":"🕣",":clock8:":"🕗",":clock930:":"🕤",":clock9:":"🕘",":mantlepiece_clock:":"🕰️",":clock:":"🕰️",":closed_book:":"📕",":closed_lock_with_key:":"🔐",":closed_umbrella:":"🌂",":cloud_with_lightning:":"🌩️",":cloud_lightning:":"🌩️",":cloud_with_rain:":"🌧️",":cloud_rain:":"🌧️",":cloud_with_snow:":"🌨️",":cloud_snow:":"🌨️",":cloud_with_tornado:":"🌪️",":cloud_tornado:":"🌪️",":clown_face:":"🤡",":clown:":"🤡",":coat:":"🧥",":cocktail:":"🍸",":coconut:":"🥥",":cold_face:":"🥶",":cold_sweat:":"😰",":compass:":"🧭",":compression:":"🗜️",":computer:":"💻",":confetti_ball:":"🎊",":confounded:":"😖",":confused:":"😕",":construction:":"🚧",":building_construction:":"🏗️",":construction_site:":"🏗️",":construction_worker:":"👷",":control_knobs:":"🎛️",":convenience_store:":"🏪",":cookie:":"🍪",":cooking:":"🍳",":cool:":"🆒",":corn:":"🌽",":couch_and_lamp:":"🛋️",":couch:":"🛋️",":couple:":"👫",":couple_with_heart:":"💑",":couplekiss:":"💏",":cow2:":"🐄",":cow:":"🐮",":face_with_cowboy_hat:":"🤠",":cowboy:":"🤠",":crab:":"🦀",":lower_left_crayon:":"🖍️",":crayon:":"🖍️",":credit_card:":"💳",":crescent_moon:":"🌙",":cricket:":"🦗",":cricket_bat_ball:":"🏏",":cricket_game:":"🏏",":crocodile:":"🐊",":croissant:":"🥐",":crossed_flags:":"🎌",":crown:":"👑",":passenger_ship:":"🛳️",":cruise_ship:":"🛳️",":cry:":"😢",":crying_cat_face:":"😿",":crystal_ball:":"🔮",":cucumber:":"🥒",":cup_with_straw:":"🥤",":cupcake:":"🧁",":cupid:":"💘",":curling_stone:":"🥌",":curly_haired:":"🦱",":currency_exchange:":"💱",":curry:":"🍛",":pudding:":"🍮",":flan:":"🍮",":custard:":"🍮",":customs:":"🛃",":cut_of_meat:":"🥩",":cyclone:":"🌀",":dagger_knife:":"🗡️",":dagger:":"🗡️",":dancer:":"💃",":dango:":"🍡",":dark_sunglasses:":"🕶️",":dart:":"🎯",":dash:":"💨",":date:":"📅",":deaf_person:":"🧏",":deciduous_tree:":"🌳",":deer:":"🦌",":department_store:":"🏬",":desert:":"🏜️",":desktop_computer:":"🖥️",":desktop:":"🖥️",":spy:":"🕵️",":sleuth_or_spy:":"🕵️",":detective:":"🕵️",":diamond_shape_with_a_dot_inside:":"💠",":disappointed:":"😞",":disappointed_relieved:":"😥",":card_index_dividers:":"🗂️",":dividers:":"🗂️",":diving_mask:":"🤿",":diya_lamp:":"🪔",":dizzy:":"💫",":dizzy_face:":"😵",":dna:":"🧬",":do_not_litter:":"🚯",":dog2:":"🐕",":dog:":"🐶",":dollar:":"💵",":dolls:":"🎎",":dolphin:":"🐬",":door:":"🚪",":doughnut:":"🍩",":dove_of_peace:":"🕊️",":dove:":"🕊️",":dragon:":"🐉",":dragon_face:":"🐲",":dress:":"👗",":dromedary_camel:":"🐪",":drool:":"🤤",":drooling_face:":"🤤",":drop_of_blood:":"🩸",":droplet:":"💧",":drum_with_drumsticks:":"🥁",":drum:":"🥁",":duck:":"🦆",":dumpling:":"🥟",":dvd:":"📀",":email:":"📧",":e-mail:":"📧",":eagle:":"🦅",":ear:":"👂",":ear_of_rice:":"🌾",":ear_with_hearing_aid:":"🦻",":earth_africa:":"🌍",":earth_americas:":"🌎",":earth_asia:":"🌏",":egg:":"🥚",":eggplant:":"🍆",":electric_plug:":"🔌",":elephant:":"🐘",":elf:":"🧝",":end:":"🔚",":envelope_with_arrow:":"📩",":euro:":"💶",":european_castle:":"🏰",":european_post_office:":"🏤",":evergreen_tree:":"🌲",":exploding_head:":"🤯",":expressionless:":"😑",":eye:":"👁️",":eyeglasses:":"👓",":eyes:":"👀",":face_vomiting:":"🤮",":face_with_hand_over_mouth:":"🤭",":face_with_monocle:":"🧐",":face_with_raised_eyebrow:":"🤨",":face_with_symbols_over_mouth:":"🤬",":factory:":"🏭",":fairy:":"🧚",":falafel:":"🧆",":fallen_leaf:":"🍂",":family:":"👪",":fax:":"📠",":fearful:":"😨",":paw_prints:":"🐾",":feet:":"🐾",":ferris_wheel:":"🎡",":field_hockey:":"🏑",":file_cabinet:":"🗄️",":file_folder:":"📁",":film_frames:":"🎞️",":hand_with_index_and_middle_finger_crossed:":"🤞",":fingers_crossed:":"🤞",":flame:":"🔥",":fire:":"🔥",":fire_engine:":"🚒",":fire_extinguisher:":"🧯",":firecracker:":"🧨",":fireworks:":"🎆",":first_place_medal:":"🥇",":first_place:":"🥇",":first_quarter_moon:":"🌓",":first_quarter_moon_with_face:":"🌛",":fish:":"🐟",":fish_cake:":"🍥",":fishing_pole_and_fish:":"🎣",":waving_black_flag:":"🏴",":flag_black:":"🏴",":waving_white_flag:":"🏳️",":flag_white:":"🏳️",":flags:":"🎏",":flamingo:":"🦩",":flashlight:":"🔦",":floppy_disk:":"💾",":flower_playing_cards:":"🎴",":flushed:":"😳",":flying_disc:":"🥏",":flying_saucer:":"🛸",":fog:":"🌫️",":foggy:":"🌁",":foot:":"🦶",":football:":"🏈",":footprints:":"👣",":fork_and_knife:":"🍴",":fork_and_knife_with_plate:":"🍽️",":fork_knife_plate:":"🍽️",":fortune_cookie:":"🥠",":four_leaf_clover:":"🍀",":fox_face:":"🦊",":fox:":"🦊",":frame_with_picture:":"🖼️",":frame_photo:":"🖼️",":free:":"🆓",":baguette_bread:":"🥖",":french_bread:":"🥖",":fried_shrimp:":"🍤",":fries:":"🍟",":frog:":"🐸",":frowning:":"😦",":full_moon:":"🌕",":full_moon_with_face:":"🌝",":game_die:":"🎲",":garlic:":"🧄",":gem:":"💎",":genie:":"🧞",":ghost:":"👻",":gift:":"🎁",":gift_heart:":"💝",":giraffe:":"🦒",":girl:":"👧",":globe_with_meridians:":"🌐",":gloves:":"🧤",":goal_net:":"🥅",":goal:":"🥅",":goat:":"🐐",":goggles:":"🥽",":gorilla:":"🦍",":grapes:":"🍇",":green_apple:":"🍏",":green_book:":"📗",":green_circle:":"🟢",":green_heart:":"💚",":green_square:":"🟩",":grimacing:":"😬",":grin:":"😁",":grinning:":"😀",":guardsman:":"💂",":guard:":"💂",":guide_dog:":"🦮",":guitar:":"🎸",":gun:":"🔫",":hamburger:":"🍔",":hammer:":"🔨",":hamster:":"🐹",":raised_hand_with_fingers_splayed:":"🖐️",":hand_splayed:":"🖐️",":handbag:":"👜",":shaking_hands:":"🤝",":handshake:":"🤝",":hatched_chick:":"🐥",":hatching_chick:":"🐣",":face_with_head_bandage:":"🤕",":head_bandage:":"🤕",":headphones:":"🎧",":hear_no_evil:":"🙉",":heart_decoration:":"💟",":heart_eyes:":"😍",":heart_eyes_cat:":"😻",":heartbeat:":"💓",":heartpulse:":"💗",":heavy_dollar_sign:":"💲",":hedgehog:":"🦔",":helicopter:":"🚁",":herb:":"🌿",":hibiscus:":"🌺",":high_brightness:":"🔆",":high_heel:":"👠",":hiking_boot:":"🥾",":hindu_temple:":"🛕",":hippopotamus:":"🦛",":hockey:":"🏒",":hole:":"🕳️",":house_buildings:":"🏘️",":homes:":"🏘️",":honey_pot:":"🍯",":horse:":"🐴",":horse_racing:":"🏇",":hospital:":"🏥",":hot_face:":"🥵",":hot_pepper:":"🌶️",":hot_dog:":"🌭",":hotdog:":"🌭",":hotel:":"🏨",":house:":"🏠",":derelict_house_building:":"🏚️",":house_abandoned:":"🏚️",":house_with_garden:":"🏡",":hugging_face:":"🤗",":hugging:":"🤗",":hushed:":"😯",":ice_cream:":"🍨",":ice_cube:":"🧊",":icecream:":"🍦",":id:":"🆔",":ideograph_advantage:":"🉐",":imp:":"👿",":inbox_tray:":"📥",":incoming_envelope:":"📨",":innocent:":"😇",":iphone:":"📱",":desert_island:":"🏝️",":island:":"🏝️",":izakaya_lantern:":"🏮",":jack_o_lantern:":"🎃",":japan:":"🗾",":japanese_castle:":"🏯",":japanese_goblin:":"👺",":japanese_ogre:":"👹",":jeans:":"👖",":jigsaw:":"🧩",":joy:":"😂",":joy_cat:":"😹",":joystick:":"🕹️",":kaaba:":"🕋",":kangaroo:":"🦘",":old_key:":"🗝️",":key2:":"🗝️",":key:":"🔑",":keycap_ten:":"🔟",":kimono:":"👘",":kiss:":"💋",":kissing:":"😗",":kissing_cat:":"😽",":kissing_closed_eyes:":"😚",":kissing_heart:":"😘",":kissing_smiling_eyes:":"😙",":kite:":"🪁",":kiwifruit:":"🥝",":kiwi:":"🥝",":knife:":"🔪",":koala:":"🐨",":koko:":"🈁",":lab_coat:":"🥼",":label:":"🏷️",":lacrosse:":"🥍",":large_blue_diamond:":"🔷",":large_orange_diamond:":"🔶",":last_quarter_moon:":"🌗",":last_quarter_moon_with_face:":"🌜",":satisfied:":"😆",":laughing:":"😆",":leafy_green:":"🥬",":leaves:":"🍃",":ledger:":"📒",":left_fist:":"🤛",":left_facing_fist:":"🤛",":left_luggage:":"🛅",":leg:":"🦵",":lemon:":"🍋",":leopard:":"🐆",":level_slider:":"🎚️",":man_in_business_suit_levitating:":"🕴️",":levitate:":"🕴️",":light_rail:":"🚈",":link:":"🔗",":lion:":"🦁",":lion_face:":"🦁",":lips:":"👄",":lipstick:":"💄",":lizard:":"🦎",":llama:":"🦙",":lobster:":"🦞",":lock:":"🔒",":lock_with_ink_pen:":"🔏",":lollipop:":"🍭",":loud_sound:":"🔊",":loudspeaker:":"📢",":love_hotel:":"🏩",":love_letter:":"💌",":love_you_gesture:":"🤟",":low_brightness:":"🔅",":luggage:":"🧳",":liar:":"🤥",":lying_face:":"🤥",":mag:":"🔍",":mag_right:":"🔎",":mage:":"🧙",":magnet:":"🧲",":mahjong:":"🀄",":mailbox:":"📫",":mailbox_closed:":"📪",":mailbox_with_mail:":"📬",":mailbox_with_no_mail:":"📭",":man:":"👨",":male_dancer:":"🕺",":man_dancing:":"🕺",":man_in_tuxedo:":"🤵",":man_with_gua_pi_mao:":"👲",":man_with_chinese_cap:":"👲",":mango:":"🥭",":mans_shoe:":"👞",":manual_wheelchair:":"🦽",":world_map:":"🗺️",":map:":"🗺️",":maple_leaf:":"🍁",":karate_uniform:":"🥋",":martial_arts_uniform:":"🥋",":mask:":"😷",":mate:":"🧉",":meat_on_bone:":"🍖",":mechanical_arm:":"🦾",":mechanical_leg:":"🦿",":sports_medal:":"🏅",":medal:":"🏅",":mega:":"📣",":melon:":"🍈",":menorah:":"🕎",":mens:":"🚹",":merperson:":"🧜",":sign_of_the_horns:":"🤘",":metal:":"🤘",":metro:":"🚇",":microbe:":"🦠",":studio_microphone:":"🎙️",":microphone2:":"🎙️",":microphone:":"🎤",":microscope:":"🔬",":reversed_hand_with_middle_finger_extended:":"🖕",":middle_finger:":"🖕",":military_medal:":"🎖️",":glass_of_milk:":"🥛",":milk:":"🥛",":milky_way:":"🌌",":minibus:":"🚐",":minidisc:":"💽",":mobile_phone_off:":"📴",":money_mouth_face:":"🤑",":money_mouth:":"🤑",":money_with_wings:":"💸",":moneybag:":"💰",":monkey:":"🐒",":monkey_face:":"🐵",":monorail:":"🚝",":moon_cake:":"🥮",":mortar_board:":"🎓",":mosque:":"🕌",":mosquito:":"🦟",":motorbike:":"🛵",":motor_scooter:":"🛵",":motorboat:":"🛥️",":racing_motorcycle:":"🏍️",":motorcycle:":"🏍️",":motorized_wheelchair:":"🦼",":motorway:":"🛣️",":mount_fuji:":"🗻",":mountain_cableway:":"🚠",":mountain_railway:":"🚞",":snow_capped_mountain:":"🏔️",":mountain_snow:":"🏔️",":mouse2:":"🐁",":mouse:":"🐭",":three_button_mouse:":"🖱️",":mouse_three_button:":"🖱️",":movie_camera:":"🎥",":moyai:":"🗿",":mother_christmas:":"🤶",":mrs_claus:":"🤶",":muscle:":"💪",":mushroom:":"🍄",":musical_keyboard:":"🎹",":musical_note:":"🎵",":musical_score:":"🎼",":mute:":"🔇",":nail_care:":"💅",":name_badge:":"📛",":sick:":"🤢",":nauseated_face:":"🤢",":nazar_amulet:":"🧿",":necktie:":"👔",":nerd_face:":"🤓",":nerd:":"🤓",":neutral_face:":"😐",":new:":"🆕",":new_moon:":"🌑",":new_moon_with_face:":"🌚",":rolled_up_newspaper:":"🗞️",":newspaper2:":"🗞️",":newspaper:":"📰",":ng:":"🆖",":night_with_stars:":"🌃",":no_bell:":"🔕",":no_bicycles:":"🚳",":no_entry_sign:":"🚫",":no_mobile_phones:":"📵",":no_mouth:":"😶",":no_pedestrians:":"🚷",":no_smoking:":"🚭",":non-potable_water:":"🚱",":nose:":"👃",":notebook:":"📓",":notebook_with_decorative_cover:":"📔",":spiral_note_pad:":"🗒️",":notepad_spiral:":"🗒️",":notes:":"🎶",":nut_and_bolt:":"🔩",":o2:":"🅾️",":ocean:":"🌊",":stop_sign:":"🛑",":octagonal_sign:":"🛑",":octopus:":"🐙",":oden:":"🍢",":office:":"🏢",":oil_drum:":"🛢️",":oil:":"🛢️",":ok:":"🆗",":ok_hand:":"👌",":older_adult:":"🧓",":older_man:":"👴",":grandma:":"👵",":older_woman:":"👵",":om_symbol:":"🕉️",":on:":"🔛",":oncoming_automobile:":"🚘",":oncoming_bus:":"🚍",":oncoming_police_car:":"🚔",":oncoming_taxi:":"🚖",":one_piece_swimsuit:":"🩱",":onion:":"🧅",":open_file_folder:":"📂",":open_hands:":"👐",":open_mouth:":"😮",":orange_book:":"📙",":orange_circle:":"🟠",":orange_heart:":"🧡",":orange_square:":"🟧",":orangutan:":"🦧",":otter:":"🦦",":outbox_tray:":"📤",":owl:":"🦉",":ox:":"🐂",":oyster:":"🦪",":package:":"📦",":page_facing_up:":"📄",":page_with_curl:":"📃",":pager:":"📟",":lower_left_paintbrush:":"🖌️",":paintbrush:":"🖌️",":palm_tree:":"🌴",":palms_up_together:":"🤲",":pancakes:":"🥞",":panda_face:":"🐼",":paperclip:":"📎",":linked_paperclips:":"🖇️",":paperclips:":"🖇️",":parachute:":"🪂",":national_park:":"🏞️",":park:":"🏞️",":parking:":"🅿️",":parrot:":"🦜",":partying_face:":"🥳",":passport_control:":"🛂",":peach:":"🍑",":peacock:":"🦚",":shelled_peanut:":"🥜",":peanuts:":"🥜",":pear:":"🍐",":lower_left_ballpoint_pen:":"🖊️",":pen_ballpoint:":"🖊️",":lower_left_fountain_pen:":"🖋️",":pen_fountain:":"🖋️",":memo:":"📝",":pencil:":"📝",":penguin:":"🐧",":pensive:":"😔",":dancers:":"👯",":people_with_bunny_ears_partying:":"👯",":wrestlers:":"🤼",":wrestling:":"🤼",":people_wrestling:":"🤼",":performing_arts:":"🎭",":persevere:":"😣",":bicyclist:":"🚴",":person_biking:":"🚴",":bow:":"🙇",":person_bowing:":"🙇",":person_climbing:":"🧗",":cartwheel:":"🤸",":person_doing_cartwheel:":"🤸",":face_palm:":"🤦",":facepalm:":"🤦",":person_facepalming:":"🤦",":fencer:":"🤺",":fencing:":"🤺",":person_fencing:":"🤺",":person_frowning:":"🙍",":no_good:":"🙅",":person_gesturing_no:":"🙅",":ok_woman:":"🙆",":person_gesturing_ok:":"🙆",":haircut:":"💇",":person_getting_haircut:":"💇",":massage:":"💆",":person_getting_massage:":"💆",":golfer:":"🏌️",":person_golfing:":"🏌️",":person_in_lotus_position:":"🧘",":person_in_steamy_room:":"🧖",":juggling:":"🤹",":juggler:":"🤹",":person_juggling:":"🤹",":person_kneeling:":"🧎",":lifter:":"🏋️",":weight_lifter:":"🏋️",":person_lifting_weights:":"🏋️",":mountain_bicyclist:":"🚵",":person_mountain_biking:":"🚵",":handball:":"🤾",":person_playing_handball:":"🤾",":water_polo:":"🤽",":person_playing_water_polo:":"🤽",":person_with_pouting_face:":"🙎",":person_pouting:":"🙎",":raising_hand:":"🙋",":person_raising_hand:":"🙋",":rowboat:":"🚣",":person_rowing_boat:":"🚣",":runner:":"🏃",":person_running:":"🏃",":shrug:":"🤷",":person_shrugging:":"🤷",":person_standing:":"🧍",":surfer:":"🏄",":person_surfing:":"🏄",":swimmer:":"🏊",":person_swimming:":"🏊",":information_desk_person:":"💁",":person_tipping_hand:":"💁",":walking:":"🚶",":person_walking:":"🚶",":man_with_turban:":"👳",":person_wearing_turban:":"👳",":petri_dish:":"🧫",":pie:":"🥧",":pig2:":"🐖",":pig:":"🐷",":pig_nose:":"🐽",":pill:":"💊",":pinching_hand:":"🤏",":pineapple:":"🍍",":table_tennis:":"🏓",":ping_pong:":"🏓",":pizza:":"🍕",":worship_symbol:":"🛐",":place_of_worship:":"🛐",":pleading_face:":"🥺",":point_down:":"👇",":point_left:":"👈",":point_right:":"👉",":point_up_2:":"👆",":police_car:":"🚓",":cop:":"👮",":police_officer:":"👮",":poodle:":"🐩",":shit:":"💩",":hankey:":"💩",":poo:":"💩",":poop:":"💩",":popcorn:":"🍿",":post_office:":"🏣",":postal_horn:":"📯",":postbox:":"📮",":potable_water:":"🚰",":potato:":"🥔",":pouch:":"👝",":poultry_leg:":"🍗",":pound:":"💷",":pouting_cat:":"😾",":pray:":"🙏",":prayer_beads:":"📿",":expecting_woman:":"🤰",":pregnant_woman:":"🤰",":pretzel:":"🥨",":prince:":"🤴",":princess:":"👸",":printer:":"🖨️",":probing_cane:":"🦯",":film_projector:":"📽️",":projector:":"📽️",":punch:":"👊",":purple_circle:":"🟣",":purple_heart:":"💜",":purple_square:":"🟪",":purse:":"👛",":pushpin:":"📌",":put_litter_in_its_place:":"🚮",":rabbit2:":"🐇",":rabbit:":"🐰",":raccoon:":"🦝",":racing_car:":"🏎️",":race_car:":"🏎️",":racehorse:":"🐎",":radio:":"📻",":radio_button:":"🔘",":rage:":"😡",":railway_car:":"🚃",":railroad_track:":"🛤️",":railway_track:":"🛤️",":rainbow:":"🌈",":back_of_hand:":"🤚",":raised_back_of_hand:":"🤚",":raised_hands:":"🙌",":ram:":"🐏",":ramen:":"🍜",":rat:":"🐀",":razor:":"🪒",":receipt:":"🧾",":red_car:":"🚗",":red_circle:":"🔴",":red_envelope:":"🧧",":red_haired:":"🦰",":red_square:":"🟥",":regional_indicator_a:":"🇦",":regional_indicator_b:":"🇧",":regional_indicator_c:":"🇨",":regional_indicator_d:":"🇩",":regional_indicator_e:":"🇪",":regional_indicator_f:":"🇫",":regional_indicator_g:":"🇬",":regional_indicator_h:":"🇭",":regional_indicator_i:":"🇮",":regional_indicator_j:":"🇯",":regional_indicator_k:":"🇰",":regional_indicator_l:":"🇱",":regional_indicator_m:":"🇲",":regional_indicator_n:":"🇳",":regional_indicator_o:":"🇴",":regional_indicator_p:":"🇵",":regional_indicator_q:":"🇶",":regional_indicator_r:":"🇷",":regional_indicator_s:":"🇸",":regional_indicator_t:":"🇹",":regional_indicator_u:":"🇺",":regional_indicator_v:":"🇻",":regional_indicator_w:":"🇼",":regional_indicator_x:":"🇽",":regional_indicator_y:":"🇾",":regional_indicator_z:":"🇿",":relieved:":"😌",":reminder_ribbon:":"🎗️",":repeat:":"🔁",":repeat_one:":"🔂",":restroom:":"🚻",":revolving_hearts:":"💞",":rhinoceros:":"🦏",":rhino:":"🦏",":ribbon:":"🎀",":rice:":"🍚",":rice_ball:":"🍙",":rice_cracker:":"🍘",":rice_scene:":"🎑",":right_fist:":"🤜",":right_facing_fist:":"🤜",":ring:":"💍",":ringed_planet:":"🪐",":robot_face:":"🤖",":robot:":"🤖",":rocket:":"🚀",":rolling_on_the_floor_laughing:":"🤣",":rofl:":"🤣",":roll_of_paper:":"🧻",":roller_coaster:":"🎢",":face_with_rolling_eyes:":"🙄",":rolling_eyes:":"🙄",":rooster:":"🐓",":rose:":"🌹",":rosette:":"🏵️",":rotating_light:":"🚨",":round_pushpin:":"📍",":rugby_football:":"🏉",":running_shirt_with_sash:":"🎽",":sa:":"🈂️",":safety_pin:":"🧷",":safety_vest:":"🦺",":sake:":"🍶",":green_salad:":"🥗",":salad:":"🥗",":salt:":"🧂",":sandal:":"👡",":sandwich:":"🥪",":santa:":"🎅",":sari:":"🥻",":satellite:":"📡",":satellite_orbital:":"🛰️",":sauropod:":"🦕",":saxophone:":"🎷",":scarf:":"🧣",":school:":"🏫",":school_satchel:":"🎒",":scooter:":"🛴",":scorpion:":"🦂",":scream:":"😱",":scream_cat:":"🙀",":scroll:":"📜",":seat:":"💺",":second_place_medal:":"🥈",":second_place:":"🥈",":see_no_evil:":"🙈",":seedling:":"🌱",":selfie:":"🤳",":paella:":"🥘",":shallow_pan_of_food:":"🥘",":shark:":"🦈",":shaved_ice:":"🍧",":sheep:":"🐑",":shell:":"🐚",":shield:":"🛡️",":ship:":"🚢",":shirt:":"👕",":shopping_bags:":"🛍️",":shopping_trolley:":"🛒",":shopping_cart:":"🛒",":shorts:":"🩳",":shower:":"🚿",":shrimp:":"🦐",":shushing_face:":"🤫",":signal_strength:":"📶",":six_pointed_star:":"🔯",":skateboard:":"🛹",":ski:":"🎿",":skeleton:":"💀",":skull:":"💀",":skunk:":"🦨",":sled:":"🛷",":sleeping:":"😴",":sleeping_accommodation:":"🛌",":sleepy:":"😪",":slightly_frowning_face:":"🙁",":slight_frown:":"🙁",":slightly_smiling_face:":"🙂",":slight_smile:":"🙂",":slot_machine:":"🎰",":sloth:":"🦥",":small_blue_diamond:":"🔹",":small_orange_diamond:":"🔸",":small_red_triangle:":"🔺",":small_red_triangle_down:":"🔻",":smile:":"😄",":smile_cat:":"😸",":smiley:":"😃",":smiley_cat:":"😺",":smiling_face_with_3_hearts:":"🥰",":smiling_imp:":"😈",":smirk:":"😏",":smirk_cat:":"😼",":smoking:":"🚬",":snail:":"🐌",":snake:":"🐍",":sneeze:":"🤧",":sneezing_face:":"🤧",":snowboarder:":"🏂",":soap:":"🧼",":sob:":"😭",":socks:":"🧦",":softball:":"🥎",":soon:":"🔜",":sos:":"🆘",":sound:":"🔉",":space_invader:":"👾",":spaghetti:":"🍝",":sparkler:":"🎇",":sparkling_heart:":"💖",":speak_no_evil:":"🙊",":speaker:":"🔈",":speaking_head_in_silhouette:":"🗣️",":speaking_head:":"🗣️",":speech_balloon:":"💬",":left_speech_bubble:":"🗨️",":speech_left:":"🗨️",":speedboat:":"🚤",":spider:":"🕷️",":spider_web:":"🕸️",":sponge:":"🧽",":spoon:":"🥄",":squeeze_bottle:":"🧴",":squid:":"🦑",":stadium:":"🏟️",":star2:":"🌟",":star_struck:":"🤩",":stars:":"🌠",":station:":"🚉",":statue_of_liberty:":"🗽",":steam_locomotive:":"🚂",":stethoscope:":"🩺",":stew:":"🍲",":straight_ruler:":"📏",":strawberry:":"🍓",":stuck_out_tongue:":"😛",":stuck_out_tongue_closed_eyes:":"😝",":stuck_out_tongue_winking_eye:":"😜",":stuffed_pita:":"🥙",":stuffed_flatbread:":"🥙",":sun_with_face:":"🌞",":sunflower:":"🌻",":sunglasses:":"😎",":sunrise:":"🌅",":sunrise_over_mountains:":"🌄",":superhero:":"🦸",":supervillain:":"🦹",":sushi:":"🍣",":suspension_railway:":"🚟",":swan:":"🦢",":sweat:":"😓",":sweat_drops:":"💦",":sweat_smile:":"😅",":sweet_potato:":"🍠",":symbols:":"🔣",":synagogue:":"🕍",":syringe:":"💉",":t_rex:":"🦖",":taco:":"🌮",":tada:":"🎉",":takeout_box:":"🥡",":tanabata_tree:":"🎋",":tangerine:":"🍊",":taxi:":"🚕",":tea:":"🍵",":teddy_bear:":"🧸",":telephone_receiver:":"📞",":telescope:":"🔭",":tennis:":"🎾",":test_tube:":"🧪",":thermometer:":"🌡️",":face_with_thermometer:":"🤒",":thermometer_face:":"🤒",":thinking_face:":"🤔",":thinking:":"🤔",":third_place_medal:":"🥉",":third_place:":"🥉",":thought_balloon:":"💭",":thread:":"🧵",":-1:":"👎",":thumbdown:":"👎",":thumbsdown:":"👎",":+1:":"👍",":thumbup:":"👍",":thumbsup:":"👍",":ticket:":"🎫",":admission_tickets:":"🎟️",":tickets:":"🎟️",":tiger2:":"🐅",":tiger:":"🐯",":tired_face:":"😫",":toilet:":"🚽",":tokyo_tower:":"🗼",":tomato:":"🍅",":tone1:":"🏻",":tone2:":"🏼",":tone3:":"🏽",":tone4:":"🏾",":tone5:":"🏿",":tongue:":"👅",":toolbox:":"🧰",":hammer_and_wrench:":"🛠️",":tools:":"🛠️",":tooth:":"🦷",":top:":"🔝",":tophat:":"🎩",":trackball:":"🖲️",":tractor:":"🚜",":traffic_light:":"🚥",":train2:":"🚆",":train:":"🚋",":tram:":"🚊",":triangular_flag_on_post:":"🚩",":triangular_ruler:":"📐",":trident:":"🔱",":triumph:":"😤",":trolleybus:":"🚎",":trophy:":"🏆",":tropical_drink:":"🍹",":tropical_fish:":"🐠",":truck:":"🚚",":trumpet:":"🎺",":tulip:":"🌷",":whisky:":"🥃",":tumbler_glass:":"🥃",":turkey:":"🦃",":turtle:":"🐢",":tv:":"📺",":twisted_rightwards_arrows:":"🔀",":two_hearts:":"💕",":two_men_holding_hands:":"👬",":two_women_holding_hands:":"👭",":u5272:":"🈹",":u5408:":"🈴",":u55b6:":"🈺",":u6307:":"🈯",":u6708:":"🈷️",":u6709:":"🈶",":u6e80:":"🈵",":u7121:":"🈚",":u7533:":"🈸",":u7981:":"🈲",":u7a7a:":"🈳",":unamused:":"😒",":underage:":"🔞",":unicorn_face:":"🦄",":unicorn:":"🦄",":unlock:":"🔓",":up:":"🆙",":upside_down_face:":"🙃",":upside_down:":"🙃",":vampire:":"🧛",":vertical_traffic_light:":"🚦",":vhs:":"📼",":vibration_mode:":"📳",":video_camera:":"📹",":video_game:":"🎮",":violin:":"🎻",":volcano:":"🌋",":volleyball:":"🏐",":vs:":"🆚",":raised_hand_with_part_between_middle_and_ring_fingers:":"🖖",":vulcan:":"🖖",":waffle:":"🧇",":waning_crescent_moon:":"🌘",":waning_gibbous_moon:":"🌖",":wastebasket:":"🗑️",":water_buffalo:":"🐃",":watermelon:":"🍉",":wave:":"👋",":waxing_crescent_moon:":"🌒",":waxing_gibbous_moon:":"🌔",":wc:":"🚾",":weary:":"😩",":wedding:":"💒",":whale2:":"🐋",":whale:":"🐳",":white_flower:":"💮",":white_haired:":"🦳",":white_heart:":"🤍",":white_square_button:":"🔳",":white_sun_behind_cloud:":"🌥️",":white_sun_cloud:":"🌥️",":white_sun_behind_cloud_with_rain:":"🌦️",":white_sun_rain_cloud:":"🌦️",":white_sun_with_small_cloud:":"🌤️",":white_sun_small_cloud:":"🌤️",":wilted_flower:":"🥀",":wilted_rose:":"🥀",":wind_blowing_face:":"🌬️",":wind_chime:":"🎐",":wine_glass:":"🍷",":wink:":"😉",":wolf:":"🐺",":woman:":"👩",":woman_with_headscarf:":"🧕",":womans_clothes:":"👚",":womans_flat_shoe:":"🥿",":womans_hat:":"👒",":womens:":"🚺",":woozy_face:":"🥴",":worried:":"😟",":wrench:":"🔧",":yarn:":"🧶",":yawning_face:":"🥱",":yellow_circle:":"🟡",":yellow_heart:":"💛",":yellow_square:":"🟨",":yen:":"💴",":yo_yo:":"🪀",":yum:":"😋",":zany_face:":"🤪",":zebra:":"🦓",":zipper_mouth_face:":"🤐",":zipper_mouth:":"🤐",":zombie:":"🧟",":zzz:":"💤",":airplane:":"✈️",":alarm_clock:":"⏰",":alembic:":"⚗️",":anchor:":"⚓",":aquarius:":"♒",":aries:":"♈",":arrow_backward:":"◀️",":arrow_double_down:":"⏬",":arrow_double_up:":"⏫",":arrow_down:":"⬇️",":arrow_forward:":"▶️",":arrow_heading_down:":"⤵️",":arrow_heading_up:":"⤴️",":arrow_left:":"⬅️",":arrow_lower_left:":"↙️",":arrow_lower_right:":"↘️",":arrow_right:":"➡️",":arrow_right_hook:":"↪️",":arrow_up:":"⬆️",":arrow_up_down:":"↕️",":arrow_upper_left:":"↖️",":arrow_upper_right:":"↗️",":asterisk_symbol:":"*️",":atom_symbol:":"⚛️",":atom:":"⚛️",":ballot_box_with_check:":"☑️",":bangbang:":"‼️",":baseball:":"⚾",":umbrella_on_ground:":"⛱️",":beach_umbrella:":"⛱️",":biohazard_sign:":"☣️",":biohazard:":"☣️",":black_circle:":"⚫",":black_large_square:":"⬛",":black_medium_small_square:":"◾",":black_medium_square:":"◼️",":black_nib:":"✒️",":black_small_square:":"▪️",":cancer:":"♋",":capricorn:":"♑",":chains:":"⛓️",":chess_pawn:":"♟️",":church:":"⛪",":cloud:":"☁️",":clubs:":"♣️",":coffee:":"☕",":coffin:":"⚰️",":comet:":"☄️",":congratulations:":"㊗️",":copyright:":"©️",":latin_cross:":"✝️",":cross:":"✝️",":crossed_swords:":"⚔️",":curly_loop:":"➰",":diamonds:":"♦️",":digit_eight:":"8️",":digit_five:":"5️",":digit_four:":"4️",":digit_nine:":"9️",":digit_one:":"1️",":digit_seven:":"7️",":digit_six:":"6️",":digit_three:":"3️",":digit_two:":"2️",":digit_zero:":"0️",":eight_pointed_black_star:":"✴️",":eight_spoked_asterisk:":"✳️",":eject_symbol:":"⏏️",":eject:":"⏏️",":envelope:":"✉️",":exclamation:":"❗",":fast_forward:":"⏩",":female_sign:":"♀️",":ferry:":"⛴️",":fist:":"✊",":fleur-de-lis:":"⚜️",":fountain:":"⛲",":white_frowning_face:":"☹️",":frowning2:":"☹️",":fuelpump:":"⛽",":gear:":"⚙️",":gemini:":"♊",":golf:":"⛳",":grey_exclamation:":"❕",":grey_question:":"❔",":hammer_and_pick:":"⚒️",":hammer_pick:":"⚒️",":heart:":"❤️",":heavy_heart_exclamation_mark_ornament:":"❣️",":heart_exclamation:":"❣️",":hearts:":"♥️",":heavy_check_mark:":"✔️",":heavy_division_sign:":"➗",":heavy_minus_sign:":"➖",":heavy_multiplication_x:":"✖️",":heavy_plus_sign:":"➕",":helmet_with_white_cross:":"⛑️",":helmet_with_cross:":"⛑️",":hotsprings:":"♨️",":hourglass:":"⌛",":hourglass_flowing_sand:":"⏳",":ice_skate:":"⛸️",":infinity:":"♾️",":information_source:":"ℹ️",":interrobang:":"⁉️",":keyboard:":"⌨️",":left_right_arrow:":"↔️",":leftwards_arrow_with_hook:":"↩️",":leo:":"♌",":libra:":"♎",":loop:":"➿",":m:":"Ⓜ️",":male_sign:":"♂️",":medical_symbol:":"⚕️",":mountain:":"⛰️",":negative_squared_cross_mark:":"❎",":no_entry:":"⛔",":o:":"⭕",":ophiuchus:":"⛎",":orthodox_cross:":"☦️",":part_alternation_mark:":"〽️",":partly_sunny:":"⛅",":double_vertical_bar:":"⏸️",":pause_button:":"⏸️",":peace_symbol:":"☮️",":peace:":"☮️",":pencil2:":"✏️",":basketball_player:":"⛹️",":person_with_ball:":"⛹️",":person_bouncing_ball:":"⛹️",":pick:":"⛏️",":pisces:":"♓",":play_pause:":"⏯️",":point_up:":"☝️",":pound_symbol:":"#️",":question:":"❓",":radioactive_sign:":"☢️",":radioactive:":"☢️",":raised_hand:":"✋",":record_button:":"⏺️",":recycle:":"♻️",":registered:":"®️",":relaxed:":"☺️",":rewind:":"⏪",":sagittarius:":"♐",":sailboat:":"⛵",":scales:":"⚖️",":scissors:":"✂️",":scorpius:":"♏",":secret:":"㊙️",":shamrock:":"☘️",":shinto_shrine:":"⛩️",":skier:":"⛷️",":skull_and_crossbones:":"☠️",":skull_crossbones:":"☠️",":snowflake:":"❄️",":snowman2:":"☃️",":snowman:":"⛄",":soccer:":"⚽",":spades:":"♠️",":sparkle:":"❇️",":sparkles:":"✨",":star:":"⭐",":star_and_crescent:":"☪️",":star_of_david:":"✡️",":stop_button:":"⏹️",":stopwatch:":"⏱️",":sunny:":"☀️",":taurus:":"♉",":telephone:":"☎️",":tent:":"⛺",":thunder_cloud_and_rain:":"⛈️",":thunder_cloud_rain:":"⛈️",":timer_clock:":"⏲️",":timer:":"⏲️",":tm:":"™️",":next_track:":"⏭️",":track_next:":"⏭️",":previous_track:":"⏮️",":track_previous:":"⏮️",":umbrella2:":"☂️",":umbrella:":"☔",":funeral_urn:":"⚱️",":urn:":"⚱️",":v:":"✌️",":virgo:":"♍",":warning:":"⚠️",":watch:":"⌚",":wavy_dash:":"〰️",":wheel_of_dharma:":"☸️",":wheelchair:":"♿",":white_check_mark:":"✅",":white_circle:":"⚪",":white_large_square:":"⬜",":white_medium_small_square:":"◽",":white_medium_square:":"◻️",":white_small_square:":"▫️",":writing_hand:":"✍️",":x:":"❌",":yin_yang:":"☯️",":zap:":"⚡"},js=new RegExp(/:[-+_a-z0-9]+:/,"gi"),Os=function(e){return ks[e]||e},xs=new RegExp("((\\s|^)".concat("(\\*\\\\0\\/\\*|\\*\\\\O\\/\\*|\\-___\\-|\\:'\\-\\)|'\\:\\-\\)|'\\:\\-D|\\>\\:\\-\\)|>\\:\\-\\)|'\\:\\-\\(|\\>\\:\\-\\(|>\\:\\-\\(|\\:'\\-\\(|O\\:\\-\\)|0\\:\\-3|0\\:\\-\\)|0;\\^\\)|O;\\-\\)|0;\\-\\)|O\\:\\-3|\\-__\\-|\\:\\-Þ|\\:\\-Þ|\\<\\/3|<\\/3|\\:'\\)|\\:\\-D|'\\:\\)|'\\=\\)|'\\:D|'\\=D|\\>\\:\\)|>\\:\\)|\\>;\\)|>;\\)|\\>\\=\\)|>\\=\\)|;\\-\\)|\\*\\-\\)|;\\-\\]|;\\^\\)|'\\:\\(|'\\=\\(|\\:\\-\\*|\\:\\^\\*|\\>\\:P|>\\:P|X\\-P|\\>\\:\\[|>\\:\\[|\\:\\-\\(|\\:\\-\\[|\\>\\:\\(|>\\:\\(|\\:'\\(|;\\-\\(|\\>\\.\\<|>\\.<|#\\-\\)|%\\-\\)|X\\-\\)|\\\\0\\/|\\\\O\\/|0\\:3|0\\:\\)|O\\:\\)|O\\=\\)|O\\:3|B\\-\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\>\\:\\\\|>\\:\\\\|\\>\\:\\/|>\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\-P|\\:Þ|\\:Þ|\\:\\-b|\\:\\-O|O_O|\\>\\:O|>\\:O|\\:\\-X|\\:\\-#|\\:\\-\\)|\\(y\\)|\\<3|<3|\\=D|;\\)|\\*\\)|;\\]|;D|\\:\\*|\\=\\*|\\:\\(|\\:\\[|\\=\\(|\\:@|;\\(|D\\:|\\:\\$|\\=\\$|#\\)|%\\)|X\\)|B\\)|8\\)|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\=P|\\:b|\\:O|\\:X|\\:#|\\=X|\\=#|\\:\\)|\\=\\]|\\=\\)|\\:\\]|\\:D)","(?=\\s|$|[!,.?]))"),"gi"),Ss=function(e){var n={"&":"&","&":"&","&":"&","<":"<","<":"<","<":"<",">":">",">":">",">":">",""":'"',""":'"',""":'"',"'":"'","'":"'","'":"'"};return e.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,(function(e){return n[e]}))},Cs=function(e){return e=(e=e.replace(js,Os)).replace(xs,(function(e,n,t,r){return r&&Ss(r)in ws?(r=Ss(r),ws[r]):e}))},Ps="©|®|[ -〹]|[㄀-㌀]|\ud83c[퀀-\udfff]|\ud83d[퀀-\udfff]|\ud83e[퀀-\udfff]",Rs=[Ps,":.{1,40}:"," |\n"].join("|"),Ts=function(e){return"".concat(e,"")},Es=function(e){return''.concat(e,"")},Ds=function(e){return!function(e){return e.replace(new RegExp(Rs,"g"),"")}(e=function(e){return e&&e.replace(/\s/g,"")}(e)).length},As=function(e){var n=Cs(e);return Ds(n)?n.replace(new RegExp(Ps,"g"),Es):n.replace(new RegExp(Ps,"g"),Ts)},zs=t(1362),Ls=t.n(zs),Ns=new Ls.a({html:!0,breaks:!0,linkify:!0,typographer:!0});function Is(e,n,t){var r="";if(n>1){var o=e[n-t],i=e[n];if(o.map&&o.map[1]&&i.map&&i.map[0]){var a=i.map[0]-o.map[1];a>0&&(r="
".repeat(a))}if(e[n-t+1].type.includes("list_close")&&(o=e[n-t-2]).map&&o.map[1]&&i.map&&i.map[0]){var s=i.map[0]-o.map[1];s>0&&(r="
".repeat(s))}}return r}var Ms=Ns.renderer.rules.link_open||function(e,n,t,r,o){return o.renderToken(e,n,t)};Ns.renderer.rules.link_open=function(e,n,t,r,o){var i=e[n].attrIndex("target"),a=e[n].attrIndex("rel");return i<0?e[n].attrPush(["target","_blank"]):e[n].attrs[i][1]="_blank",a<0?e[n].attrPush(["rel","noopener noreferrer"]):e[n].attrs[a][1]="noopener noreferrer",Ms(e,n,t,r,o)},Ns.renderer.rules.paragraph_open=function(e,n,t,r,o){return Is(e,n,2)+Ms(e,n,t,r,o)},Ns.renderer.rules.list_item_open=function(e,n,t,r,o){return Is(e,n,3)+Ms(e,n,t,r,o)},Ns.use((function(e){var n=function(e,n,t,r,o){var i=e[n];return"*"===i.markup&&(i.tag="strong"),o.renderToken(e,n,t)};e.renderer.rules.em_open=n,e.renderer.rules.em_close=n})),Ns.use((function(e){e.inline.ruler.push("strikethrough",(function(e,n){var t=e.src.charCodeAt(e.pos);if(n)return!1;if(126!==t)return!1;for(var r=e.scanDelims(e.pos,!0),o=String.fromCharCode(t),i=r.length,a=0;ae.length)&&(n=e.length);for(var t=0,r=new Array(n);t/g,">").replace(/"/g,""").replace(/'/g,"'")).replace(/\n/g,(function(){return"
"}))},dir:"auto"})})),o_=t(1690),i_=t.n(o_),a_=Object(gr.g)((function(e){var n=e.appId,t=e.blockId,o=e.text,i=e.fields,a=e.accessory,s=e.parser;return Object(r.h)(Ba,{appId:n,blockId:t},Object(r.h)("div",{className:F(i_.a,"uikit-section-block")},Object(r.h)("div",{className:F(i_.a,"uikit-section-block__content")},o&&Object(r.h)("div",{className:F(i_.a,"uikit-section-block__text")},s.text(o,Da.BLOCK_CONTEXT.SECTION)),Array.isArray(i)&&i.length>0&&Object(r.h)("div",{className:F(i_.a,"uikit-section-block__fields")},i.map((function(e,n){return Object(r.h)("div",{key:n,className:F(i_.a,"uikit-section-block__field")},s.text(e,Da.BLOCK_CONTEXT.SECTION))})))),a&&Object(r.h)("div",{className:F(i_.a,"uikit-section-block__accessory")},s.renderAccessories(a,Da.BLOCK_CONTEXT.SECTION))))})),s_=t(1371),__=t.n(s_),c_=t(1691),l_=t.n(c_),u_=["name","placeholder","options","disabled","small","error","onInput","className","style"];function m_(e){return(m_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f_(){return(f_=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function p_(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function h_(e,n){for(var t=0;te.length)&&(n=e.length);for(var t=0,r=new Array(n);t0?Object(r.h)("div",{className:F(U_.a,"message-blocks")},M_(t)):null)})),H_=t(1694),q_=t.n(H_),V_=ae((function(e){var n=e.id,t=e.compact,o=e.reverse,i=e.use,a=void 0===i?"div":i,s=e.className,_=e.style,c=void 0===_?{}:_,l=e.children,u=e.system,m=void 0!==u&&u;return Object(r.h)(a,{id:n,className:F(q_.a,"message-container",{compact:t,reverse:o,system:m},[s]),style:c},l)})),W_=t(1695),K_=t.n(W_),X_=ae((function(e){var n=e.reverse,t=e.className,o=e.style,i=void 0===o?{}:o,a=e.children;return Object(r.h)("div",{className:F(K_.a,"message-content",{reverse:n},[t]),style:i},a)})),G_=t(1696),Z_=t.n(G_),$_=ae((function(e){var n=e.text,t=e.system,o=e.className,i=e.style,a=void 0===i?{}:i;return Object(r.h)("div",{dangerouslySetInnerHTML:{__html:Fs(As(n))},className:F(Z_.a,"message-text",{system:t},[o]),style:a})})),Q_=t(1372),J_=t(1697),Y_=t.n(J_),ec=ae((function(e){var n=e.ts,t=e.normal,o=e.inverted,i=e.className,a=e.style,s=void 0===a?{}:a,_=e.t;return Object(r.h)("div",{className:F(Y_.a,"message-time-wrapper")},Object(r.h)("time",{dateTime:new Date(n).toISOString(),className:F(Y_.a,"message-time",{normal:t,inverted:o},[i]),style:s},function(e,n){var t=new Date(e).toISOString();return n("message_time",{val:new Date(t),formatParams:{val:Object(ta.a)(Object(Q_.a)(t))?{hour:"numeric",minute:"numeric"}:{day:"numeric",hour:"numeric",minute:"numeric"}}})}(n,_)))})),nc=Object(c.c)()(ec),tc=t(1698),rc=t.n(tc),oc=["url","className","t"];function ic(){return(ic=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var sc=ae((function(e){var n=e.url,t=e.className,o=e.t,i=ac(e,oc);return Object(r.h)(yi,ic({nude:!0,className:F(rc.a,"video-attachment",{},[t])},i),Object(r.h)("video",{src:n,controls:!0,className:F(rc.a,"video-attachment__inner")},o("you_browser_doesn_t_support_video_element")))})),_c=Object(c.c)()(sc),cc=t(1699),lc=t.n(cc),uc=["avatarResolver","attachmentResolver","use","me","msgSequence","compact","className","style","t","resetLastAction","postChatUrl","chatClosed"];function mc(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function fc(e){return function(e){if(Array.isArray(e))return dc(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,n){if(!e)return;if("string"==typeof e)return dc(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return dc(e,n)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dc(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Rc=function(e){var n=e.t,t=Pc(e,Cc),i=o.c.state,a=i.token,s=i.room;return Object(r.h)("div",{className:F(mr.a,"joinCall")},Re(t.callStatus)&&Object(r.h)("div",null,Object(r.h)("div",{className:F(mr.a,"joinCall__content")},Object(r.h)("div",{className:F(mr.a,"joinCall__content-videoIcon")},Object(r.h)(Sc.a,{width:20,height:20})),n("join_my_room_to_start_the_video_call")),Object(r.h)(Fe,{onClick:function(){switch(t.callProvider){case v:window.open(t.url,s._id);break;case b:window.open("".concat(m.a.client.host,"/meet/").concat(s._id,"?token=").concat(a),s._id)}},className:F(mr.a,"joinCall__content-action")},Object(r.h)(Sc.a,{width:20,height:20}),n("join_call"))))},Tc=(Object(c.c)()(Rc),t(1701)),Ec=t.n(Tc),Dc=ae((function(e){var n=e.date,t=e.unread,o=e.use,i=void 0===o?"div":o,a=e.className,s=e.style,_=void 0===s?{}:s,c=e.t;return Object(r.h)(i,{className:F(Ec.a,"separator",{date:!!n&&!t,unread:!n&&!!t},[a]),style:_},Object(r.h)("hr",{className:F(Ec.a,"separator__line")}),(n||t)&&Object(r.h)("span",{className:F(Ec.a,"separator__text")},!!n&&c("message_separator_date",{val:new Date(n),formatParams:{val:{month:"short",day:"2-digit",year:"numeric"}}}).toUpperCase()||t&&c("unread_messages")),Object(r.h)("hr",{className:F(Ec.a,"separator__line")}))})),Ac=Object(c.c)()(Dc),zc=t(1702),Lc=t.n(zc),Nc=function(e){var n=e.text,t=e.className,o=e.style,i=void 0===o?{}:o;return Object(r.h)("div",{"aria-label":n,className:F(Lc.a,"typing-dots",{},[t]),style:i},Object(r.h)("span",{class:F(Lc.a,"typing-dots__dot")}),Object(r.h)("span",{class:F(Lc.a,"typing-dots__dot")}),Object(r.h)("span",{class:F(Lc.a,"typing-dots__dot")}))},Ic=["avatarResolver","usernames","text"];function Mc(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Fc=ae((function(e){var n=e.avatarResolver,t=void 0===n?function(){return null}:n,o=e.usernames,i=void 0===o?[]:o,a=e.text,s=Mc(e,Ic);return Object(r.h)(V_,s,Object(r.h)(va,{avatarResolver:t,usernames:i}),Object(r.h)(X_,null,Object(r.h)(yi,null,Object(r.h)(Nc,{text:a}))))})),Uc=function(e,n){return n&&(null==e?void 0:e.u)&&n===(null==e?void 0:e.u._id)},Bc=function(e,n,t){for(var r,o,i=n-1;i>=0;i--){var a,s;if(null!=e&&null!==(a=e[i])&&void 0!==a&&a.msg||null!=e&&null!==(s=e[i])&&void 0!==s&&s.t){r=null==e?void 0:e[i];break}}for(var _=n+1;_=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}function Xc(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&(this.base.scrollTop=e),delete this.previousScrollHeight}if(this.scrollPosition===s.SCROLL_FREE){this.base.scrollTop=this.base.scrollHeight;var n=this.props.onScrollTo;n&&n(s.SCROLL_AT_BOTTOM)}}else this.base.scrollTop=this.base.scrollHeight}},{key:"componentDidMount",value:function(){this.handleResize(),window.addEventListener("resize",this.handleResize)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.handleResize)}}])&&Zc(n.prototype,t),i&&Zc(n,i),s}(ie);tl.defaultProps={typingUsernames:[]},tl.SCROLL_AT_TOP="top",tl.SCROLL_AT_BOTTOM="bottom",tl.SCROLL_FREE="free";var rl=t(655),ol=t(934),il=t.n(ol),al=t(1704),sl=t.n(al);function _l(e){return(_l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cl(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function ll(e,n){for(var t=0;t0&&(this.dismissTimeout=setTimeout(this.handleDismiss,e))}},{key:"componentWillUnmount",value:function(){clearTimeout(this.dismissTimeout)}}])&&Cl(n.prototype,t),o&&Cl(n,o),a}(r.Component);Dl.defaultProps={timeout:3e3,hideCloseButton:!1};var Al=Object(c.c)()(Dl),zl=t(1708),Ll=t.n(zl),Nl=["children","theme","className","post","large","style"],Il=["children","className"],Ml=["children","className"],Fl=["children","className"],Ul=["children","className"],Bl=["children","className"],Hl=["children","className"],ql=["children","className"],Vl=["children","className"];function Wl(){return(Wl=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var $l=function(e){var n=e.children,t=e.theme,o=(t=void 0===t?{}:t).color,i=t.fontColor,a=e.className,s=e.post,_=e.large,c=e.style,l=Zl(e,Nl);return Object(r.h)("header",Wl({className:F(Ll.a,"header",{large:_},[a]),style:c||o||i?Xl(Xl({},c||{}),{},{backgroundColor:o,color:i}):null},l),n,s)};$l.Picture=function(e){var n=e.children,t=e.className,o=Zl(e,Il);return Object(r.h)("div",Wl({className:F(Ll.a,"header__picture",{},[t])},o),n)},$l.Content=function(e){var n=e.children,t=e.className,o=Zl(e,Ml);return Object(r.h)("div",Wl({className:F(Ll.a,"header__content",{},[t])},o),n)},$l.Title=function(e){var n=e.children,t=e.className,o=Zl(e,Fl);return Object(r.h)("div",Wl({className:F(Ll.a,"header__title",{},[t])},o),n)},$l.SubTitle=function(e){var n=e.children,t=e.className,o=Zl(e,Ul);return Object(r.h)("div",Wl({className:F(Ll.a,"header__subtitle",{children:Object(r.toChildArray)(n).length>0},[t])},o),n)},$l.Actions=function(e){var n=e.children,t=e.className,o=Zl(e,Bl);return Object(r.h)("nav",Wl({className:F(Ll.a,"header__actions",{},[t])},o),n)},$l.Action=function(e){var n=e.children,t=e.className,o=Zl(e,Hl);return Object(r.h)("button",Wl({className:F(Ll.a,"header__action",{},[t])},o),n)},$l.Post=function(e){var n=e.children,t=e.className,o=Zl(e,ql);return Object(r.h)("div",Wl({className:F(Ll.a,"header__post",{},[t])},o),n)},$l.CustomField=function(e){var n=e.children,t=e.className,o=Zl(e,Vl);return Object(r.h)("div",Wl({className:F(Ll.a,"header__custom-field",{},[t])},o),n)};var Ql=$l,Jl=t(1709),Yl=t.n(Jl),eu=["children","hidden","placement","floating","triggerBounds"];function nu(e){return(nu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tu(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function ru(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var fu=function(e,n){var t=n.left,r=n.top,o=n.right,i=n.bottom;switch(e){case"left":return{left:"".concat(t,"px"),top:"".concat((r+i)/2,"px")};case"top":case"top-left":case"top-right":return{left:"".concat((t+o)/2,"px"),top:"".concat(r,"px")};case"right":return{left:"".concat(o,"px"),top:"".concat((r+i)/2,"px")};case"bottom":case"bottom-left":case"bottom-right":default:return{left:"".concat((t+o)/2,"px"),top:"".concat(i,"px")}}},du=function(e){var n=e.children,t=e.hidden,o=void 0!==t&&t,i=e.placement,a=e.floating,s=void 0!==a&&a,_=e.triggerBounds,c=mu(e,eu);return Object(r.h)("div",uu({className:F(Yl.a,"tooltip",{hidden:o,placement:i,floating:s}),style:s?fu(i,_):{}},c),n)},pu=Object(r.createContext)(),hu=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&su(e,n)}(a,e);var n,t,o,i=_u(a);function a(){var e;iu(this,a);for(var n=arguments.length,t=new Array(n),o=0;o0?n("waiting_queue"):i},e.render=function(n){var t=n.alerts,o=n.agent,i=n.notificationsEnabled,a=n.onDismissAlert,s=n.onEnableNotifications,_=n.onDisableNotifications,c=n.onFinishChat,l=n.t;return Object(r.h)(Ql,{ref:e.handleRef,post:Object(r.h)(Ql.Post,null,t&&t.map((function(e){return Object(r.h)(Al,vu({},e,{onDismiss:a}),e.children)}))),large:e.largeHeader()},o&&o.avatar&&Object(r.h)(Ql.Picture,null,Object(r.h)(Er,{src:o.avatar.src,description:o.avatar.description,status:o.status,large:e.largeHeader(),statusBorder:!0})),Object(r.h)(Ql.Content,null,Object(r.h)(Ql.Title,null,e.headerTitle(l)),o&&o.email&&Object(r.h)(Ql.SubTitle,null,o.email),o&&o.phone&&Object(r.h)(Ql.CustomField,null,o.phone)),Object(r.h)(gu.Container,null,Object(r.h)(Ql.Actions,null,Object(r.h)(gu.Trigger,{content:l(i?"sound_is_on":"sound_is_off")},Object(r.h)(Ql.Action,{"aria-label":l(i?"disable_notifications":"enable_notifications"),onClick:i?_:s},i?Object(r.h)(gl.a,{width:20,height:20}):Object(r.h)(vl.a,{width:20,height:20}))),c&&Object(r.h)(gu.Trigger,{content:l("end_chat")},Object(r.h)(Ql.Action,{"aria-label":l("end_chat"),onClick:c},Object(r.h)(il.a,{width:20}))))))},e}return n=a,t&&yu(n.prototype,t),o&&yu(n,o),n}(r.Component),Cu=Object(c.c)()(Su),Pu=t(1710),Ru=t.n(Pu);function Tu(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}var Eu=function(e){var n=e.text,t=e.minimized,o=e.badge,i=e.onClick,a=e.triggered,s=void 0!==a&&a,_=e.agent;return Object(r.h)(Fe,{icon:t||s?Object(r.h)(sl.a,null):Object(r.h)(__.a,null),badge:o,onClick:i,className:F(Ru.a,"screen__chat-button"),img:s&&_&&_.avatar.src},n)},Du=function(e){var n=e.theme;return Object(rl.useEffect)((function(){if(!window.CSS||!CSS.supports("color","var(--color)")){var e,r=!0;return(e=regeneratorRuntime.mark((function e(){var o,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.e(0).then(t.bind(null,238));case 2:if(o=e.sent,i=o.default,r){e.next=6;break}return e.abrupt("return");case 6:i({variables:{"--color":n.color,"--font-color":n.fontColor,"--icon-color":n.iconColor}});case 7:case"end":return e.stop()}}),e)})),function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){Tu(i,r,o,a,s,"next",e)}function s(e){Tu(i,r,o,a,s,"throw",e)}a(void 0)}))})(),function(){r=!1}}}),[n]),Object(r.h)("style",null,"\n\t\t.".concat(Ru.a.screen," {\n\t\t\t").concat(n.color?"--color: ".concat(n.color,";"):"","\n\t\t\t").concat(n.fontColor?"--font-color: ".concat(n.fontColor,";"):"","\n\t\t\t").concat(n.iconColor?"--icon-color: ".concat(n.iconColor,";"):"","\n\t\t}\n\t"))},Au=function(e){var n=e.theme,t=void 0===n?{}:n,o=e.agent,i=e.title,a=e.notificationsEnabled,s=e.minimized,_=void 0!==s&&s,c=e.expanded,l=void 0!==c&&c,u=e.windowed,m=void 0!==u&&u,f=e.children,d=e.className,p=e.alerts,h=e.modal,g=e.sound,b=e.onDismissAlert,v=e.onEnableNotifications,y=e.onDisableNotifications,w=e.onMinimize,k=e.onRestore,j=e.onOpenWindow,O=e.onSoundStop,x=e.queueInfo,S=e.dismissNotification,C=e.triggered,P=void 0!==C&&C,R=e.options,T=e.onFinishChat;return Object(r.h)("div",{className:F(Ru.a,"screen",{minimized:_,expanded:l,windowed:m,triggered:P})},Object(r.h)(Du,{theme:t}),P&&Object(r.h)(Fe,{onClick:w,className:F(Ru.a,"screen__chat-close-button"),icon:Object(r.h)(il.a,null)},"Close"),Object(r.h)("div",{className:F(Ru.a,"screen__inner",{fitTextSize:P},[d])},Object(r.h)(zo,null,!P&&Object(r.h)(Cu,{alerts:p,agent:o,title:i,notificationsEnabled:a,minimized:_,expanded:l,windowed:m,onDismissAlert:b,onEnableNotifications:v,onDisableNotifications:y,onMinimize:w,onRestore:k,onOpenWindow:j,queueInfo:x,options:R,onFinishChat:T}),h,f)),Object(r.h)(Eu,{agent:o,triggered:P,text:i,badge:!1,minimized:_,onClick:_?k:w}),g&&Object(r.h)(pl,{src:g.src,play:g.play,onStop:O,dismissNotification:S}))};Au.Content=function(e){var n=e.children,t=e.nopadding,o=e.triggered,i=void 0!==o&&o;return Object(r.h)("main",{className:F(Ru.a,"screen__main",{nopadding:t,triggered:i})},n)},Au.Footer=function(e){var n=e.children,t=e.options,o=e.limit;return Object(r.h)(mi,null,n&&Object(r.h)(fi,null,n),Object(r.h)(fi,null,t,o))};var zu=Au,Lu=t(1711),Nu=t.n(Lu),Iu=t(1712),Mu=t.n(Iu),Fu=t(1713),Uu=t.n(Fu),Bu=t(1714),Hu=t.n(Bu),qu=t(1715),Vu=t.n(qu),Wu=t(1716),Ku=t.n(Wu),Xu=["color","title","fontColor","uid","agent","typingUsernames","avatarResolver","conversationFinishedText","loading","onUpload","messages","uploads","options","onChangeDepartment","onFinishChat","onRemoveUserData","onPrintTranscript","enableTranscriptMobile","lastReadMessageId","queueInfo","registrationRequired","onRegisterUser","limitTextLength","t","incomingCallAlert","ongoingCall","dispatch","resetLastAction","composerConfig","postChatUrl","chatClosed","livechat_kill_switch"];function Gu(e){return(Gu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Zu(){return(Zu=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Qu(e,n){for(var t=0;t0&&Object(r.h)(Br,{onClick:e.handleSendClick},Object(r.h)(Vu.a,{width:20,height:20}))),limitTextLength:T}):null)))},e}return n=s,t&&Qu(n.prototype,t),i&&Qu(n,i),n}(r.Component),om=Object(c.c)()(rm),im=["user"],am=["ref","t"];function sm(e){return(sm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _m(){return(_m=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function lm(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function um(e){for(var n=1;n1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t||r)return $(r||n);var o=e.props.defaultAvatar;return"".concat(m.a.client.host,"/").concat(o.url||o.defaultUrl)},e.handleSubmit=function(){var n=dm(regeneratorRuntime.mark((function n(t){var r,o,i,a,s,_,c,l,u,f,d,p;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(""!==t.trim()){n.next=2;break}return n.abrupt("return");case 2:return t=me(t),n.next=5,e.grantUser();case 5:return n.next=7,e.getRoom();case 7:return r=n.sent,o=r._id,i=e.props,a=i.alerts,s=i.dispatch,_=i.token,c=i.user,l=e.getAvatar(c.username,!0,c.name),n.prev=11,e.stopTypingDebounced.stop(),e.handleSneakPeakDebounced.stop(),e.resetLastAction(),n.next=17,Promise.all([e.stopTyping({rid:o,username:c.username}),m.a.sendMessage({msg:V(t),token:_,rid:o,avatar:l})]);case 17:n.next=25;break;case 19:return n.prev=19,n.t0=n.catch(11),d=null!==(u=null===n.t0||void 0===n.t0||null===(f=n.t0.data)||void 0===f?void 0:f.error)&&void 0!==u?u:n.t0.message,p={id:Object(Pn.b)(),children:d,error:!0,timeout:5e3},n.next=25,s({alerts:(a.push(p),a)});case 25:return n.next=27,m.a.notifyVisitorTyping(o,c.username,!1);case 27:case"end":return n.stop()}}),n,null,[[11,19]])})));return function(e){return n.apply(this,arguments)}}(),e.doFileUpload=function(){var n=dm(regeneratorRuntime.mark((function n(t,r){var o,i,a,s,_,c,l,u,f;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=e.props,i=o.alerts,a=o.dispatch,s=o.i18n,n.prev=1,n.next=4,m.a.uploadFile({rid:t,file:r});case 4:n.next=19;break;case 6:n.prev=6,n.t0=n.catch(1),_=n.t0.data,c=_.reason,l=_.sizeAllowed,u=s.t("fileupload_error"),n.t1=c,n.next="error-type-not-allowed"===n.t1?13:"error-size-not-allowed"===n.t1?15:16;break;case 13:return u=s.t("media_types_not_accepted"),n.abrupt("break",16);case 15:u=s.t("file_exceeds_allowed_size_of_size",{size:l});case 16:return f={id:Object(Pn.b)(),children:u,error:!0,timeout:5e3},n.next=19,a({alerts:(i.push(f),i)});case 19:case"end":return n.stop()}}),n,null,[[1,6]])})));return function(e,t){return n.apply(this,arguments)}}(),e.handleUpload=function(){var n=dm(regeneratorRuntime.mark((function n(t){var r,o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,e.grantUser();case 2:return n.next=4,e.getRoom();case 4:r=n.sent,o=r._id,t.forEach((function(n){return e.doFileUpload(o,n)}));case 7:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),e.handleSoundStop=dm(regeneratorRuntime.mark((function n(){var t,r,o,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.props,r=t.dispatch,o=t.sound,i=void 0===o?{}:o,n.next=3,r({sound:um(um({},i),{},{play:!1})});case 3:case"end":return n.stop()}}),n)}))),e.onChangeDepartment=function(){Object(a.b)("/switch-department")},e.onFinishChat=dm(regeneratorRuntime.mark((function n(){var t,r,o,i,a,s,_,c,l,u,f;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(vn.info("User closing chat from modal"),t=e.props,r=t.composerConfig,o=t.room,i=(o=void 0===o?{}:o)._id,a=t.i18n,!r||"Close Chat"!==r.disableText){n.next=7;break}return Gn(),n.abrupt("return");case 7:return n.next=9,cn({text:a.t(e.props.livechat_close_modal_message)});case 9:if(s=n.sent,s.success){n.next=13;break}return n.abrupt("return");case 13:return _=e.props,c=_.alerts,l=_.dispatch,u=Object(yn.a)("Chat Session","closed",{close_method:"chat window"},"customer_action"),m.a.sendLogsToSNS(u),n.next=18,l({loading:!0});case 18:if(n.prev=18,!i){n.next=22;break}return n.next=22,m.a.closeChat({rid:i});case 22:n.next=30;break;case 24:return n.prev=24,n.t0=n.catch(18),console.error(n.t0),f={id:Object(Pn.b)(),children:a.t("error_closing_chat"),error:!0,timeout:0},n.next=30,l({alerts:(c.push(f),c)});case 30:return n.prev=30,n.next=33,l({loading:!1});case 33:return n.finish(30);case 34:case"end":return n.stop()}}),n,null,[[18,24,30,34]])}))),e.onRemoveUserData=dm(regeneratorRuntime.mark((function n(){var t,r,o,i,s,_;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.props.i18n,n.next=3,cn({text:t.t("are_you_sure_you_want_to_remove_all_of_your_person")});case 3:if(r=n.sent,r.success){n.next=7;break}return n.abrupt("return");case 7:return o=e.props,i=o.alerts,s=o.dispatch,n.next=10,s({loading:!0});case 10:return n.prev=10,n.next=13,m.a.deleteVisitor();case 13:n.next=21;break;case 15:return n.prev=15,n.t0=n.catch(10),console.error(n.t0),_={id:Object(Pn.b)(),children:t.t("error_removing_user_data"),error:!0,timeout:0},n.next=21,s({alerts:(i.push(_),i)});case 21:return n.prev=21,n.next=24,we();case 24:return n.next=26,s({loading:!1});case 26:return Object(a.b)("/chat-finished"),n.finish(21);case 28:case"end":return n.stop()}}),n,null,[[10,15,21,28]])}))),e.onPrintTranscript=function(){var e=document.getElementById("chat__messages").innerHTML,n=document.getElementsByTagName("head")[0].innerHTML,t=window.open();t.document.write(e),t.document.head.innerHTML=n,t.document.body.setAttribute("onload","window.print()"),t.document.close()},e.canSwitchDepartment=function(){var n=e.props,t=n.allowSwitchingDepartments,r=n.departments;return t&&(void 0===r?{}:r).filter((function(e){return e.showOnRegistration})).length>1},e.canFinishChat=function(){var n=e.props,t=n.room,r=n.connecting;return void 0!==t||r},e.canRemoveUserData=function(){return e.props.allowRemoveUserData},e.registrationRequired=function(){var n=e.props,t=n.registrationFormEnabled,r=n.nameFieldRegistrationForm,o=n.emailFieldRegistrationForm,i=n.departments,a=void 0===i?[]:i,s=n.user;if(s&&s.token)return!1;if(!t)return!1;var _=a.filter((function(e){return e.showOnRegistration})).length>0;return r||o||_},e.onRegisterUser=function(){return Object(a.b)("/register")},e.canPrintTranscript=function(){return e.props.printTranscript},e.showOptionsMenu=function(){return e.canSwitchDepartment()||e.canPrintTranscript()||e.canRemoveUserData()},e.render=function(n){var t=n.user,o=cm(n,im);return Object(r.h)(om,_m({},o,{avatarResolver:e.getAvatar,uid:t&&t._id,onTop:e.handleTop,onChangeText:e.handleChangeText,onSubmit:e.handleSubmit,onUpload:e.handleUpload,options:e.showOptionsMenu(),onChangeDepartment:e.canSwitchDepartment()&&e.onChangeDepartment||null,onFinishChat:e.canFinishChat()&&e.onFinishChat||null,onRemoveUserData:e.canRemoveUserData()&&e.onRemoveUserData||null,onPrintTranscript:e.canPrintTranscript()&&e.onPrintTranscript||null,onSoundStop:e.handleSoundStop,registrationRequired:e.registrationRequired(),onRegisterUser:e.onRegisterUser,resetLastAction:e.resetLastAction,composerConfig:o.composerConfig,postChatUrl:o.postChatUrl,chatClosed:o.chatClosed,livechat_kill_switch:o.livechat_kill_switch,livechat_kill_switch_message:o.livechat_kill_switch_message,livechat_close_modal_message:o.Livechat_close_modal_message,enableTranscriptMobile:o.enableTranscriptMobile}))},e}return n=h,(t=[{key:"handleConnectingAgentAlert",value:(u=dm(regeneratorRuntime.mark((function e(n,t){var r,o,i,a,s,_;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.props,o=r.alerts,i=r.dispatch,a=r.i18n,s=d,_=o.filter((function(e){return e.id!==s})),n&&_.push({id:s,children:t||a.t("please_wait_for_the_next_available_agent"),warning:!0,hideCloseButton:!0,timeout:0}),e.next=6,i({alerts:_});case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return u.apply(this,arguments)})},{key:"handleQueueMessage",value:(l=dm(regeneratorRuntime.mark((function e(n,t){var r,o,i,a,s,_,c,l,u,m;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:if(r=g,o=t.message,i=(o=void 0===o?{}:o).text,a=o.user,s=this.state.triggerQueueMessage,this.props.room&&n&&i&&s){e.next=10;break}return e.abrupt("return");case 10:return this.state.triggerQueueMessage=!1,_=this.props,c=_.dispatch,l=_.messages,u=new Date,m={_id:r,msg:i,u:a,ts:u.toISOString()},e.next=16,c({messages:K(l,m,(function(e){return e._id===m._id}),(function(e){return e.ts}))});case 16:case"end":return e.stop()}}),e,this)}))),function(e,n){return l.apply(this,arguments)})},{key:"handleClosedRoom",value:(c=dm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!o.c.state.chatClosed){e.next=4;break}return e.next=4,Gn();case 4:case"end":return e.stop()}}),e)}))),function(){return c.apply(this,arguments)})},{key:"componentDidMount",value:(_=dm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.checkConnectingAgent();case 2:return e.next=4,this.handleClosedRoom();case 4:ut();case 5:case"end":return e.stop()}}),e,this)}))),function(){return _.apply(this,arguments)})},{key:"componentDidUpdate",value:(s=dm(regeneratorRuntime.mark((function e(n){var t,r,o,i,a,s,_,c,l,u,m,d,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.props,r=t.messages,o=t.visible,i=t.minimized,a=t.dispatch,s=t.room,_=t.route,c=t.composerConfig,l=t.chatClosed,u=n.messages,m=n.alerts,r&&u&&r.length!==u.length&&o&&!i?(d=r[r.length-1],p=u[u.length-1],(d&&p&&d._id!==p._id||1===r.length&&0===u.length)&&(h=m.filter((function(e){return e.id!==f})),a({alerts:h,unread:null,lastReadMessageId:d._id}))):s||!o||i||(n.minimized||n.route!==_&&"/"===_)&&Ft.processChatOpened(),!(!l&&c&&"Close Chat"===c.disableText&&i&&r.length>0)){e.next=8;break}return e.next=6,a({messages:[],alerts:[],unread:null,lastReadMessageId:null,visible:!0});case 6:return e.next=8,we();case 8:return e.next=10,this.checkConnectingAgent();case 10:this.checkRoom();case 11:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"componentWillUnmount",value:function(){this.handleConnectingAgentAlert(!1)}}])&&hm(n.prototype,t),i&&hm(n,i),h}(r.Component),km=Object(c.c)()((function(e){var n=e.ref,t=e.t,i=cm(e,am);return Object(r.h)(o.a,null,(function(e){var o=e.config,a=o.settings,s=(a=void 0===a?{}:a).fileUpload,_=a.guestDefaultAvatar,c=a.allowSwitchingDepartments,l=a.forceAcceptDataProcessingConsent,u=a.showConnecting,m=a.registrationForm,f=a.nameFieldRegistrationForm,d=a.emailFieldRegistrationForm,p=a.transcript,h=a.printTranscript,g=a.limitTextLength,b=a.livechat_kill_switch,v=a.livechat_kill_switch_message,y=a.livechat_close_modal_message,w=a.enableTranscriptMobile,k=o.messages,j=(k=void 0===k?{}:k).conversationFinishedText,O=o.theme,x=(O=void 0===O?{}:O).color,S=O.title,C=o.departments,P=void 0===C?{}:C,R=e.iframe,T=(R=void 0===R?{}:R).theme,E=(T=void 0===T?{}:T).color,D=T.fontColor,A=T.iconColor,z=T.title,L=R.guest,N=e.token,I=e.agent,M=e.sound,F=e.user,U=e.room,B=e.messages,H=e.noMoreMessages,q=e.typing,V=e.loading,W=e.dispatch,K=e.alerts,X=e.composerConfig,G=e.postChatUrl,Z=e.chatClosed,Q=e.visible,J=e.unread,ee=e.lastReadMessageId,ne=e.triggerAgent,te=e.queueInfo,re=e.incomingCallAlert,oe=e.ongoingCall,ie=e.route;return Object(r.h)(wm,_m({ref:n},i,{theme:{color:E||x,fontColor:D,iconColor:A,title:z},title:b?v:z||S||t("need_help"),sound:M,token:N,user:F,agent:I&&!b?{_id:I._id,name:I.name,status:I.status,email:I.emails&&I.emails[0]&&I.emails[0].address,username:I.username,phone:I.phone&&I.phone[0]&&I.phone[0].phoneNumber||I.customFields&&I.customFields.phone,avatar:I.username?{description:I.username,src:$(I.alias&&I.name||I.username)}:void 0}:void 0,room:U,messages:B&&B.filter((function(e){return Y(e)})),noMoreMessages:H,emoji:!0,uploads:s,typingUsernames:Array.isArray(q)?q:[],loading:V,showConnecting:u,connecting:!(!U||I||!u&&!te),dispatch:W,departments:P,defaultAvatar:_,allowSwitchingDepartments:c,conversationFinishedText:j||t("conversation_finished"),allowRemoveUserData:l,transcript:p,printTranscript:h,alerts:K,visible:Q,unread:J,lastReadMessageId:ee,guest:L,triggerAgent:ne,queueInfo:te?{spot:te.spot,estimatedWaitTimeSeconds:te.estimatedWaitTimeSeconds,message:te.message}:void 0,registrationFormEnabled:m,nameFieldRegistrationForm:f,emailFieldRegistrationForm:d,limitTextLength:g,incomingCallAlert:re,ongoingCall:oe,composerConfig:X,postChatUrl:G,chatClosed:Z,livechat_kill_switch:b,livechat_kill_switch_message:v,livechat_close_modal_message:y,enableTranscriptMobile:w,route:ie}))}))})),jm=["ref"];function Om(){return(Om=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Sm=Object(c.c)()((function(e){var n=e.ref,t=xm(e,jm);return Object(r.h)(o.a,null,(function(e){var o=e.config,i=o.settings,a=(i=void 0===i?{}:i).fileUpload,s=i.allowSwitchingDepartments,_=i.forceAcceptDataProcessingConsent,c=i.showConnecting,l=i.registrationForm,u=i.nameFieldRegistrationForm,m=i.emailFieldRegistrationForm,f=i.limitTextLength,d=o.messages,p=(d=void 0===d?{}:d).conversationFinishedMessage,h=o.theme,g=(h=void 0===h?{}:h).color,b=h.title,v=o.departments,y=void 0===v?{}:v,w=e.iframe,k=(w=void 0===w?{}:w).theme,j=(k=void 0===k?{}:k).color,O=k.fontColor,x=k.iconColor,S=k.title,C=w.guest,P=e.token,R=e.agent,T=e.sound,E=e.user,D=e.room,A=e.messages,z=e.noMoreMessages,L=e.typing,N=e.loading,I=e.dispatch,M=e.alerts,F=e.visible,U=e.unread,B=e.lastReadMessageId,H=e.triggerAgent,q=e.queueInfo;return Object(r.h)(km,Om({ref:n},t,{theme:{color:j||g,fontColor:O,iconColor:x,title:S},title:S||b||t.t("need_help"),sound:T,token:P,user:E,agent:R?{_id:R._id,name:R.name,status:R.status,email:R.emails&&R.emails[0]&&R.emails[0].address,username:R.username,phone:R.phone&&R.phone[0]&&R.phone[0].phoneNumber||R.customFields&&R.customFields.phone,avatar:R.username?{description:R.username,src:$(R.username)}:void 0}:void 0,room:D,messages:A&&A.filter((function(e){return Y(e)})),noMoreMessages:z,emoji:!0,uploads:a,typingUsernames:Array.isArray(L)?L:[],loading:N,showConnecting:c,connecting:!(!D||R||!c&&!q),dispatch:I,departments:y,allowSwitchingDepartments:s,conversationFinishedMessage:p||t.t("conversation_finished"),allowRemoveUserData:_,alerts:M,visible:F,unread:U,lastReadMessageId:B,guest:C,triggerAgent:H,queueInfo:q?{spot:q.spot,estimatedWaitTimeSeconds:q.estimatedWaitTimeSeconds,message:q.message}:void 0,registrationFormEnabled:l,nameFieldRegistrationForm:u,emailFieldRegistrationForm:m,limitTextLength:f}))}))})),Cm=t(1717),Pm=t.n(Cm),Rm=["color","title","greeting","message","onRedirectChat","t"];function Tm(e){return(Tm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Em(){return(Em=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Am(e,n){for(var t=0;t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function qm(e){return(qm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vm(){return(Vm=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function af(e,n){for(var t=0;t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function gf(e){return(gf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function bf(){return(bf=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var Bf=ae((function(e){var n=e.name,t=e.value,o=e.placeholder,i=e.disabled,a=e.small,s=e.multiline,_=void 0!==s&&s,c=e.rows,l=void 0===c?1:c,u=e.error,m=e.onChange,f=e.onInput,d=e.className,p=e.style,h=void 0===p?{}:p,g=Uf(e,Mf);return _?Object(r.h)("textarea",Ff({rows:l,name:n,value:t,placeholder:o,disabled:i,onChange:m,onInput:f,className:F(If.a,"text-input",{disabled:i,error:u,small:a,multiline:_},[d]),style:h},g)):Object(r.h)("input",Ff({type:"text",name:n,value:t,placeholder:o,disabled:i,onChange:m,onInput:f,className:F(If.a,"text-input",{disabled:i,error:u,small:a},[d]),style:h},g))})),Hf=t(1722),qf=t.n(Hf);ae((function(e){var n=e.name,t=e.value,o=e.placeholder,i=e.disabled,a=e.small,s=e.error,_=e.onChange,c=e.onInput,l=e.className,u=e.style,m=void 0===u?{}:u;return Object(r.h)("input",{type:"password",name:n,value:t,placeholder:o,disabled:i,onChange:_,onInput:c,className:F(qf.a,"password-input",{disabled:i,error:s,small:a},[l]),style:m})}));function Vf(e){return(Vf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Wf(e,n){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{style:"basic"};switch(n.style){case"rfc":return Tf.test(e);case"basic":default:return Rf.test(e)}}(String(n).toLowerCase(),{style:"rfc"})?null:i.a.t("invalid_email")},custom:function(e){var n=e.value,t=e.pattern;return new RegExp(t,"i").test(String(n))?null:i.a.t("invalid_value")}},Yf=t(1723),ed=t.n(Yf),nd=["color","title","message","unavailableMessage","hasForm","t"];function td(e){return(td="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function rd(){return(rd=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function id(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||sd(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ad(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function sd(e,n){if(e){if("string"==typeof e)return _d(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_d(e,n):void 0}}function _d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&(o={value:""}),{name:{value:""},email:{value:""},department:o,message:{value:""}}},n.getValidableFields=function(){return Object.keys(n.validations).map((function(e){return n.state[e]?ld({fieldName:e},n.state[e]):null})).filter(Boolean)},n.validate=function(e){var t=e.name,r=e.value;return n.validations[t].reduce((function(e,n){return e||n({value:r})}),void 0)},n.validateAll=function(){var e,t=function(e,n){var t;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(t=sd(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}(n.getValidableFields());try{for(t.s();!(e=t.n()).done;){var r=e.value,o=r.fieldName,i=r.value,a=n.validate({name:o,value:i});n.setState(ud({},o,ld(ld({},n.state[o]),{},{value:i,error:a,showError:!1})))}}catch(e){t.e(e)}finally{t.f()}},n.reset=function(){return n.setState(n.getDefaultState())},n.isValid=function(){return n.getValidableFields().every((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.error;return!n}))},n.handleFieldChange=function(e){return function(t){var r=t.target.value,o=n.validate({name:e,value:r});n.setState(ud({},e,ld(ld({},n.state[e]),{},{value:r,error:o,showError:!1})),(function(){n.validateAll()}))}},n.handleNameChange=n.handleFieldChange("name"),n.handleEmailChange=n.handleFieldChange("email"),n.handleDepartmentChange=n.handleFieldChange("department"),n.handleMessageChange=n.handleFieldChange("message"),n.handleSubmit=function(){var e,t=(e=regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.preventDefault(),!n.props.onSubmit){e.next=7;break}return r=Object.entries(n.state).filter((function(e){return null!==id(e,2)[1]})).map((function(e){var n=id(e,2);return ud({},n[0],n[1].value)})).reduce((function(e,n){return ld(ld({},e),n)}),{}),e.next=5,n.props.onSubmit(r);case 5:if(!e.sent){e.next=7;break}n.reset();case 7:case"end":return e.stop()}}),e)})),function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){ad(i,r,o,a,s,"next",e)}function s(e){ad(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return t.apply(this,arguments)}}(),n.renderForm=function(e,t){var o=e.loading,i=e.departments,a=e.valid,s=void 0===a?n.isValid():a,_=e.t,c=t.name,l=t.email,u=t.department,m=t.message;return Object(r.h)(Qf,{onSubmit:n.handleSubmit},c?Object(r.h)(Lf,{required:!0,label:_("name"),error:c.showError&&c.error},Object(r.h)(Bf,{name:"name",value:c.value,placeholder:_("insert_your_field_here",{field:_("name")}),disabled:o,onInput:n.handleNameChange})):null,l?Object(r.h)(Lf,{required:!0,label:_("Email"),error:l.showError&&l.error},Object(r.h)(Bf,{name:"email",value:l.value,placeholder:_("insert_your_field_here",{field:_("email")}),disabled:o,onInput:n.handleEmailChange})):null,u?Object(r.h)(Lf,{label:_("i_need_help_with"),error:u.showError&&u.error},Object(r.h)(w_,{name:"department",value:u.value,options:ne(i,"name").map((function(e){return{value:e._id,label:e.name}})),placeholder:_("choose_an_option"),disabled:o,error:u.showError,onInput:n.handleDepartmentChange})):null,m?Object(r.h)(Lf,{required:!0,label:_("message"),error:m.showError&&m.error},Object(r.h)(Bf,{name:"message",value:m.value,multiline:!0,rows:4,placeholder:_("write_your_message"),disabled:o,error:m.showError,onInput:n.handleMessageChange})):null,Object(r.h)(He,null,Object(r.h)(Fe,{submit:!0,loading:o,disabled:!s||o,stack:!0},_("send"))))},n.render=function(e){var t=e.color,o=e.title,i=e.message,a=e.unavailableMessage,s=e.hasForm,_=e.t,c=od(e,nd),l=_("leave_a_message"),u=_("we_are_not_online_right_now_please_leave_a_message");return Object(r.h)(zu,rd({color:t,title:o||l,className:F(ed.a,"leave-message")},c),Object(r.h)(zu.Content,null,Object(r.h)("div",{className:F(ed.a,"leave-message__main-message"),dangerouslySetInnerHTML:{__html:Fs(s?i||u:a||"")}}),s&&n.renderForm(n.props,n.state)),Object(r.h)(zu.Footer,null))},n.state=n.getDefaultState(),n}return n=a,(t=[{key:"componentDidMount",value:function(){this.validateAll()}}])&&md(n.prototype,t),o&&md(n,o),a}(r.Component),bd=Object(c.c)()(gd),vd=["ref"];function yd(e){return(yd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wd(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function kd(){return(kd=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Ud(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||Xd(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bd(e,n){for(var t=0;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}function Xd(e,n){if(e){if("string"==typeof e)return Gd(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Gd(e,n):void 0}}function Gd(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&void 0!==arguments[0]?arguments[0]:[];return 1===e.length&&e[0]._id||""},Yd={name:[Jf.nonEmpty],email:[Jf.nonEmpty,Jf.email],department:[]},ep=function(e){return Object.keys(Yd).map((function(n){return e[n]?$d({fieldName:n},e[n]):null})).filter(Boolean)},np=function(e,n){var t,r,o=n._id,i=n.name,a=n.value,s=n.regexp;return(Yd[i]||(t=e,r=t.customFields,(void 0===r?[]:r).map((function(e){var n=e._id,t=e.required,r=e.regexp,o=[];return t&&o.push(Jf.nonEmpty),r&&o.push(Jf.custom),Yd[n]=o,Qd({},n,o)})).reduce((function(e,n){return $d($d({},e),n)}),{}))[o]).reduce((function(e,n){return e||n({value:a,pattern:s})}),void 0)},tp=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&Hd(e,n)}(a,e);var n,t,o,i=qd(a);function a(e){var n;return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,a),(n=i.call(this,e)).state={name:null,email:null,department:null},n.handleFieldChange=function(e){var t=e.target,r=t.name,o=t.value,i=n.state[r].regexp,a=np(n.props,{name:r,value:o,regexp:i});n.setState(Qd({},r,$d($d({},n.state[r]),{},{value:o,error:a,showError:!0})))},n.handleSubmit=function(e){if(e.preventDefault(),n.props.onSubmit){var t=Object.entries(n.state).filter((function(e){return null!==Ud(e,2)[1]})).map((function(e){var n=Ud(e,2);return Qd({},n[0],n[1].value)})).reduce((function(e,n){return $d($d({},e),n)}),{});n.props.onSubmit(t)}},n.state=function(e){var n=e.hasNameField,t=e.hasEmailField,r=e.hasDepartmentField,o=e.departments,i=e.customFields,a=void 0===i?[]:i,s=$d($d($d({},n&&{name:{value:""}}),t&&{email:{value:""}}),r&&{department:{value:Jd(o)}});a.forEach((function(n){var t=n._id,r=n.defaultValue,o=n.options,i=n.regexp,a="";(r&&!o||Array.isArray(o)&&o.includes(r))&&(a=r);var _=np(e,{_id:t,value:a,regexp:i});s[t]=$d($d({value:a},i&&{regexp:i}),{},{error:_,showError:!1})}));var _,c=Kd(ep(s));try{for(c.s();!(_=c.n()).done;){var l=_.value,u=l.fieldName,m=l.value,f=l.regexp,d=np(e,{name:u,value:m,regexp:f});s=$d($d({},s),{},Qd({},u,$d($d({},s[u]),{},{value:m,error:d,showError:!1})))}}catch(e){c.e(e)}finally{c.f()}return s}(e),n}return n=a,o=[{key:"getDerivedStateFromProps",value:function(e,n){var t=e.hasNameField,r=e.hasEmailField,o=e.hasDepartmentField,i=e.departmentDefault,a=e.departments,s=e.nameDefault,_=e.emailDefault,c=s||"";!t||n.name&&n.name===c?t||(n=$d($d({},n),{},{name:null})):n=$d($d({},n),{},{name:$d($d({},n.name),{},{value:c})});var l=_||"";!r||n.email&&n.name===l?r||(n=$d($d({},n),{},{email:null})):n=$d($d({},n),{},{email:$d($d({},n.email),{},{value:l})});var u=i||Jd(a),m=o&&a&&a.length>1;!m||n.department&&n.department===u?m||(n=$d($d({},n),{},{department:null})):n=$d($d({},n),{},{department:$d($d({},n.department),{},{value:u})});var f,d=Kd(ep(n));try{for(d.s();!(f=d.n()).done;){var p=f.value,h=p.fieldName,g=p.value,b=p.regexp,v=np(e,{name:h,value:g,regexp:b});n=$d($d({},n),{},Qd({},h,$d($d({},n[h]),{},{value:g,error:v,showError:!1})))}}catch(e){d.e(e)}finally{d.f()}}}],(t=[{key:"render",value:function(e,n){var t=n.name,o=n.email,i=n.department,a=Fd(n,Ld),s=e.title,_=e.color,c=e.message,l=e.loading,u=e.departments,m=e.customFields,f=e.t,d=Fd(e,Nd),p=f("need_help"),h=f("please_tell_us_some_information_to_start_the_chat"),g=ep(this.state).every((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.error;return!n}));return Object(r.h)(zu,Md({color:_,title:s||p,className:F(zd.a,"register")},d),Object(r.h)(zu.Content,null,Object(r.h)("p",{className:F(zd.a,"register__message")},c||h),Object(r.h)(Qf,{onSubmit:this.handleSubmit},t?Object(r.h)(Lf,{required:!0,label:f("name"),error:t.showError&&t.error},Object(r.h)(Bf,{name:"name",value:t.value,placeholder:f("insert_your_field_here",{field:f("name")}),disabled:l,onInput:this.handleFieldChange})):null,o?Object(r.h)(Lf,{required:!0,label:f("email"),error:o.showError&&o.error},Object(r.h)(Bf,{name:"email",value:o.value,placeholder:f("insert_your_field_here",{field:f("email")}),disabled:l,onInput:this.handleFieldChange})):null,i?Object(r.h)(Lf,{label:f("i_need_help_with"),error:i.showError&&i.error},Object(r.h)(w_,{name:"department",value:i.value,options:ne(u,"name").map((function(e){return{value:e._id,label:e.name}})),placeholder:f("choose_an_option"),disabled:l,onInput:this.handleFieldChange})):null,m&&function(e,n,t,o){var i=n.loading,a=n.handleFieldChange,s=void 0===a?function(){}:a;return e.map((function(e){var n=e._id,a=e.required,_=e.label,c=e.type,l=e.options;switch(c){case"input":return Object(r.h)(Lf,{label:_,required:a,key:n,error:t[n].showError&&t[n].error},Object(r.h)(Bf,{name:n,placeholder:o("insert_your_field_here",{field:_}),value:t[n].value,disabled:i,onInput:s,custom:!0}));case"select":return Object(r.h)(Lf,{label:_,required:a,key:n,error:t[n].showError&&t[n].error},Object(r.h)(w_,{name:n,value:t[n].value,placeholder:o("choose_an_option"),options:l&&l.map((function(e){return{value:e,label:e}})),disabled:i,onInput:s,custom:!0}))}return null}))}(m,{loading:l,handleFieldChange:this.handleFieldChange},a,f),Object(r.h)(He,null,Object(r.h)(Fe,{submit:!0,loading:l,disabled:!g||l,stack:!0},f("start_chat"))))),Object(r.h)(zu.Footer,null))}}])&&Bd(n.prototype,t),o&&Bd(n,o),a}(r.Component),rp=Object(c.c)()(tp),op=["name","email","department"],ip=["ref"];function ap(e){return(ap="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sp(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return _p(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return _p(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _p(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function dp(e,n,t,r,o,i,a){try{var s=e[i](a),_=s.value}catch(e){return void t(e)}s.done?n(_):Promise.resolve(_).then(r,o)}function pp(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){dp(i,r,o,a,s,"next",e)}function s(e){dp(i,r,o,a,s,"throw",e)}a(void 0)}))}}function hp(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function gp(e,n){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:{};Object.entries(e).forEach((function(e){var n=sp(e,2),t=n[0],r=n[1];r&&""!==r&&Pt.setCustomField(t,r,!0)}))}},{key:"getDepartmentDefault",value:function(){var e=this.props,n=e.guestDepartment,t=e.departments;if(t&&t.some((function(e){return e._id===n})))return n}},{key:"componentDidUpdate",value:function(e){var n=e.user,t=this.props.user;!n&&t&&t._id&&Object(a.b)("/")}}])&&gp(n.prototype,t),o&&gp(n,o),s}(r.Component),jp=function(e){var n=e.ref,t=fp(e,ip);return Object(r.h)(o.a,null,(function(e){var o=e.config,i=(o=void 0===o?{}:o).departments,a=void 0===i?{}:i,s=o.messages,_=(s=void 0===s?{}:s).registrationFormMessage,c=o.settings,l=(c=void 0===c?{}:c).nameFieldRegistrationForm,u=c.emailFieldRegistrationForm,m=o.theme,f=(m=void 0===m?{}:m).title,d=m.color,p=o.customFields,h=void 0===p?[]:p,g=e.iframe,b=(g=void 0===g?{}:g).guest,v=(b=void 0===b?{}:b).department,y=b.name,w=b.email,k=g.theme,j=(k=void 0===k?{}:k).color,O=k.fontColor,x=k.iconColor,S=k.title,C=e.loading,P=void 0!==C&&C,R=e.token,T=e.dispatch,E=e.user;return Object(r.h)(kp,cp({ref:n},t,{theme:{color:j||d,fontColor:O,iconColor:x,title:S},title:S||f,message:_,hasNameField:l,hasEmailField:u,hasDepartmentField:a&&a.some((function(e){return e.showOnRegistration})),departments:a.filter((function(e){return e.showOnRegistration})),nameDefault:y,emailDefault:w,guestDepartment:v,loading:P,token:R,dispatch:T,user:E,customFields:h}))}))},Op=t(1725),xp=t.n(Op),Sp=["title","color","message","loading","departments","t"];function Cp(e){return(Cp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pp(){return(Pp=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function Tp(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||Ep(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ep(e,n){if(e){if("string"==typeof e)return Dp(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Dp(e,n):void 0}}function Dp(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}(n.getValidableFields());try{for(t.s();!(e=t.n()).done;){var r=e.value,o=r.fieldName,i=r.value,a=n.validate({name:o,value:i});n.setState(Lp({},o,zp(zp({},n.state[o]),{},{value:i,error:a,showError:!1})))}}catch(e){t.e(e)}finally{t.f()}},n.isValid=function(){return n.getValidableFields().every((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.error;return!n}))},n.handleFieldChange=function(e){return function(t){var r=t.target.value,o=n.validate({name:e,value:r});n.setState(Lp({},e,zp(zp({},n.state[e]),{},{value:r,error:o,showError:!1})),(function(){n.validateAll()}))}},n.handleDepartmentChange=n.handleFieldChange("department"),n.handleSubmit=function(e){if(e.preventDefault(),n.props.onSubmit){var t=Object.entries(n.state).filter((function(e){return null!==Tp(e,2)[1]})).map((function(e){var n=Tp(e,2);return Lp({},n[0],n[1].value)})).reduce((function(e,n){return zp(zp({},e),n)}),{});n.props.onSubmit(t)}},n.handleCancelClick=function(){var e=n.props.onCancel;e&&e()};var t=e.departments;return t&&t.length>0&&(n.state.department={value:""}),n}return n=a,o=[{key:"getDerivedStateFromProps",value:function(e,n){return e.departments&&e.departments.length>0&&!n.department?{department:{value:""}}:e.departments&&0!==e.departments.length?null:{department:null}}}],(t=[{key:"componentDidMount",value:function(){this.validateAll()}},{key:"render",value:function(e,n){var t=n.department,o=e.title,i=e.color,a=e.message,s=e.loading,_=e.departments,c=e.t,l=Rp(e,Sp),u=c("change_department_1"),m=c("choose_a_department_1"),f=this.isValid();return Object(r.h)(zu,Pp({color:i,title:o||u,className:F(xp.a,"switch-department")},l),Object(r.h)(zu.Content,null,Object(r.h)("p",{className:F(xp.a,"switch-department__message")},a||m),Object(r.h)(Qf,{onSubmit:this.handleSubmit},Object(r.h)(Lf,{label:c("departments"),error:t&&t.showError&&t.error},Object(r.h)(w_,{name:"department",value:t&&t.value,options:_.map((function(e){return{value:e._id,label:e.name}})),placeholder:c("choose_a_department"),disabled:s,error:t&&t.showError,onInput:this.handleDepartmentChange})),Object(r.h)(He,null,Object(r.h)(Fe,{submit:!0,loading:s,disabled:!f||s,stack:!0},c("start_chat")),Object(r.h)(Fe,{disabled:s,stack:!0,secondary:!0,nude:!0,onClick:this.handleCancelClick},c("cancel"))))),Object(r.h)(zu.Footer,null))}}])&&Np(n.prototype,t),o&&Np(n,o),a}(r.Component),Hp=Object(c.c)()(Bp);function qp(e){return(qp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vp(){return(Vp=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var oh=function(e){var n=e.ref,t=rh(e,nh);return Object(r.h)(o.a,null,(function(e){var o=e.config,i=(o=void 0===o?{}:o).departments,a=void 0===i?{}:i,s=o.theme,_=(s=void 0===s?{}:s).color,c=e.iframe,l=(c=void 0===c?{}:c).theme,u=(l=void 0===l?{}:l).color,m=l.fontColor,f=l.iconColor,d=e.room,p=e.loading,h=void 0!==p&&p,g=e.department,b=e.dispatch,v=e.alerts,y=e.token;return Object(r.h)(eh,th({ref:n},t,{theme:{color:u||_,fontColor:m,iconColor:f},loading:h,departments:a.filter((function(e){return e.showOnRegistration&&e._id!==g})),dispatch:b,room:d,alerts:v,token:y}))}))},ih=t(1726),ah=t.n(ih),sh=["title","messages","loading","onStartChat","departments","t"];function _h(e){return(_h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ch(){return(ch=Object.assign||function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function uh(e,n){for(var t=0;t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function wh(){return(wh=Object.assign||function(e){for(var n=1;n0;return o&&(i||s||p)&&!f&&!(d&&d.token)?Object(a.b)("/register"):void 0}),100);case 3:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),e.handleEnableNotifications=function(){var n=e.props,t=n.dispatch,r=n.sound;t({sound:Ah(Ah({},void 0===r?{}:r),{},{enabled:!0})})},e.handleDisableNotifications=function(){var n=e.props,t=n.dispatch,r=n.sound;t({sound:Ah(Ah({},void 0===r?{}:r),{},{enabled:!1})})},e.handleMinimize=function(){Object(Cn.a)("minimizeWindow"),(0,e.props.dispatch)({minimized:!0})},e.handleRestore=function(){Object(Cn.a)("restoreWindow");var n=e.props,t=n.dispatch,r=n.undocked,i=function(){return t({minimized:!1,undocked:!1})};r?o.e.on("storageSynced",(function e(){i(),o.e.off("storageSynced",e)})):i()},e.handleOpenWindow=function(){Object(Cn.a)("openPopout"),(0,e.props.dispatch)({undocked:!0,minimized:!1})},e.handleDismissAlert=function(n){var t=e.props,r=t.dispatch,o=t.alerts;r({alerts:(void 0===o?[]:o).filter((function(e){return e.id!==n}))})},e.handleVisibilityChange=Nh(regeneratorRuntime.mark((function n(){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.props.dispatch,n.next=3,t({visible:!oe.hidden});case 3:case"end":return n.stop()}}),n)}))),e.handleLanguageChange=function(){e.forceUpdate()},e.dismissNotification=function(){return!se()},e.render=function(n,t){var o=n.sound,i=n.undocked,s=n.minimized,_=n.expanded,c=n.alerts,l=n.modal,m=n.config,f=n.composerConfig,d=t.initialized,p=t.poppedOut;if(!d)return null;if(!m.enabled)return null;var h={notificationsEnabled:o&&o.enabled,minimized:!p&&(s||i),expanded:!s&&_,windowed:!s&&p,sound:o,alerts:c,modal:l,composerConfig:f,onEnableNotifications:e.handleEnableNotifications,onDisableNotifications:e.handleDisableNotifications,onMinimize:e.handleMinimize,onRestore:e.handleRestore,onOpenWindow:e.handleOpenWindow,onDismissAlert:e.handleDismissAlert,dismissNotification:e.dismissNotification};return Object(r.h)(a.a,{history:u,onChange:e.handleRoute},Object(r.h)(Sm,Eh({default:!0,path:"/"},h)),Object(r.h)(Jm,Eh({path:"/chat-finished"},h)),Object(r.h)(Pf,Eh({path:"/gdpr"},h)),Object(r.h)(Dd,Eh({path:"/leave-message"},h)),Object(r.h)(jp,Eh({path:"/register"},h)),Object(r.h)(oh,Eh({path:"/switch-department"},h)),Object(r.h)(Rh,Eh({path:"/trigger-messages"},h)))},e}return n=f,(t=[{key:"handleTriggers",value:function(){var e=this.props.config,n=e.online,t=e.enabled;Ft.enabled=n&&t,n&&t&&Ft.init(),Ft.processTriggers()}},{key:"initWidget",value:function(){var e=this,n=this.props,t=n.minimized,r=n.iframe.visible,o=n.dispatch;Object(Cn.a)(t?"minimizeWindow":"restoreWindow"),Object(Cn.a)(r?"showWidget":"hideWidget"),oe.addListener(this.handleVisibilityChange),this.handleVisibilityChange(),window.addEventListener("beforeunload",(function(){oe.removeListener(e.handleVisibilityChange),o({minimized:!0,undocked:!1})})),i.a.on("languageChanged",this.handleLanguageChange),document.title=this.props.config.theme.title}},{key:"checkPoppedOutWindow",value:function(){var e=this.props.dispatch,n="popout"===_.a.parse(window.location.search).mode;this.setState({poppedOut:n}),n&&e({minimized:!1})}},{key:"initialize",value:(l=Nh(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,kt.init();case 2:this.handleTriggers(),Pt.init(),Yt.init(),cr.init(),this.initWidget(),this.checkPoppedOutWindow(),this.setState({initialized:!0}),Object(Cn.a)("ready");case 10:case"end":return e.stop()}}),e,this)}))),function(){return l.apply(this,arguments)})},{key:"finalize",value:(c=Nh(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Pt.reset(),cr.reset(),oe.removeListener(this.handleVisibilityChange);case 3:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"componentDidMount",value:function(){this.initialize()}},{key:"componentWillUnmount",value:function(){this.finalize()}},{key:"componentDidUpdate",value:function(){var e,n=this.props.i18n;n.t&&(document.dir=(e=n.t("yes"),new RegExp("^[^".concat("֑-߿‏‫‮יִ-﷽ﹰ-ﻼ","]*?[").concat("֑-߿‏‫‮יִ-﷽ﹰ-ﻼ","]")).test(e)?"rtl":"ltr"))}}])&&Mh(n.prototype,t),s&&Mh(n,s),f}(r.Component),Vh=Object(c.c)()(qh);n.default=function(){return Object(r.h)("div",{id:"app"},Object(r.h)(o.b,null,Object(r.h)(o.a,null,(function(e){var n=e.config,t=e.user,o=e.triggered,i=e.gdpr,a=e.sound,s=e.undocked,_=e.minimized,c=void 0===_||_,l=e.expanded,u=void 0!==l&&l,m=e.alerts,f=e.modal,d=e.dispatch,p=e.iframe,h=e.composerConfig;return Object(r.h)(Vh,{config:n,gdpr:i,triggered:o,user:t,sound:a,undocked:s,minimized:c,expanded:u,alerts:m,modal:f,dispatch:d,iframe:p,composerConfig:h})}))))}},640:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,t(1376),t(1377);var r=t(1796);Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r.default}})},653:function(e,n,t){"use strict";t.d(n,"d",(function(){return D})),t.d(n,"e",(function(){return A})),t.d(n,"b",(function(){return L})),t.d(n,"a",(function(){return N}));var r=t(132),o=t(672),i=t(959),a=t(657),s=t(671),_=t(752);function c(e,n){var t;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(t=u(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}function l(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,n){if(e){if("string"==typeof e)return m(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?m(e,n):void 0}}function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=c.localStorageKey,m=void 0===u?"store":u,f=c.dontPersist,p=void 0===f?[]:f;g(this,e),Object.assign(this,Object(i.a)()),this.localStorageKey=m,this.dontPersist=p;try{n=JSON.parse(y.getItem(this.localStorageKey))}catch(e){n={}}finally{n="object"===h(n)?n:{}}this._state=d(d({},r),n),window.addEventListener("storage",(function(e){if(e.key===t.localStorageKey){if(!e.newValue)return location.reload();var n=JSON.parse(e.newValue);t.setStoredState(n),t.emit("storageSynced")}})),window.addEventListener("load",(function(){var e=Object(o.b)();w.setItem("sessionId",e);var n=Object(_.a)("Window","opened",{session_id:e},"customer_action");a.a.sendLogsToSNS(n);var r=t._state.openSessionIds,i=void 0===r?[]:r;t.setState({openSessionIds:[e].concat(l(i))})})),window.addEventListener("visibilitychange",(function(){!t._state.minimized&&!t._state.triggered&&Object(s.a)("openWidget"),t._state.iframe.visible?Object(s.a)("showWidget"):Object(s.a)("hideWidget")})),window.addEventListener("beforeunload",(function(){var e=w.getItem("sessionId"),n=t._state.openSessionIds,r=void 0===n?[]:n;t.setState({openSessionIds:r.filter((function(n){return n!==e}))})}))}var n,t,r;return n=e,(t=[{key:"state",get:function(){return this._state}},{key:"persist",value:function(){var e,n=d({},this._state),t=c(this.dontPersist);try{for(t.s();!(e=t.n()).done;)delete n[e.value]}catch(e){t.e(e)}finally{t.f()}y.setItem(this.localStorageKey,JSON.stringify(n))}},{key:"setState",value:function(e){var n=this._state;this._state=d(d({},n),e),this.persist(),this.emit("change",[this._state,n,e])}},{key:"unsetSinglePropInStateByName",value:function(e){var n=this._state;delete n[e],this._state=d({},n),this.persist(),this.emit("change",[this._state,n])}},{key:"setStoredState",value:function(e){var n,t=this._state,r={},o=c(this.dontPersist);try{for(o.s();!(n=o.n()).done;){var i=n.value;r[i]=t[i]}}catch(e){o.e(e)}finally{o.f()}this._state=d(d({},e),r),this.emit("change",[this._state,t])}}])&&b(n.prototype,t),r&&b(n,r),e}())(D(),{dontPersist:["messages","typing","loading","alerts","unread","noMoreMessages","modal","idleTimeoutTimers","incomingCallAlert","ongoingCall","postChatUrl","visible"]});var z=Object(r.createContext)(),L=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&P(e,n)}(a,e);var n,t,o,i=R(a);function a(){var e;S(this,a);for(var n=arguments.length,t=new Array(n),o=0;oe.length)&&(n=e.length);for(var t=0,r=new Array(n);t0&&(f.forEach((function(e){y.apply(this,e)})),f=[])},minimizeWindow:function(){j()},restoreWindow:function(){O.popup&&!0!==O.popup.closed&&(O.popup.close(),O.popup=null),k()},openPopout:function(){j(),O.popup=window.open("".concat(m.url).concat(m.url.lastIndexOf("?")>-1?"&":"?","mode=popout"),"livechat-popout","width=".concat(365,", height=").concat(u,", toolbars=no")),O.popup.focus()},openWidget:function(){k()},resizeWidget:function(e){!function(e){u=e,w(!0),_.dataset.state="triggered"}(e)},removeWidget:function(){document.body.removeChild(_)},callback:function(e,n){v(e,n)},showWidget:function(){c.style.display="initial",v("show-widget")},hideWidget:function(){c.style.display="none",v("hide-widget")},showPrint:function(){v("show-print")},hidePrint:function(){v("hide-print")},resetDocumentStyle:function(){document.body.classList.remove("rc-livechat-mobile-full-screen")},setFullScreenDocumentMobile:function(){p&&document.body.classList.add("rc-livechat-mobile-full-screen")},dropTriggerMessage:function(){v("drop-trigger-message")}};function x(e){y("pageVisited",{change:e,location:JSON.parse(JSON.stringify(document.location)),title:document.title})}function S(e,n,t){void 0===t&&(t=!0),y("setCustomField",[e,n,t])}function C(e){y("setTheme",e)}function P(e){y("setDepartment",e)}function R(e){y("setBusinessUnit",e)}function T(e){y("setGuestToken",e)}function E(e){y("setGuestName",e)}function D(e){y("setGuestPhone",e)}function A(e){y("setGuestEmail",e)}function z(e){y("registerGuest",e)}function L(e){y("setAgent",e)}function N(e){y("setLanguage",e)}var I={href:null,title:null},M=function(e){e&&(m.url=e,function(e){(_=document.createElement("div")).className="rocketchat-widget",_.style.position="fixed",_.style.width="".concat(86,"px"),_.style.height="".concat(86,"px"),_.style.maxHeight="100vh",_.style.bottom="0",_.style.right="0",_.style.zIndex="12345",_.dataset.state="closed";var n=document.createElement("div");n.className="rocketchat-container",n.style.width="100%",n.style.height="100%",(c=document.createElement("iframe")).id="rocketchat-iframe",c.allowTransparency="true",c.src=e,c.name=window.RocketChat.parentURL,c.style.width="100%",c.style.height="100%",c.style.border="none",c.style.backgroundColor="transparent",n.appendChild(c),_.appendChild(n),document.body.appendChild(_);var t=function(e){var n=e.matches;_&&(p=n,w("opened"===_.dataset.state),y("setExpanded",p))},r=window.matchMedia("screen and (max-device-width: 480px)");r.addListener(t),t(r)}(e),window.addEventListener("message",(function(e){if("object"===a(e.data)&&void 0!==e.data.src&&"rocketchat"===e.data.src&&void 0!==O[e.data.fn]&&"function"==typeof O[e.data.fn]){var n=[].concat(e.data.args||[]);s.apply(void 0,["api.".concat(e.data.fn)].concat(o(n))),O[e.data.fn].apply(null,n)}}),!1),setInterval((function(){document.location.href!==I.href&&(x("url"),I.href=document.location.href),document.title!==I.title&&(x("title"),I.title=document.title)}),800))};void 0!==window.initRocket&&(console.warn("initRocket is now deprecated. Please update the livechat code."),M(window.initRocket[0])),void 0!==window.RocketChat.url&&M(window.RocketChat.url);var F=window.RocketChat._;function U(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t={src:"rocketchat",fn:e,args:n};window.parent.postMessage(t,"*")}window.RocketChat._.push=function(e){e.call(window.RocketChat.livechat)},window.RocketChat=window.RocketChat._.push,window.RocketChat.livechat={pageVisited:x,setCustomField:S,initialize:function(e){for(var n in e)if(e.hasOwnProperty(n))switch(n){case"customField":var t=e[n];S(t.key,t.value,t.overwrite);continue;case"setCustomFields":if(!Array.isArray(e[n])){console.log("Error: Invalid parameters. Value must be an array of objects");continue}e[n].forEach((function(e){S(e.key,e.value,e.overwrite)}));continue;case"theme":C(e[n]);continue;case"department":P(e[n]);continue;case"businessUnit":R(e[n]);continue;case"guestToken":T(e[n]);continue;case"guestName":E(e[n]);continue;case"guestPhone":D(e[n]);continue;case"guestEmail":A(e[n]);continue;case"registerGuest":z(e[n]);continue;case"language":N(e[n]);continue;case"agent":L(e[n]);continue;default:continue}},setTheme:C,setDepartment:P,clearDepartment:function(){y("clearDepartment")},setGuestToken:T,setGuestName:E,setGuestPhone:D,setGuestEmail:A,setAgent:L,registerGuest:z,setLanguage:N,showWidget:function(){y("showWidget")},hideWidget:function(){y("hideWidget")},showPrint:function(){y("showPrint")},hidePrint:function(){y("hidePrint")},maximizeWidget:function(){y("maximizeWidget")},minimizeWidget:function(){y("minimizeWidget")},setBusinessUnit:R,clearBusinessUnit:function(){y("clearBusinessUnit")},dropTriggerMessage:function(){y("dropTriggerMessage")},onChatMaximized:function(e){b("chat-maximized",e)},onChatMinimized:function(e){b("chat-minimized",e)},onChatStarted:function(e){b("chat-started",e)},onChatEnded:function(e){b("chat-ended",e)},onPrechatFormSubmit:function(e){b("pre-chat-form-submit",e)},onOfflineFormSubmit:function(e){b("offline-form-submit",e)},onWidgetShown:function(e){b("show-widget",e)},onWidgetHidden:function(e){b("hide-widget",e)},onAssignAgent:function(e){b("assign-agent",e)},onAgentStatusChange:function(e){b("agent-status-change",e)},onQueuePositionChange:function(e){b("queue-position-change",e)},onServiceOffline:function(e){b("no-agent-online",e)}},F.forEach((function(e){e.call(window.RocketChat.livechat)}));var B=function(e,n){return h.includes(e)&&U("callback",[e,n])}},672:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return _}));var r=t(1378),o="23456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijkmnopqrstuvwxyz",i=function(e){var n,t=Math.floor((n=new Uint32Array(1),window.crypto.getRandomValues(n),2.3283064365386963e-10*n[0]*e.length));return"string"==typeof e?e.substr(t,1):e[t]},a=function(e,n){return Array.from({length:e},(function(){return i(n)})).join("")},s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:17;return a(e,o)},_=function(){return r.lib.WordArray.random(32).toString(r.enc.Hex)}},752:function(e,n,t){"use strict";t.d(n,"a",(function(){return _}));var r=t(653);function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n'};var i=e.exports.attributes,a=e.exports.content;e.exports=function(e){var n=o.useRef();return o.useEffect((function(){var e=document.createElement("div");e.innerHTML=""+a+"";for(var t=e.firstChild,r=n.current;t.firstChild;)r&&r.appendChild(t.firstChild)}),[]),r.h("svg",Object.assign({ref:n},i,e))}},968:function(e,n,t){"use strict";t.d(n,"d",(function(){return a})),t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return _})),t.d(n,"c",(function(){return c}));var r=t(653);function o(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return i(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t-1}));return t(1407)("./".concat(i,"/index.js"))}}}]); +//# sourceMappingURL=5.chunk.13cc1.js.map \ No newline at end of file diff --git a/build/5.chunk.13cc1.js.map b/build/5.chunk.13cc1.js.map new file mode 100644 index 000000000..ea0446e46 --- /dev/null +++ b/build/5.chunk.13cc1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/icons/arrowDown.svg","webpack:///./node_modules/date-fns/locale sync ^\\.\\/.*\\/index\\.js$","webpack:///./src/components/Button/styles.scss?43fa","webpack:///./src/components/ButtonGroup/styles.scss?d52b","webpack:///./src/components/Modal/styles.scss?ad00","webpack:///./src/i18next.js","webpack:///./src/i18n lazy ^\\.\\/.*\\.json$ namespace object","webpack:///./src/icons/phone.svg","webpack:///./src/icons/phoneOff.svg","webpack:///./src/components/Avatar/styles.scss?d061","webpack:///./src/components/Composer/styles.scss?cda8","webpack:///./src/components/Composer/ComposerAction/styles.scss?f6f4","webpack:///./src/components/Composer/ComposerActions/styles.scss?dbb8","webpack:///./src/components/FilesDropTarget/styles.scss?cabb","webpack:///./src/components/Popover/styles.scss?b8d7","webpack:///./src/components/Menu/styles.scss?e0b0","webpack:///./src/components/Footer/logo.svg","webpack:///./src/components/Footer/styles.scss?9a62","webpack:///./src/components/Messages/MessageBubble/styles.scss?7212","webpack:///./src/components/Messages/AudioAttachment/styles.scss?9ec6","webpack:///./src/icons/download.svg","webpack:///./src/icons/doc.svg","webpack:///./src/icons/file.svg","webpack:///./src/icons/pdf.svg","webpack:///./src/icons/ppt.svg","webpack:///./src/icons/sheet.svg","webpack:///./src/icons/zip.svg","webpack:///./src/components/Messages/FileAttachment/styles.scss?bdf3","webpack:///./src/components/Messages/ImageAttachment/styles.scss?90a9","webpack:///./src/components/Messages/MessageAction/styles.scss?d8d2","webpack:///./src/components/Messages/MessageAvatars/styles.scss?7c6a","webpack:///./src/components/uiKit/message/ActionsBlock/styles.scss?3c6a","webpack:///./src/components/uiKit/message/ButtonElement/styles.scss?fb19","webpack:///./src/components/uiKit/message/ContextBlock/styles.scss?c4d7","webpack:///./src/components/Form/DateInput/styles.scss?992a","webpack:///./src/components/uiKit/message/DividerBlock/styles.scss?1d8c","webpack:///./src/components/uiKit/message/ImageBlock/styles.scss?2694","webpack:///./src/components/uiKit/message/ImageElement/styles.scss?587d","webpack:///./src/components/uiKit/message/Mrkdwn/styles.scss?c6cb","webpack:///./src/icons/kebab.svg","webpack:///./src/components/uiKit/message/OverflowElement/styles.scss?7773","webpack:///./src/components/uiKit/message/PlainText/styles.scss?7588","webpack:///./src/components/uiKit/message/SectionBlock/styles.scss?541e","webpack:///./src/components/Form/SelectInput/styles.scss?a2cf","webpack:///./src/components/uiKit/message/StaticSelectElement/styles.scss?38e1","webpack:///./src/components/Messages/MessageBlocks/styles.scss?6d9e","webpack:///./src/components/Messages/MessageContainer/styles.scss?9716","webpack:///./src/components/Messages/MessageContent/styles.scss?0221","webpack:///./src/components/Messages/MessageText/styles.scss?3134","webpack:///./src/components/Messages/MessageTime/styles.scss?69cd","webpack:///./src/components/Messages/VideoAttachment/styles.scss?8603","webpack:///./src/components/Messages/Message/styles.scss?3407","webpack:///./src/icons/video.svg","webpack:///./src/components/Messages/MessageSeparator/styles.scss?d511","webpack:///./src/components/Messages/TypingDots/styles.scss?4d8b","webpack:///./src/components/Messages/MessageList/styles.scss?ea41","webpack:///./src/icons/viasat.svg","webpack:///./src/icons/bell.svg","webpack:///./src/icons/bellOff.svg","webpack:///./src/components/Alert/styles.scss?41a2","webpack:///./src/components/Header/styles.scss?421d","webpack:///./src/components/Tooltip/styles.scss?b020","webpack:///./src/components/Screen/styles.scss?01fd","webpack:///./src/icons/change.svg","webpack:///./src/icons/plus.svg","webpack:///./src/icons/print.svg","webpack:///./src/icons/remove.svg","webpack:///./src/icons/send.svg","webpack:///./src/routes/Chat/styles.scss?467e","webpack:///./src/routes/ChatFinished/styles.scss?d07f","webpack:///./src/routes/GDPRAgreement/styles.scss?df10","webpack:///./src/components/Form/FormField/styles.scss?cc76","webpack:///./src/components/Form/TextInput/styles.scss?1621","webpack:///./src/components/Form/PasswordInput/styles.scss?0aa8","webpack:///./src/routes/LeaveMessage/styles.scss?d842","webpack:///./src/routes/Register/styles.scss?79c0","webpack:///./src/routes/SwitchDepartment/styles.scss?5ae5","webpack:///./src/routes/TriggerMessage/styles.scss?8f7e","webpack:///./src/history.js","webpack:///./src/lib/constants.js","webpack:///./src/components/helpers.js","webpack:///./src/lib/main.js","webpack:///./src/components/Calls/CallStatus.js","webpack:///./src/lib/api.js","webpack:///./src/lib/commands.js","webpack:///./src/components/Button/index.js","webpack:///./src/components/ButtonGroup/index.js","webpack:///./src/components/Modal/component.js","webpack:///./src/components/Modal/manager.js","webpack:///./src/lib/logger.js","webpack:///./src/lib/idleTimeout.js","webpack:///./src/lib/threads.js","webpack:///./src/lib/util.js","webpack:///./src/lib/room.js","webpack:///./src/lib/connection.js","webpack:///./src/lib/customFields.js","webpack:///./src/lib/triggers.js","webpack:///./src/lib/hooks.js","webpack:///./src/lib/userPresence.js","webpack:///./src/components/Calls/CallIFrame.js","webpack:///./src/components/Avatar/index.js","webpack:///./src/components/Calls/CallNotification.js","webpack:///./src/components/Composer/ComposerAction/index.js","webpack:///./src/components/Composer/ComposerActions/index.js","webpack:///./src/components/Composer/index.js","webpack:///./src/components/FilesDropTarget/index.js","webpack:///./src/components/Popover/index.js","webpack:///./src/components/Menu/index.js","webpack:///./src/components/Footer/index.js","webpack:///./src/components/Messages/MessageBubble/index.js","webpack:///./src/components/Messages/AudioAttachment/index.js","webpack:///./src/components/Messages/FileAttachmentIcon/index.js","webpack:///./src/components/Messages/FileAttachment/index.js","webpack:///./src/components/Messages/ImageAttachment/index.js","webpack:///./src/lib/transcript.js","webpack:///./src/components/Messages/MessageAction/index.js","webpack:///./src/components/Messages/MessageAvatars/index.js","webpack:///./src/lib/uiKit.js","webpack:///./src/components/uiKit/message/Surface.js","webpack:///./src/components/uiKit/message/Block.js","webpack:///./src/components/uiKit/message/ActionsBlock/index.js","webpack:///./src/components/uiKit/message/ButtonElement/index.js","webpack:///./src/components/uiKit/message/ContextBlock/index.js","webpack:///./src/components/Form/DateInput/index.js","webpack:///./src/components/uiKit/message/DatePickerElement/index.js","webpack:///./src/components/uiKit/message/DividerBlock/index.js","webpack:///./src/components/uiKit/message/ImageBlock/index.js","webpack:///./src/components/uiKit/message/ImageElement/index.js","webpack:///./src/components/Emoji/ascii.js","webpack:///./src/components/Emoji/emojis.js","webpack:///./src/components/Emoji/shortnameToUnicode.js","webpack:///./src/components/Messages/MessageText/emoji.js","webpack:///./src/components/Messages/MessageText/markdown.js","webpack:///./src/components/uiKit/message/Mrkdwn/index.js","webpack:///./src/components/uiKit/message/OverflowElement/index.js","webpack:///./src/components/uiKit/message/PlainText/index.js","webpack:///./src/components/uiKit/message/SectionBlock/index.js","webpack:///./src/components/Form/SelectInput/index.js","webpack:///./src/components/uiKit/message/StaticSelectElement/index.js","webpack:///./src/components/uiKit/message/index.js","webpack:///./src/components/Messages/MessageBlocks/index.js","webpack:///./src/components/Messages/MessageContainer/index.js","webpack:///./src/components/Messages/MessageContent/index.js","webpack:///./src/components/Messages/MessageText/index.js","webpack:///./src/components/Messages/MessageTime/index.js","webpack:///./src/components/Messages/VideoAttachment/index.js","webpack:///./src/components/Messages/Message/index.js","webpack:///./src/components/Messages/constants.js","webpack:///./src/components/Calls/JoinCallButton.js","webpack:///./src/components/Messages/MessageSeparator/index.js","webpack:///./src/components/Messages/TypingDots/index.js","webpack:///./src/components/Messages/TypingIndicator/index.js","webpack:///./src/components/Messages/MessageList/msgSequenceHelper.js","webpack:///./src/components/Messages/MessageList/index.js","webpack:///./src/components/Sound/index.js","webpack:///./src/components/Alert/index.js","webpack:///./src/components/Header/index.js","webpack:///./src/components/Tooltip/index.js","webpack:///./src/components/Screen/Header.js","webpack:///./src/components/Screen/index.js","webpack:///./src/routes/Chat/component.js","webpack:///./src/routes/Chat/container.js","webpack:///./src/routes/Chat/connector.js","webpack:///./src/routes/ChatFinished/component.js","webpack:///./src/routes/ChatFinished/container.js","webpack:///./src/routes/GDPRAgreement/component.js","webpack:///./src/routes/GDPRAgreement/container.js","webpack:///./src/lib/email.js","webpack:///./src/components/Form/FormField/index.js","webpack:///./src/components/Form/TextInput/index.js","webpack:///./src/components/Form/PasswordInput/index.js","webpack:///./src/components/Form/index.js","webpack:///./src/routes/LeaveMessage/component.js","webpack:///./src/routes/LeaveMessage/container.js","webpack:///./src/routes/Register/component.js","webpack:///./src/routes/Register/container.js","webpack:///./src/routes/SwitchDepartment/component.js","webpack:///./src/routes/SwitchDepartment/container.js","webpack:///./src/routes/SwitchDepartment/connector.js","webpack:///./src/routes/TriggerMessage/component.js","webpack:///./src/routes/TriggerMessage/container.js","webpack:///./src/components/App/App.js","webpack:///./src/components/App/index.js","webpack:///./src/index.ts","webpack:///./src/store/Store.js","webpack:///./src/store/index.js","webpack:///./src/api.js","webpack:///./src/widget.js","webpack:///./src/lib/parentCall.js","webpack:///./src/lib/random.js","webpack:///./src/lib/snsLoggerHelper.js","webpack:///./src/components/Calls/styles.scss?6b66","webpack:///./src/icons/close.svg","webpack:///./src/lib/locale.js"],"names":["preact","hooks","module","exports","attributes","content","props","ref","useRef","useEffect","div","document","createElement","innerHTML","source","firstChild","dest","current","appendChild","h","Object","assign","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","resolve","loadResource","lng","translation","default","i18next","use","type","read","language","namespace","callback","then","resource","catch","reason","initReactI18next","init","normalizeLanguageString","configLanguage","browserLanguage","fallbackLng","react","useSuspense","webpackAsyncContext","Promise","ids","t","history","createMemoryHistory","flatMap","arr","mapFunc","result","entries","index","x","Array","isArray","push","createClassName","styles","elementName","modifiers","classes","modifierKey","modifierValue","filter","className","join","asyncForEach","array","length","debounce","func","delay","inDebounce","f","args","context","this","clearTimeout","setTimeout","apply","stop","throttle","limit","inThrottle","getFilteredMsg","msg","store","state","config","filters","forEach","regExp","RegExp","regex","replace","slug","getInsertIndex","item","ranking","order","min","max","guess","Math","floor","guessedOrder","upsert","predicate","findIndex","splice","getSecureCookieSettings","useSsl","setInitCookies","cookie","setCookies","rid","token","getAvatarUrl","username","Livechat","client","host","msgTypesNotRendered","msgTextNotRendered","canRenderMessage","includes","getAttachmentUrl","url","sortArrayByColumn","column","inverted","sort","a","b","parseOfflineMessage","fields","window","location","origin","normalizeDOMRect","left","top","right","bottom","visibility","hidden","addListener","addEventListener","removeListener","removeEventListener","msHidden","webkitHidden","MemoizedComponent","nextProps","key","Component","memo","component","render","isActiveSession","sessionId","sessionStorage","getItem","openSessionIds","resolveDate","dateInput","Date","$date","parseISO","escapeMap","'","escapeRegex","escapeHtml","mem","string","match","parse","plainText","plain","html","updateBusinessUnit","newBusinessUnit","existingConfig","businessUnit","departments","setState","unsetSinglePropInStateByName","loadConfig","composerConfig","credentials","name","href","agent","room","user","guest","resources","sound","src","queueInfo","hiddenInfo","enabled","play","messages","typing","noMoreMessages","visible","unread","processUnread","minimized","alerts","lastReadMessageId","renderedMessages","message","lastReadMessageIndex","_id","unreadMessages","slice","lastReadMessage","alertMessage","count","val","ts","formatParams","month","day","hour","minute","constants","children","success","timeout","CallStatus","isCallOngoing","callStatus","normalizeAgent","agentData","status","normalizeQueueAlert","spot","estimatedWaitTimeSeconds","locale","getDateFnsLocale","estimatedWaitTime","formatDistance","setSeconds","Commands","connecting","handleMouseUp","target","blur","Button","submit","disabled","outline","nude","danger","secondary","stack","small","loading","badge","icon","onClick","style","img","onMouseUp","aria-label","backgroundImage","ButtonGroup","toChildArray","child","cloneElement","Modal","handleKeyDown","triggerDismiss","handleTouchStart","dismissByOverlay","handleMouseDown","onDismiss","mounted","animated","open","onTouchStart","onMouseDown","Number","isFinite","defaultProps","ConfirmationModal","withTranslation","text","confirmButtonText","cancelButtonText","onConfirm","onCancel","Message","AlertModal","buttonText","Confirm","Alert","handleButton","modal","urlDecomposition","tempUrl","split","protocol","path","pathname","query","logger","localStorage","localStorageKey","activeLogs","setItem","input","util","format","tabID","newLog","toISOString","room_id","tab_id","userToken","appendLog","JSON","stringify","aws4","require","settings","enable","livechat_enable_elastic_search_logs","livechat_elastic_search_url","livechat_elastic_search_index","access_key","livechat_elastic_search_access_key","secret_access_key","livechat_elastic_search_access_key_secret","clearLogs","uri","opts","method","region","service","headers","body","sign","secretAccessKey","accessKeyId","fetch","response","console","log","error","setInterval","sendLogsToES","handleIdleTimeout","idleTimeoutConfig","idleTimeoutAction","idleTimeoutMessage","idleTimeoutWarningTime","idleTimeoutTimeoutTime","idleTimeout","idleTimeoutTimers","chatClosed","idleTimeoutRunning","clearTimers","warning","idleWarningTimer","idleTimeoutTimer","clearInterval","getTimeString","timeInseconds","hours","minutes","seconds","toString","padStart","showWarning","timeoutTimeString","timeoutAlert","hideCloseButton","height","contentStyle","alert","hideWarning","onTimeout","info","loggerPayload","generateLoggerPayload","close_method","sendLogsToSNS","all","sendMessage","ModalManager","onHandleTimeoutTimer","countDown","timeoutTimer","onTimeoutWarning","warningTimer","addParentMessage","parentMessage","parentMessages","tmid","find","isThreadMessage","replies","findParentMessage","data","createToken","normalizeThreadMessage","attachments","threadMsg","normalizeMessage","actionsVisible","normalizeMessages","isMobile","hasTouchScreen","navigator","maxTouchPoints","msMaxTouchPoints","mQ","matchMedia","media","matches","UA","userAgent","test","commands","onChatClose","clearLocalStorageWhenChatEnded","initialState","undocked","expanded","initial","disable","disableText","removeComposer","onDisabledComposerClick","postChatUrl","route","parentCall","closeChat","disableComposer","customFields","disableInput","disableInputMessage","i","actions","j","handleComposerOnMessage","checkForPostChatUrlInMessage","processIncomingCallMessage","incomingCallAlert","show","callProvider","callerUsername","u","time","callId","jitsiCallUrl","ongoingCall","processMessage","webRtcCallEndTs","doPlaySound","initRoom","unsubscribeAll","servedBy","subscribeRoom","roomAgent","onAgentChange","onAgentStatusChange","onQueuePositionChange","transformAgentInformationOnMessage","agentHiddenInfo","salesforceAgentName","alias","handleMessageCustomFields","undefined","sneakPeekEnabled","onTyping","isTyping","indexOf","onMessage","editedAt","self","timer","connectedListener","disconnectedListener","getGreetingMessages","trigger","getLatestCallMessage","pop","loadMessages","rawMessages","reverse","storedMessages","oldMessage","lastMessage","latestCallMessage","reloadMessages","loadMoreMessages","moreMessages","defaultRoomParams","params","defaultAgent","agentId","assignRoom","newRoom","on","initiated","livechatDisconnectedAlertId","livechatConnectedAlertId","l","Connection","connect","clearListeners","addListeners","clearAlerts","reconnect","displayAlert","handleConnected","handleDisconnected","onStreamData","instance","CustomFields","_initiated","_started","_queue","_callback","handleStoreChange","off","processCustomFields","value","overwrite","setCustomField","sendCustomField","agentPromise","registerGuestAndCreateSession","triggerAction","guestDepartment","iframe","department","startChat","grantVisitor","visitor","isEmpty","setOnCustomFieldsUpdated","runCallbackEventEmitter","Triggers","_chatOpened","_requests","_triggers","_enabled","firedTriggers","triggers","triggerId","skip","registrationForm","registeredOnly","action","reject","sender","now","nextAgent","triggered","runOnce","request","processTriggers","conditions","condition","fire","parseInt","newTriggers","createOrUpdateGuest","updateIframeGuestData","guestData","api","pageVisited","change","processRequest","title","sendVisitorNavigation","pageInfo","setTheme","color","fontColor","iconColor","offlineTitle","theme","setDepartment","dept","dep","setBusinessUnit","trim","existingBusinessUnit","clearBusinessUnit","clearDepartment","setAgent","warn","setExpanded","setGuestToken","localToken","setGuestName","setGuestPhone","phone","setGuestEmail","email","registerGuest","setLanguage","changeLanguage","showWidget","hideWidget","showPrint","hidePrint","minimizeWidget","maximizeWidget","dropTriggerMessage","onNewMessage","event","fn","concat","Hooks","oldStatus","docActivityEvents","userPrensence","reset","stopEvents","stopTimer","startTimer","setAway","startEvents","setOnline","updateVisitorStatus","CallIframe","handleIframeClose","expandCall","allow","Avatar","errored","handleError","large","description","nobg","alt","onError","dispatch","useState","setShow","callInNewTab","acceptClick","updateCallStatus","innerWidth","innerHeight","declineClick","notifyCallDeclined","width","ComposerAction","ComposerActions","replaceCaret","el","findLastTextNode","node","nodeType","Node","TEXT_NODE","childNodes","textNode","isTargetFocused","activeElement","nodeValue","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","HTMLElement","focus","Composer","handleRef","handleInput","onChange","inputLock","innerText","handleKeypress","onSubmit","which","shiftKey","preventDefault","handlePaste","onUpload","clipboardData","items","from","files","kind","getAsFile","getAsString","pasteText","handleDrop","dataTransfer","handleClick","handleEmojiClick","queryCommandSupported","execCommand","getRangeAt","deleteContents","createTextNode","insertNode","selectNodeContents","selection","pre","post","placeholder","contentEditable","onInput","onKeypress","onPaste","onDrop","onCompositionStart","handleInputLock","onCompositionEnd","handleNotifyEmojiSelect","bind","notifyEmojiSelect","nextValue","limitTextLength","emoji","caretPosition","getCaretPosition","oldText","newText","substr","moveCursorToEndAndFocus","endIndex","setPos","set","element","doc","ownerDocument","win","defaultView","parentWindow","rangeCount","preCaretRange","cloneRange","setEnd","endContainer","endOffset","textRange","preCaretTextRange","createTextRange","moveToElementText","setEndPoint","locked","escapeForRegExp","FilesDropTarget","dragLevel","handleInputRef","handleDragOver","handleDragEnter","handleDragLeave","handleUpload","handleInputChange","currentTarget","accept","multiple","filteredFiles","acceptMatchers","acceptString","charAt","matchTypeOnly","exec","file","some","acceptMatcher","browse","click","overlayed","overlayText","data-overlay-text","onDragOver","onDragEnter","onDragLeave","dragover","FilesDropTargetWrapper","isEnabled","PopoverContext","createContext","PopoverOverlay","PopoverContainer","renderer","overlayBounds","triggerBounds","overlayRef","base","getBoundingClientRect","dismiss","handleOverlayGesture","handleOverlayRef","overlayProps","Provider","PopoverTrigger","Consumer","Menu","placement","PopoverMenuWrapper","menuRef","closest","menu__item","position","onClickCapture","menuBounds","menuWidth","menuHeight","rightSpace","bottomSpace","PopoverMenu","Group","Item","primary","Popover","Footer","FooterContent","rel","role","OptionsTrigger","FooterOptions","CharCounter","textLength","highlight","MessageBubble","inverse","msgSequence","quoted","system","friendlyChat","livechat_friendly_chat","styleConfig","myfirst","mymid","mylast","yourfirst","yourmid","yourlast","AudioAttachment","messageBubbleProps","controls","FileAttachmentIcon","extension","Icon","PDFIcon","DocIcon","PPTIcon","SheetIcon","ZipIcon","FileIcon","FileAttachment","download","ImageAttachment","promptTranscript","visitorEmails","address","requestTranscript","transcript","base64toBlob","base64WithoutPrefix","bytes","atob","out","Uint8Array","charCodeAt","Blob","handleTranscript","base64Data","fileName","eventType","ReactNativeWebView","postMessage","URL","createObjectURL","generateRandomString","characters","charactersLength","random","MessageAction","resetLastAction","randomWord","randommsg","getSessionId","addButton","MessageAvatars","avatarResolver","usernames","isVisitor","UIKitInteractionType","MODAL_OPEN","MODAL_CLOSE","MODAL_UPDATE","ERRORS","UIKitIncomingInteractionType","UIKitIncomingInteractionContainerType","triggersId","Map","invalidateTriggerId","appId","get","delete","generateTriggerId","createRandomId","handlePayloadUserInteraction","has","view","viewId","MODAL_ClOSE","actionId","mid","container","payload","race","encodeURI","getBody","getHeaders","handle","_","interactionType","SurfaceContext","dispatchAction","BlockContext","blockId","usePerformAction","useContext","performing","setPerforming","mountedRef","useCallback","elements","parser","collapsed","setCollapsed","renderableElements","useMemo","hiddenElementsCount","isMoreButtonVisible","handleMoreButtonClick","renderedElement","renderActions","BLOCK_CONTEXT","ACTION","confirm","performAction","performingAction","newTab","opener","accessory","SECTION","renderContext","CONTEXT","initialDate","handleChange","selectedDate","imageUrl","altText","naturalWidth","naturalHeight","updateImageState","image","Image","cancelled","onload","maxWidth","wrapperStyle","paddingBottom","linkStyle","ascii","O_O","emojis","shortnamePattern","replaceShortNameWithUnicode","shortname","regAscii","unescapeHTML","unescaped","shortnameToUnicode","stringMessage","entire","m1","m2","m3","emojiUnicode","emojiRanges","transformEmojisToNormalSize","transformEmojisToLargeSize","isOnlyEmoji","str","removeAllEmoji","removeSpaces","renderEmojis","origPlainText","textWithOnlyUnicode","md","MarkdownIt","breaks","linkify","typographer","setNewlines","tokens","idx","previousInlinePos","inline","paragraph","diff","repeat","defaultRender","rules","link_open","options","env","renderToken","targetAttrIndex","attrIndex","relAttrIndex","attrPush","attrs","paragraph_open","list_item_open","renderStrong","slf","markup","tag","em_open","em_close","ruler","silent","marker","pos","scanned","scanDelims","ch","String","fromCharCode","len","delimiters","jump","end","can_open","close","can_close","renderMarkdown","dangerouslySetInnerHTML","__html","dir","OverflowTrigger","OverflowOption","option","unsafe","field","renderAccessories","SelectInput","defaultPrevented","label","initialOption","selectOptions","divider","BLOCK","section","mrkdwn","button","overflow","datePicker","staticSelect","multiStaticSelect","UiKitParserMessage","renderMessageBlocks","uiKitMessage","engine","blocks","MessageContainer","compact","Element","MessageContent","MessageText","MessageTime","normal","dateTime","timestamp","isToday","parseDate","VideoAttachment","onClickTranscript","renderContent","enableTranscriptMobile","me","attachmentResolver","showPostChatUrl","isChatClosed","attachment","audio_url","video_url","image_url","title_link","message_link","Boolean","getSystemMessageText","conversationFinishedText","transferData","escalatedConversationFinishedText","getClosingMessaageText","transferredBy","transferredTo","nextDepartment","scope","to","queue","normalizeTransferHistoryMessage","callEndTime","callStartTime","callDuration","resolveWebRTCEndCallMessage","getName","getMessageUsernames","showPostChatFeedback","isPostChatFeedbackEnabled","livechat_enable_avatar","JoinCallButton","MessageSeparator","date","year","toUpperCase","TypingDots","class","TypingIndicator","containerProps","isMyMessage","uid","messageList","previousMessage","nextMessage","sequence","isNotEmpty","shouldHideMessage","hideSysMessages","MessageList","scrollPosition","SCROLL_AT_BOTTOM","handleScroll","isResizingFromBottom","scrollTop","scrollHeight","clientHeight","SCROLL_AT_TOP","SCROLL_FREE","onScrollTo","handleResize","renderItems","typingUsernames","actionLinks","isSameDay","onScroll","previousScrollHeight","delta","Sound","audio","handlePlayProp","dismissNotification","ended","paused","pause","currentTime","onStart","onStop","onPlay","onEnded","handleDismiss","backgroundColor","dismissTimeout","Header","Picture","Content","Title","SubTitle","Actions","Action","Post","CustomField","getPositioningStyle","Tooltip","floating","TooltipContext","TooltipContainer","tooltip","activeChild","showTooltip","childIndex","hideTooltip","activeChildren","Container","Trigger","onMouseEnter","onMouseLeave","onFocusCapture","onBlurCapture","ScreenHeader","largeHeader","headerTitle","notificationsEnabled","onDismissAlert","onEnableNotifications","onDisableNotifications","onFinishChat","avatar","statusBorder","ChatButton","CssVar","CSS","supports","cssVars","variables","screen","Screen","windowed","onMinimize","onRestore","onOpenWindow","onSoundStop","fitTextSize","nopadding","Chat","atBottom","emojiPickerActive","handleFilesDropTargetRef","filesDropTarget","handleMessagesContainerRef","messagesContainer","handleScrollTo","onTop","onBottom","handleUploadClick","handleSendClick","handleSubmit","turnOffEmojiPicker","handleChangeText","onChangeText","substring","toggleEmojiPickerState","handleEmojiSelect","native","uploads","onChangeDepartment","onRemoveUserData","onPrintTranscript","registrationRequired","onRegisterUser","livechat_kill_switch","zIndex","maxHeight","showPreview","showSkinTones","sheetSize","onSelect","autoFocus","PrintIcon","ChangeIcon","RemoveIcon","ChatContainer","connectingAgent","queueSpot","triggerQueueMessage","checkConnectingAgent","newConnecting","newQueueSpot","newEstimatedWaitTime","handleQueueMessage","handleConnectingAgentAlert","checkRoom","stateRoom","grantUser","newUser","getRoom","i18n","livechatClosedMessage","livechat_chat_already_closed_message","previousMessages","handleTop","startTyping","notifyVisitorTyping","stopTypingDebounced","stopTyping","handleSneakPeakDebounced","getAvatar","defaultAvatar","defaultUrl","doFileUpload","uploadFile","sizeAllowed","size","handleSoundStop","livechat_close_modal_message","deleteVisitor","printContent","getElementById","head","getElementsByTagName","printWindow","write","setAttribute","canSwitchDepartment","allowSwitchingDepartments","showOnRegistration","canFinishChat","canRemoveUserData","allowRemoveUserData","registrationFormEnabled","nameFieldRegistrationForm","emailFieldRegistrationForm","showDepartment","canPrintTranscript","printTranscript","showOptionsMenu","livechat_kill_switch_message","Livechat_close_modal_message","oldAlerts","connectingAgentAlertId","livechatQueueMessageId","handleClosedRoom","prevProps","prevMessages","prevAlerts","nextLastMessage","newAlerts","processChatOpened","fileUpload","guestDefaultAvatar","forceAcceptDataProcessingConsent","showConnecting","customColor","customFontColor","customIconColor","customTitle","triggerAgent","emails","phoneNumber","conversationFinishedMessage","ChatFinished","onRedirectChat","greeting","defaultGreeting","ChatFinishedContainer","handleRedirect","GDPR","onAgree","consentText","instructions","renderInline","i18nKey","GDPRContainer","handleAgree","gdpr","accepted","dataProcessingConsentText","basicEmailRegex","rfcEmailRegex","FormField","required","TextInput","multiline","rows","Form","noValidate","defaultHandleSubmit","Validations","nonEmpty","validateEmail","toLowerCase","custom","pattern","LeaveMessage","validations","getDefaultState","hasDepartmentField","getValidableFields","fieldName","validate","reduce","validation","validateAll","showError","isValid","every","handleFieldChange","handleNameChange","handleEmailChange","handleDepartmentChange","handleMessageChange","values","entry","renderForm","valid","unavailableMessage","hasForm","defaultTitle","defaultMessage","LeaveMessageContainer","successMessage","sendOfflineMessage","LeaveMessageConnector","offlineMessage","offlineSuccessMessage","offlineUnavailableMessage","offlineColor","displayOfflineForm","customOfflineTitle","showOnOfflineForm","getDefaultDepartment","regexp","customFieldValidation","Register","hasNameField","hasEmailField","defaultValue","departmentDefault","nameDefault","emailDefault","nameValue","emailValue","departmentValue","showDepartmentField","renderCustomFields","RegisterContainer","getDepartment","deptDefault","registerCustomFields","getDepartmentDefault","prevUser","RegisterConnector","registrationFormMessage","guestName","guestEmail","SwitchDepartment","handleCancelClick","SwitchDepartmentContainer","confirmChangeDepartment","go","transferChat","handleCancel","SwitchDepartmentConnector","TriggerMessage","createRef","onStartChat","TriggerMessageContainer","handleStart","TriggerMessageConnector","App","initialized","poppedOut","handleRoute","gdprRequired","online","gdprAccepted","handleEnableNotifications","handleDisableNotifications","handleMinimize","handleRestore","dispatchRestore","dispatchEvent","handleOpenWindow","handleDismissAlert","handleVisibilityChange","handleLanguageChange","forceUpdate","screenProps","queryString","search","mode","handleTriggers","userPresence","initWidget","checkPoppedOutWindow","initialize","finalize","s","AppConnector","defineProperty","App_1","enumerable","storedState","dontPersist","mitt","_state","newValue","reload","setStoredState","emit","session_id","session","persistable","partialState","prevState","persist","propName","nonPeristable","ignoredKey","StoreContext","displayName","SERVER_URL","serverUrl","LivechatClient","RocketChat","widget","widget_height","hookQueue","ready","smallScreen","validCallbacks","callbacks","registerCallback","eventName","emitCallback","callHook","contentWindow","updateWidgetStyle","isOpened","documentElement","classList","add","remove","WIDGET_MARGIN","openWidget","dataset","closeWidget","popup","hookParams","minimizeWindow","restoreWindow","closed","openPopout","lastIndexOf","resizeWidget","removeWidget","removeChild","display","resetDocumentStyle","setFullScreenDocumentMobile","currentPage","allowTransparency","parentURL","border","handleMediaQueryTest","mediaQueryList","createWidget","initRocket","parent","c","call","livechat","hasOwnProperty","onChatMaximized","onChatMinimized","onChatStarted","onChatEnded","onPrechatFormSubmit","onOfflineFormSubmit","onWidgetShown","onWidgetHidden","onAssignAgent","onServiceOffline","callbackName","UNMISTAKABLE_CHARS","chooseElement","arrayOrString","Uint32Array","crypto","getRandomValues","createRandomString","charsCount","alphabet","WordArray","Hex","category","properties","roomId","tabId","languageString","languageCode","countryCode","userLanguage","supportedLocales","fullLanguage"],"mappings":"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,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,iBAAkB,CACjB,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,eAAgB,CACf,KACA,IAED,YAAa,CACZ,KACA,IAED,eAAgB,CACf,K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AQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,UAAW,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,UAAW,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,cAAe,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,YAAa,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,gBAAiB,OAAQ,UAAW,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,OAAQ,OAAQ,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","file":"5.chunk.13cc1.js","sourcesContent":["\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 18 18\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","var map = {\n\t\"./_lib/buildFormatLongFn/index.js\": 643,\n\t\"./_lib/buildLocalizeFn/index.js\": 644,\n\t\"./_lib/buildMatchFn/index.js\": 645,\n\t\"./_lib/buildMatchPatternFn/index.js\": 646,\n\t\"./af/_lib/formatDistance/index.js\": 969,\n\t\"./af/_lib/formatLong/index.js\": 970,\n\t\"./af/_lib/formatRelative/index.js\": 971,\n\t\"./af/_lib/localize/index.js\": 972,\n\t\"./af/_lib/match/index.js\": 973,\n\t\"./af/index.js\": 1408,\n\t\"./ar-DZ/_lib/formatDistance/index.js\": 974,\n\t\"./ar-DZ/_lib/formatLong/index.js\": 975,\n\t\"./ar-DZ/_lib/formatRelative/index.js\": 976,\n\t\"./ar-DZ/_lib/localize/index.js\": 977,\n\t\"./ar-DZ/_lib/match/index.js\": 978,\n\t\"./ar-DZ/index.js\": 1409,\n\t\"./ar-MA/_lib/formatDistance/index.js\": 979,\n\t\"./ar-MA/_lib/formatLong/index.js\": 980,\n\t\"./ar-MA/_lib/formatRelative/index.js\": 981,\n\t\"./ar-MA/_lib/localize/index.js\": 982,\n\t\"./ar-MA/_lib/match/index.js\": 983,\n\t\"./ar-MA/index.js\": 1410,\n\t\"./ar-SA/_lib/formatDistance/index.js\": 984,\n\t\"./ar-SA/_lib/formatLong/index.js\": 985,\n\t\"./ar-SA/_lib/formatRelative/index.js\": 986,\n\t\"./ar-SA/_lib/localize/index.js\": 987,\n\t\"./ar-SA/_lib/match/index.js\": 988,\n\t\"./ar-SA/index.js\": 1411,\n\t\"./az/_lib/formatDistance/index.js\": 989,\n\t\"./az/_lib/formatLong/index.js\": 990,\n\t\"./az/_lib/formatRelative/index.js\": 991,\n\t\"./az/_lib/localize/index.js\": 992,\n\t\"./az/_lib/match/index.js\": 993,\n\t\"./az/index.js\": 1412,\n\t\"./be/_lib/formatDistance/index.js\": 994,\n\t\"./be/_lib/formatLong/index.js\": 995,\n\t\"./be/_lib/formatRelative/index.js\": 996,\n\t\"./be/_lib/localize/index.js\": 997,\n\t\"./be/_lib/match/index.js\": 998,\n\t\"./be/index.js\": 1416,\n\t\"./bg/_lib/formatDistance/index.js\": 999,\n\t\"./bg/_lib/formatLong/index.js\": 1000,\n\t\"./bg/_lib/formatRelative/index.js\": 1001,\n\t\"./bg/_lib/localize/index.js\": 1002,\n\t\"./bg/_lib/match/index.js\": 1003,\n\t\"./bg/index.js\": 1417,\n\t\"./bn/_lib/formatDistance/index.js\": 1004,\n\t\"./bn/_lib/formatLong/index.js\": 1005,\n\t\"./bn/_lib/formatRelative/index.js\": 1006,\n\t\"./bn/_lib/localize/index.js\": 900,\n\t\"./bn/_lib/match/index.js\": 1007,\n\t\"./bn/index.js\": 1418,\n\t\"./ca/_lib/formatDistance/index.js\": 1008,\n\t\"./ca/_lib/formatLong/index.js\": 1009,\n\t\"./ca/_lib/formatRelative/index.js\": 1010,\n\t\"./ca/_lib/localize/index.js\": 1011,\n\t\"./ca/_lib/match/index.js\": 1012,\n\t\"./ca/index.js\": 1419,\n\t\"./cs/_lib/formatDistance/index.js\": 1013,\n\t\"./cs/_lib/formatLong/index.js\": 1014,\n\t\"./cs/_lib/formatRelative/index.js\": 1015,\n\t\"./cs/_lib/localize/index.js\": 1016,\n\t\"./cs/_lib/match/index.js\": 1017,\n\t\"./cs/index.js\": 1420,\n\t\"./cy/_lib/formatDistance/index.js\": 1018,\n\t\"./cy/_lib/formatLong/index.js\": 1019,\n\t\"./cy/_lib/formatRelative/index.js\": 1020,\n\t\"./cy/_lib/localize/index.js\": 1021,\n\t\"./cy/_lib/match/index.js\": 1022,\n\t\"./cy/index.js\": 1421,\n\t\"./da/_lib/formatDistance/index.js\": 1023,\n\t\"./da/_lib/formatLong/index.js\": 1024,\n\t\"./da/_lib/formatRelative/index.js\": 1025,\n\t\"./da/_lib/localize/index.js\": 1026,\n\t\"./da/_lib/match/index.js\": 1027,\n\t\"./da/index.js\": 1422,\n\t\"./de/_lib/formatDistance/index.js\": 1028,\n\t\"./de/_lib/formatLong/index.js\": 1029,\n\t\"./de/_lib/formatRelative/index.js\": 1030,\n\t\"./de/_lib/localize/index.js\": 1031,\n\t\"./de/_lib/match/index.js\": 1032,\n\t\"./de/index.js\": 1423,\n\t\"./el/_lib/formatDistance/index.js\": 1033,\n\t\"./el/_lib/formatLong/index.js\": 1034,\n\t\"./el/_lib/formatRelative/index.js\": 1035,\n\t\"./el/_lib/localize/index.js\": 1036,\n\t\"./el/_lib/match/index.js\": 1037,\n\t\"./el/index.js\": 1424,\n\t\"./en-AU/_lib/formatLong/index.js\": 1038,\n\t\"./en-AU/index.js\": 1425,\n\t\"./en-CA/_lib/formatDistance/index.js\": 1039,\n\t\"./en-CA/_lib/formatLong/index.js\": 1040,\n\t\"./en-CA/index.js\": 1426,\n\t\"./en-GB/_lib/formatLong/index.js\": 1041,\n\t\"./en-GB/index.js\": 1427,\n\t\"./en-IN/_lib/formatLong/index.js\": 1042,\n\t\"./en-IN/index.js\": 1428,\n\t\"./en-NZ/_lib/formatLong/index.js\": 1043,\n\t\"./en-NZ/index.js\": 1429,\n\t\"./en-US/_lib/formatDistance/index.js\": 713,\n\t\"./en-US/_lib/formatLong/index.js\": 1044,\n\t\"./en-US/_lib/formatRelative/index.js\": 693,\n\t\"./en-US/_lib/localize/index.js\": 694,\n\t\"./en-US/_lib/match/index.js\": 695,\n\t\"./en-US/index.js\": 1430,\n\t\"./eo/_lib/formatDistance/index.js\": 1045,\n\t\"./eo/_lib/formatLong/index.js\": 1046,\n\t\"./eo/_lib/formatRelative/index.js\": 1047,\n\t\"./eo/_lib/localize/index.js\": 1048,\n\t\"./eo/_lib/match/index.js\": 1049,\n\t\"./eo/index.js\": 1431,\n\t\"./es/_lib/formatDistance/index.js\": 1050,\n\t\"./es/_lib/formatLong/index.js\": 1051,\n\t\"./es/_lib/formatRelative/index.js\": 1052,\n\t\"./es/_lib/localize/index.js\": 1053,\n\t\"./es/_lib/match/index.js\": 1054,\n\t\"./es/index.js\": 1432,\n\t\"./et/_lib/formatDistance/index.js\": 1055,\n\t\"./et/_lib/formatLong/index.js\": 1056,\n\t\"./et/_lib/formatRelative/index.js\": 1057,\n\t\"./et/_lib/localize/index.js\": 1058,\n\t\"./et/_lib/match/index.js\": 1059,\n\t\"./et/index.js\": 1433,\n\t\"./eu/_lib/formatDistance/index.js\": 1060,\n\t\"./eu/_lib/formatLong/index.js\": 1061,\n\t\"./eu/_lib/formatRelative/index.js\": 1062,\n\t\"./eu/_lib/localize/index.js\": 1063,\n\t\"./eu/_lib/match/index.js\": 1064,\n\t\"./eu/index.js\": 1434,\n\t\"./fa-IR/_lib/formatDistance/index.js\": 1065,\n\t\"./fa-IR/_lib/formatLong/index.js\": 1066,\n\t\"./fa-IR/_lib/formatRelative/index.js\": 1067,\n\t\"./fa-IR/_lib/localize/index.js\": 1068,\n\t\"./fa-IR/_lib/match/index.js\": 1069,\n\t\"./fa-IR/index.js\": 1435,\n\t\"./fi/_lib/formatDistance/index.js\": 1070,\n\t\"./fi/_lib/formatLong/index.js\": 1071,\n\t\"./fi/_lib/formatRelative/index.js\": 1072,\n\t\"./fi/_lib/localize/index.js\": 1073,\n\t\"./fi/_lib/match/index.js\": 1074,\n\t\"./fi/index.js\": 1436,\n\t\"./fr-CA/_lib/formatLong/index.js\": 1075,\n\t\"./fr-CA/index.js\": 1437,\n\t\"./fr-CH/_lib/formatDistance/index.js\": 1076,\n\t\"./fr-CH/_lib/formatLong/index.js\": 1077,\n\t\"./fr-CH/_lib/formatRelative/index.js\": 1078,\n\t\"./fr-CH/_lib/formatters/index.js\": 1438,\n\t\"./fr-CH/_lib/localize/index.js\": 1079,\n\t\"./fr-CH/_lib/match/index.js\": 1080,\n\t\"./fr-CH/index.js\": 1439,\n\t\"./fr/_lib/formatDistance/index.js\": 901,\n\t\"./fr/_lib/formatLong/index.js\": 1081,\n\t\"./fr/_lib/formatRelative/index.js\": 902,\n\t\"./fr/_lib/formatters/index.js\": 1440,\n\t\"./fr/_lib/localize/index.js\": 903,\n\t\"./fr/_lib/match/index.js\": 904,\n\t\"./fr/index.js\": 1441,\n\t\"./gd/_lib/formatDistance/index.js\": 1082,\n\t\"./gd/_lib/formatLong/index.js\": 1083,\n\t\"./gd/_lib/formatRelative/index.js\": 1084,\n\t\"./gd/_lib/localize/index.js\": 1085,\n\t\"./gd/_lib/match/index.js\": 1086,\n\t\"./gd/index.js\": 1442,\n\t\"./gl/_lib/formatDistance/index.js\": 1087,\n\t\"./gl/_lib/formatLong/index.js\": 1088,\n\t\"./gl/_lib/formatRelative/index.js\": 1089,\n\t\"./gl/_lib/localize/index.js\": 1090,\n\t\"./gl/_lib/match/index.js\": 1091,\n\t\"./gl/index.js\": 1443,\n\t\"./gu/_lib/formatDistance/index.js\": 1092,\n\t\"./gu/_lib/formatLong/index.js\": 1093,\n\t\"./gu/_lib/formatRelative/index.js\": 1094,\n\t\"./gu/_lib/localize/index.js\": 1095,\n\t\"./gu/_lib/match/index.js\": 1096,\n\t\"./gu/index.js\": 1444,\n\t\"./he/_lib/formatDistance/index.js\": 1097,\n\t\"./he/_lib/formatLong/index.js\": 1098,\n\t\"./he/_lib/formatRelative/index.js\": 1099,\n\t\"./he/_lib/localize/index.js\": 1100,\n\t\"./he/_lib/match/index.js\": 1101,\n\t\"./he/index.js\": 1445,\n\t\"./hi/_lib/formatDistance/index.js\": 1102,\n\t\"./hi/_lib/formatLong/index.js\": 1103,\n\t\"./hi/_lib/formatRelative/index.js\": 1104,\n\t\"./hi/_lib/localize/index.js\": 812,\n\t\"./hi/_lib/match/index.js\": 1105,\n\t\"./hi/index.js\": 1446,\n\t\"./hr/_lib/formatDistance/index.js\": 1106,\n\t\"./hr/_lib/formatLong/index.js\": 1107,\n\t\"./hr/_lib/formatRelative/index.js\": 1108,\n\t\"./hr/_lib/localize/index.js\": 1109,\n\t\"./hr/_lib/match/index.js\": 1110,\n\t\"./hr/index.js\": 1447,\n\t\"./hu/_lib/formatDistance/index.js\": 1111,\n\t\"./hu/_lib/formatLong/index.js\": 1112,\n\t\"./hu/_lib/formatRelative/index.js\": 1113,\n\t\"./hu/_lib/localize/index.js\": 1114,\n\t\"./hu/_lib/match/index.js\": 1115,\n\t\"./hu/index.js\": 1448,\n\t\"./hy/_lib/formatDistance/index.js\": 1116,\n\t\"./hy/_lib/formatLong/index.js\": 1117,\n\t\"./hy/_lib/formatRelative/index.js\": 1118,\n\t\"./hy/_lib/localize/index.js\": 1119,\n\t\"./hy/_lib/match/index.js\": 1120,\n\t\"./hy/index.js\": 1449,\n\t\"./id/_lib/formatDistance/index.js\": 1121,\n\t\"./id/_lib/formatLong/index.js\": 1122,\n\t\"./id/_lib/formatRelative/index.js\": 1123,\n\t\"./id/_lib/localize/index.js\": 1124,\n\t\"./id/_lib/match/index.js\": 1125,\n\t\"./id/index.js\": 1450,\n\t\"./is/_lib/formatDistance/index.js\": 1126,\n\t\"./is/_lib/formatLong/index.js\": 1127,\n\t\"./is/_lib/formatRelative/index.js\": 1128,\n\t\"./is/_lib/localize/index.js\": 1129,\n\t\"./is/_lib/match/index.js\": 1130,\n\t\"./is/index.js\": 1451,\n\t\"./it/_lib/formatDistance/index.js\": 1131,\n\t\"./it/_lib/formatLong/index.js\": 1132,\n\t\"./it/_lib/formatRelative/index.js\": 1133,\n\t\"./it/_lib/localize/index.js\": 1134,\n\t\"./it/_lib/match/index.js\": 1135,\n\t\"./it/index.js\": 1452,\n\t\"./ja/_lib/formatDistance/index.js\": 1136,\n\t\"./ja/_lib/formatLong/index.js\": 1137,\n\t\"./ja/_lib/formatRelative/index.js\": 1138,\n\t\"./ja/_lib/localize/index.js\": 1139,\n\t\"./ja/_lib/match/index.js\": 1140,\n\t\"./ja/index.js\": 1453,\n\t\"./ka/_lib/formatDistance/index.js\": 1141,\n\t\"./ka/_lib/formatLong/index.js\": 1142,\n\t\"./ka/_lib/formatRelative/index.js\": 1143,\n\t\"./ka/_lib/localize/index.js\": 1144,\n\t\"./ka/_lib/match/index.js\": 1145,\n\t\"./ka/index.js\": 1454,\n\t\"./kk/_lib/formatDistance/index.js\": 1146,\n\t\"./kk/_lib/formatLong/index.js\": 1147,\n\t\"./kk/_lib/formatRelative/index.js\": 1148,\n\t\"./kk/_lib/localize/index.js\": 1149,\n\t\"./kk/_lib/match/index.js\": 1150,\n\t\"./kk/index.js\": 1455,\n\t\"./kn/_lib/formatDistance/index.js\": 1151,\n\t\"./kn/_lib/formatLong/index.js\": 1152,\n\t\"./kn/_lib/formatRelative/index.js\": 1153,\n\t\"./kn/_lib/localize/index.js\": 1154,\n\t\"./kn/_lib/match/index.js\": 1155,\n\t\"./kn/index.js\": 1456,\n\t\"./ko/_lib/formatDistance/index.js\": 1156,\n\t\"./ko/_lib/formatLong/index.js\": 1157,\n\t\"./ko/_lib/formatRelative/index.js\": 1158,\n\t\"./ko/_lib/localize/index.js\": 1159,\n\t\"./ko/_lib/match/index.js\": 1160,\n\t\"./ko/index.js\": 1457,\n\t\"./lt/_lib/formatDistance/index.js\": 1161,\n\t\"./lt/_lib/formatLong/index.js\": 1162,\n\t\"./lt/_lib/formatRelative/index.js\": 1163,\n\t\"./lt/_lib/localize/index.js\": 1164,\n\t\"./lt/_lib/match/index.js\": 1165,\n\t\"./lt/index.js\": 1458,\n\t\"./lv/_lib/formatDistance/index.js\": 1166,\n\t\"./lv/_lib/formatLong/index.js\": 1167,\n\t\"./lv/_lib/formatRelative/index.js\": 1168,\n\t\"./lv/_lib/localize/index.js\": 1169,\n\t\"./lv/_lib/match/index.js\": 1170,\n\t\"./lv/index.js\": 1459,\n\t\"./mk/_lib/formatDistance/index.js\": 1171,\n\t\"./mk/_lib/formatLong/index.js\": 1172,\n\t\"./mk/_lib/formatRelative/index.js\": 1173,\n\t\"./mk/_lib/localize/index.js\": 1174,\n\t\"./mk/_lib/match/index.js\": 1175,\n\t\"./mk/index.js\": 1460,\n\t\"./ms/_lib/formatDistance/index.js\": 1176,\n\t\"./ms/_lib/formatLong/index.js\": 1177,\n\t\"./ms/_lib/formatRelative/index.js\": 1178,\n\t\"./ms/_lib/localize/index.js\": 1179,\n\t\"./ms/_lib/match/index.js\": 1180,\n\t\"./ms/index.js\": 1461,\n\t\"./mt/_lib/formatDistance/index.js\": 1181,\n\t\"./mt/_lib/formatLong/index.js\": 1182,\n\t\"./mt/_lib/formatRelative/index.js\": 1183,\n\t\"./mt/_lib/localize/index.js\": 1184,\n\t\"./mt/_lib/match/index.js\": 1185,\n\t\"./mt/index.js\": 1462,\n\t\"./nb/_lib/formatDistance/index.js\": 1186,\n\t\"./nb/_lib/formatLong/index.js\": 1187,\n\t\"./nb/_lib/formatRelative/index.js\": 1188,\n\t\"./nb/_lib/localize/index.js\": 1189,\n\t\"./nb/_lib/match/index.js\": 1190,\n\t\"./nb/index.js\": 1463,\n\t\"./nl-BE/_lib/formatDistance/index.js\": 1191,\n\t\"./nl-BE/_lib/formatLong/index.js\": 1192,\n\t\"./nl-BE/_lib/formatRelative/index.js\": 1193,\n\t\"./nl-BE/_lib/localize/index.js\": 1194,\n\t\"./nl-BE/_lib/match/index.js\": 1195,\n\t\"./nl-BE/index.js\": 1464,\n\t\"./nl/_lib/formatDistance/index.js\": 1196,\n\t\"./nl/_lib/formatLong/index.js\": 1197,\n\t\"./nl/_lib/formatRelative/index.js\": 1198,\n\t\"./nl/_lib/localize/index.js\": 1199,\n\t\"./nl/_lib/match/index.js\": 1200,\n\t\"./nl/index.js\": 1465,\n\t\"./nn/_lib/formatDistance/index.js\": 1201,\n\t\"./nn/_lib/formatLong/index.js\": 1202,\n\t\"./nn/_lib/formatRelative/index.js\": 1203,\n\t\"./nn/_lib/localize/index.js\": 1204,\n\t\"./nn/_lib/match/index.js\": 1205,\n\t\"./nn/index.js\": 1466,\n\t\"./pl/_lib/formatDistance/index.js\": 1206,\n\t\"./pl/_lib/formatLong/index.js\": 1207,\n\t\"./pl/_lib/formatRelative/index.js\": 1208,\n\t\"./pl/_lib/localize/index.js\": 1209,\n\t\"./pl/_lib/match/index.js\": 1210,\n\t\"./pl/index.js\": 1467,\n\t\"./pt-BR/_lib/formatDistance/index.js\": 1211,\n\t\"./pt-BR/_lib/formatLong/index.js\": 1212,\n\t\"./pt-BR/_lib/formatRelative/index.js\": 1213,\n\t\"./pt-BR/_lib/localize/index.js\": 1214,\n\t\"./pt-BR/_lib/match/index.js\": 1215,\n\t\"./pt-BR/index.js\": 1468,\n\t\"./pt/_lib/formatDistance/index.js\": 1216,\n\t\"./pt/_lib/formatLong/index.js\": 1217,\n\t\"./pt/_lib/formatRelative/index.js\": 1218,\n\t\"./pt/_lib/localize/index.js\": 1219,\n\t\"./pt/_lib/match/index.js\": 1220,\n\t\"./pt/index.js\": 1469,\n\t\"./ro/_lib/formatDistance/index.js\": 1221,\n\t\"./ro/_lib/formatLong/index.js\": 1222,\n\t\"./ro/_lib/formatRelative/index.js\": 1223,\n\t\"./ro/_lib/localize/index.js\": 1224,\n\t\"./ro/_lib/match/index.js\": 1225,\n\t\"./ro/index.js\": 1470,\n\t\"./ru/_lib/formatDistance/index.js\": 1226,\n\t\"./ru/_lib/formatLong/index.js\": 1227,\n\t\"./ru/_lib/formatRelative/index.js\": 1228,\n\t\"./ru/_lib/localize/index.js\": 1229,\n\t\"./ru/_lib/match/index.js\": 1230,\n\t\"./ru/index.js\": 1471,\n\t\"./sk/_lib/formatDistance/index.js\": 1231,\n\t\"./sk/_lib/formatLong/index.js\": 1232,\n\t\"./sk/_lib/formatRelative/index.js\": 1233,\n\t\"./sk/_lib/localize/index.js\": 1234,\n\t\"./sk/_lib/match/index.js\": 1235,\n\t\"./sk/index.js\": 1472,\n\t\"./sl/_lib/formatDistance/index.js\": 1236,\n\t\"./sl/_lib/formatLong/index.js\": 1237,\n\t\"./sl/_lib/formatRelative/index.js\": 1238,\n\t\"./sl/_lib/localize/index.js\": 1239,\n\t\"./sl/_lib/match/index.js\": 1240,\n\t\"./sl/index.js\": 1473,\n\t\"./sr-Latn/_lib/formatDistance/index.js\": 1241,\n\t\"./sr-Latn/_lib/formatLong/index.js\": 1242,\n\t\"./sr-Latn/_lib/formatRelative/index.js\": 1243,\n\t\"./sr-Latn/_lib/localize/index.js\": 1244,\n\t\"./sr-Latn/_lib/match/index.js\": 1245,\n\t\"./sr-Latn/index.js\": 1474,\n\t\"./sr/_lib/formatDistance/index.js\": 1246,\n\t\"./sr/_lib/formatLong/index.js\": 1247,\n\t\"./sr/_lib/formatRelative/index.js\": 1248,\n\t\"./sr/_lib/localize/index.js\": 1249,\n\t\"./sr/_lib/match/index.js\": 1250,\n\t\"./sr/index.js\": 1475,\n\t\"./sv/_lib/formatDistance/index.js\": 1251,\n\t\"./sv/_lib/formatLong/index.js\": 1252,\n\t\"./sv/_lib/formatRelative/index.js\": 1253,\n\t\"./sv/_lib/localize/index.js\": 1254,\n\t\"./sv/_lib/match/index.js\": 1255,\n\t\"./sv/index.js\": 1476,\n\t\"./ta/_lib/formatDistance/index.js\": 1256,\n\t\"./ta/_lib/formatLong/index.js\": 1257,\n\t\"./ta/_lib/formatRelative/index.js\": 1258,\n\t\"./ta/_lib/localize/index.js\": 1259,\n\t\"./ta/_lib/match/index.js\": 1260,\n\t\"./ta/index.js\": 1477,\n\t\"./te/_lib/formatDistance/index.js\": 1261,\n\t\"./te/_lib/formatLong/index.js\": 1262,\n\t\"./te/_lib/formatRelative/index.js\": 1263,\n\t\"./te/_lib/localize/index.js\": 1264,\n\t\"./te/_lib/match/index.js\": 1265,\n\t\"./te/index.js\": 1478,\n\t\"./th/_lib/formatDistance/index.js\": 1266,\n\t\"./th/_lib/formatLong/index.js\": 1267,\n\t\"./th/_lib/formatRelative/index.js\": 1268,\n\t\"./th/_lib/localize/index.js\": 1269,\n\t\"./th/_lib/match/index.js\": 1270,\n\t\"./th/index.js\": 1479,\n\t\"./tr/_lib/formatDistance/index.js\": 1271,\n\t\"./tr/_lib/formatLong/index.js\": 1272,\n\t\"./tr/_lib/formatRelative/index.js\": 1273,\n\t\"./tr/_lib/localize/index.js\": 1274,\n\t\"./tr/_lib/match/index.js\": 1275,\n\t\"./tr/index.js\": 1480,\n\t\"./ug/_lib/formatDistance/index.js\": 1276,\n\t\"./ug/_lib/formatLong/index.js\": 1277,\n\t\"./ug/_lib/formatRelative/index.js\": 1278,\n\t\"./ug/_lib/localize/index.js\": 1279,\n\t\"./ug/_lib/match/index.js\": 1280,\n\t\"./ug/index.js\": 1481,\n\t\"./uk/_lib/formatDistance/index.js\": 1281,\n\t\"./uk/_lib/formatLong/index.js\": 1282,\n\t\"./uk/_lib/formatRelative/index.js\": 1283,\n\t\"./uk/_lib/localize/index.js\": 1284,\n\t\"./uk/_lib/match/index.js\": 1285,\n\t\"./uk/index.js\": 1482,\n\t\"./uz/_lib/formatDistance/index.js\": 1286,\n\t\"./uz/_lib/formatLong/index.js\": 1287,\n\t\"./uz/_lib/formatRelative/index.js\": 1288,\n\t\"./uz/_lib/localize/index.js\": 1289,\n\t\"./uz/_lib/match/index.js\": 1290,\n\t\"./uz/index.js\": 1483,\n\t\"./vi/_lib/formatDistance/index.js\": 1291,\n\t\"./vi/_lib/formatLong/index.js\": 1292,\n\t\"./vi/_lib/formatRelative/index.js\": 1293,\n\t\"./vi/_lib/localize/index.js\": 1294,\n\t\"./vi/_lib/match/index.js\": 1295,\n\t\"./vi/index.js\": 1484,\n\t\"./zh-CN/_lib/formatDistance/index.js\": 1296,\n\t\"./zh-CN/_lib/formatLong/index.js\": 1297,\n\t\"./zh-CN/_lib/formatRelative/index.js\": 1298,\n\t\"./zh-CN/_lib/localize/index.js\": 1299,\n\t\"./zh-CN/_lib/match/index.js\": 1300,\n\t\"./zh-CN/index.js\": 1485,\n\t\"./zh-TW/_lib/formatDistance/index.js\": 1301,\n\t\"./zh-TW/_lib/formatLong/index.js\": 1302,\n\t\"./zh-TW/_lib/formatRelative/index.js\": 1303,\n\t\"./zh-TW/_lib/localize/index.js\": 1304,\n\t\"./zh-TW/_lib/match/index.js\": 1305,\n\t\"./zh-TW/index.js\": 1486\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1407;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"button__3e1dX\",\"button--nude\":\"button--nude__oLLi8\",\"button--outline\":\"button--outline__3jYhl\",\"button--loading\":\"button--loading__1OpgK\",\"button--danger\":\"button--danger__Iy_nb\",\"button--secondary\":\"button--secondary__2llNV\",\"button--img\":\"button--img__2ISo-\",\"button--stack\":\"button--stack__DpWG_\",\"button--small\":\"button--small__3Ekpu\",\"button--disabled\":\"button--disabled__138mI\",\"button-loading-rotation\":\"button-loading-rotation__3syhb\",\"button--icon\":\"button--icon__3a2Uu\",\"button__badge\":\"button__badge__A7TBZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button-group\":\"button-group__2wVZy\",\"button-group__item\":\"button-group__item__35pYh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal__overlay\":\"modal__overlay__1IgTH\",\"modal\":\"modal__Gy54_\",\"modal--animated\":\"modal--animated__2je9C\",\"fadeInUp\":\"fadeInUp__2U9Hr\",\"modal__message\":\"modal__message__ZU6Zd\"};","import i18next from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nimport { browserLanguage, configLanguage, normalizeLanguageString } from './lib/locale';\n\nexport const loadResource = async (lng) => {\n\tconst { default: { translation } } = await import(`./i18n/${ lng }.json`);\n\n\treturn translation;\n};\n\nexport default i18next\n\t.use({\n\t\ttype: 'backend',\n\t\tread: (language, namespace, callback) => {\n\t\t\tloadResource(language).then((resource) => {\n\t\t\t\tcallback(null, resource);\n\t\t\t}).catch((reason) => {\n\t\t\t\tcallback(reason, null);\n\t\t\t});\n\t\t},\n\t})\n\t.use(initReactI18next)\n\t.init({\n\t\tlng: normalizeLanguageString(configLanguage() || browserLanguage()),\n\t\tfallbackLng: 'en',\n\t\treact: {\n\t\t\tuseSuspense: false,\n\t\t},\n\t});\n","var map = {\n\t\"./af.json\": [\n\t\t1727,\n\t\t6\n\t],\n\t\"./ar.json\": [\n\t\t1728,\n\t\t7\n\t],\n\t\"./az.json\": [\n\t\t1729,\n\t\t8\n\t],\n\t\"./be-BY.json\": [\n\t\t1730,\n\t\t9\n\t],\n\t\"./be_BY.json\": [\n\t\t1731,\n\t\t10\n\t],\n\t\"./bg.json\": [\n\t\t1732,\n\t\t11\n\t],\n\t\"./bs.json\": [\n\t\t1733,\n\t\t12\n\t],\n\t\"./ca.json\": [\n\t\t1734,\n\t\t13\n\t],\n\t\"./cs.json\": [\n\t\t1735,\n\t\t14\n\t],\n\t\"./cy.json\": [\n\t\t1736,\n\t\t15\n\t],\n\t\"./da.json\": [\n\t\t1737,\n\t\t16\n\t],\n\t\"./de-AT.json\": [\n\t\t1738,\n\t\t17\n\t],\n\t\"./de-IN.json\": [\n\t\t1739,\n\t\t18\n\t],\n\t\"./de.json\": [\n\t\t1740,\n\t\t19\n\t],\n\t\"./de_AT.json\": [\n\t\t1741,\n\t\t20\n\t],\n\t\"./default.json\": [\n\t\t1742,\n\t\t21\n\t],\n\t\"./el.json\": [\n\t\t1743,\n\t\t22\n\t],\n\t\"./en.json\": [\n\t\t1744,\n\t\t23\n\t],\n\t\"./eo.json\": [\n\t\t1745,\n\t\t24\n\t],\n\t\"./es.json\": [\n\t\t1746,\n\t\t25\n\t],\n\t\"./et.json\": [\n\t\t1747,\n\t\t26\n\t],\n\t\"./eu.json\": [\n\t\t1748,\n\t\t27\n\t],\n\t\"./fa.json\": [\n\t\t1749,\n\t\t28\n\t],\n\t\"./fi.json\": [\n\t\t1750,\n\t\t29\n\t],\n\t\"./fr.json\": [\n\t\t1751,\n\t\t30\n\t],\n\t\"./he.json\": [\n\t\t1752,\n\t\t31\n\t],\n\t\"./hr.json\": [\n\t\t1753,\n\t\t32\n\t],\n\t\"./hu.json\": [\n\t\t1754,\n\t\t33\n\t],\n\t\"./id.json\": [\n\t\t1755,\n\t\t34\n\t],\n\t\"./it.json\": [\n\t\t1756,\n\t\t35\n\t],\n\t\"./ja.json\": [\n\t\t1757,\n\t\t36\n\t],\n\t\"./km.json\": [\n\t\t1758,\n\t\t37\n\t],\n\t\"./ko.json\": [\n\t\t1759,\n\t\t38\n\t],\n\t\"./ku.json\": [\n\t\t1760,\n\t\t39\n\t],\n\t\"./lo.json\": [\n\t\t1761,\n\t\t40\n\t],\n\t\"./lt.json\": [\n\t\t1762,\n\t\t41\n\t],\n\t\"./lv.json\": [\n\t\t1763,\n\t\t42\n\t],\n\t\"./mn.json\": [\n\t\t1764,\n\t\t43\n\t],\n\t\"./ms-MY.json\": [\n\t\t1765,\n\t\t44\n\t],\n\t\"./ms_MY.json\": [\n\t\t1766,\n\t\t45\n\t],\n\t\"./nl.json\": [\n\t\t1767,\n\t\t46\n\t],\n\t\"./no.json\": [\n\t\t1768,\n\t\t47\n\t],\n\t\"./pl.json\": [\n\t\t1769,\n\t\t48\n\t],\n\t\"./pt-BR.json\": [\n\t\t1770,\n\t\t49\n\t],\n\t\"./pt.json\": [\n\t\t1771,\n\t\t50\n\t],\n\t\"./pt_BR.json\": [\n\t\t1772,\n\t\t51\n\t],\n\t\"./ro.json\": [\n\t\t1773,\n\t\t52\n\t],\n\t\"./ru.json\": [\n\t\t1774,\n\t\t53\n\t],\n\t\"./sk-SK.json\": [\n\t\t1775,\n\t\t54\n\t],\n\t\"./sk_SK.json\": [\n\t\t1776,\n\t\t55\n\t],\n\t\"./sl-SI.json\": [\n\t\t1777,\n\t\t56\n\t],\n\t\"./sl_SI.json\": [\n\t\t1778,\n\t\t57\n\t],\n\t\"./sq.json\": [\n\t\t1779,\n\t\t58\n\t],\n\t\"./sr.json\": [\n\t\t1780,\n\t\t59\n\t],\n\t\"./sv.json\": [\n\t\t1781,\n\t\t60\n\t],\n\t\"./ta-IN.json\": [\n\t\t1782,\n\t\t61\n\t],\n\t\"./ta_IN.json\": [\n\t\t1783,\n\t\t62\n\t],\n\t\"./th-TH.json\": [\n\t\t1784,\n\t\t63\n\t],\n\t\"./th_TH.json\": [\n\t\t1785,\n\t\t64\n\t],\n\t\"./tr.json\": [\n\t\t1786,\n\t\t65\n\t],\n\t\"./ug.json\": [\n\t\t1787,\n\t\t66\n\t],\n\t\"./uk.json\": [\n\t\t1788,\n\t\t67\n\t],\n\t\"./vi-VN.json\": [\n\t\t1789,\n\t\t68\n\t],\n\t\"./vi_VN.json\": [\n\t\t1790,\n\t\t69\n\t],\n\t\"./zh-HK.json\": [\n\t\t1791,\n\t\t70\n\t],\n\t\"./zh-TW.json\": [\n\t\t1792,\n\t\t71\n\t],\n\t\"./zh.json\": [\n\t\t1793,\n\t\t72\n\t],\n\t\"./zh_HK.json\": [\n\t\t1794,\n\t\t73\n\t],\n\t\"./zh_TW.json\": [\n\t\t1795,\n\t\t74\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 3);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1491;\nmodule.exports = webpackAsyncContext;","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"version\":\"1.0\",\"width\":\"357.333\",\"height\":\"330.667\",\"viewBox\":\"0 0 268 248\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 32 32\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"avatar__GFJvS\",\"avatar__image\":\"avatar__image__1eLmO\",\"avatar__status\":\"avatar__status__Wsps9\",\"avatar__status--small\":\"avatar__status--small__1rB0Q\",\"avatar__status--large\":\"avatar__status--large__1XQtY\",\"avatar__status--status-online\":\"avatar__status--status-online__15xk6\",\"avatar__status--status-away\":\"avatar__status--status-away__JIVRl\",\"avatar__status--status-busy\":\"avatar__status--status-busy__2Zv0K\",\"avatar--nobg\":\"avatar--nobg__1Xmft\",\"avatar--small\":\"avatar--small__2-TCM\",\"avatar--large\":\"avatar--large__3MrZD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"composer\":\"composer__27x96\",\"composer__input\":\"composer__input___Cggy\",\"composer--connecting\":\"composer--connecting__3MFFw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"composer__action\":\"composer__action__2ZuQd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"composer__actions\":\"composer__actions__3eA8B\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"drop\":\"drop__6UUiL\",\"drop--overlayed\":\"drop--overlayed__JT4ny\",\"drop--dragover\":\"drop--dragover__2EYfW\",\"fadein\":\"fadein__1UAhl\",\"drop__input\":\"drop__input__2o6so\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popover__overlay\":\"popover__overlay__2FLro\",\"popover__overlay--visible\":\"popover__overlay--visible__220hl\",\"popover__container\":\"popover__container__1sbvl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menu\":\"menu__14x2m\",\"menu__group\":\"menu__group__cJiQf\",\"menu__group-title\":\"menu__group-title__2LjPN\",\"menu__item\":\"menu__item__1wXnR\",\"menu__item--primary\":\"menu__item--primary__3jawX\",\"menu__item--danger\":\"menu__item--danger__10H3r\",\"menu__item--disabled\":\"menu__item--disabled__31ezP\",\"menu__item__icon\":\"menu__item__icon__sTZTu\",\"menu--hidden\":\"menu--hidden__3uGW9\",\"menu--placement\":\"menu--placement__3ylkS\",\"menu--placement-left-top\":\"menu--placement-left-top__2kTUb\",\"menu--placement-right-top\":\"menu--placement-right-top__10AnG\",\"menu--placement-right-bottom\":\"menu--placement-right-bottom__12XOK\",\"menu--placement-left-bottom\":\"menu--placement-left-bottom__2-Hou\",\"popover-menu__overlay\":\"popover-menu__overlay__3VEFt\"};","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 1500 272\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"footer__1V22a\",\"footer__content\":\"footer__content__1tgEl\",\"footer__options\":\"footer__options__g5T_a\",\"footer__remainder\":\"footer__remainder__3XLQw\",\"footer__remainder--highlight\":\"footer__remainder--highlight__1YH6i\",\"powered-by\":\"powered-by__1DxxE\",\"powered-by__logo\":\"powered-by__logo__2Y08v\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-bubble\":\"message-bubble__35HAq\",\"message-bubble--inverse\":\"message-bubble--inverse__8y9eJ\",\"message-bubble--nude\":\"message-bubble--nude__2DB1l\",\"message-bubble--quoted\":\"message-bubble--quoted__3pELB\",\"message-bubble--system\":\"message-bubble--system__2-OfO\",\"message-container\":\"message-container__3n9XC\",\"message-bubble--friendlyChat\":\"message-bubble--friendlyChat__iva0y\",\"message-bubble--myfirst\":\"message-bubble--myfirst__29ezA\",\"message-bubble--mymid\":\"message-bubble--mymid__hqph2\",\"message-bubble--mylast\":\"message-bubble--mylast__12qIj\",\"message-bubble--yourfirst\":\"message-bubble--yourfirst__ufCo5\",\"message-bubble--yourmid\":\"message-bubble--yourmid__2BDTX\",\"message-bubble--yourlast\":\"message-bubble--yourlast__2Xo6z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"audio-attachment__inner\":\"audio-attachment__inner__im_cm\"};","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 20 20\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 32 32\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"file-attachment\":\"file-attachment__3usPx\",\"file-attachment__inner\":\"file-attachment__inner__4KqWu\",\"file-attachment__download-button\":\"file-attachment__download-button__JXzbE\",\"file-attachment__title\":\"file-attachment__title__8QXST\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image-attachment__inner\":\"image-attachment__inner__3qFwJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"attachment-component__inner\":\"attachment-component__inner__3-hlh\",\"button\":\"button__1sGni\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-avatars\":\"message-avatars__3vj_P\",\"message-avatars__avatar\":\"message-avatars__avatar__2w8Pn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-actions-block\":\"uikit-actions-block__3kFjZ\",\"uikit-actions-block__item\":\"uikit-actions-block__item__257n5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-button\":\"uikit-button__3X6Eh\",\"button-loading-rotation\":\"button-loading-rotation__2Fl4_\",\"uikit-button--style-primary\":\"uikit-button--style-primary__3DERb\",\"uikit-button--style-danger\":\"uikit-button--style-danger__2qDlz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-context-block\":\"uikit-context-block__2WzDn\",\"uikit-context-block__item\":\"uikit-context-block__item__3dfvB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"date-input\":\"date-input__32np5\",\"date-input--small\":\"date-input--small__1nGy1\",\"date-input--disabled\":\"date-input--disabled__V83aQ\",\"date-input--error\":\"date-input--error__3giSy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-divider-block\":\"uikit-divider-block__Z-3HK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-image-block\":\"uikit-image-block__1angW\",\"uikit-image-block__title\":\"uikit-image-block__title__1xJGc\",\"uikit-image-block__content\":\"uikit-image-block__content__zXi9F\",\"uikit-image-block__content--loading\":\"uikit-image-block__content--loading__3GZqc\",\"uikit-image-block__wrapper\":\"uikit-image-block__wrapper__1-Ukv\",\"uikit-image-block__link\":\"uikit-image-block__link__27wvk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-image\":\"uikit-image__W6cSQ\",\"uikit-image--accessory\":\"uikit-image--accessory__xfSNy\",\"uikit-image--context\":\"uikit-image--context__3myst\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-mrkdwn\":\"uikit-mrkdwn__3YVwY\"};","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 32 32\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-overflow__trigger\":\"uikit-overflow__trigger__1nYqP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-plain-text\":\"uikit-plain-text__IgVqw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-section-block\":\"uikit-section-block__Y4Gbb\",\"uikit-section-block__content\":\"uikit-section-block__content__h4FtV\",\"uikit-section-block__text\":\"uikit-section-block__text__1ccTA\",\"uikit-section-block__fields\":\"uikit-section-block__fields__1u9yU\",\"uikit-section-block__field\":\"uikit-section-block__field__34-8Y\",\"uikit-section-block__accessory\":\"uikit-section-block__accessory__1a702\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"select-input\":\"select-input__23YB7\",\"select-input__select\":\"select-input__select__3eBo4\",\"select-input__select--small\":\"select-input__select--small__dHwaf\",\"select-input__select--disabled\":\"select-input__select--disabled__YbxwQ\",\"select-input__select--error\":\"select-input__select--error__1r_NO\",\"select-input__select--placeholder\":\"select-input__select--placeholder__1ZiPY\",\"select-input__option\":\"select-input__option__HpPGW\",\"select-input__arrow\":\"select-input__arrow__2jglH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uikit-static-select\":\"uikit-static-select__1TWLI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-blocks\":\"message-blocks__1PDtT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-container\":\"message-container__19jeU\",\"message-container--compact\":\"message-container--compact__374zr\",\"message-container--reverse\":\"message-container--reverse__3x9rK\",\"message-container--system\":\"message-container--system__1eZ2Y\",\"message-container-break\":\"message-container-break__2yxLd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-content\":\"message-content__1DkcS\",\"message-content--reverse\":\"message-content--reverse__o_hmd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-text\":\"message-text__4m75x\",\"message-text--system\":\"message-text--system__mdDfo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-time\":\"message-time__2e1gz\",\"message-time-wrapper\":\"message-time-wrapper__JEbuq\",\"message-time--normal\":\"message-time--normal__2jM19\",\"message-time--inverted\":\"message-time--inverted__1Y9Du\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"video-attachment__inner\":\"video-attachment__inner__1-nfC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"closedChatButton__content\":\"closedChatButton__content__2Oizb\",\"surveyText__content\":\"surveyText__content__Cn3AQ\"};","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 32 32\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"separator\":\"separator__2hKm1\",\"separator__text\":\"separator__text__CCH47\",\"separator__line\":\"separator__line__31sRI\",\"separator--date\":\"separator--date__2KXC7\",\"separator--unread\":\"separator--unread__26QDF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"typing-dots\":\"typing-dots__2dVrQ\",\"typing-dots__dot\":\"typing-dots__dot__hqh2c\",\"typing-dots__indicator\":\"typing-dots__indicator__379kG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-list\":\"message-list__1jRl9\",\"message-list__content\":\"message-list__content__3TyF4\"};","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"25pt\",\"height\":\"32\",\"viewBox\":\"0 0 25 24\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 18 18\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 18 18\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert\":\"alert__2_6E-\",\"alert__content\":\"alert__content__WiDgC\",\"alert__close\":\"alert__close__N2TJw\",\"alert--success\":\"alert--success__2BSNz\",\"alert--warning\":\"alert--warning__18Xi6\",\"alert--error\":\"alert--error__3ttMA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"header__13Vuj\",\"header__actions\":\"header__actions__aNMyg\",\"header__content\":\"header__content__pXDMp\",\"header__item\":\"header__item__EmXV-\",\"header__picture\":\"header__picture__3W5Fb\",\"header__title\":\"header__title__PtLVn\",\"header__subtitle\":\"header__subtitle__1ncvc\",\"header__custom-field\":\"header__custom-field__1xJH3\",\"header__action\":\"header__action__2wnEh\",\"header__post\":\"header__post__VA2cW\",\"header--large\":\"header--large__2keTG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tooltip\":\"tooltip__mOwTr\",\"tooltip--hidden\":\"tooltip--hidden__vIBh0\",\"tooltip--placement-left\":\"tooltip--placement-left__1AH9w\",\"tooltip--placement-right\":\"tooltip--placement-right__3LZFt\",\"tooltip--placement-top\":\"tooltip--placement-top__NfRdd\",\"tooltip--placement-top-left\":\"tooltip--placement-top-left__3tiWm\",\"tooltip--placement-top-right\":\"tooltip--placement-top-right__1jba4\",\"tooltip--placement-bottom\":\"tooltip--placement-bottom__15Yxs\",\"tooltip--placement-bottom-left\":\"tooltip--placement-bottom-left__DatSn\",\"tooltip--placement-bottom-right\":\"tooltip--placement-bottom-right__2bsJB\",\"tooltip--floating\":\"tooltip--floating__1PBGg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"screen\":\"screen__sskEr\",\"screen__inner\":\"screen__inner__ihfK6\",\"screen__chat-button\":\"screen__chat-button__2h7Ad\",\"screen__chat-close-button\":\"screen__chat-close-button__isEmn\",\"screen--minimized\":\"screen--minimized__2cVSs\",\"screen--expanded\":\"screen--expanded__1zqIP\",\"screen--windowed\":\"screen--windowed__Ad1VZ\",\"screen--triggered\":\"screen--triggered__2c_Iw\",\"screen__inner--fitTextSize\":\"screen__inner--fitTextSize__1x0T7\",\"screen__main\":\"screen__main__DBTEi\",\"screen__main--nopadding\":\"screen__main--nopadding__16Bsg\",\"screen__main--triggered\":\"screen__main--triggered__3xccT\",\"screen__agent-email\":\"screen__agent-email__3DONj\"};","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 20 20\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 20 20\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","\nvar preact = require('preact');\nvar hooks = require('preact/hooks');\nmodule.exports = {\"attributes\":{\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"},\"content\":\"\"}\nvar attributes = module.exports.attributes;\nvar content = module.exports.content;\n\nmodule.exports = function (props) {\n\tvar ref = hooks.useRef();\n\n\thooks.useEffect(function () {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = '' + content + '';\n\n\t\tvar source = div.firstChild;\n\t\tvar dest = ref.current;\n\n\t\twhile (source.firstChild) {\n\t\t\tdest && dest.appendChild(source.firstChild);\n\t\t}\n\t}, []);\n\n\treturn preact.h('svg', Object.assign({ ref: ref }, attributes, props));\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chat__messages\":\"chat__messages__f3sJg\",\"chat__messages--atBottom\":\"chat__messages--atBottom__1wPuF\",\"chat__messages--loading\":\"chat__messages--loading__gsc8d\",\"loader-rotate\":\"loader-rotate__3AWNK\",\"chat\":\"chat__1ggQU\",\"none__action\":\"none__action__1hdXV\",\"emoji-picker-icon\":\"emoji-picker-icon__3OTWb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chat-finished__greeting\":\"chat-finished__greeting__zxo1Q\",\"chat-finished__message\":\"chat-finished__message__2Ly5q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"gdpr__consent-text\":\"gdpr__consent-text__1K91W\",\"gdpr__instructions\":\"gdpr__instructions__lHoQt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-field\":\"form-field__16wVs\",\"form-field__label-wrapper\":\"form-field__label-wrapper__1ZXe4\",\"form-field__description\":\"form-field__description__32VwT\",\"form-field__input\":\"form-field__input__3OQDq\",\"form-field__label\":\"form-field__label__1hSc7\",\"form-field--error\":\"form-field--error__2cgpb\",\"form-field--required\":\"form-field--required__1ehIJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text-input\":\"text-input__15vLf\",\"text-input--small\":\"text-input--small__1a0F7\",\"text-input--disabled\":\"text-input--disabled__9qba3\",\"text-input--error\":\"text-input--error__3nahC\",\"text-input--multiple\":\"text-input--multiple__3Fm0v\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"password-input\":\"password-input__Fh-H5\",\"password-input--small\":\"password-input--small__23_jZ\",\"password-input--disabled\":\"password-input--disabled__1b3hY\",\"password-input--error\":\"password-input--error__3hzSx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"leave-message\":\"leave-message__2DhUH\",\"leave-message__main\":\"leave-message__main__2qjg1\",\"leave-message__message\":\"leave-message__message__3XDZW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"register__message\":\"register__message__XfDRi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switch-department__message\":\"switch-department__message__1eSbv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trigger-message__message\":\"trigger-message__message__3z2MP\",\"trigger-message__footer\":\"trigger-message__footer__1BGi7\",\"trigger-message__separator\":\"trigger-message__separator__29Hse\",\"trigger-message__link-reply\":\"trigger-message__link-reply__1eF72\"};","import { createMemoryHistory } from 'history';\n\nexport const history = createMemoryHistory();\n\nexport default history;\n","export default {\n\tunreadMessagesAlertId: 'UNREAD_MESSAGES',\n\tconnectingAgentAlertId: 'CONNECTING_AGENT',\n\tlivechatConnectedAlertId: 'LIVECHAT_CONNECTED',\n\tlivechatDisconnectedAlertId: 'LIVECHAT_DISCONNECTED',\n\tlivechatQueueMessageId: 'LIVECHAT_QUEUE_MESSAGE',\n\twebRTCCallStartedMessageType: 'livechat_webrtc_video_call',\n\tjitsiCallStartedMessageType: 'jitsi_call_started',\n};\n","import parseISO from 'date-fns/parseISO';\nimport mem from 'mem';\nimport { Component } from 'preact';\n\nimport { Livechat, useSsl } from '../api';\nimport store from '../store';\n\nexport function flatMap(arr, mapFunc) {\n\tconst result = [];\n\tfor (const [index, elem] of arr.entries()) {\n\t\tconst x = mapFunc(elem, index, arr);\n\t\t// We allow mapFunc() to return non-Arrays\n\t\tif (Array.isArray(x)) {\n\t\t\tresult.push(...x);\n\t\t} else {\n\t\t\tresult.push(x);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport const createClassName = (styles, elementName, modifiers = {}, classes = []) => [\n\tstyles[elementName],\n\t...flatMap(Object.entries(modifiers), ([modifierKey, modifierValue]) => [\n\t\tmodifierValue && styles[`${ elementName }--${ modifierKey }`],\n\t\ttypeof modifierValue !== 'boolean' && styles[`${ elementName }--${ modifierKey }-${ modifierValue }`],\n\t]).filter((className) => !!className), ...classes.filter((className) => !!className)].join(' ');\n\nexport async function asyncForEach(array, callback) {\n\tfor (let index = 0; index < array.length; index++) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait callback(array[index], index, array);\n\t}\n}\n\nexport async function asyncEvery(array, callback) {\n\tfor (let index = 0; index < array.length; index++) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tif (!await callback(array[index], index, array)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nexport const debounce = (func, delay) => {\n\tlet inDebounce;\n\n\tfunction f(...args) {\n\t\tconst context = this;\n\t\tclearTimeout(inDebounce);\n\t\tinDebounce = setTimeout(() => func.apply(context, args), delay);\n\t\treturn context;\n\t}\n\n\tf.stop = () => clearTimeout(inDebounce);\n\n\treturn f;\n};\n\nexport const throttle = (func, limit) => {\n\tlet inThrottle;\n\treturn function(...args) {\n\t\tconst context = this;\n\t\tif (!inThrottle) {\n\t\t\tfunc.apply(context, args);\n\t\t\tinThrottle = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tinThrottle = false;\n\t\t\t}, limit);\n\t\t}\n\t};\n};\n\nexport function getFilteredMsg(msg) {\n\tconst { config: { filters = [] } } = store.state;\n\tfilters.forEach((filter) => {\n\t\tconst regExp = new RegExp(filter.regex, 'g');\n\t\tmsg = msg.replace(regExp, filter.slug);\n\t});\n\treturn msg;\n}\n\nexport function getInsertIndex(array, item, ranking) {\n\tconst order = ranking(item);\n\tlet min = 0;\n\tlet max = array.length - 1;\n\n\twhile (min <= max) {\n\t\tconst guess = Math.floor((min + max) / 2);\n\t\tconst guessedOrder = ranking(array[guess]);\n\t\tif (guessedOrder < order) {\n\t\t\tmin = guess + 1;\n\t\t} else if (guessedOrder > array[guess + 1]) {\n\t\t\treturn guess;\n\t\t} else {\n\t\t\tmax = guess - 1;\n\t\t}\n\t}\n\n\treturn array.length > 0 ? array.length : 0;\n}\n\nexport function upsert(array = [], item, predicate, ranking) {\n\tconst index = array.findIndex(predicate);\n\n\tif (index > -1) {\n\t\tarray[index] = item;\n\t\treturn array;\n\t}\n\n\tarray.splice(getInsertIndex(array, item, ranking), 0, item);\n\treturn array;\n}\n\n// This will allow widgets that are on different domains to send cookies to the server\n// The default config for same-site (lax) dissalows to send a cookie to a \"3rd party\" unless the user performs an action\n// like a click. Secure flag is required when SameSite is set to None\nconst getSecureCookieSettings = () => (useSsl ? 'SameSite=None; Secure;' : '');\n\nexport const setInitCookies = () => {\n\tdocument.cookie = `rc_is_widget=t; path=/; ${ getSecureCookieSettings() }`;\n\tdocument.cookie = `rc_room_type=l; path=/; ${ getSecureCookieSettings() }`;\n};\n\nexport const setCookies = (rid, token) => {\n\tdocument.cookie = `rc_rid=${ rid }; path=/; ${ getSecureCookieSettings() }`;\n\tdocument.cookie = `rc_token=${ token }; path=/; ${ getSecureCookieSettings() }`;\n\tdocument.cookie = `rc_room_type=l; path=/; ${ getSecureCookieSettings() }`;\n};\n\nexport const getAvatarUrl = (username) => (username ? `${ Livechat.client.host }/avatar/${ username }` : null);\n\nexport const msgTypesNotRendered = ['livechat_video_call', 'livechat_navigation_history', 'au', 'command', 'uj', 'ul'];\n\nexport const msgTextNotRendered = ['customer_idle_timeout'];\n\nexport const canRenderMessage = ({ t, msg }) => !msgTypesNotRendered.includes(t) && !msgTextNotRendered.includes(msg);\n\nexport const getAttachmentUrl = (url) => `${ Livechat.client.host }${ url }`;\n\nexport const sortArrayByColumn = (array, column, inverted) => array.sort((a, b) => {\n\tif (a[column] < b[column] && !inverted) {\n\t\treturn -1;\n\t}\n\treturn 1;\n});\n\n\nexport const normalizeTransferHistoryMessage = (transferData, sender, t) => {\n\tif (!transferData) {\n\t\treturn;\n\t}\n\n\tconst { transferredBy, transferredTo, nextDepartment, scope } = transferData;\n\tconst from = transferredBy && (transferredBy.name || transferredBy.username);\n\n\tconst transferTypes = {\n\t\tagent: () => {\n\t\t\tif (!sender.username) {\n\t\t\t\treturn t('the_chat_was_transferred_to_another_agent');\n\t\t\t}\n\t\t\tconst to = transferredTo && (transferredTo.name || transferredTo.username);\n\t\t\treturn t('from_transferred_the_chat_to_to', { from, to });\n\t\t},\n\t\tdepartment: () => {\n\t\t\tconst to = nextDepartment && nextDepartment.name;\n\n\t\t\tif (!sender.username) {\n\t\t\t\treturn t('the_agent_transferred_the_chat_to_the_department_to', { to });\n\t\t\t}\n\n\t\t\treturn t('from_transferred_the_chat_to_the_department_to', { from, to });\n\t\t},\n\t\tqueue: () => {\n\t\t\tif (!sender.username) {\n\t\t\t\treturn t('the_chat_was_moved_back_to_queue');\n\t\t\t}\n\t\t\treturn t('from_returned_the_chat_to_the_queue', { from });\n\t\t},\n\t};\n\n\treturn transferTypes[scope]();\n};\n\nexport const parseOfflineMessage = (fields = {}) => {\n\tconst host = window.location.origin;\n\treturn Object.assign(fields, { host });\n};\nexport const normalizeDOMRect = ({ left, top, right, bottom }) => ({ left, top, right, bottom });\n\nexport const visibility = (() => {\n\tif (typeof document.hidden !== 'undefined') {\n\t\treturn {\n\t\t\tget hidden() {\n\t\t\t\treturn document.hidden;\n\t\t\t},\n\t\t\taddListener: (f) => document.addEventListener('visibilitychange', f, false),\n\t\t\tremoveListener: (f) => document.removeEventListener('visibilitychange', f, false),\n\t\t};\n\t}\n\n\tif (typeof document.msHidden !== 'undefined') {\n\t\treturn {\n\t\t\tget hidden() {\n\t\t\t\treturn document.msHidden;\n\t\t\t},\n\t\t\taddListener: (f) => document.addEventListener('msvisibilitychange', f, false),\n\t\t\tremoveListener: (f) => document.removeEventListener('msvisibilitychange', f, false),\n\t\t};\n\t}\n\n\tif (typeof document.webkitHidden !== 'undefined') {\n\t\treturn {\n\t\t\tget hidden() {\n\t\t\t\treturn document.webkitHidden;\n\t\t\t},\n\t\t\taddListener: (f) => document.addEventListener('webkitvisibilitychange', f, false),\n\t\t\tremoveListener: (f) => document.removeEventListener('webkitvisibilitychange', f, false),\n\t\t};\n\t}\n\n\treturn {\n\t\thidden: true,\n\t\taddListener: () => {},\n\t\tremoveListener: () => {},\n\t};\n})();\n\n\nexport class MemoizedComponent extends Component {\n\tshouldComponentUpdate(nextProps) {\n\t\tconst { props } = this;\n\n\t\tfor (const key in props) {\n\t\t\tif (props[key] !== nextProps[key]) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tfor (const key in nextProps) {\n\t\t\tif (!(key in props)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\nexport const memo = (component) =>\n\tclass extends MemoizedComponent {\n\t\trender = component\n\t};\n\nexport const isActiveSession = () => {\n\tconst sessionId = sessionStorage.getItem('sessionId');\n\tconst { openSessionIds: [firstSessionId] = [] } = store.state;\n\n\treturn sessionId === firstSessionId;\n};\n\nexport const isMobileDevice = () => window.innerWidth <= 800 && window.innerHeight >= 630;\n\nexport const resolveDate = (dateInput) => {\n\tswitch (typeof dateInput) {\n\t\tcase Date: {\n\t\t\treturn dateInput;\n\t\t}\n\t\tcase 'object': {\n\t\t\treturn new Date(dateInput.$date);\n\t\t}\n\t\tcase 'string': {\n\t\t\treturn parseISO(dateInput);\n\t\t}\n\t\tdefault: {\n\t\t\treturn new Date(dateInput);\n\t\t}\n\t}\n};\n\nconst escapeMap = {\n\t'&': '&',\n\t'<': '<',\n\t'>': '>',\n\t'\"': '"',\n\t'\\'': ''',\n\t'`': '`',\n};\n\nconst escapeRegex = new RegExp(`(?:${ Object.keys(escapeMap).join('|') })`, 'g');\n\nconst escapeHtml = mem(\n\t(string) => string.replace(escapeRegex, (match) => escapeMap[match]),\n);\n\nexport const parse = (plainText) =>\n\t[{ plain: plainText }]\n\t\t.map(({ plain, html }) => (plain ? escapeHtml(plain) : html || ''))\n\t\t.join('');\n","import i18next from 'i18next';\n\nimport { Livechat } from '../api';\nimport { canRenderMessage } from '../components/helpers';\nimport store from '../store';\nimport constants from './constants';\n\nexport const updateBusinessUnit = async (newBusinessUnit) => {\n\tconst {\n\t\ttoken,\n\t\tconfig: existingConfig,\n\t} = store.state;\n\tif (!token) {\n\t\tthrow new Error('Error! no livechat token found. please make sure you initialize widget first before setting business unit');\n\t}\n\n\tconst { departments } = await Livechat.config({\n\t\ttoken,\n\t\t...newBusinessUnit && { businessUnit: newBusinessUnit },\n\t});\n\n\tif (newBusinessUnit) {\n\t\treturn store.setState({\n\t\t\tconfig: {\n\t\t\t\t...existingConfig,\n\t\t\t\tdepartments,\n\t\t\t},\n\t\t\tbusinessUnit: newBusinessUnit,\n\t\t});\n\t}\n\n\tawait store.setState({\n\t\tconfig: {\n\t\t\t...existingConfig,\n\t\t\tdepartments,\n\t\t},\n\t});\n\tawait store.unsetSinglePropInStateByName('businessUnit');\n};\n\nexport const loadConfig = async () => {\n\tconst {\n\t\ttoken,\n\t\tbusinessUnit = null,\n\t\tcomposerConfig = null,\n\t} = store.state;\n\n\tLivechat.credentials.token = token;\n\n\tconst {\n\t\tagent,\n\t\troom,\n\t\tguest: user,\n\t\tresources: { sound: src = null } = {},\n\t\tqueueInfo,\n\t\t...config\n\t} = await Livechat.config({\n\t\ttoken,\n\t\turl: window.name || window.location.href,\n\t\t...businessUnit && { businessUnit },\n\t});\n\n\tawait store.setState({\n\t\tconfig,\n\t\tagent: agent && agent.hiddenInfo ? { hiddenInfo: true } : agent, // TODO: revert it when the API is updated\n\t\troom,\n\t\tuser,\n\t\tqueueInfo,\n\t\tsound: { src, enabled: true, play: false },\n\t\tmessages: [],\n\t\ttyping: [],\n\t\tnoMoreMessages: false,\n\t\tvisible: true,\n\t\tunread: null,\n\t\tcomposerConfig,\n\t});\n};\n\nexport const processUnread = async () => {\n\tconst { minimized, visible, messages } = store.state;\n\n\tif (minimized || !visible) {\n\t\tconst { alerts, lastReadMessageId } = store.state;\n\t\tconst renderedMessages = messages.filter((message) => canRenderMessage(message));\n\t\tconst lastReadMessageIndex = renderedMessages.findIndex((item) => item._id === lastReadMessageId);\n\t\tconst unreadMessages = renderedMessages.slice(lastReadMessageIndex + 1);\n\n\t\tif (lastReadMessageIndex !== -1) {\n\t\t\tconst lastReadMessage = renderedMessages[lastReadMessageIndex];\n\t\t\tconst alertMessage = i18next.t('count_new_messages_since_since', {\n\t\t\t\tcount: unreadMessages.length,\n\t\t\t\tval: new Date(lastReadMessage.ts),\n\t\t\t\tformatParams: {\n\t\t\t\t\tval: { month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' },\n\t\t\t\t},\n\t\t\t});\n\t\t\t// eslint-disable-next-line no-unused-vars\n\t\t\tconst alert = { id: constants.unreadMessagesAlertId, children: alertMessage, success: true, timeout: 0 };\n\t\t\t// eslint-disable-next-line no-unused-vars\n\t\t\tconst newAlerts = alerts.filter((item) => item.id !== constants.unreadMessagesAlertId);\n\t\t\t// Viasat: do not show unread messages banner\n\t\t\t// await store.setState({ alerts: (newAlerts.push(alert), newAlerts) });\n\t\t}\n\n\t\tawait store.setState({ unread: unreadMessages.length });\n\t}\n};\n","export const CallStatus = {\n\tRINGING: 'ringing',\n\tDECLINED: 'declined',\n\tIN_PROGRESS: 'inProgress', // although on Livechat we only use \"IN_PROGRESS_SAME_TAB\" and \"IN_PROGRESS_DIFFERENT_TAB\", we still need this status since on Rocket.Chat core, this is the status of ongoing calls\n\tIN_PROGRESS_SAME_TAB: 'inProgressSameTab',\n\tIN_PROGRESS_DIFFERENT_TAB: 'inProgressDifferentTab',\n\tENDED: 'ended',\n};\n\nexport const isCallOngoing = (callStatus) => callStatus === CallStatus.IN_PROGRESS\n\t|| callStatus === CallStatus.IN_PROGRESS_DIFFERENT_TAB\n\t|| callStatus === CallStatus.IN_PROGRESS_SAME_TAB;\n","import { formatDistance } from 'date-fns';\nimport i18next from 'i18next';\n\nimport { getDateFnsLocale } from './locale';\n\nexport const normalizeAgent = (agentData) => agentData && { name: agentData.name, username: agentData.username, status: agentData.status };\n\nexport const normalizeQueueAlert = (queueInfo) => {\n\tif (!queueInfo) {\n\t\treturn;\n\t}\n\n\tconst { spot, estimatedWaitTimeSeconds } = queueInfo;\n\tconst locale = getDateFnsLocale();\n\tconst estimatedWaitTime = estimatedWaitTimeSeconds && formatDistance(new Date().setSeconds(estimatedWaitTimeSeconds), new Date(), { locale });\n\treturn spot > 0\n\t&& (\n\t\testimatedWaitTime\n\t\t\t? i18next.t('your_spot_is_spot_estimated_wait_time_estimatedwai', { spot, estimatedWaitTime })\n\t\t\t: i18next.t('your_spot_is_spot', { spot })\n\t);\n};\n","import store from '../store';\n\nexport default class Commands {\n\tconnected() {\n\t\tstore.setState({ connecting: false });\n\t}\n}\n","import { h } from 'preact';\n\nimport { createClassName, memo } from '../helpers';\nimport styles from './styles.scss';\n\n\nconst handleMouseUp = ({ target }) => target.blur();\n\nexport const Button = memo(({\n\tsubmit,\n\tdisabled,\n\toutline,\n\tnude,\n\tdanger,\n\tsecondary,\n\tstack,\n\tsmall,\n\tloading,\n\tbadge,\n\ticon,\n\tonClick,\n\tclassName,\n\tstyle = {},\n\tchildren,\n\timg,\n}) => (\n\t\n\t\t{badge ? ({badge}) : null}\n\t\t{!img && (icon || children)}\n\t\n));\n","import { h, cloneElement, toChildArray } from 'preact';\n\n\nimport { createClassName, memo } from '../helpers';\nimport styles from './styles.scss';\n\n\nexport const ButtonGroup = memo(({ children }) => (\n\t
\n\t\t{toChildArray(children).map((child) => cloneElement(child, { className: createClassName(styles, 'button-group__item') }))}\n\t
\n));\n","import { h, Component } from 'preact';\nimport { withTranslation } from 'react-i18next';\n\nimport { Button } from '../Button';\nimport { ButtonGroup } from '../ButtonGroup';\nimport { createClassName } from '../helpers';\nimport styles from './styles.scss';\n\n\nexport class Modal extends Component {\n\tstatic defaultProps = {\n\t\tdismissByOverlay: true,\n\t}\n\n\thandleKeyDown = ({ key }) => {\n\t\tif (key === 'Escape') {\n\t\t\tthis.triggerDismiss();\n\t\t}\n\t}\n\n\thandleTouchStart = () => {\n\t\tconst { dismissByOverlay } = this.props;\n\t\tdismissByOverlay && this.triggerDismiss();\n\t}\n\n\thandleMouseDown = () => {\n\t\tconst { dismissByOverlay } = this.props;\n\t\tdismissByOverlay && this.triggerDismiss();\n\t}\n\n\ttriggerDismiss = () => {\n\t\tconst { onDismiss } = this.props;\n\t\tthis.mounted && onDismiss && onDismiss();\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.mounted = true;\n\t\twindow.addEventListener('keydown', this.handleKeyDown, false);\n\t\tconst { timeout } = this.props;\n\t\tif (Number.isFinite(timeout) && timeout > 0) {\n\t\t\tsetTimeout(() => this.triggerDismiss(), timeout);\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.mounted = false;\n\t\twindow.removeEventListener('keydown', this.handleKeyDown, false);\n\t}\n\n\trender = ({ children, animated, open, ...props }) => (\n\t\topen ? (\n\t\t\t\n\t\t\t\t
{children}
\n\t\t\t\n\t\t) : null\n\t)\n}\n\n\nexport const ModalMessage = ({ children }) => (\n\t
\n\t\t{children}\n\t
\n);\n\n\nexport const ConfirmationModal = withTranslation()(({\n\ttext,\n\tconfirmButtonText,\n\tcancelButtonText,\n\tonConfirm,\n\tonCancel,\n\tt,\n\t...props\n}) => \n\t{text}\n\t\n\t\t\n\t\t\n\t\n);\n\nexport const AlertModal = withTranslation()(({ text, buttonText, onConfirm, t, ...props }) => (\n\t\n\t\t{text}\n\t\t\n\t\t\t\n\t\t\n\t\n));\n\n\nModal.Message = ModalMessage;\nModal.Confirm = ConfirmationModal;\nModal.Alert = AlertModal;\n\n\nexport default Modal;\n","import { h } from 'preact';\n\nimport store from '../../store';\nimport Modal from './component';\n\n\nexport default {\n\tconfirm(props = {}) {\n\t\treturn new Promise((resolve) => {\n\t\t\tconst handleButton = (success) => () => {\n\t\t\t\tstore.setState({ modal: null });\n\t\t\t\tresolve({ success });\n\t\t\t};\n\n\t\t\tstore.setState({\n\t\t\t\tmodal: ,\n\t\t\t});\n\t\t});\n\t},\n\n\talert(props = {}) {\n\t\treturn new Promise((resolve) => {\n\t\t\tconst handleButton = () => () => {\n\t\t\t\tstore.setState({ modal: null });\n\t\t\t\tresolve({ success: true });\n\t\t\t};\n\n\t\t\tstore.setState({\n\t\t\t\tmodal: ,\n\t\t\t});\n\t\t});\n\t},\n};\n","import util from 'util';\n\nimport { store } from '../store';\n\nconst urlDecomposition = (url) => {\n\tlet tempUrl = url.split('://');\n\tif (tempUrl.length < 2) {\n\t\tthrow new Error('URL is not valid.');\n\t}\n\tconst protocol = tempUrl[0];\n\ttempUrl = tempUrl.slice(1).join('://');\n\ttempUrl = tempUrl.split('/');\n\tconst host = tempUrl[0];\n\tconst path = `/${ tempUrl.slice(1).join('/') }`;\n\ttempUrl = path.split('?');\n\tconst pathname = tempUrl[0];\n\tconst query = tempUrl.slice(1).join('?');\n\n\treturn { protocol, host, path, pathname, query };\n};\nclass Logger {\n\tconstructor(name, key = 'logs') {\n\t\tconst { localStorage, sessionStorage } = window;\n\t\tthis.localStorage = localStorage;\n\t\tthis.sessionStorage = sessionStorage;\n\t\tthis.name = name;\n\t\tthis.localStorageKey = key;\n\t\tthis.activeLogs = this.localStorage.getItem(this.localStorageKey) || '';\n\t\tthis.localStorage.setItem(this.localStorageKey, this.activeLogs);\n\t}\n\n\tinfo(...input) {\n\t\tconst message = util.format.apply(util, input);\n\t\tconst { room, token } = store.state;\n\t\tconst tabID = this.sessionStorage.getItem('sessionId');\n\t\tconst newLog = {\n\t\t\t'@timestamp': new Date().toISOString(),\n\t\t\troom_id: room?._id,\n\t\t\ttab_id: tabID,\n\t\t\tuserToken: token,\n\t\t\tmessage,\n\t\t};\n\t\tthis.appendLog(`{ \"index\": {} }\\n${ JSON.stringify(newLog) }\\n`);\n\t}\n\n\tappendLog(newLog) {\n\t\tthis.activeLogs += newLog;\n\t\tthis.localStorage.setItem(this.localStorageKey, this.activeLogs);\n\t}\n\n\tclearLogs() {\n\t\tthis.activeLogs = [];\n\t\tthis.localStorage.setItem(this.localStorageKey, []);\n\t}\n\n\tasync sendLogsToES() {\n\t\tconst aws4 = require('aws4');\n\t\tconst { config: { settings: {\n\t\t\tlivechat_enable_elastic_search_logs: enable,\n\t\t\tlivechat_elastic_search_url: url,\n\t\t\tlivechat_elastic_search_index: index,\n\t\t\tlivechat_elastic_search_access_key: access_key,\n\t\t\tlivechat_elastic_search_access_key_secret: secret_access_key,\n\t\t} } } = store.state;\n\t\tif (!enable) {\n\t\t\tthis.clearLogs();\n\t\t\treturn;\n\t\t}\n\n\t\tconst uri = `${ url }/${ index }/_bulk`;\n\t\tconst { host, pathname } = urlDecomposition(uri);\n\t\tconst region = 'us-east-1';\n\t\tconst service = 'es';\n\t\tconst content_type = 'application/json';\n\n\t\tconst opts = {\n\t\t\tmethod: 'POST',\n\t\t\thost,\n\t\t\tpath: pathname,\n\t\t\tregion,\n\t\t\tservice,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': content_type,\n\t\t\t},\n\t\t\tbody: this.activeLogs,\n\t\t};\n\n\t\taws4.sign(opts, {\n\t\t\tsecretAccessKey: secret_access_key,\n\t\t\taccessKeyId: access_key,\n\t\t});\n\n\t\tawait fetch(uri, opts)\n\t\t\t.then((response) => console.log(response))\n\t\t\t.catch((error) => console.log(error));\n\t\tthis.clearLogs();\n\t}\n}\n\nconst logger = new Logger('livechatWidget');\nsetInterval(() => {\n\tlogger.sendLogsToES();\n}, 60000);\nexport default logger;\n","import { Livechat } from '../api';\nimport { ModalManager } from '../components/Modal';\nimport i18next from '../i18next';\nimport { store } from '../store';\nimport logger from './logger';\nimport { generateLoggerPayload } from './snsLoggerHelper';\n\nconst idleTimeoutWarningId = 'idleTimeoutWarning';\n\nexport const handleIdleTimeout = async (idleTimeoutConfig) => {\n\tif (!idleTimeoutConfig) {\n\t\treturn;\n\t}\n\n\tconst {\n\t\tidleTimeoutAction,\n\t\tidleTimeoutMessage,\n\t\tidleTimeoutWarningTime,\n\t\tidleTimeoutTimeoutTime,\n\t} = idleTimeoutConfig;\n\n\tlet warningTimer;\n\tlet timeoutTimer;\n\tconst { idleTimeout, idleTimeoutTimers, chatClosed } = store.state;\n\n\tif (chatClosed) {\n\t\treturn;\n\t}\n\n\tif (idleTimeoutAction === 'stop' && (idleTimeout && !idleTimeout.idleTimeoutRunning)) {\n\t\treturn;\n\t}\n\n\tconst clearTimers = (warning = true, timeout = true) => {\n\t\tif (warning && idleTimeoutTimers && idleTimeoutTimers.idleWarningTimer) {\n\t\t\tclearTimeout(idleTimeoutTimers.idleWarningTimer);\n\t\t}\n\t\tif (timeout && idleTimeoutTimers && idleTimeoutTimers.idleTimeoutTimer) {\n\t\t\tclearInterval(idleTimeoutTimers.idleTimeoutTimer);\n\t\t}\n\t};\n\n\tconst getTimeString = (timeInseconds) => {\n\t\tconst hours = Math.floor(timeInseconds / 3600);\n\t\tconst minutes = Math.floor((timeInseconds - (hours * 3600)) / 60);\n\t\tconst seconds = timeInseconds - (hours * 3600) - (minutes * 60);\n\n\t\tconst timeString = `${ (hours && `${ hours.toString() }h `) || '' }${\n\t\t\tminutes.toString().padStart(2, '0') }m ${\n\t\t\tseconds.toString().padStart(2, '0') }s`;\n\t\treturn timeString;\n\t};\n\n\tconst showWarning = async (timeInseconds) => {\n\t\tlet { alerts } = store.state;\n\t\tconst timeoutTimeString = getTimeString(timeInseconds);\n\t\tconst timeoutAlert = {\n\t\t\tid: idleTimeoutWarningId,\n\t\t\tchildren: idleTimeoutMessage.replace(/%t/g, timeoutTimeString) || `Are you still there? Please send a message within ${ timeoutTimeString } or this chat will time out.`,\n\t\t\twarning: true,\n\t\t\thideCloseButton: true,\n\t\t\ttimeout: 0,\n\t\t\tstyle: {\n\t\t\t\theight: 'auto',\n\t\t\t},\n\t\t\tcontentStyle: {\n\t\t\t\t'white-space': 'normal',\n\t\t\t},\n\t\t};\n\t\talerts = alerts.filter((alert) => alert.id !== idleTimeoutWarningId);\n\t\tawait store.setState({ alerts: (alerts.push(timeoutAlert), alerts) });\n\t};\n\n\tconst hideWarning = async () => {\n\t\tconst { alerts } = store.state;\n\t\tawait store.setState({ alerts: alerts.filter((alert) => alert.id !== idleTimeoutWarningId) });\n\t};\n\n\tconst onTimeout = async () => {\n\t\tconst { token, room: { _id: rid } = {} } = store.state;\n\t\tlogger.info('Closing chat on widget timeout');\n\n\t\tconst loggerPayload = generateLoggerPayload('Chat Session', 'closed', { close_method: 'timeout' }, 'session');\n\t\tLivechat.sendLogsToSNS(loggerPayload);\n\n\t\t// Send customer idle timeout message to close chat\n\t\tif (token && rid) {\n\t\t\tawait Promise.all([\n\t\t\t\tLivechat.sendMessage({ msg: 'customer_idle_timeout', token, rid }),\n\t\t\t]);\n\t\t\tawait ModalManager.alert({\n\t\t\t\ttext: i18next.t('chat_ended_timeout'),\n\t\t\t});\n\t\t}\n\n\t\tawait store.setState({\n\t\t\tidleTimeout: {\n\t\t\t\t...store.state.idleTimeout,\n\t\t\t\tidleTimeoutRunning: false,\n\t\t\t},\n\t\t\tidleTimeoutTimers: {\n\t\t\t\t...store.state.idleTimeoutTimers,\n\t\t\t\tidleTimeoutTimer: null,\n\t\t\t\tidleWarningTimer: null,\n\t\t\t},\n\t\t});\n\t};\n\n\tconst onHandleTimeoutTimer = async () => {\n\t\tlet countDown = idleTimeoutTimeoutTime - idleTimeoutWarningTime;\n\t\ttimeoutTimer = setInterval(async () => {\n\t\t\tcountDown -= 1;\n\n\t\t\t// Update warning\n\t\t\tshowWarning(countDown);\n\n\t\t\tif (countDown === 0) {\n\t\t\t\tclearInterval(timeoutTimer);\n\t\t\t\thideWarning();\n\t\t\t\tonTimeout();\n\t\t\t}\n\t\t}, 1000);\n\t\tawait store.setState({\n\t\t\tidleTimeout: {\n\t\t\t\t...store.state.idleTimeout,\n\t\t\t},\n\t\t\tidleTimeoutTimers: {\n\t\t\t\t...store.state.idleTimeoutTimers,\n\t\t\t\tidleTimeoutTimer: timeoutTimer,\n\t\t\t},\n\t\t});\n\t};\n\n\tconst onTimeoutWarning = async () => {\n\t\t// TODO: Send event to salesforce to call ChasitorIdleTimeoutWarningEvent API (idleTimeoutWarningEvent: \"triggered\")\n\n\t\tclearTimers(false, true);\n\t\tshowWarning(idleTimeoutTimeoutTime - idleTimeoutWarningTime);\n\t\tonHandleTimeoutTimer();\n\t};\n\n\tclearTimers();\n\tif (idleTimeoutAction === 'start') {\n\t\twarningTimer = setTimeout(onTimeoutWarning, idleTimeoutWarningTime * 1000);\n\t} else {\n\t\thideWarning();\n\t}\n\n\tawait store.setState({\n\t\tidleTimeout: {\n\t\t\tidleTimeoutMessage,\n\t\t\tidleTimeoutWarningTime,\n\t\t\tidleTimeoutTimeoutTime,\n\t\t\tidleTimeoutRunning: idleTimeoutAction === 'start',\n\t\t},\n\t\tidleTimeoutTimers: {\n\t\t\tidleTimeoutTimer: timeoutTimer,\n\t\t\tidleWarningTimer: warningTimer,\n\t\t},\n\t});\n};\n","import { Livechat } from '../api';\nimport { upsert } from '../components/helpers';\nimport { store } from '../store';\nimport { createToken } from './random';\n\nconst addParentMessage = async (parentMessage) => {\n\tconst { state } = store;\n\tconst { parentMessages = [] } = state;\n\tconst { tmid } = parentMessage;\n\n\tif (!parentMessages.find((msg) => msg._id === tmid)) {\n\t\tawait store.setState({ parentMessages: upsert(parentMessages, parentMessage, ({ _id }) => _id === parentMessage._id, ({ ts }) => ts) });\n\t}\n};\n\nconst isThreadMessage = async (message) => {\n\tif (!message || !message.replies) {\n\t\treturn false;\n\t}\n\n\tawait addParentMessage(message);\n\treturn true;\n};\n\nconst findParentMessage = async (tmid) => {\n\tconst { state } = store;\n\tconst { parentMessages = [], room, alerts } = state;\n\n\tlet parentMessage = parentMessages.find((msg) => msg._id === tmid);\n\tif (!parentMessage) {\n\t\tconst { _id: rid } = room;\n\t\ttry {\n\t\t\tparentMessage = await Livechat.message(tmid, { rid });\n\t\t\tawait addParentMessage(parentMessage);\n\t\t} catch (error) {\n\t\t\tconst { data: { error: reason } } = error;\n\t\t\tconst alert = { id: createToken(), children: reason, error: true, timeout: 5000 };\n\t\t\tawait store.setState({ alerts: (alerts.push(alert), alerts) });\n\t\t}\n\t}\n\n\treturn parentMessage;\n};\n\nconst normalizeThreadMessage = async (message) => {\n\tconst { state } = store;\n\tconst { messages = [] } = state;\n\n\tlet parentMessage = messages.find((msg) => msg._id === message.tmid);\n\tif (!parentMessage) {\n\t\tparentMessage = await findParentMessage(message.tmid);\n\t}\n\tconst { msg, attachments = [] } = parentMessage;\n\treturn Object.assign(message, { threadMsg: parentMessage, attachments: [{ attachments, text: msg, tmid: message.tmid }] });\n};\n\nexport const normalizeMessage = async (message) => {\n\tconst isThreadMsg = await isThreadMessage(message);\n\tif (isThreadMsg) {\n\t\treturn null;\n\t}\n\n\tconst { attachments } = message;\n\n\tif (attachments && attachments.length > 0) {\n\t\tObject.assign(message, { actionsVisible: true });\n\t}\n\n\tif (message && message.tmid && !message.threadMsg) {\n\t\treturn normalizeThreadMessage(message);\n\t}\n\n\treturn message;\n};\n\nexport const normalizeMessages = (messages = []) => Promise.all(messages.filter((message) => !!normalizeMessage(message)));\n","export const isMobile = () => {\n\tlet hasTouchScreen = false;\n\tif ('maxTouchPoints' in navigator) {\n\t\thasTouchScreen = navigator.maxTouchPoints > 0;\n\t} else if ('msMaxTouchPoints' in navigator) {\n\t\thasTouchScreen = navigator.msMaxTouchPoints > 0;\n\t} else {\n\t\tconst mQ = window.matchMedia && matchMedia('(pointer:coarse)');\n\t\tif (mQ && mQ.media === '(pointer:coarse)') {\n\t\t\thasTouchScreen = !!mQ.matches;\n\t\t} else if ('orientation' in window) {\n\t\t\thasTouchScreen = true;\n\t\t} else {\n\t\t\tconst UA = navigator.userAgent;\n\t\t\thasTouchScreen = /\\b(BlackBerry|webOS|iPhone|IEMobile)\\b/i.test(UA)\n || /\\b(Android|Windows Phone|iPad|iPod)\\b/i.test(UA);\n\t\t}\n\t}\n\treturn hasTouchScreen;\n};\n\nexport const isWebView = () => {\n\tconst webViewRegexList = [\n\t\t// if it says it's a webview, let's go with that\n\t\t'WebView',\n\t\t// iOS webview will be the same as safari but missing \"Safari\"\n\t\t'(iPhone|iPod|iPad)(?!.*Safari)',\n\t\t// Android Lollipop and Above: webview will be the same as native but it will contain \"wv\"\n\t\t// Android KitKat to lollipop webview will put {version}.0.0.0\n\t\t'Android.*(wv|.0.0.0)',\n\t\t// old chrome android webview agent\n\t\t'Linux; U; Android',\n\t];\n\treturn !!navigator.userAgent.match(new RegExp(`(${ webViewRegexList.join('|') })`, 'ig'));\n};\n","import i18next from 'i18next';\nimport { route } from 'preact-router';\n\nimport { Livechat } from '../api';\nimport { CallStatus, isCallOngoing } from '../components/Calls/CallStatus';\nimport { setCookies, upsert, canRenderMessage, parse } from '../components/helpers';\nimport { store, initialState } from '../store';\nimport { normalizeAgent } from './api';\nimport Commands from './commands';\nimport constants from './constants';\nimport { handleIdleTimeout } from './idleTimeout';\nimport logger from './logger';\nimport { loadConfig, processUnread } from './main';\nimport { parentCall } from './parentCall';\nimport { createToken } from './random';\nimport { normalizeMessage, normalizeMessages } from './threads';\nimport { isMobile } from './util';\n\nconst commands = new Commands();\nexport const CLOSE_CHAT = 'Close Chat';\n\nexport const onChatClose = async () => {\n\tconst { config: { settings: { clearLocalStorageWhenChatEnded } = {} } = {} } = store.state;\n\n\tif (clearLocalStorageWhenChatEnded) {\n\t\t// exclude UI-affecting flags\n\t\tconst { minimized, visible, undocked, expanded, businessUnit, ...initial } = initialState();\n\t\tawait store.setState(initial);\n\t}\n\n\tawait store.setState({ loading: true });\n\tawait loadConfig();\n\tawait store.setState({\n\t\talerts: [],\n\t\tchatClosed: false,\n\t\tcomposerConfig: { disable: true, disableText: CLOSE_CHAT, removeComposer: true, onDisabledComposerClick: () => {} },\n\t\tpostChatUrl: null,\n\t\troom: null,\n\t});\n\tif (!isMobile()) {\n\t\tstore.setState({ minimized: true });\n\t\tparentCall('minimizeWindow');\n\t\troute('/');\n\t} else {\n\t\troute('/chat-finished');\n\t}\n\tawait store.setState({ loading: false });\n};\n\nexport const closeChat = async () => {\n\tstore.setState({ alerts: [] });\n\tlogger.info('Closing chat');\n\n\tparentCall('callback', 'chat-ended');\n\tstore.setState({ composerConfig: {\n\t\tdisable: true,\n\t\tdisableText: CLOSE_CHAT,\n\t\tremoveComposer: true,\n\t\tonDisabledComposerClick: onChatClose,\n\t},\n\tchatClosed: true,\n\t});\n\tlogger.info('Composer disabled and chat closed');\n\tlogger.sendLogsToES();\n};\n\nconst disableComposer = (msg) => {\n\tconst defaultText = 'Please Wait';\n\tconst result = { disable: false, disableText: defaultText };\n\n\tif (!msg) {\n\t\treturn result;\n\t}\n\n\tconst { customFields = {}, attachments = [] } = msg;\n\n\tif (customFields.disableInput) {\n\t\treturn { disable: true, disableText: customFields.disableInputMessage || defaultText };\n\t}\n\n\tfor (let i = 0; i < attachments.length; i++) {\n\t\tconst { actions = [] } = attachments[i];\n\n\t\tfor (let j = 0; j < actions.length; j++) {\n\t\t\tconst { disableInput, disableInputMessage } = actions[j];\n\t\t\tif (disableInput) {\n\t\t\t\treturn { disable: true, disableText: disableInputMessage || defaultText };\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst handleComposerOnMessage = async (message) => {\n\tconst { composerConfig, chatClosed } = store.state;\n\tconst { disable, disableText } = disableComposer(message);\n\n\tif (chatClosed || message.type === 'livechat-started' || message.type === 'livechat-close' || message.type === 'command') {\n\t\treturn;\n\t}\n\n\tif (disable) {\n\t\tawait store.setState({ composerConfig: { disable: true, disableText, onDisabledComposerClick: () => {} } });\n\t} else if (composerConfig && composerConfig.disableText !== CLOSE_CHAT) {\n\t\tawait store.setState({ composerConfig: { disable: false, disableText: 'Please Wait', onDisabledComposerClick: () => {} } });\n\t}\n};\n\nconst checkForPostChatUrlInMessage = async (message) => {\n\tconst { customFields = {} } = message;\n\tif (customFields.postChatUrl) {\n\t\tawait store.setState({ postChatUrl: customFields.postChatUrl });\n\t}\n};\n\n// TODO: use a separate event to listen to call start event. Listening on the message type isn't a good solution\nexport const processIncomingCallMessage = async (message) => {\n\tconst { alerts } = store.state;\n\ttry {\n\t\tawait store.setState({\n\t\t\tincomingCallAlert: {\n\t\t\t\tshow: true,\n\t\t\t\tcallProvider: message.type,\n\t\t\t\tcallerUsername: message.u.username,\n\t\t\t\trid: message.rid,\n\t\t\t\ttime: message.ts,\n\t\t\t\tcallId: message._id,\n\t\t\t\turl: message.type === constants.jitsiCallStartedMessageType ? message.customFields.jitsiCallUrl : '',\n\t\t\t},\n\t\t\tongoingCall: {\n\t\t\t\tcallStatus: CallStatus.RINGING,\n\t\t\t\ttime: message.ts,\n\t\t\t},\n\t\t});\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tconst alert = { id: createToken(), children: i18next.t('error_getting_call_alert'), error: true, timeout: 5000 };\n\t\tawait store.setState({ alerts: (alerts.push(alert), alerts) });\n\t}\n};\n\nconst processMessage = async (message) => {\n\tif (message.type === 'livechat-close') {\n\t\tlogger.info('Livechat close message received');\n\t\tcloseChat(message);\n\t\thandleIdleTimeout({\n\t\t\tidleTimeoutAction: 'stop',\n\t\t});\n\t} else if (message.type === 'command') {\n\t\tcommands[message.msg] && commands[message.msg]();\n\t} else if (message.webRtcCallEndTs) {\n\t\tawait store.setState({ ongoingCall: { callStatus: CallStatus.ENDED, time: message.ts }, incomingCallAlert: null });\n\t} else if (message.type === constants.webRTCCallStartedMessageType || message.type === constants.jitsiCallStartedMessageType) {\n\t\tawait processIncomingCallMessage(message);\n\t}\n\n\tcheckForPostChatUrlInMessage(message);\n\thandleComposerOnMessage(message);\n};\n\nconst doPlaySound = async (message) => {\n\tconst { sound, user } = store.state;\n\n\tif (!sound.enabled || (user && message.u && message.u._id === user._id) || !message.msg) {\n\t\treturn;\n\t}\n\n\tawait store.setState({ sound: { ...sound, play: true } });\n};\n\nexport const initRoom = async () => {\n\tlogger.info('Room initialization request');\n\tconst { state } = store;\n\tconst { room } = state;\n\n\tif (!room) {\n\t\tlogger.info('Existing room not found post initialization request');\n\t\treturn;\n\t}\n\n\tLivechat.unsubscribeAll();\n\n\tconst { token, agent, queueInfo, room: { _id: rid, servedBy } } = state;\n\tLivechat.subscribeRoom(rid);\n\n\tlet roomAgent = agent;\n\tif (!roomAgent) {\n\t\tif (servedBy) {\n\t\t\troomAgent = await Livechat.agent({ rid });\n\t\t\tawait store.setState({ agent: roomAgent, queueInfo: null });\n\t\t\tparentCall('callback', ['assign-agent', normalizeAgent(roomAgent)]);\n\t\t}\n\t}\n\n\tif (queueInfo) {\n\t\tparentCall('callback', ['queue-position-change', queueInfo]);\n\t}\n\n\tLivechat.onAgentChange(rid, async (agent) => {\n\t\tawait store.setState({ agent, queueInfo: null });\n\t\tparentCall('callback', ['assign-agent', normalizeAgent(agent)]);\n\t});\n\n\tLivechat.onAgentStatusChange(rid, (status) => {\n\t\tconst { agent } = store.state;\n\t\tagent && store.setState({ agent: { ...agent, status } });\n\t\tparentCall('callback', ['agent-status-change', normalizeAgent(agent)]);\n\t});\n\n\tLivechat.onQueuePositionChange(rid, async (queueInfo) => {\n\t\tawait store.setState({ queueInfo });\n\t\tparentCall('callback', ['queue-position-change', queueInfo]);\n\t});\n\n\tsetCookies(rid, token);\n};\n\nconst isAgentHidden = () => {\n\tconst { config: { settings: { agentHiddenInfo } = {} } = {} } = store.state;\n\n\treturn !!agentHiddenInfo;\n};\n\nconst transformAgentInformationOnMessage = (message) => {\n\tconst { user } = store.state;\n\tif (message && user && message.u && message.u._id !== user._id && isAgentHidden()) {\n\t\treturn { ...message, u: { _id: message.u._id } };\n\t}\n\n\tif (message && message.u && message.u._id !== user._id && message.customFields && message.customFields.salesforceAgentName) {\n\t\treturn { ...message, alias: true, u: { ...message.u, name: message.customFields.salesforceAgentName } };\n\t}\n\n\treturn message;\n};\n\nconst handleMessageCustomFields = async (message) => {\n\tif (message.customFields) {\n\t\tif (message.customFields.sneakPeekEnabled !== undefined || message.customFields.sneakPeekEnabled !== null) {\n\t\t\tawait store.setState({ sneakPeekEnabled: message.customFields.sneakPeekEnabled });\n\t\t}\n\t\tif (message.customFields.salesforceAgentName) {\n\t\t\tconst { agent } = store.state;\n\t\t\tawait store.setState({ agent: { ...agent, name: message.customFields.salesforceAgentName, alias: true } });\n\t\t}\n\t}\n};\n\nLivechat.onTyping((username, isTyping) => {\n\tconst { typing, user, agent } = store.state;\n\n\tif (user && user.username && user.username === username) {\n\t\treturn;\n\t}\n\n\tif (agent && agent.hiddenInfo) {\n\t\treturn;\n\t}\n\n\tif (typing.indexOf(username) === -1 && isTyping) {\n\t\ttyping.push(username);\n\t\treturn store.setState({ typing });\n\t}\n\n\tif (!isTyping) {\n\t\treturn store.setState({ typing: typing.filter((u) => u !== username) });\n\t}\n});\n\nLivechat.onMessage(async (message) => {\n\tif (message.ts instanceof Date) {\n\t\tmessage.ts = message.ts.toISOString();\n\t}\n\n\tmessage = await normalizeMessage(message);\n\tif (!message) {\n\t\treturn;\n\t}\n\n\tmessage.msg = parse(message.msg);\n\n\tmessage = transformAgentInformationOnMessage(message);\n\n\tawait store.setState({\n\t\tmessages: upsert(store.state.messages, message, ({ _id }) => _id === message._id, ({ ts }) => ts),\n\t});\n\n\t// Viasat : Timeout Warnings\n\tif (message.customFields && message.customFields.idleTimeoutConfig) {\n\t\thandleIdleTimeout(message.customFields.idleTimeoutConfig);\n\t} else {\n\t\thandleIdleTimeout({\n\t\t\tidleTimeoutAction: 'stop',\n\t\t});\n\t}\n\n\tawait handleMessageCustomFields(message);\n\tawait processMessage(message);\n\n\tif (canRenderMessage(message) !== true) {\n\t\treturn;\n\t}\n\n\tif (message.editedAt) {\n\t\treturn;\n\t}\n\n\tawait processUnread();\n\tawait doPlaySound(message);\n});\n\nexport const getGreetingMessages = (messages) => messages && messages.filter((msg) => msg.trigger);\nexport const getLatestCallMessage = (messages) => messages && messages.filter((msg) => msg.t === constants.webRTCCallStartedMessageType || msg.t === constants.jitsiCallStartedMessageType).pop();\n\nexport const loadMessages = async () => {\n\tconst { ongoingCall } = store.state;\n\tconst { room: { _id: rid, callStatus } = {} } = store.state;\n\n\tif (!rid) {\n\t\treturn;\n\t}\n\n\tawait store.setState({ loading: true });\n\tlet rawMessages = await Livechat.loadMessages(rid);\n\trawMessages = rawMessages?.reverse();\n\tconst { messages: storedMessages } = store.state;\n\t(storedMessages || []).forEach((message) => {\n\t\trawMessages = upsert(rawMessages, message, ({ _id }) => _id === message._id, ({ ts }) => ts);\n\t});\n\tconst messages = (await normalizeMessages(rawMessages)).map(transformAgentInformationOnMessage).map((message) => {\n\t\tconst oldMessage = storedMessages.find((x) => x._id === message._id);\n\t\tif (oldMessage && oldMessage.actionsVisible !== undefined) {\n\t\t\tmessage.actionsVisible = oldMessage.actionsVisible;\n\t\t}\n\t\tcheckForPostChatUrlInMessage(message);\n\t\thandleComposerOnMessage(message);\n\t\thandleMessageCustomFields(message);\n\t\treturn message;\n\t});\n\n\tawait initRoom();\n\tawait store.setState({ messages: (messages || []).sort((a, b) => new Date(a.ts) - new Date(b.ts)), noMoreMessages: false, loading: false });\n\n\tif (messages && messages.length) {\n\t\tconst lastMessage = messages[messages.length - 1];\n\t\tawait store.setState({ lastReadMessageId: lastMessage && lastMessage._id });\n\n\t\tconst { disable, disableText } = disableComposer(lastMessage);\n\n\t\tif (disable) {\n\t\t\tstore.setState({ composerConfig: { disable: true, disableText, onDisabledComposerClick: () => {} } });\n\t\t}\n\t}\n\n\tconst { idleTimeout } = store.state;\n\n\tif (idleTimeout && idleTimeout.idleTimeoutRunning) {\n\t\tconst {\n\t\t\tidleTimeoutMessage,\n\t\t\tidleTimeoutWarningTime,\n\t\t\tidleTimeoutTimeoutTime,\n\t\t} = idleTimeout;\n\t\thandleIdleTimeout({\n\t\t\tidleTimeoutAction: 'start',\n\t\t\tidleTimeoutMessage,\n\t\t\tidleTimeoutWarningTime,\n\t\t\tidleTimeoutTimeoutTime,\n\t\t});\n\t}\n\n\tif (ongoingCall && isCallOngoing(ongoingCall.callStatus)) {\n\t\treturn;\n\t}\n\n\tconst latestCallMessage = getLatestCallMessage(messages);\n\tif (!latestCallMessage) {\n\t\treturn;\n\t}\n\tif (latestCallMessage.type === constants.jitsiCallStartedMessageType) {\n\t\tawait store.setState({\n\t\t\tongoingCall: {\n\t\t\t\tcallStatus: CallStatus.IN_PROGRESS_DIFFERENT_TAB,\n\t\t\t\ttime: latestCallMessage.ts,\n\t\t\t},\n\t\t\tincomingCallAlert: {\n\t\t\t\tshow: false,\n\t\t\t\tcallProvider:\n\t\t\t\tlatestCallMessage.type,\n\t\t\t\turl: latestCallMessage.customFields.jitsiCallUrl,\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\tswitch (callStatus) {\n\t\tcase CallStatus.IN_PROGRESS: {\n\t\t\tawait store.setState({\n\t\t\t\tongoingCall: {\n\t\t\t\t\tcallStatus: CallStatus.IN_PROGRESS_DIFFERENT_TAB,\n\t\t\t\t\ttime: latestCallMessage.ts,\n\t\t\t\t},\n\t\t\t\tincomingCallAlert: {\n\t\t\t\t\tshow: false,\n\t\t\t\t\tcallProvider: latestCallMessage.type,\n\t\t\t\t},\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t\tcase CallStatus.RINGING: {\n\t\t\tprocessIncomingCallMessage(latestCallMessage);\n\t\t}\n\t}\n};\n\nexport const reloadMessages = async () => {\n\tstore.setState({ loading: true, messages: [] });\n\tawait loadMessages();\n};\n\nexport const loadMoreMessages = async () => {\n\tconst { room: { _id: rid } = {}, messages = [], noMoreMessages = false } = store.state;\n\n\tif (!rid || noMoreMessages) {\n\t\treturn;\n\t}\n\n\tawait store.setState({ loading: true });\n\n\tlet rawMessages = await Livechat.loadMessages(rid, { limit: messages.length + 10 });\n\trawMessages = rawMessages?.reverse();\n\tconst moreMessages = (await normalizeMessages(rawMessages)).map(transformAgentInformationOnMessage).map((message) => {\n\t\tconst { _id } = message;\n\t\tconst oldMessage = messages.find((x) => x._id === _id);\n\t\tif (oldMessage && oldMessage.actionsVisible !== undefined) {\n\t\t\tmessage.actionsVisible = oldMessage.actionsVisible;\n\t\t}\n\t\tcheckForPostChatUrlInMessage(message);\n\t\thandleComposerOnMessage(message);\n\t\treturn message;\n\t});\n\n\tawait store.setState({\n\t\tmessages: moreMessages || [],\n\t\tnoMoreMessages: messages.length + 10 > moreMessages.length,\n\t\tloading: false,\n\t});\n};\n\nexport const defaultRoomParams = () => {\n\tconst params = {};\n\n\tconst { defaultAgent: agent = {} } = store.state;\n\tif (agent && agent._id) {\n\t\tObject.assign(params, { agentId: agent._id });\n\t}\n\n\treturn params;\n};\n\nexport const assignRoom = async () => {\n\tlogger.info('Room assign request initiated');\n\tconst { room } = store.state;\n\n\tif (room) {\n\t\treturn;\n\t}\n\n\tconst params = defaultRoomParams();\n\tconst newRoom = await Livechat.room(params);\n\tawait store.setState({ room: newRoom });\n\tawait initRoom();\n};\n\nstore.on('change', ([state, prevState]) => {\n\t// Cross-tab communication\n\t// Detects when a room is created and then route to the correct container\n\tif (!prevState.room && state.room) {\n\t\troute('/');\n\t}\n});\n","import { Livechat } from '../api';\nimport store from '../store';\nimport constants from './constants';\nimport { loadConfig } from './main';\nimport { loadMessages } from './room';\n\nlet self;\nlet timer;\nlet connectedListener;\nlet disconnectedListener;\nlet initiated = false;\nconst { livechatDisconnectedAlertId, livechatConnectedAlertId } = constants;\nconst removeListener = (l) => l.stop();\n\nconst Connection = {\n\tasync init() {\n\t\tif (initiated) {\n\t\t\treturn;\n\t\t}\n\n\t\tinitiated = true;\n\t\tself = this;\n\t\tawait this.connect();\n\t},\n\n\tasync connect() {\n\t\ttry {\n\t\t\tthis.clearListeners();\n\t\t\tawait loadConfig();\n\t\t\tawait import('../i18next');\n\t\t\tawait Livechat.connect();\n\t\t\tthis.addListeners();\n\t\t\tthis.clearAlerts();\n\t\t} catch (e) {\n\t\t\tconsole.error('Connecting error: ', e);\n\t\t}\n\t},\n\n\treconnect() {\n\t\tif (timer) {\n\t\t\treturn;\n\t\t}\n\t\ttimer = setTimeout(async () => {\n\t\t\ttry {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = false;\n\t\t\t\tawait this.connect();\n\t\t\t\tawait loadMessages();\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Reconecting error: ', e);\n\t\t\t\tthis.reconnect();\n\t\t\t}\n\t\t}, 5000);\n\t},\n\n\tasync clearAlerts() {\n\t\tconst { alerts } = store.state;\n\t\tawait store.setState({ alerts: alerts.filter((alert) => ![livechatDisconnectedAlertId, livechatConnectedAlertId].includes(alert.id)) });\n\t},\n\n\tasync displayAlert(alert = {}) {\n\t\tconst { alerts } = store.state;\n\t\tawait store.setState({ alerts: (alerts.push(alert), alerts) });\n\t},\n\n\tasync handleConnected() {\n\t\tawait self.clearAlerts();\n\t\t// Viasat\n\t\t// await self.displayAlert({ id: livechatConnectedAlertId, children: i18next.t('livechat_connected'), success: true });\n\t\tawait loadMessages();\n\t},\n\n\tasync handleDisconnected() {\n\t\tawait self.clearAlerts();\n\t\t// Viasat\n\t\t// await self.displayAlert({ id: livechatDisconnectedAlertId, children: i18next.t('livechat_is_not_connected'), error: true, timeout: 0 });\n\t\tself.reconnect();\n\t},\n\n\taddListeners() {\n\t\tif (!connectedListener) {\n\t\t\tconnectedListener = Livechat.onStreamData('connected', this.handleConnected);\n\t\t}\n\n\t\tif (!disconnectedListener) {\n\t\t\tdisconnectedListener = Livechat.onStreamData('close', this.handleDisconnected);\n\t\t}\n\t},\n\n\tclearListeners() {\n\t\tif (connectedListener) {\n\t\t\tconnectedListener.then(removeListener);\n\t\t\tconnectedListener = false;\n\t\t}\n\n\t\tif (disconnectedListener) {\n\t\t\tdisconnectedListener.then(removeListener);\n\t\t\tdisconnectedListener = false;\n\t\t}\n\t},\n};\n\nexport default Connection;\n","import { Livechat } from '../api';\nimport store from '../store';\n\nclass CustomFields {\n\tconstructor() {\n\t\tif (!CustomFields.instance) {\n\t\t\tthis._initiated = false;\n\t\t\tthis._started = false;\n\t\t\tthis._queue = {};\n\t\t\tthis._callback = () => { };\n\t\t\tCustomFields.instance = this;\n\t\t}\n\n\t\treturn CustomFields.instance;\n\t}\n\n\tinit() {\n\t\tif (this._initiated) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._initiated = true;\n\t\tconst { token } = store.state;\n\t\tLivechat.credentials.token = token;\n\n\t\tstore.on('change', this.handleStoreChange);\n\t}\n\n\treset() {\n\t\tthis._initiated = false;\n\t\tthis._started = false;\n\t\tthis._queue = {};\n\t\tthis._callback = () => { };\n\t\tstore.off('change', this.handleStoreChange);\n\t}\n\n\tasync handleStoreChange([state]) {\n\t\tconst { user } = state;\n\t\tconst { _started } = CustomFields.instance;\n\n\t\tif (_started) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!user) {\n\t\t\treturn;\n\t\t}\n\n\t\tCustomFields.instance._started = true;\n\t\tawait CustomFields.instance.processCustomFields();\n\t}\n\n\tasync processCustomFields() {\n\t\tObject.keys(this._queue).forEach(async (key, index, array) => {\n\t\t\tconst { value, overwrite } = this._queue[key];\n\t\t\tawait this.setCustomField(key, value, overwrite);\n\t\t\tif (index === array.length - 1) {\n\t\t\t\tCustomFields.instance._callback();\n\t\t\t}\n\t\t});\n\n\t\tthis._queue = {};\n\t}\n\n\tasync setCustomField(key, value, overwrite = true) {\n\t\tif (!this._started) {\n\t\t\tthis._queue[key] = { value, overwrite };\n\t\t\treturn;\n\t\t}\n\n\t\tconst { token } = Livechat.credentials;\n\t\tawait Livechat.sendCustomField({ token, key, value, overwrite });\n\t}\n\n\tsetOnCustomFieldsUpdated(callback) {\n\t\tthis._callback = callback || (() => { });\n\t}\n\n\tisEmpty() {\n\t\treturn Object.keys(this._queue).length === 0;\n\t}\n}\n\nconst instance = new CustomFields();\nexport default instance;\n","import i18next from 'i18next';\nimport { route } from 'preact-router';\n\nimport { Livechat } from '../api';\nimport { upsert, asyncForEach } from '../components/helpers';\nimport store from '../store';\nimport { normalizeAgent } from './api';\nimport CustomFields from './customFields';\nimport logger from './logger';\nimport { processUnread } from './main';\nimport { parentCall, runCallbackEventEmitter } from './parentCall';\nimport { createToken } from './random';\nimport { assignRoom } from './room';\n\nconst agentCacheExpiry = 3600000;\nlet agentPromise;\n\nconst registerGuestAndCreateSession = async (triggerAction) => {\n\tlogger.info('Starting new guest session');\n\tconst { alerts, room, token, iframe: { guest: { department: guestDepartment } } } = store.state;\n\tif (room) {\n\t\tlogger.info('Existing room found thus returning it');\n\t\treturn room;\n\t}\n\n\tconst startChat = async () => {\n\t\tawait assignRoom();\n\t\tparentCall('callback', 'chat-started');\n\t};\n\n\tlogger.info('Disabling composer initially');\n\tstore.setState({ loading: true });\n\tstore.setState({ chatClosed: false, postChatUrl: null, composerConfig: { disable: true, disableText: 'Starting chat...' } });\n\ttry {\n\t\tconst { params } = triggerAction;\n\t\tconst department = guestDepartment || (params && params.department);\n\t\tconst guest = { token: token || createToken(), ...department && { department } };\n\t\tstore.setState(guest);\n\t\tconst user = await Livechat.grantVisitor({ visitor: { ...guest } });\n\n\t\tif (store.state.user || CustomFields.isEmpty()) {\n\t\t\tstartChat();\n\t\t} else {\n\t\t\tCustomFields.setOnCustomFieldsUpdated(startChat);\n\t\t}\n\t\tstore.setState({ user });\n\t} catch (error) {\n\t\tconst { data: { error: reason } } = error;\n\t\tconst alert = { id: createToken(), children: i18next.t('error_starting_a_new_conversation_reason', { reason }), error: true, timeout: 10000 };\n\t\tstore.setState({ loading: false, alerts: (alerts.push(alert), alerts) });\n\n\t\trunCallbackEventEmitter(reason);\n\t\tthrow error;\n\t} finally {\n\t\tstore.setState({ loading: false });\n\t}\n};\n\nconst getAgent = (triggerAction) => {\n\tif (agentPromise) {\n\t\treturn agentPromise;\n\t}\n\n\tagentPromise = new Promise(async (resolve, reject) => {\n\t\tconst { params } = triggerAction;\n\n\t\tif (params.sender === 'queue') {\n\t\t\tconst { state } = store;\n\t\t\tconst { defaultAgent, iframe: { guest: { department } } } = state;\n\t\t\tif (defaultAgent && defaultAgent.ts && Date.now() - defaultAgent.ts < agentCacheExpiry) {\n\t\t\t\treturn resolve(defaultAgent); // cache valid for 1\n\t\t\t}\n\n\t\t\tlet agent;\n\t\t\ttry {\n\t\t\t\tagent = await Livechat.nextAgent(department);\n\t\t\t} catch (error) {\n\t\t\t\treturn reject(error);\n\t\t\t}\n\n\t\t\tstore.setState({ defaultAgent: { ...agent, ts: Date.now() } });\n\t\t\tresolve(agent);\n\t\t} else if (params.sender === 'custom') {\n\t\t\tresolve({\n\t\t\t\tusername: params.name,\n\t\t\t});\n\t\t} else {\n\t\t\treject('Unknown sender');\n\t\t}\n\t});\n\n\t// expire the promise cache as well\n\tsetTimeout(() => {\n\t\tagentPromise = null;\n\t}, agentCacheExpiry);\n\n\treturn agentPromise;\n};\n\nclass Triggers {\n\tconstructor() {\n\t\tif (!Triggers.instance) {\n\t\t\tthis._started = false;\n\t\t\tthis._chatOpened = false;\n\t\t\tthis._requests = [];\n\t\t\tthis._triggers = [];\n\t\t\tthis._enabled = true;\n\t\t\tTriggers.instance = this;\n\t\t}\n\n\t\treturn Triggers.instance;\n\t}\n\n\tinit() {\n\t\tif (this._started) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { token, firedTriggers = [], config: { triggers } } = store.state;\n\t\tLivechat.credentials.token = token;\n\n\t\tif (!(triggers && triggers.length > 0)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._started = true;\n\t\tthis._triggers = [...triggers];\n\n\t\tfiredTriggers.forEach((triggerId) => {\n\t\t\tthis._triggers.forEach((trigger) => {\n\t\t\t\tif (trigger._id === triggerId) {\n\t\t\t\t\ttrigger.skip = true;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tasync fire(trigger) {\n\t\tconst { token, user, firedTriggers = [], config: { settings: { registrationForm } } } = store.state;\n\t\tif (!this._enabled || trigger.skip || (trigger.registeredOnly && registrationForm && !user)) {\n\t\t\treturn;\n\t\t}\n\t\tconst { actions } = trigger;\n\t\tawait asyncForEach(actions, (action) => {\n\t\t\tif (action.name === 'send-message') {\n\t\t\t\ttrigger.skip = true;\n\n\t\t\t\tgetAgent(action).then(async (agent) => {\n\t\t\t\t\tconst ts = new Date();\n\n\t\t\t\t\tconst message = {\n\t\t\t\t\t\tmsg: action.params.msg,\n\t\t\t\t\t\ttoken,\n\t\t\t\t\t\tu: agent,\n\t\t\t\t\t\tts: ts.toISOString(),\n\t\t\t\t\t\t_id: createToken(),\n\t\t\t\t\t\ttrigger: true,\n\t\t\t\t\t};\n\n\t\t\t\t\tawait store.setState({\n\t\t\t\t\t\ttriggered: true,\n\t\t\t\t\t\tmessages: upsert(store.state.messages, message, ({ _id }) => _id === message._id, ({ ts }) => ts),\n\t\t\t\t\t});\n\t\t\t\t\tawait processUnread();\n\n\t\t\t\t\tif (agent && agent._id) {\n\t\t\t\t\t\tawait store.setState({ agent });\n\t\t\t\t\t\tparentCall('callback', ['assign-agent', normalizeAgent(agent)]);\n\t\t\t\t\t}\n\n\t\t\t\t\troute('/trigger-messages');\n\t\t\t\t\tstore.setState({ minimized: false });\n\t\t\t\t});\n\t\t\t} else if (action.name === 'start-session') {\n\t\t\t\tlogger.info('Firing initial trigger');\n\t\t\t\tregisterGuestAndCreateSession(action).then(() => {\n\t\t\t\t\tstore.setState({ triggered: true });\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tif (trigger.runOnce) {\n\t\t\ttrigger.skip = true;\n\t\t\tfiredTriggers.push(trigger._id);\n\t\t\tstore.setState({ firedTriggers });\n\t\t}\n\t}\n\n\tprocessRequest(request) {\n\t\tthis._requests.push(request);\n\t\tif (!this._started) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.processTriggers();\n\t}\n\n\tprocessChatOpened() {\n\t\tthis._chatOpened = true;\n\t\tif (!this._started) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.processTriggers();\n\t}\n\n\tprocessTriggers() {\n\t\tthis._triggers.forEach((trigger) => {\n\t\t\tif (trigger.skip) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttrigger.conditions.forEach((condition) => {\n\t\t\t\tswitch (condition.name) {\n\t\t\t\t\tcase 'page-url':\n\t\t\t\t\t\tconst hrefRegExp = new RegExp(condition.value, 'g');\n\t\t\t\t\t\tif (hrefRegExp.test(window.location.href)) {\n\t\t\t\t\t\t\tthis.fire(trigger);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'time-on-site':\n\t\t\t\t\t\ttrigger.timeout = setTimeout(() => {\n\t\t\t\t\t\t\tthis.fire(trigger);\n\t\t\t\t\t\t}, parseInt(condition.value, 10) * 1000);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'chat-opened-by-visitor':\n\t\t\t\t\t\tif (!this._chatOpened) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._chatOpened = false;\n\t\t\t\t\t\tthis.fire(trigger);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tthis._requests = [];\n\t}\n\n\tset triggers(newTriggers) {\n\t\tthis._triggers = [...newTriggers];\n\t}\n\n\tset enabled(value) {\n\t\tthis._enabled = value;\n\t}\n}\n\nconst instance = new Triggers();\nexport default instance;\n","import i18next from 'i18next';\n\nimport { Livechat } from '../api';\nimport { store } from '../store';\nimport CustomFields from './customFields';\nimport { loadConfig, updateBusinessUnit } from './main';\nimport { parentCall } from './parentCall';\nimport { createToken } from './random';\nimport Triggers from './triggers';\n\nconst createOrUpdateGuest = async (guest) => {\n\tconst { token } = guest;\n\ttoken && await store.setState({ token });\n\ttoken && await loadConfig();\n\n\tconst user = await Livechat.grantVisitor({ visitor: { ...guest } });\n\tstore.setState({ user });\n};\n\nconst updateIframeGuestData = (data) => {\n\tconst { iframe, iframe: { guest }, user: _id, token } = store.state;\n\tstore.setState({ iframe: { ...iframe, guest: { ...guest, ...data } } });\n\n\tif (!_id) {\n\t\treturn;\n\t}\n\n\tconst guestData = { token, ...data };\n\tcreateOrUpdateGuest(guestData);\n};\n\nconst api = {\n\tpageVisited(info) {\n\t\tif (info.change === 'url') {\n\t\t\tTriggers.processRequest(info);\n\t\t}\n\n\t\tconst { token, room: { _id: rid } = {} } = store.state;\n\t\tconst { change, title, location: { href } } = info;\n\n\t\tLivechat.sendVisitorNavigation({ token, rid, pageInfo: { change, title, location: { href } } });\n\t},\n\n\tsetCustomField(key, value, overwrite = true) {\n\t\tCustomFields.setCustomField(key, value, overwrite);\n\t},\n\n\tsetTheme({ color, fontColor, iconColor, title, offlineTitle } = {}) {\n\t\tconst { iframe, iframe: { theme } } = store.state;\n\t\tstore.setState({\n\t\t\tiframe: {\n\t\t\t\t...iframe,\n\t\t\t\ttheme: {\n\t\t\t\t\t...theme,\n\t\t\t\t\tcolor,\n\t\t\t\t\tfontColor,\n\t\t\t\t\ticonColor,\n\t\t\t\t\ttitle,\n\t\t\t\t\tofflineTitle,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t},\n\n\tsetDepartment(value) {\n\t\tconst { config: { departments = [] } } = store.state;\n\n\t\tconst dept = departments.find((dep) => dep._id === value || dep.name === value);\n\t\tconst department = (dept && dept._id) || '';\n\n\t\tupdateIframeGuestData({ department });\n\t},\n\n\tasync setBusinessUnit(newBusinessUnit) {\n\t\tif (!newBusinessUnit || !newBusinessUnit.trim().length) {\n\t\t\tthrow new Error('Error! Invalid business ids');\n\t\t}\n\n\t\tconst { businessUnit: existingBusinessUnit } = store.state;\n\n\t\treturn existingBusinessUnit !== newBusinessUnit && updateBusinessUnit(newBusinessUnit);\n\t},\n\n\tasync clearBusinessUnit() {\n\t\tconst { businessUnit } = store.state;\n\t\treturn businessUnit && updateBusinessUnit();\n\t},\n\n\tclearDepartment() {\n\t\tupdateIframeGuestData({ department: '' });\n\t},\n\n\tsetAgent({ _id, username, ...props } = {}) {\n\t\tif (!_id || !username) {\n\t\t\treturn console.warn('The fields _id and username are mandatory.');\n\t\t}\n\n\t\tstore.setState({\n\t\t\tdefaultAgent: {\n\t\t\t\t_id,\n\t\t\t\tusername,\n\t\t\t\tts: Date.now(),\n\t\t\t\t...props,\n\t\t\t},\n\t\t});\n\t},\n\n\tsetExpanded(expanded) {\n\t\tstore.setState({ expanded });\n\t},\n\n\tasync setGuestToken(token) {\n\t\tconst { token: localToken, iframe, iframe: { guest } } = store.state;\n\t\tif (token === localToken) {\n\t\t\treturn;\n\t\t}\n\t\tstore.setState({ token, iframe: { ...iframe, guest: { ...guest, token } } });\n\t\tawait loadConfig();\n\t},\n\n\tsetGuestName(name) {\n\t\tupdateIframeGuestData({ name });\n\t},\n\n\tsetGuestPhone(phone) {\n\t\tupdateIframeGuestData({ phone: phone ?? '' });\n\t},\n\n\tsetGuestEmail(email) {\n\t\tupdateIframeGuestData({ email });\n\t},\n\n\tregisterGuest(data = {}) {\n\t\tif (typeof data !== 'object') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!data.token) {\n\t\t\tdata.token = createToken();\n\t\t}\n\n\t\tif (data.department) {\n\t\t\tapi.setDepartment(data.department);\n\t\t}\n\n\t\tcreateOrUpdateGuest(data);\n\t},\n\n\tasync setLanguage(language) {\n\t\tconst { iframe } = store.state;\n\t\tawait store.setState({ iframe: { ...iframe, language } });\n\t\ti18next.changeLanguage(language);\n\t\t// Causing error to remember to check what this function does\n\t\t// setWidgetLanguage();\n\t},\n\n\tshowWidget() {\n\t\tconst { iframe } = store.state;\n\t\tstore.setState({ iframe: { ...iframe, visible: true } });\n\t\tparentCall('showWidget');\n\t},\n\n\thideWidget() {\n\t\tconst { iframe } = store.state;\n\t\tstore.setState({ iframe: { ...iframe, visible: false } });\n\t\tparentCall('hideWidget');\n\t},\n\n\tshowPrint() {\n\t\tstore.setState({ hidePrint: false });\n\t\tparentCall('showPrint');\n\t},\n\n\thidePrint() {\n\t\tstore.setState({ hidePrint: true });\n\t\tparentCall('hidePrint');\n\t},\n\n\tminimizeWidget() {\n\t\tstore.setState({ minimized: true });\n\t\tparentCall('closeWidget');\n\t},\n\n\tmaximizeWidget() {\n\t\tstore.setState({ minimized: false });\n\t\tparentCall('openWidget');\n\t},\n\n\tdropTriggerMessage() {\n\t\tstore.setState({ dropTriggerMessage: true });\n\t\tparentCall('dropTriggerMessage');\n\t},\n};\n\nconst onNewMessage = (event) => {\n\tif (event.source === event.target) {\n\t\treturn;\n\t}\n\n\tif (typeof event.data === 'object' && event.data.src !== undefined && event.data.src === 'rocketchat') {\n\t\tif (api[event.data.fn] !== undefined && typeof api[event.data.fn] === 'function') {\n\t\t\tconst args = [].concat(event.data.args || []);\n\t\t\tapi[event.data.fn].apply(null, args);\n\t\t}\n\t}\n};\n\nclass Hooks {\n\tconstructor() {\n\t\tif (!Hooks.instance) {\n\t\t\tthis._started = false;\n\t\t\tHooks.instance = this;\n\t\t}\n\n\t\treturn Hooks.instance;\n\t}\n\n\tinit() {\n\t\tif (this._started) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._started = true;\n\t\twindow.addEventListener('message', onNewMessage, false);\n\t}\n\n\treset() {\n\t\tthis._started = false;\n\t\twindow.removeEventListener('message', onNewMessage, false);\n\t}\n}\n\nconst instance = new Hooks();\nexport default instance;\n","import { Livechat } from '../api';\nimport store from '../store';\n\nconst docActivityEvents = ['mousemove', 'mousedown', 'touchend', 'keydown'];\nlet timer;\nlet initiated = false;\nconst awayTime = 300000;\nlet self;\nlet oldStatus;\n\nconst userPrensence = {\n\n\tinit() {\n\t\tif (initiated) {\n\t\t\treturn;\n\t\t}\n\n\t\tinitiated = true;\n\t\tself = this;\n\t\tstore.on('change', this.handleStoreChange);\n\t},\n\n\treset() {\n\t\tinitiated = false;\n\t\tthis.stopEvents();\n\t\tstore.off('change', this.handleStoreChange);\n\t},\n\n\tstopTimer() {\n\t\ttimer && clearTimeout(timer);\n\t},\n\n\tstartTimer() {\n\t\tthis.stopTimer();\n\t\ttimer = setTimeout(this.setAway, awayTime);\n\t},\n\n\thandleStoreChange([state]) {\n\t\tif (!initiated) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { room, user } = state;\n\t\troom && user ? self.startEvents() : self.stopEvents();\n\t},\n\n\tstartEvents() {\n\t\tdocActivityEvents.forEach((event) => {\n\t\t\tdocument.addEventListener(event, this.setOnline);\n\t\t});\n\n\t\twindow.addEventListener('focus', this.setOnline);\n\t},\n\n\tstopEvents() {\n\t\tdocActivityEvents.forEach((event) => {\n\t\t\tdocument.removeEventListener(event, this.setOnline);\n\t\t});\n\n\t\twindow.removeEventListener('focus', this.setOnline);\n\t\tthis.stopTimer();\n\t},\n\n\tasync setOnline() {\n\t\tself.startTimer();\n\t\tif (oldStatus === 'online') {\n\t\t\treturn;\n\t\t}\n\t\toldStatus = 'online';\n\t\tawait Livechat.updateVisitorStatus('online');\n\t},\n\n\tasync setAway() {\n\t\tself.stopTimer();\n\t\tif (oldStatus === 'away') {\n\t\t\treturn;\n\t\t}\n\t\toldStatus = 'away';\n\t\tawait Livechat.updateVisitorStatus('away');\n\t},\n};\n\nexport default userPrensence;\n","import { h } from 'preact';\n\nimport { Livechat } from '../../api';\nimport store from '../../store';\nimport { createClassName } from '../helpers';\nimport { CallStatus } from './CallStatus';\nimport styles from './styles.scss';\n\n\nexport const CallIframe = () => {\n\tconst { token, room, incomingCallAlert, ongoingCall } = store.state;\n\tconst url = `${ Livechat.client.host }/meet/${ room._id }?token=${ token }&layout=embedded`;\n\twindow.handleIframeClose = () => store.setState({ incomingCallAlert: { ...incomingCallAlert, show: false } });\n\twindow.expandCall = () => {\n\t\twindow.open(\n\t\t\t`${ Livechat.client.host }/meet/${ room._id }?token=${ token }`,\n\t\t\troom._id,\n\t\t);\n\t\treturn store.setState({\n\t\t\tincomingCallAlert: { ...incomingCallAlert, show: false },\n\t\t\tongoingCall: {\n\t\t\t\t...ongoingCall,\n\t\t\t\tcallStatus: CallStatus.IN_PROGRESS_DIFFERENT_TAB,\n\t\t\t},\n\t\t});\n\t};\n\treturn (\n\t\t
\n\t\t\t