{"version":3,"file":"postDetailPageClient_usa.js","sources":["../../../node_modules/.pnpm/ua-parser-js@1.0.37/node_modules/ua-parser-js/src/ua-parser.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../../../packages/lib-common/src/utils/objectUtils.ts","../../../packages/lib-common/src/utils/deviceUtils.ts","../../../packages/lib-common/src/utils/logUtils.ts","../../../packages/lib-common/src/utils/numUtils.ts","../../../packages/lib-common/src/utils/typeUtils.ts","../../../packages/lib-common/src/utils/urlUtils.ts","../../../packages/lib-common/src/utils/dateTimeUtils.ts","../../../packages/lib-common/src/utils/pageUtils.ts","../../../packages/lib-common/src/utils/cookieUtils.ts","../../../packages/lib-domain-tag/src/eventSubjects/domainSubject.ts","../../../packages/lib-domain-tag/src/eventSubjects/domContentLoadedSubject.ts","../../../packages/lib-domain-tag/src/eventSubjects/tcfReadySubject.ts","../../../packages/lib-domain-tag/src/eventSubjects/domReadyStateCompleteSubject.ts","../../../packages/lib-domain-tag/src/eventSubjects/domReadyStateInteractiveSubject.ts","../../../packages/lib-domain-tag/src/eventSubjects/windowUrlChangedSubject.ts","../../../packages/lib-domain-tag/src/domain/commandArray.ts","../../../packages/lib-domain-tag/src/domain/domainTag.ts","../../../packages/lib-domain-tag/src/main.ts","../../../packages/lib-domain-tag/global.ts","../../../packages/lib-domain-tag/src/ads/googleTypes.ts","../../../packages/lib-domain-tag/src/ads/eventSubjects/slotRenderEndedSubject.ts","../../../packages/lib-domain-tag/src/ads/adUnit.ts","../../../packages/lib-domain-tag/src/ads/pbjsConfigs.ts","../../../packages/lib-domain-tag/src/ads/eventSubjects/firstSlotRenderEndedSubject.ts","../../../packages/lib-domain-tag/src/eventSubjects/pageClientExecutionEndedSubject.ts","../../../packages/lib-domain-tag/src/ads/pageAdsBuilder.ts","../../../packages/lib-domain-tag/src/ads/pageAdsBuilderForSpecialUseCases.ts","../../../packages/lib-domain-tag/src/ads/bidder.ts","../../../packages/lib-domain-tag/src/ads/bidderHelper.ts","../lib/bidderConfs/worldPageBidderHelper.ts","../lib/bidderConfs/trPageBidderHelper.ts","../../../packages/lib-domain-tag/countryEnum.ts","../lib/main.ts","../lib/pages/pageBidderHelper.ts","../lib/pages/postDetailPage/_loadMoreAdUnits.ts","../lib/pages/postDetailPage/_intextAdUnits.ts","../lib/pages/postDetailPage/_nativoAdUnits.ts","../lib/commonAdUnits/outOfPageAdUnits.ts","../lib/pages/utilHelpers.ts","../lib/pages/postDetailPage/desktopPostDetailPageAdsBuilder.ts","../lib/pages/postDetailPage/mobilePostDetailPageAdsBuilder.ts","../../../node_modules/.pnpm/moment@2.30.1/node_modules/moment/dist/moment.js","../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs","../../../packages/lib-web/src/utils/currencyUtils.ts","../../../node_modules/.pnpm/vite-plugin-node-polyfills@0.21.0_vite@5.1.4/node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/bind.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/utils.js","../../../node_modules/.pnpm/vite-plugin-node-polyfills@0.21.0_vite@5.1.4/node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/AxiosError.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/null.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/toFormData.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/defaults/transitional.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/platform/browser/classes/FormData.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/platform/browser/classes/Blob.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/platform/browser/index.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/platform/common/utils.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/platform/index.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/formDataToJSON.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/defaults/index.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/AxiosHeaders.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/transformData.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/cancel/CanceledError.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/settle.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/cookies.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/buildFullPath.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/parseProtocol.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/speedometer.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/adapters/xhr.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/adapters/adapters.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/mergeConfig.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/env/data.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/validator.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/core/Axios.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/spread.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/isAxiosError.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../node_modules/.pnpm/axios@1.6.5/node_modules/axios/lib/axios.js","../../../packages/lib-web/src/utils/httpUtils.ts","../../../packages/lib-web/src/utils/momentUtils.ts","../../../node_modules/.pnpm/vite-plugin-node-polyfills@0.21.0_vite@5.1.4/node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../../../node_modules/.pnpm/js-sha1@0.6.0/node_modules/js-sha1/src/sha1.js","../../../packages/lib-web/src/utils/hashUtils.ts","../../../packages/lib-browser-data-store/components/localStorageDataManager.ts","../../../packages/lib-browser-data-store/components/cookieDataManager.ts","../../../packages/lib-browser-data-store/utils/dataManagerProxy.ts","../lib/emotions/emojiHelper.ts","../lib/pages/postDetailPage/pageClient.ts"],"sourcesContent":["/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.37\n Copyright © 2012-2021 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.37',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 ' + BROWSER]], [\n /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/2345 Browser\n ], [NAME, VERSION], [\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( 2| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","\nimport { v4 as uuidv4 } from \"uuid\";\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace objUtil {\n export const isStrNullOrUndefined = (data?: string | null | undefined) => {\n return data === null || data === undefined || data?.trim()?.length === 0 || data?.trim() === '';\n }\n\n export const isNullOrEmpty = isStrNullOrUndefined;\n\n export const isObjNullOrUndefined = (data?: object | null | undefined): boolean => {\n return data === null || data === undefined;\n }\n export const isNumNullOrUndefined = (data?: number | null | undefined): boolean => {\n return data === null || data === undefined;\n }\n\n export const uuidStr = (): string => {\n return uuidv4();\n }\n\n}\n\n\n","import {UAParser} from \"ua-parser-js\";\nimport {typeUtil} from \"./typeUtils\";\nimport {objUtil} from \"./objectUtils\";\ntype StringOrUndefined=typeUtil.StringOrUndefined;\nconst isStrNullOrUndefined=objUtil.isStrNullOrUndefined;\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace deviceUtil {\n\n\n export const isMobileExt = (userAgent?: string | null | undefined): boolean => {\n return /Mobile|Mobi|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(userAgent ?? navigator.userAgent);\n };\n\n export enum DeviceTypeEnum {\n desktop = 'desktop',\n mobile = 'mobile',\n tablet = 'tablet',\n phone = 'phone',\n smarttv = 'smarttv'\n }\n\n export type DeviceTypeArray = Array\n\n export class DeviceTypeInfo {\n\n\n constructor() {\n const uaParser = new UAParser(window?.navigator?.userAgent);\n const ua = uaParser.getResult();\n this.model = ua.device?.model;\n this.vendor = ua.device?.vendor;\n this.osName = ua.os?.name;\n this.osVersion = ua.os?.version;\n this.type = ua.device?.type;\n if (isStrNullOrUndefined(this.type)) {\n if (isMobileExt()) {\n this.type = DeviceTypeEnum.mobile;\n } else {\n this.type = DeviceTypeEnum.desktop;\n }\n }\n\n }\n type: StringOrUndefined | DeviceTypeEnum;\n model: StringOrUndefined;\n vendor: StringOrUndefined;\n osName: StringOrUndefined;\n osVersion: StringOrUndefined;\n\n isDesktop():boolean{\n const type=this.type ?? DeviceTypeEnum.mobile;\n const result=DeviceTypeInfo.desktopDevices.some(q=>q === type)\n return result;\n }\n isMobile():boolean{\n const type=this.type ?? DeviceTypeEnum.mobile;\n const result=DeviceTypeInfo.mobileDevices.some(q=>q === type)\n return result;\n }\n\n\n public static readonly desktopDevices = [DeviceTypeEnum.desktop, DeviceTypeEnum.tablet, DeviceTypeEnum.smarttv];\n public static readonly mobileDevices = [DeviceTypeEnum.mobile, DeviceTypeEnum.phone];\n public static readonly allDevices = [\n DeviceTypeEnum.mobile,DeviceTypeEnum.phone,\n DeviceTypeEnum.desktop, DeviceTypeEnum.tablet,DeviceTypeEnum.smarttv\n ];\n\n\n }\n\n //export const deviceTypeInfo = new DeviceTypeInfo();\n\n}\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace logUtil {\n let isLoggerActive: boolean | undefined;\n const consoleBold = \"font-weight: bold\";\n const consoleNormal = \"font-weight: normal\";\n\n\n let _logPrefix = \"domain-client\";\n export const isDebug = (): boolean => {\n if (isLoggerActive != null) return isLoggerActive;\n isLoggerActive = window.location?.search?.indexOf(\"debug=true\") > 0;\n return isLoggerActive;\n }\n export const setLogPrefix = (prefix: string) => {\n _logPrefix = prefix;\n isDebug();\n }\n setLogPrefix(_logPrefix);\n\n \n\n // export const consoleLog = (message: any, ...data: any[]) => {\n // if (logger) {\n // console?.log(`%c${_logPrefix}%c`, consoleBold, consoleNormal, message, data);\n // }\n // }\n export const consoleLog = (...data:any) => {\n if (isLoggerActive) {\n console?.log(`%c${_logPrefix}%c`, consoleBold, consoleNormal,...data);\n } \n }\n\n export const consoleWarn = (...data: any) => {\n console?.warn(`%c${_logPrefix}%c`, consoleBold, consoleNormal, ...data)\n }\n\n export const consoleError = (...data: any) => {\n console?.error(`%c${_logPrefix}%c`, consoleBold, consoleNormal, ...data)\n }\n\n export const throwError = (message: string) => {\n throw new Error(message);\n\n }\n export const throwEvalError = (message: string) => {\n throw new EvalError(message);\n\n }\n\n}\n\n\n\n","// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace numUtil {\n export const getRandomInt = (): number => {\n return new Date().getTime() | 0;\n };\n}\n\n\n\n\n\n","// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace typeUtil {\n export type CallbackFunction = () => void;\n export type InitFunction = () => void;\n export type StringOrUndefined = string | undefined;\n export type NumberOrUndefined = number | undefined;\n\n export interface IObjectIndexer {\n [key: string]: T;\n }\n\n export class ObjectIndexer implements IObjectIndexer {\n [key: string]: T;\n }\n}\n\n\n\n\n\n\n","import {objUtil} from \"./objectUtils\"\nimport { typeUtil } from \"./typeUtils\";\ntype StringOrUndefined= typeUtil.StringOrUndefined;\nconst isNullOrEmpty=objUtil.isNullOrEmpty;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace urlUtil {\n export const getUrlQueryStringValue = (name: string): StringOrUndefined => {\n const urlParams = new URLSearchParams(window.location.search)\n const data = urlParams.get(name);\n return data ? data : undefined;\n\n }\n export const getWindowUrlString = (): StringOrUndefined => {\n\n return window?.location?.toString();\n }\n\n export const getDocumentReferrer = (): StringOrUndefined => {\n const data = document?.referrer;\n return isNullOrEmpty(data) ? undefined : data;\n }\n\n export const getHostNameFromUrl = (): StringOrUndefined => {\n return window?.location?.host\n }\n\n export const getUrlQueryStringValues = (names: Array): Map => {\n const urlParams = new URLSearchParams(window.location.search)\n const result = new Map();\n names.map(q => {\n const data = urlParams.get(q);\n result.set(q, data ? data : undefined);\n })\n return result;\n }\n export const getUrlQueryStringAllParams = (): Map => {\n const result = new Map();\n const urlParams = new URLSearchParams(window.location.search)\n for (const [key, value] of urlParams) {\n result.set(key, value);\n }\n return result;\n }\n}","\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace dateUtil{\n\nexport class DateTimeHelper {\n public getTimeStamp(){\n return new Date().getTime();\n }\n\n}\n\nexport const dateTime=new DateTimeHelper();\n}","// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace pageUtil {\n export enum PageTypeEnum {\n noPageType = \"no-page-type\",\n index = 'index',\n allPosts = 'all-posts',\n postDetail = 'post',\n loadMorePost = 'load-more-post',\n authorPost = 'author-post',\n tag = 'tag',\n astrologyIndex = 'astrology-index',\n astrologyAstrologyHoroscopeReview = 'astrology-horoscope-review',\n breakingNews = 'breaking-news',\n category = 'category',\n authors = 'authors',\n authorArchive = 'author-archive',\n page = 'page',\n election = 'election',\n contract = 'contract',\n financeIndex = 'finance-index',\n financeForex = 'finance-forex',\n financeSubPage = 'finance-subpages',\n sportIndexPage = 'sport-index',\n sportSubPage = 'sport-subpages',\n dynamicPage = 'dynamic-page',\n eNewsPaper = 'enewspaper-page',\n epg = 'epg-page',//electronic program guide page\n program = 'program',\n liveStream = 'live-stream'\n\n }\n\n export type PageTypeArray = Array;\n}","// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace cookieUtil {\n export class CookieHelper {\n public doesCookieExists(cookieName: string) {\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n if (cookie.startsWith(cookieName + '=')) {\n return true;\n }\n }\n return false;\n }\n\n }\n\n export const cookieHelper = new CookieHelper();\n}\n\n\n\n","import { logUtil } from \"@repo/lib-common\";\n\nexport type DomainSubjectCallback = (data: T | undefined) => void;\n\nexport abstract class DomainSubject {\n\n private data?: T;\n name?: string;\n subscriptions: DomainSubjectCallback[] = new Array>;\n mustBeTriggeredOnce = false;\n isTriggered = false;\n isInitialized = false;\n constructor() {\n\n }\n setData(data?: T) {\n this.data = data;\n }\n setDataAndTrigger(data?: T) {\n this.data = data;\n this.trigger();\n }\n getData() {\n return this.data ?? {} as T;\n }\n public subscribe(fn: DomainSubjectCallback) {\n\n this.subscriptions.push(fn);\n if (this.isTriggered && fn) {\n fn(this.data);\n }\n }\n public onBeforeTrigger?: VoidFunction;\n public onAfterTrigger?: VoidFunction;\n private maxRetryCount = 3;\n private retryCount = 0;\n public trigger() {\n this.isTriggered = true;\n logUtil.consoleLog(`${this.name} is triggered, data:`, this.data);\n if (this.mustBeTriggeredOnce && this.isTriggered) return;\n if (this.subscriptions.length === 0 || this.retryCount >= this.maxRetryCount) return;\n if (this.subscriptions.length === 0) {\n this.retryCount++;\n setTimeout(() => {\n this.trigger();\n }, 2000)\n return;\n }\n logUtil.consoleLog(`${this.name} callbacks are triggered`)\n for (let i = 0; i < this.subscriptions.length; i++) {\n const fn = this.subscriptions[i];\n if (fn) {\n fn(this.data);\n }\n }\n this.retryCount = 0;\n }\n\n activate() {\n\n if (this.isInitialized) {\n logUtil.consoleLog(`${this.name} is alreaedy activated`);\n return;\n }\n this.isInitialized = true;\n this.init();\n return this;\n\n }\n\n abstract init(): void\n // init(){\n // throw Error(\"override init on derived class\");\n // };\n\n\n}\n\n\n\n\n\n","import { DomainSubject } from \"./domainSubject\";\nimport { logUtil } from \"@repo/lib-common\";\n\nexport class DomContentLoadedSubject extends DomainSubject {\n\n name = \"DomContentLoadedSubject\";\n init = () => {\n logUtil.consoleLog(\"DomContentLoadedSubject init called\");\n if (document.readyState === \"complete\") {\n logUtil.consoleLog(\"DomContentLoadedSubject fail-safe triggered when readyState:\", document.readyState);\n this.trigger();\n return;\n }\n logUtil.consoleLog(\"DomContentLoadedSubject registered when readyState:\", document.readyState);\n document.addEventListener(\"DOMContentLoaded\", (event) => {\n logUtil.consoleLog(\"DOMContentLoaded event:\", event);\n this.trigger();\n });\n return;\n\n\n\n }\n\n}\n\nconst domContentLoadedSubject = new DomContentLoadedSubject();\ndomContentLoadedSubject.activate();\n\nexport { domContentLoadedSubject };\n\n\n\n\n","// @ts-ignore\nimport { logUtil } from \"@repo/lib-common\";\nimport { DomainSubject } from \"./domainSubject\";\nimport { domContentLoadedSubject } from \"./domContentLoadedSubject\";\n\n\n\nconst maxTcfCheckCount = 5;\nexport class TcfReadySubject extends DomainSubject {\n name = \"TcfReadySubject\";\n tcfCheckCount = 0;\n checkTCF(): boolean {\n // @ts-ignore\n let isTcfLoaded = (typeof window.__tcfapi !== \"undefined\") && (typeof window.__tcfapi === \"function\") && window.__tcfapi !== \"undefined\";\n\n if (isTcfLoaded) return isTcfLoaded;\n try {\n // @ts-ignore\n isTcfLoaded = (typeof window.frames !== \"undefined\") && (typeof window.frames.__tcfapi !== \"undefined\");\n } catch (e) { /* empty */ }\n return isTcfLoaded;\n }\n init = () => {\n if (this.tcfCheckCount > maxTcfCheckCount) {\n logUtil.consoleWarn(\"tcf not found on page\");\n return;\n }\n this.tcfCheckCount++;\n if (this.checkTCF()) {\n // @ts-ignore\n __tcfapi('addEventListener', 2, (tcData) => {\n console.log(tcData);\n logUtil.consoleLog(\"tcf->tcData\", tcData);\n // @ts-ignore\n this.setDataAndTrigger(this.tcData);\n\n });\n } else {\n setTimeout(() => {\n this.init();\n }, 500);\n }\n\n }\n}\n\nconst tcfReadySubject = new TcfReadySubject();\n\n\n\n/** attach to the dom content load event */\ndomContentLoadedSubject.subscribe(() => { tcfReadySubject.activate() });\nexport { tcfReadySubject };\n\n\n\n\n","import {DomainSubject} from \"./domainSubject\";\nimport {logUtil} from \"@repo/lib-common\";\nconst complete='complete';\nexport class DomReadyStateCompleteSubject extends DomainSubject{\n name= \"DomReadyStateCompleteSubject\";\n init=()=>{\n logUtil.consoleLog(`DomReadyStateCompleteSubject init called. document.readyState: ${document.readyState}`);\n if (document.readyState === complete) {\n logUtil.consoleLog(`${this.name} document.readyState is already ${document.readyState}`);\n this.trigger();\n return;\n }\n document.addEventListener(\"readystatechange\", (event) => {\n if (document.readyState === complete) {\n logUtil.consoleLog(`${this.name} document.readyState became ${document.readyState} event:`,event);\n this.trigger();\n }\n });\n }\n}\nconst domReadyStateCompleteSubject=new DomReadyStateCompleteSubject();\ndomReadyStateCompleteSubject.activate();\nexport {domReadyStateCompleteSubject};\n\n\n\n","import {DomainSubject} from \"./domainSubject\";\nimport {logUtil} from \"@repo/lib-common\";\n\nconst interactive='interactive';\nconst complete='complete';\n\nexport class DomReadyStateInteractiveSubject extends DomainSubject{\n name= \"DomReadyStateInteractiveSubject\";\n init=()=>{\n if (document.readyState === complete || document.readyState ===interactive) {\n logUtil.consoleLog(`${this.name} document.readyState is already ${document.readyState}`);\n this.trigger();\n return;\n }\n document.addEventListener(\"readystatechange\", (event) => {\n if (document.readyState === interactive) {\n logUtil.consoleLog(`${this.name} document.readyState became ${document.readyState} event:`,event);\n this.trigger();\n }\n\n });\n }\n\n\n}\n\nconst domReadyStateInteractiveSubject=new DomReadyStateInteractiveSubject();\ndomReadyStateInteractiveSubject.activate();\nexport {domReadyStateInteractiveSubject};\n\n\n\n\n","import {logUtil} from \"@repo/lib-common\";\nimport {DomainSubject} from \"./domainSubject\";\n\nexport class WindowUrlChangedSubject extends DomainSubject{\n name = \"WindowUrlChangedSubject\";\n init=()=>{\n window?.addEventListener(\"popstate\",(event)=>{\n logUtil.consoleLog(\"popstate\",event)\n this.trigger();\n });\n window?.addEventListener(\"hashchange\",(event)=>{\n logUtil.consoleLog(\"hashchange\",event)\n this.trigger();\n });\n }\n}\n\nconst windowUrlChangedSubject=new WindowUrlChangedSubject();\nwindowUrlChangedSubject.activate();\nexport {windowUrlChangedSubject};\n","import {logUtil} from \"@repo/lib-common\";\n\nlogUtil.setLogPrefix(\"domain-client\")\n\nexport interface ICommand {\n command: VoidFunction | undefined;\n hasError: boolean;\n exception: unknown\n\n}\n\nexport class CommandArray {\n waiting: Array = [];\n executed: Array = [];\n isProcessing: boolean = false;\n canProcess:boolean=false;\n\n\n push(f: VoidFunction): number {\n const num = this.waiting.push(f);\n if (!this.isProcessing && this.canProcess) {\n this.processQueue();\n }\n return num;\n }\n\n processQueue(): void {\n if (this.isProcessing) {\n logUtil.consoleLog(\"already processing queue\");\n return;\n }\n if (this.isProcessing) {\n this.isProcessing = true;\n }\n try {\n while (this.waiting.length > 0) {\n const commandFunc = this.waiting.shift();\n let hasError = false;\n let exception = null;\n try {\n if (commandFunc) {\n commandFunc();\n }\n } catch (e) {\n hasError = true;\n exception = e;\n logUtil.consoleError(\"processQueue error\", e);\n }\n this.executed.push({command: commandFunc, hasError: hasError, exception: exception});\n }\n } catch (ex) {\n logUtil.consoleError(ex);\n } finally {\n this.isProcessing = false;\n }\n }\n\n}\n","import { CommandArray } from \"./commandArray\";\nimport { ComponentBase, Components } from \"./types\";\nimport { cookieUtil, logUtil } from \"@repo/lib-common\";\nimport { domReadyStateCompleteSubject } from \"../eventSubjects/domReadyStateCompleteSubject\";\nimport { domContentLoadedSubject } from \"../eventSubjects/domContentLoadedSubject\";\n\nexport type ExistingPrimitiveTagType = { cmd: [] };\nexport type DomainTagGlobalType = DomainTag | ExistingPrimitiveTagType | undefined\nexport class DomainTag {\n\n constructor() {\n domReadyStateCompleteSubject.subscribe(() => {\n this.cmd.canProcess = true;\n this.processQueue();\n })\n domContentLoadedSubject.subscribe(() => {\n this.cmd.canProcess = true;\n this.processQueue();\n });\n }\n\n cmd: CommandArray = new CommandArray();\n components: Components = {};\n addComponent(c: T): void {\n\n if (this.components[c.key]) {\n logUtil.consoleWarn(\"another service already exists with same key:\", c);\n }\n this.components[c.key] = c;\n logUtil.consoleLog(\"adding a new service finished\", c);\n }\n get(key: string): ComponentBase {\n const srv = this.components[key];\n return srv;\n }\n processQueue(): void {\n this.cmd.processQueue();\n }\n isInitialized: boolean = false;\n isRegen: boolean = false;\n\n doesCookieExists = cookieUtil.cookieHelper.doesCookieExists;\n\n\n\n}\n\n\n","\nimport { DomainTag, ExistingPrimitiveTagType } from \"./domain/domainTag\";\n\nlet isDomainTagInitialized = false;\n\nexport function ensureDomainTag() {\n if (isDomainTagInitialized) return;\n isDomainTagInitialized = true;\n const domainTagInstance = new DomainTag();\n domainTagInstance.isInitialized = true;\n\n const existingTag = (window.domainTag as ExistingPrimitiveTagType);\n window.domainTag = domainTagInstance;\n if (existingTag) {\n domainTagInstance.isRegen = true;\n while (existingTag.cmd && existingTag.cmd.length > 0) {\n const cmdFunc = existingTag.cmd.shift();\n if (cmdFunc) {\n domainTagInstance.cmd.push(cmdFunc);\n }\n\n }\n }\n //domainTagInstance.processQueue();\n\n}\n\n\n\n","/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-namespace */\nimport { cookieUtil, deviceUtil, pageUtil } from \"@repo/lib-common\";\nimport { PageAdsBuilder } from \"./src/ads/pageAdsBuilder\";\nimport { DomainTagGlobalType } from \"./src/domain/domainTag\";\nimport { TargetingMap } from \"./src/ads/googleTypes\";\nimport { CountryEnum } from \"./countryEnum\";\nimport { ensureDomainTag } from \"./src/main\";\nimport { PageAdsBuilderForSpecialUseCases } from \"./src/ads/pageAdsBuilderForSpecialUseCases\";\n\n\nexport { }\nexport interface AdsConf {\n isEnabled: boolean;\n targetingMap: TargetingMap;\n //isSecure:boolean;\n}\n\nexport class DomainPageClient {\n adsBuilder?: PageAdsBuilderForSpecialUseCases | PageAdsBuilder;\n device?: deviceUtil.DeviceTypeInfo;\n pageType?: pageUtil.PageTypeEnum;\n doesCookieExists = cookieUtil.cookieHelper.doesCookieExists;\n\n}\n\ndeclare global {\n interface Window {\n pbjs: any;\n googletag: any;\n\n\n domainTag: DomainTagGlobalType;\n domainClient: DomainPageClient; //late init in web app runtime\n domainAdsConfForDesktop: AdsConf; //late init in web app runtime\n domainAdsConfForMobile: AdsConf; //late init in web app runtime\n domainCountry: CountryEnum; //late init in web app build\n domainDevice: deviceUtil.DeviceTypeInfo; //late init in web app build\n\n }\n}\n//@ts-ignore\nwindow.domainCountry = import.meta.env.VITE_COUNTRY;\n//ensure google tag -->\nwindow.googletag = window.googletag || { cmd: [] };\n//ensure google tag --<\n\n//ensure pbjs -->\nwindow.pbjs = window.pbjs || {};\nwindow.pbjs.que = window.pbjs.que || [];\n//ensure pbjs --<\n\n//ensure domain objects -->\nwindow.domainDevice = new deviceUtil.DeviceTypeInfo();\nwindow.domainTag = window.domainTag || { cmd: [] };\nwindow.domainAdsConfForDesktop = window.domainAdsConfForDesktop || {\n isEnabled: true,\n targetingMap: {},\n isAdxEnabled: true,\n} as AdsConf;\n\nensureDomainTag();\n//ensure domain objects --<\n\n\n","import {typeUtil} from \"@repo/lib-common\"\nimport {AdUnit} from \"./adUnit\";\n\n//#region gpt mix types\nexport type GptSlot = googletag.Slot;\nexport type TargetingMap = typeUtil.ObjectIndexer;\nexport type AdUnitMap = typeUtil.ObjectIndexer\nexport const NamedSize_Val1 = \"fluid\";\nexport const NamedSize_Val2 = [\"fluid\"];\nexport type NamedSize = \"fluid\" | [\"fluid\"];\nexport type SingleSize = [number, number];\nexport type SingleSizeMix = SingleSize | NamedSize;\nexport type MultiSize = SingleSizeMix[];\n\nexport type SingleSizeArray = SingleSize[];\nexport type GeneralSize = SingleSizeArray | SingleSize | NamedSize | SingleSizeMix | MultiSize;\n\nexport type GptSlotRenderEndedEventData = googletag.events.SlotRenderEndedEvent;\nexport type GptSlotRequestedEventData = googletag.events.SlotRequestedEvent;\nexport type GptSlotOnloadEventData = googletag.events.SlotOnloadEvent;\nexport type GptImpressionViewableEventData = googletag.events.ImpressionViewableEvent;\nexport type GptSlotResponseReceivedEventData = googletag.events.SlotResponseReceived;\nexport type GptSlotVisibilityChangedEventData = googletag.events.SlotVisibilityChangedEvent;\n\n\nexport class GptSlotRenderEndedEvent {\n constructor(eventData?: GptSlotRenderEndedEventData) {\n this.eventData = eventData;\n }\n\n createdAt: Date = new Date();\n eventData?: GptSlotRenderEndedEventData\n}\n\nexport class GptSlotRequestedEvent {\n constructor(eventData?: GptSlotRequestedEventData) {\n this.eventData = eventData;\n }\n createdAt: Date = new Date();\n eventData?: GptSlotRequestedEventData\n}\n\nexport class GptSlotOnloadEvent {\n constructor(eventData?: GptSlotOnloadEventData) {\n this.eventData = eventData;\n }\n createdAt: Date = new Date();\n eventData?: GptSlotOnloadEventData\n}\n\nexport class GptImpressionViewableEvent {\n constructor(eventData?: GptImpressionViewableEventData) {\n this.eventData = eventData;\n }\n createdAt: Date = new Date();\n eventData?: GptImpressionViewableEventData\n}\n\nexport class GptSlotResponseReceivedEvent {\n constructor(eventData?: GptSlotResponseReceivedEventData) {\n this.eventData = eventData;\n }\n createdAt: Date = new Date();\n eventData?: GptSlotResponseReceivedEventData\n}\n\nexport class GptSlotVisibilityChangedEvent {\n constructor(eventData?: GptSlotVisibilityChangedEventData) {\n this.eventData = eventData;\n }\n createdAt: Date = new Date();\n eventData?: GptSlotVisibilityChangedEventData\n}\n\n//#endregion\n\n","import { DomainSubject } from \"../../eventSubjects/domainSubject\";\n\n\nexport class SlotRenderEndedSubjectData{\n isEmpty: boolean=true;\n divId?:string;\n}\nexport class SlotRenderEndedSubject extends DomainSubject{\n name = \"SlotRenderEndedSubject\";\n init=()=>{}\n}","import {\n GptSlot,\n GeneralSize,\n GptImpressionViewableEvent,\n GptSlotOnloadEvent,\n GptSlotRenderEndedEvent,\n GptSlotRequestedEvent,\n GptSlotResponseReceivedEvent,\n GptSlotVisibilityChangedEvent,\n SingleSizeArray,\n GptSlotRenderEndedEventData,\n GptSlotRequestedEventData,\n GptSlotOnloadEventData,\n GptImpressionViewableEventData, GptSlotResponseReceivedEventData, GptSlotVisibilityChangedEventData,\n SingleSize\n} from \"./googleTypes\";\nimport { Bidder } from \"./bidder\";\nimport { BidderHelper } from \"./bidderHelper\";\nimport { dateUtil, deviceUtil, logUtil } from \"@repo/lib-common\";\nimport { ApsSlot, PbjsAdUnit } from \"./pbjsTypes\";\nimport { SlotRenderEndedSubject, SlotRenderEndedSubjectData } from \"./eventSubjects/slotRenderEndedSubject\";\nimport { DomainSubjectCallback } from \"../eventSubjects/domainSubject\";\n\n\n\n//#region ad unit subtypes -->\nexport abstract class AdSizes {\n private static single_300x600: SingleSize = [300, 600];\n private static single_300x250: SingleSize = [300, 250];\n private static single_970x250: SingleSize = [970, 250];\n private static single_1x1: SingleSize = [1, 1];\n\n public static general_1x1: GeneralSize = [AdSizes.single_1x1];\n public static general_300x600: GeneralSize = [AdSizes.single_300x250];\n public static general_970x250: GeneralSize = [AdSizes.single_970x250];\n public static prebid_970x250: SingleSizeArray = [AdSizes.single_970x250];\n public static prebid_300x600: SingleSizeArray = [AdSizes.single_300x600];\n public static prebid_300x250: SingleSizeArray = [AdSizes.single_300x250];\n\n public static desktop_PageSkin_Top: GeneralSize = AdSizes.general_1x1;//[[1, 1], [1230, 40]];\n public static desktop_Masthead: GeneralSize = [[1, 1], [728, 90], [960, 90], [960, 250], [970, 90], [970, 250]];\n public static desktop_Tower: GeneralSize = [[1, 1], [120, 600], [160, 600], [300, 600]];\n public static desktop_GenBodyBox: GeneralSize = [[300, 600], [300, 250], [250, 250], [200, 200]];\n public static desktop_Gen_300x250: GeneralSize = [[200, 200], [250, 250], [300, 50], [300, 100], [300, 250], [320, 50], [320, 100], [320, 150]];\n public static desktop_Widget_300x250: GeneralSize = [[336, 280], [300, 250], [250, 250], [200, 200]];\n public static desktop_Widget_336x280: GeneralSize = [[336, 280], [300, 250], [250, 250], [200, 200]];\n public static desktop_GenBodyBox_300x250: GeneralSize = [[300, 250], [250, 250], [200, 200]];\n\n public static desktop_Intext: GeneralSize = [[1, 1], [200, 200], [250, 250], [300, 250], [336, 280], [640, 480]];\n public static desktop_And_Mobile_Nativo: GeneralSize = [[1, 1], 'fluid'];\n\n public static mobile_Generic: GeneralSize = [[1, 1], [200, 200], [250, 250], [300, 50], [300, 100], [300, 250], [320, 50], [320, 100], [320, 150], 'fluid'];\n public static mobile_Generic_v2: GeneralSize = [[200, 200], [250, 250], [300, 50], [300, 100], [300, 250], [320, 50], [320, 100], [320, 150], 'fluid'];\n\n\n}\n\nexport abstract class AdSizesTv {\n private static single_300x600: SingleSize = [300, 600];\n private static single_300x250: SingleSize = [300, 250];\n private static single_970x250: SingleSize = [970, 250];\n private static single_1x1: SingleSize = [1, 1];\n\n public static general_1x1: GeneralSize = [AdSizesTv.single_1x1];\n public static general_300x600: GeneralSize = [AdSizesTv.single_300x250];\n public static general_970x250: GeneralSize = [AdSizesTv.single_970x250];\n public static prebid_970x250: SingleSizeArray = [AdSizesTv.single_970x250];\n public static prebid_300x600: SingleSizeArray = [AdSizesTv.single_300x600];\n public static prebid_300x250: SingleSizeArray = [AdSizesTv.single_300x250];\n\n public static desktop_PageSkin_Top: GeneralSize = AdSizes.general_1x1;//[[1, 1], [1230, 40]];\n public static desktop_Masthead: GeneralSize = [[970, 250]];\n //public static desktop_Masthead: GeneralSize = [[1, 1], [728, 90], [960, 90], [960, 250], [970, 90], [970, 250]];\n public static desktop_Tower: GeneralSize = [[160, 600]];\n // public static desktop_Tower: GeneralSize = [[1, 1], [120, 600], [160, 600], [300, 600]];\n public static desktop_GenBodyBox: GeneralSize = [[300, 600], [300, 250], [250, 250], [200, 200]];\n public static desktop_Gen_300x250: GeneralSize = [[200, 200], [250, 250], [300, 50], [300, 100], [300, 250], [320, 50], [320, 100], [320, 150]];\n public static desktop_Widget_300x250: GeneralSize = [[336, 280], [300, 250], [250, 250], [200, 200]];\n public static desktop_Widget_336x280: GeneralSize = [[336, 280], [300, 250], [250, 250], [200, 200]];\n public static desktop_GenBodyBox_300x250: GeneralSize = [[300, 250], [250, 250], [200, 200]];\n\n public static desktop_Intext: GeneralSize = [[1, 1], [200, 200], [250, 250], [300, 250], [336, 280], [640, 480]];\n public static desktop_And_Mobile_Nativo: GeneralSize = [[1, 1], 'fluid'];\n\n public static mobile_Generic: GeneralSize = [[1, 1], [200, 200], [250, 250], [300, 50], [300, 100], [300, 250], [320, 50], [320, 100], [320, 150], 'fluid'];\n\n\n}\nexport const enum AdUnitTypeEnum {\n banner = \"banner\",\n outOfPage_Interstitial = \"interstitial\",\n outOfPage_BottomAnchor = \"bottom-anchor\",\n outOfPage_TopAnchor = \"top-anchor\",\n\n\n}\n\n/** ad unit special use case besides type */\nexport const enum AdUnitSpecialUseCaseEnum {\n none = \"none\",\n nativo = \"nativo\",\n intext = \"intext\",\n rewarded = \"rewarded\",\n loadMore = \"loadMore\"\n}\n\n\n/** ad loading strategy */\nexport const enum AdLoadingStrategyTypeEnum {\n /** default value, if none ad unit will not be requested */\n none = \"none\",\n /** used for above the fold (viewport) initial single request architecture */\n sra = \"sra\",\n\n trigger = \"trigger\",\n /** used for below the fold (viewport) lazy load (intersection observer based) */\n intersectionObserverBasedLazyLoad = \"intersection_observer_lazy_load\",\n\n /** used for google publisher tag lazy load architecture (not implemented) */\n gptLazyLoad = \"gpt_lazy_load\",\n\n /** used for initializing ad unit after dom content loaded */\n domContentLoaded = \"dom_content_loaded\"\n\n\n}\n//#endregion\n\n//#region states\nexport class PbjsState {\n private _isPbjsInitialRequestExecuted = false;\n public get isPbjsInitialRequestExecuted() {\n return this._isPbjsInitialRequestExecuted;\n }\n public set isPbjsInitialRequestExecuted(value) {\n this._isPbjsInitialRequestExecuted = value;\n }\n private _isPbjsAdUnitAdded_TimeStame?: number | undefined;\n public get isPbjsAdUnitAdded_TimeStame(): number | undefined {\n return this._isPbjsAdUnitAdded_TimeStame;\n }\n public set isPbjsAdUnitAdded_TimeStame(value: number | undefined) {\n this._isPbjsAdUnitAdded_TimeStame = value;\n }\n private _isPbjsAdUnitAdded = false;\n public get isPbjsAdUnitAdded() {\n return this._isPbjsAdUnitAdded;\n }\n public set isPbjsAdUnitAdded(value) {\n this.isPbjsAdUnitAdded_TimeStame = dateUtil.dateTime.getTimeStamp();\n this._isPbjsAdUnitAdded = value;\n }\n\n private _lastRequestedAt?: number | undefined;\n public get lastRequestedAt(): number | undefined {\n return this._lastRequestedAt;\n }\n public set lastRequestedAt(value: number | undefined) {\n this._lastRequestedAt = value;\n }\n}\n\nexport class GptState {\n\n private _isDefineSlotExecuted = false;\n public get isDefineSlotExecuted() {\n return this._isDefineSlotExecuted;\n }\n public set isDefineSlotExecuted(value) {\n this._isDefineSlotExecuted = value;\n }\n\n private _isDisplaySlotExecuted = false;\n public get isDisplaySlotExecuted() {\n return this._isDisplaySlotExecuted;\n }\n public set isDisplaySlotExecuted(value) {\n this._isDisplaySlotExecuted = value;\n }\n\n private _refreshSlotExecutedAt?: number | undefined;\n public get refreshSlotExecutedAt(): number | undefined {\n return this._refreshSlotExecutedAt;\n }\n public set refreshSlotExecutedAt(value: number | undefined) {\n this._refreshSlotExecutedAt = value;\n }\n\n private _isRefreshSlotExecuted = false;\n public get isRefreshSlotExecuted() {\n return this._isRefreshSlotExecuted;\n }\n public set isRefreshSlotExecuted(value) {\n this.refreshSlotExecutedAt = dateUtil.dateTime.getTimeStamp();\n this._isRefreshSlotExecuted = value;\n }\n\n //#region gpt events\n private _gptSlotRenderEndedEvent?: GptSlotRenderEndedEvent | undefined;\n public get gptSlotRenderEndedEvent(): GptSlotRenderEndedEvent | undefined {\n return this._gptSlotRenderEndedEvent;\n }\n public set gptSlotRenderEndedEvent(value: GptSlotRenderEndedEvent | undefined) {\n this._gptSlotRenderEndedEvent = value;\n }\n\n private _gptSlotRequestedEvent?: GptSlotRequestedEvent | undefined;\n public get gptSlotRequestedEvent(): GptSlotRequestedEvent | undefined {\n return this._gptSlotRequestedEvent;\n }\n public set gptSlotRequestedEvent(value: GptSlotRequestedEvent | undefined) {\n this._gptSlotRequestedEvent = value;\n }\n\n private _gptSlotOnloadEvent?: GptSlotOnloadEvent | undefined;\n public get gptSlotOnloadEvent(): GptSlotOnloadEvent | undefined {\n return this._gptSlotOnloadEvent;\n }\n public set gptSlotOnloadEvent(value: GptSlotOnloadEvent | undefined) {\n this._gptSlotOnloadEvent = value;\n }\n\n private _gptImpressionViewableEvent?: GptImpressionViewableEvent | undefined;\n public get gptImpressionViewableEvent(): GptImpressionViewableEvent | undefined {\n return this._gptImpressionViewableEvent;\n }\n public set gptImpressionViewableEvent(value: GptImpressionViewableEvent | undefined) {\n this._gptImpressionViewableEvent = value;\n }\n\n private _gptSlotResponseReceivedEvent?: GptSlotResponseReceivedEvent | undefined;\n public get gptSlotResponseReceivedEvent(): GptSlotResponseReceivedEvent | undefined {\n return this._gptSlotResponseReceivedEvent;\n }\n public set gptSlotResponseReceivedEvent(value: GptSlotResponseReceivedEvent | undefined) {\n this._gptSlotResponseReceivedEvent = value;\n }\n\n private _gptSlotVisibilityChangedEvent?: GptSlotVisibilityChangedEvent | undefined;\n public get gptSlotVisibilityChangedEvent(): GptSlotVisibilityChangedEvent | undefined {\n return this._gptSlotVisibilityChangedEvent;\n }\n public set gptSlotVisibilityChangedEvent(value: GptSlotVisibilityChangedEvent | undefined) {\n this._gptSlotVisibilityChangedEvent = value;\n }\n\n //#endregion\n\n}\n\nexport class AutoRefreshState {\n\n private _isCompleted = false;\n public get isCompleted() {\n return this._isCompleted;\n }\n public set isCompleted(value) {\n this._isCompleted = value;\n }\n\n private _completedAt?: number | undefined;\n public get completedAt(): number | undefined {\n return this._completedAt;\n }\n public set completedAt(value: number | undefined) {\n this._completedAt = value;\n }\n\n}\nexport class IntersectionObserverState {\n\n private _isCompleted = false;\n public get isCompleted() {\n return this._isCompleted;\n }\n public set isCompleted(value) {\n this.completedAt = dateUtil.dateTime.getTimeStamp();\n this._isCompleted = value;\n }\n\n private _completedAt?: number | undefined;\n public get completedAt(): number | undefined {\n return this._completedAt;\n }\n public set completedAt(value: number | undefined) {\n this._completedAt = value;\n }\n\n}\n//#endregion\n\nexport class AdUnitState {\n private _isProcessLockEnabled: boolean = false;\n public get isProcessLockEnabled(): boolean {\n return this._isProcessLockEnabled;\n }\n public set isProcessLockEnabled(value: boolean) {\n this._isProcessLockEnabled = value;\n }\n}\n\nexport interface AdUnitSizeMapping {\n viewport: SingleSize;\n sizes: GeneralSize;\n}\n/** ad unit main builder class contains google and header bidding */\nexport class AdUnit {\n\n\n\n static builder(type: AdUnitTypeEnum): AdUnit {\n return new AdUnit(type);\n }\n constructor(type: AdUnitTypeEnum) {\n this.type = type;\n }\n\n\n\n\n //#region simple states\n\n gptState = new GptState();\n pbjsState = new PbjsState();\n autoRefreshState = new AutoRefreshState();\n objectState = new AdUnitState();\n intersectionObserverState = new IntersectionObserverState();\n\n\n\n\n\n\n mustBeInitialized() {\n if (this.objectState.isProcessLockEnabled) {\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=false objectState.isProcessLockEnabled:`, this.objectState.isProcessLockEnabled);\n return false;\n }\n if (this.gptState.isDefineSlotExecuted) {\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=false gptState.isDefineSlotExecuted:`, this.gptState.isDefineSlotExecuted);\n return false;\n }\n if (this.gptState.isDisplaySlotExecuted) {\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=false gptState.isDisplaySlotExecuted:`, this.gptState.isDisplaySlotExecuted);\n return false;\n }\n\n if (this.isPreBidEnabled && this.pbjsState.isPbjsAdUnitAdded) {\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=false pbjsState.isPbjsAdUnitAdded:`, this.pbjsState.isPbjsAdUnitAdded);\n return false;\n }\n if (this.isPreBidEnabled && this.pbjsState.isPbjsInitialRequestExecuted) {\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=false pbjsState.isPbjsInitialRequestExecuted:`, this.pbjsState.isPbjsInitialRequestExecuted);\n return false;\n }\n if (this.gptSlot) {\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=false gptSlot:`, this.gptSlot);\n return false;\n }\n logUtil.consoleLog(`adUnit ${this.divId} mustBeInitialized=true`);\n return true;\n }\n\n private refreshTimeLimitInMs = 60 * 1000; //in milliseccond\n canBeRefreshed() {\n if (!this.isAutoRefreshEnabled) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, isAutoRefreshEnabled:`, this.isAutoRefreshEnabled);\n return false;\n }\n if (this.objectState.isProcessLockEnabled) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, objectState.isProcessLockEnabled:`, this.objectState.isProcessLockEnabled);\n return false;\n }\n if (this.gptState.isRefreshSlotExecuted && this.gptState.refreshSlotExecutedAt) {\n const timeDif = dateUtil.dateTime.getTimeStamp() - this.gptState.refreshSlotExecutedAt;\n if (timeDif < this.refreshTimeLimitInMs) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, gptState.refreshSlotExecutedAt timeDif:`, timeDif);\n return false;\n }\n }\n if (this.mustBeInitialized()) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, mustBeInitialized:`, this.mustBeInitialized());\n return false;\n }\n\n if (this.gptState.gptImpressionViewableEvent && this.gptState.gptImpressionViewableEvent.eventData) {\n const timeDif = dateUtil.dateTime.getTimeStamp() - this.gptState.gptImpressionViewableEvent.createdAt.getTime();\n if (timeDif < this.refreshTimeLimitInMs) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, gptState.gptImpressionViewableEvent.createdAt timeDif:`, timeDif);\n return false;\n }\n }\n if (this.gptState.gptSlotVisibilityChangedEvent && this.gptState.gptSlotVisibilityChangedEvent.eventData\n && this.gptState.gptSlotVisibilityChangedEvent.eventData?.inViewPercentage <= 0) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, gptState.gptSlotVisibilityChangedEvent.eventData.inViewPercentage:`, this.gptState.gptSlotVisibilityChangedEvent.eventData?.inViewPercentage);\n return false;\n }\n\n if (this.intersectionObserverState.isCompleted && this.intersectionObserverState.completedAt) {\n const timeDif = dateUtil.dateTime.getTimeStamp() - this.intersectionObserverState.completedAt;\n if (timeDif < this.refreshTimeLimitInMs) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, intersectionObserverState.completedAt timeDif:`, timeDif);\n return false;\n }\n }\n\n if (this.autoRefreshState.isCompleted && this.autoRefreshState.completedAt) {\n const timeDif = dateUtil.dateTime.getTimeStamp() - this.autoRefreshState.completedAt;\n if (timeDif < this.refreshTimeLimitInMs) {\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=false, autoRefreshState.completedAt timeDif:`, timeDif);\n return false;\n }\n }\n\n logUtil.consoleLog(`adUnit ${this.divId} canBeRefreshed=true`, this);\n\n return true;\n\n\n\n\n }\n\n\n\n //#endregion\n\n //#region props\n type: AdUnitTypeEnum;\n isEnabled: boolean = true;\n adUnitPath!: string;\n sizes: GeneralSize = [];\n divId!: string;\n divStyle?: string;\n isCollapseEmptyDivEnabled: boolean = false;\n loadingStrategy: AdLoadingStrategyTypeEnum = AdLoadingStrategyTypeEnum.none;\n gptSlot?: GptSlot;\n isAutoRefreshEnabled_WhenPageUrlChanged: boolean = false;\n isAutoRefreshEnabled: boolean = false;\n specialUseCaseType: AdUnitSpecialUseCaseEnum = AdUnitSpecialUseCaseEnum.none;\n specialUseCaseIndex: number = 0;\n setSpecialUseCaseIndex(val: number) {\n this.specialUseCaseIndex = val;\n return this;\n }\n\n\n setSpecialUseCase(useCaseType: AdUnitSpecialUseCaseEnum) {\n this.specialUseCaseType = useCaseType;\n return this;\n }\n\n setIsEnabled(value: boolean): AdUnit {\n this.isEnabled = value;\n return this;\n }\n setAdUnitPath(value: string): AdUnit {\n this.adUnitPath = value;\n return this;\n }\n setSizes(value: GeneralSize): AdUnit {\n this.sizes = value;\n return this;\n }\n\n\n\n sizeMappings: Array = [];\n addSizeMapping(viewport: SingleSize, sizes: GeneralSize) {\n this.sizeMappings.push({ viewport, sizes });\n //const sizeMapping = { viewport: viewport, sizes: sizes } as AdUnitSizeMapping\n //this.sizeMappings.push(sizeMapping)\n return this;\n\n }\n setDeviceType(deviceTypes: deviceUtil.DeviceTypeArray) {\n this.allowedDevices = deviceTypes;\n return this;\n }\n\n\n\n setDivId(value: string): AdUnit {\n this.divId = value;\n return this;\n }\n setDivStyleAfterRequest(divStyle: string) {\n this.divStyle = divStyle;\n return this;\n }\n setCollapseEmptyDivEnabled(value: boolean): AdUnit {\n this.isCollapseEmptyDivEnabled = value;\n return this;\n }\n\n setLoadingStrategy(value: AdLoadingStrategyTypeEnum): AdUnit {\n this.loadingStrategy = value;\n return this;\n }\n\n setIsAutoRefreshEnabled(value: boolean): AdUnit {\n this.isAutoRefreshEnabled = value;\n return this;\n }\n\n setIsAutoRefreshEnabled_WhenPageUrlChanged(value: boolean): AdUnit {\n this.isAutoRefreshEnabled_WhenPageUrlChanged = value;\n return this;\n }\n\n\n setType(value: AdUnitTypeEnum): AdUnit {\n this.type = value;\n return this;\n }\n setGptSlot(value: GptSlot) {\n this.gptSlot = value;\n return this;\n }\n //#endregion\n\n\n\n //#region prebid -->\n /** prebid AdUnit object to be used for ad request\n * @link https://docs.prebid.org/dev-docs/adunit-reference.html#ad-unit-reference\n *\n * */\n pbjsAdUnit?: PbjsAdUnit;\n apsSlot?: ApsSlot;\n bidderHelper?: BidderHelper;\n isPreBidEnabled = false;\n prebidSizeLimits: SingleSizeArray = [];\n calculatedBidders?: Array;\n allowedDevices: deviceUtil.DeviceTypeArray = [];\n\n\n setIsPrebidEnabled(value: boolean): AdUnit {\n this.isPreBidEnabled = value;\n return this;\n }\n\n setPrebidSizeLimits(sizes: SingleSizeArray) {\n this.prebidSizeLimits = sizes;\n return this;\n }\n setBidders(bidders: Array): AdUnit {\n this.calculatedBidders = bidders;\n return this;\n }\n setBidderHelper(bidderHelper: BidderHelper) {\n this.bidderHelper = bidderHelper;\n return this;\n }\n\n setBidderCustomParam(bidderCode: string, args: any): AdUnit {\n\n if (this.isPreBidEnabled && this.bidderHelper?.bidders) {\n this.bidderHelper.bidders.forEach((q: { code: string; params: any; }) => {\n if (q.code === bidderCode) {\n q.params = { ...q.params, ...args };\n }\n });\n }\n return this;\n\n }\n //#endregion\n\n //#region subjects -->\n private slotRenderEndedSubject = new SlotRenderEndedSubject();\n onSlotRenderEnded(fn: DomainSubjectCallback) {\n this.slotRenderEndedSubject.subscribe(fn);\n return this;\n }\n //#endregion\n\n //#region gpt event data setters -->\n\n setGptSlotRenderEndedEventData(data: GptSlotRenderEndedEventData) {\n\n this.gptState.gptSlotRenderEndedEvent = new GptSlotRenderEndedEvent(data);\n const subjectData = new SlotRenderEndedSubjectData();\n subjectData.isEmpty = data.isEmpty;\n subjectData.divId = this.divId;\n this.slotRenderEndedSubject.setDataAndTrigger(subjectData);\n\n return this;\n }\n\n setGptSlotRequestedEventData(data: GptSlotRequestedEventData) {\n this.gptState.refreshSlotExecutedAt = dateUtil.dateTime.getTimeStamp();\n this.gptState.gptSlotRequestedEvent = new GptSlotRequestedEvent(data);\n return this;\n }\n\n\n setGptSlotOnloadEventData(data: GptSlotOnloadEventData) {\n this.gptState.gptSlotOnloadEvent = new GptSlotOnloadEvent(data);\n return this;\n }\n\n\n setGptImpressionViewableEventData(data: GptImpressionViewableEventData) {\n this.gptState.gptImpressionViewableEvent = new GptImpressionViewableEvent(data);\n return this;\n }\n\n\n setGptSlotResponseReceivedEventData(data: GptSlotResponseReceivedEventData) {\n this.gptState.refreshSlotExecutedAt = dateUtil.dateTime.getTimeStamp();\n this.gptState.gptSlotResponseReceivedEvent = new GptSlotResponseReceivedEvent(data);\n return this;\n }\n\n\n setGptSlotVisibilityChangedEventData(data: GptSlotVisibilityChangedEventData) {\n this.gptState.gptSlotVisibilityChangedEvent = new GptSlotVisibilityChangedEvent(data);\n return this;\n }\n\n //#endregion\n\n\n\n isDivStyleApplied = false;\n applyDivStyle() {\n if (this.isDivStyleApplied) return;\n if (this.divStyle !== undefined) {\n const elem = document.getElementById(this.divId);\n if (elem) {\n elem.setAttribute('style', this.divStyle);\n this.isDivStyleApplied = true;\n return;\n }\n logUtil.consoleWarn(`${this.divId} elem is not found and style will not be applied`);\n } else {\n logUtil.consoleWarn(`${this.divId} elem is found but style will not be applied style:`, this.divStyle);\n }\n }\n\n /** Build and validate adUnit*/\n build() {\n if (this.loadingStrategy === AdLoadingStrategyTypeEnum.none) {\n logUtil.throwError(`AdLoadingStrategy is not defined for ${this.divId} ${this.adUnitPath}`);\n return this;\n }\n if (!this.adUnitPath) {\n logUtil.consoleError(`adUnitPath not defined for ${this.divId} ${this.adUnitPath}`);\n return this;\n }\n if (!this.divId && this.type == AdUnitTypeEnum.banner) {\n logUtil.throwError(`divId not defined`);\n return this;\n }\n\n if (this.isPreBidEnabled) {\n // this.calculatedBidders = this.bidderHelper?.filterBySizeArray(this.prebidSizeLimits);\n this.calculatedBidders = this.bidderHelper?.filterBySizeAndDevice(this.prebidSizeLimits, this.allowedDevices);\n if (!(this.calculatedBidders && this.calculatedBidders?.length > 0)) {\n logUtil.throwError(`bidders could not be calculated for ${this.divId} ${this.adUnitPath}`);\n return this;\n }\n const prebid = {} as PbjsAdUnit;\n prebid.code = this.adUnitPath;\n prebid.mediaTypes = { banner: { sizes: this.prebidSizeLimits } };\n prebid.bids = this.calculatedBidders.map(q => q.toBidObj());\n this.pbjsAdUnit = prebid;\n\n\n const apsSlot = {} as ApsSlot;\n apsSlot.slotID = this.divId;\n apsSlot.slotName = this.adUnitPath;\n apsSlot.sizes = this.prebidSizeLimits;\n this.apsSlot = apsSlot;\n\n }\n\n return this;\n }\n\n\n\n\n}\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const pbjsPaapiConfig: any = {\n enabled: true,\n gpt: {\n autoconfig: false\n },\n defaultForSlots: 1,\n bidders: ['criteo', 'rtbhouse'],\n};\n\n//rtbhouse paapi conf teyitleşilecek\nexport const pbjsFledgeForGptConfig: any = {\n enabled: true,\n bidders: ['criteo', 'rtbhouse'],\n defaultForSlots: 1\n};\n\n\n\nexport const pbjsConfig_Default: any = {\n criteo: {\n fastBidVersion: 'latest',\n },\n fledgeForGpt: pbjsFledgeForGptConfig,\n paapi: pbjsPaapiConfig,\n currency: {\n adServerCurrency: \"TRY\",\n },\n consentManagement: undefined,\n gvlMapping: null,\n priceGranularity: {\n \"buckets\": [\n {\n \"precision\": 2,\n \"min\": 0,\n \"max\": 10,\n \"increment\": 0.01\n },\n {\n \"precision\": 2,\n \"min\": 10,\n \"max\": 25,\n \"increment\": 0.05\n },\n {\n \"precision\": 2,\n \"min\": 25,\n \"max\": 50,\n \"increment\": 0.1\n },\n {\n \"precision\": 2,\n \"min\": 50,\n \"max\": 100,\n \"increment\": 0.25\n }]\n },\n userSync: {\n userIds: [\n {\n name: \"pubCommonId\",\n storage: {\n type: \"cookie\",\n name: \"_pubcid\",\n expires: 60\n }\n }],\n syncDelay: 3000 // 3 seconds after the first auction\n },\n\n};\n\nexport const pbjsConfig_ConsentManagement: any = {\n gdpr: {\n cmpApi: 'iab',\n defaultGdprScope: true,\n allowAuctionWithoutConsent: true, //suppress auctions if there's no GDPR consent string\n timeout: 3000,\n rules: [{\n purpose: \"storage\",\n enforcePurpose: true,\n enforceVendor: true,\n vendorExceptions: ['yandex']\n }, {\n purpose: \"basicAds\",\n enforcePurpose: true,\n enforceVendor: true,\n vendorExceptions: ['yandex']\n }, {\n purpose: \"measurement\",\n enforcePurpose: true,\n enforceVendor: true,\n vendorExceptions: ['yandex']\n }, {\n purpose: \"personalizedAds\",\n enforcePurpose: true,\n enforceVendor: true,\n vendorExceptions: ['yandex']\n\n }]\n },\n usp: {\n cmpApi: 'iab',\n timeout: 1000\n }\n} as any;\n\nexport const pbjsConfig_GvlMapping = {\n \"yandex\": 9855524\n};\n\nexport const pbjs_BidderSettings = {\n taboola: {\n storageAllowed: true\n }\n}\n\n\n","\nimport { DomainSubject } from \"../../eventSubjects/domainSubject\";\nimport {SlotRenderEndedSubjectData} from \"./slotRenderEndedSubject\";\n\nexport class FirstSlotRenderEndedSubject extends DomainSubject{\n name=\"FirstSlotRenderEndedSubject\";\n mustBeTriggeredOnce=true;\n \n onAfterTrigger=()=>{\n setTimeout(()=>{\n const endEvent=new CustomEvent(\"adRunner_SlotRenderEnded\");\n dispatchEvent(endEvent);\n },6000);\n }\n init=()=>{}\n\n}\n\nconst firstSlotRenderEndedSubject=new FirstSlotRenderEndedSubject();\nfirstSlotRenderEndedSubject.activate();\n\nexport {firstSlotRenderEndedSubject};","\nimport { DomainSubject } from \"./domainSubject\";\n\nexport class PageClientSubjectData {\n eventTime = new Date();\n}\n\nexport class PageClientExecutionEndedSubject extends DomainSubject {\n name = \"PageClientExecutionEndedSubject\";\n mustBeTriggeredOnce = true;\n\n\n onAfterTrigger = () => {\n setTimeout(() => {\n const endEvent = new CustomEvent(\"adRunner_SlotRenderEnded\");\n dispatchEvent(endEvent);\n }, 6000);\n }\n\n init = () => {\n this.subscribe(() => {\n const endEvent = new CustomEvent(\"PageClientExecutionEnded\");\n dispatchEvent(endEvent);\n })\n }\n\n}\n\nconst pageClientExecutionEndedSubject = new PageClientExecutionEndedSubject();\npageClientExecutionEndedSubject.activate();\n\nexport { pageClientExecutionEndedSubject };","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-namespace */\nimport { dateUtil, deviceUtil, logUtil, pageUtil } from \"@repo/lib-common\";\nimport { AdLoadingStrategyTypeEnum, AdUnit, AdUnitSpecialUseCaseEnum, AdUnitTypeEnum } from \"./adUnit\";\n\nimport { AdUnitMap, GptSlot, TargetingMap } from \"./googleTypes\";\nimport { pbjs_BidderSettings, pbjsConfig_ConsentManagement, pbjsConfig_Default, pbjsConfig_GvlMapping } from \"./pbjsConfigs\";\nimport { PbjsAdUnit } from \"./pbjsTypes\";\nimport { objUtil } from \"@repo/lib-common\";\n//import { domContentLoadedSubject } from \"../eventSubjects/domContentLoadedSubject\";\nimport { tcfReadySubject } from \"../eventSubjects/tcfReadySubject\";\nimport { firstSlotRenderEndedSubject } from \"./eventSubjects/firstSlotRenderEndedSubject\";\nimport { SlotRenderEndedSubjectData } from \"./eventSubjects/slotRenderEndedSubject\";\nimport { AdsConf } from \"../../global\";\nimport { PageClientSubjectData, pageClientExecutionEndedSubject } from \"../eventSubjects/pageClientExecutionEndedSubject\";\n\n\n\nconst uuidStr = objUtil.uuidStr;\n\n\nconst PREBID_TIMEOUT = 1000;\nconst PREBID_FAILSAFE_TIMEOUT = 2000;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-var\ndeclare var pbjs: any;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-var\ndeclare var apstag: any;\n\n/** req manager for aps and prebid **/\nexport class RequestManager {\n adserverRequestSent = false;\n aps = false;\n prebid = false;\n err_pbjsRequestIds_AlreadExists = false;\n err_pbjsResponseIds_AlreadExists = false;\n correlationId!: string;\n}\n/** page main builder class contains ad units and targeting */\nexport abstract class PageAdsBuilder {\n\n constructor(deviceType: deviceUtil.DeviceTypeEnum, pageType: pageUtil.PageTypeEnum) {\n this.pageType = pageType;\n this.deviceType = deviceType;\n this.indexer = `${this.deviceType}-${this.pageType}`\n if (!this.isEnabled) return;\n this.init();\n }\n abstract init(): void;\n deviceType: deviceUtil.DeviceTypeEnum;\n pageType: pageUtil.PageTypeEnum;\n isEnabled: boolean = true;\n indexer: string;\n targeting: TargetingMap = {};\n adUnits: AdUnitMap = {};\n\n\n\n //#region auto refresh\n isAutoRefreshEnabled = false;\n isAutoRefreshRunning = false;\n autoRefreshIntervalInMs = 45 * 1000;\n autoRefreshRefId?: number;\n adsConf?: AdsConf\n setAdsConfAndApply(val: AdsConf) {\n this.adsConf = val;\n //check if adsConf exists -->\n if (this.adsConf) {\n logUtil.consoleLog(\"custom adsConf has been applied\", this.adsConf)\n this.isEnabled = this.adsConf.isEnabled;\n this.mergeTargetingMap(this.adsConf.targetingMap)\n }\n //check if adsConf exists -->\n\n return this;\n }\n\n\n setIsAutoRefreshEnabled(val: boolean) {\n this.isAutoRefreshEnabled = val;\n return this;\n }\n getIsAutoRefreshEnabled() {\n return this.isAutoRefreshEnabled;\n }\n //#endregion\n\n\n setIsEnabled(value: boolean): PageAdsBuilder {\n this.isEnabled = value;\n return this;\n }\n\n\n setTargeting(key: string, value: string): PageAdsBuilder {\n this.targeting[key] = value;\n return this;\n }\n\n mergeTargetingMap(targtingMap: TargetingMap): PageAdsBuilder {\n if (!targtingMap) return this;\n Object.keys(targtingMap).forEach(key => {\n this.targeting[key] = targtingMap[key];\n })\n return this;\n }\n\n setTargetingMap(targetingMap: TargetingMap): PageAdsBuilder {\n this.targeting = targetingMap;\n return this;\n }\n\n applyAdUnit(adUnit: AdUnit) {\n if (!adUnit.isEnabled) {\n return false;\n }\n adUnit.setDeviceType([this.deviceType])\n if (adUnit.build()) {\n this.adUnits[adUnit.divId] = adUnit;\n return true;\n }\n logUtil.consoleError(\"adUnit could not be initialized\", adUnit)\n\n }\n\n getAdUnitByDivId(divId: string): AdUnit {\n return this.adUnits[divId];\n }\n\n private outPageAdUnitTypes = [\n AdUnitTypeEnum.outOfPage_BottomAnchor,\n AdUnitTypeEnum.outOfPage_Interstitial,\n AdUnitTypeEnum.outOfPage_TopAnchor,\n\n ];\n filterAdUnits(args?: {\n isPrebidEnabled?: boolean,\n adUnitType?: AdUnitTypeEnum,\n adUnitTypes?: Array,\n loadingStrategy?: AdLoadingStrategyTypeEnum,\n loadingStrategies?: Array,\n excludeLoadingStrategies?: Array,\n specialUseCase?: AdUnitSpecialUseCaseEnum,\n specialUseCaseIndex?: number,\n allSpecialUseCases?: boolean,\n allOutOfPages?: boolean,\n isAutoRefreshEnabled?: boolean,\n divIds?: Array,\n divId?: string,\n mustBeInitialized?: boolean,\n canBeRefreshed?: boolean,\n excludeDivIds?: Array\n }) {\n return Object.entries(this.adUnits).filter(entry => {\n const adUnit = entry[1];\n if (!adUnit.isEnabled) return false;\n\n if (args?.adUnitType && args?.adUnitType !== adUnit.type) return false;\n if (args?.adUnitTypes && args.adUnitTypes.length > 0 && !args?.adUnitTypes.includes(adUnit.type)) return false;\n if (args?.loadingStrategy && args?.loadingStrategy !== adUnit.loadingStrategy) return false;\n if (args?.excludeLoadingStrategies && args?.excludeLoadingStrategies.includes(adUnit.loadingStrategy)) return false;\n if (args?.loadingStrategies && args?.loadingStrategies.length > 0 && !args.loadingStrategies.includes(adUnit.loadingStrategy)) return false;\n if (args?.isPrebidEnabled && args?.isPrebidEnabled !== adUnit.isPreBidEnabled) return false;\n if (args?.specialUseCase && args?.specialUseCase !== adUnit.specialUseCaseType) return false;\n if (args?.allSpecialUseCases && AdUnitSpecialUseCaseEnum.none === adUnit.specialUseCaseType) return false;\n if (args?.allOutOfPages && !this.outPageAdUnitTypes.includes(adUnit.type)) return false;\n if (args?.isAutoRefreshEnabled && args?.isAutoRefreshEnabled !== adUnit.isAutoRefreshEnabled) return false;\n if (args?.excludeDivIds && args.excludeDivIds.length > 0 && args.excludeDivIds.includes(adUnit.divId)) return false;\n if (args?.divId && args.divId !== adUnit.divId) return false;\n if (args?.divIds && !args.divIds.includes(adUnit.divId)) return false;\n if (args?.mustBeInitialized && args.mustBeInitialized !== adUnit.mustBeInitialized()) return false;\n //can be refreshed conditions -->\n if (args?.canBeRefreshed && !adUnit.canBeRefreshed()) return false;\n if (args?.canBeRefreshed && !this.intersectionObserver_VisibleDivIds.has(adUnit.divId)) return false;\n //can be refreshed conditions <--\n if (args?.specialUseCaseIndex && args?.specialUseCaseIndex !== adUnit.specialUseCaseIndex) return false;\n\n return true;\n\n }\n ).map(([, q]) => q);\n\n }\n\n updateAdUnit(adUnit: AdUnit) {\n this.adUnits[adUnit.divId] = adUnit;\n }\n\n //#region gpt -->\n gptWindowObject() {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.googletag = window.googletag || { cmd: [] };\n }\n gptIsReady() {\n return window.googletag && googletag.apiReady && googletag.pubadsReady;\n\n }\n executeAsGptCommand(cmd: VoidFunction) {\n if (this.gptIsReady()) {\n cmd();\n } else {\n googletag.cmd.push(cmd);\n }\n }\n executeAsPbjsCommand(cmd: VoidFunction) {\n if (window.pbjs && pbjs.libloaded) {\n cmd();\n } else {\n pbjs.que.push(cmd);\n }\n }\n\n\n gptRefreshAdUnits(adUnits: Array) {\n const slots = adUnits.filter(q => q.gptSlot).map(q => {\n q.gptState.isRefreshSlotExecuted = true;\n this.updateAdUnit(q);\n return q.gptSlot!\n });\n if (!slots || slots.length == 0) {\n logUtil.consoleWarn(\"gptRefreshAdUnits ad unit slots are empty\", adUnits);\n return;\n }\n googletag.pubads().refresh(slots);\n }\n\n gptDisplayAdUnit(adUnit: AdUnit) {\n logUtil.consoleLog(\"GPT: display called adUnit.divId:\", adUnit.divId);\n adUnit.gptState.isDisplaySlotExecuted = true;\n if (adUnit.gptSlot) {\n googletag.display(adUnit.gptSlot);\n } else {\n logUtil.consoleWarn(\"GPT: display canceled because slot is undefined adUnit.divId:\", adUnit.divId);\n }\n this.updateAdUnit(adUnit);\n }\n\n gptDisplayAdUnits(adUnits: Array) {\n adUnits.forEach(adUnit => {\n this.gptDisplayAdUnit(adUnit);\n });\n }\n\n gptDefineSlot(adUnit: AdUnit) {\n logUtil.consoleLog(\"GPT: define slot called adUnit.divId:\", adUnit.divId);\n if (adUnit.gptState.isDefineSlotExecuted && adUnit.gptSlot) {\n logUtil.consoleLog(`GPT: define slot already called for adUnit.divId:`, adUnit.divId);\n return;\n }\n\n adUnit.gptState.isDefineSlotExecuted = true;\n let gptSlot: GptSlot | null | undefined;\n if (adUnit.type === AdUnitTypeEnum.banner) {\n gptSlot = googletag.defineSlot(adUnit.adUnitPath, adUnit.sizes, adUnit.divId);\n if (gptSlot) {\n gptSlot.addService(googletag.pubads());\n gptSlot.setCollapseEmptyDiv(adUnit.isCollapseEmptyDivEnabled);\n if (adUnit.sizeMappings && adUnit.sizeMappings.length > 0) {\n const gm = googletag.sizeMapping();\n adUnit.sizeMappings.map(sm => {\n gm.addSize(sm.viewport, sm.sizes);\n });\n const gmBuild = gm.build();\n if (gmBuild) { gptSlot.defineSizeMapping(gmBuild!); }\n }\n\n\n logUtil.consoleLog(`gptSlot created for ${adUnit.adUnitPath}`);\n adUnit.setGptSlot(gptSlot);\n }\n\n } else if (adUnit.type === AdUnitTypeEnum.outOfPage_Interstitial) {\n //gptSlot = googletag.defineOutOfPageSlot(adUnit.adUnitPath, googletag.enums.OutOfPageFormat.INTERSTITIAL);\n gptSlot = googletag.defineOutOfPageSlot(adUnit.adUnitPath, adUnit.divId); //adm içindeki template'den dolayı bu şekilde olmalı\n if (gptSlot) {\n gptSlot.addService(googletag.pubads());\n logUtil.consoleLog(`gptSlot created for ${adUnit.adUnitPath}`);\n adUnit.setGptSlot(gptSlot);\n }\n } else if (adUnit.type === AdUnitTypeEnum.outOfPage_BottomAnchor) {\n gptSlot = googletag.defineOutOfPageSlot(adUnit.adUnitPath, googletag.enums.OutOfPageFormat.BOTTOM_ANCHOR);\n if (gptSlot) {\n gptSlot.addService(googletag.pubads());\n logUtil.consoleLog(`gptSlot created for ${adUnit.adUnitPath}`);\n adUnit.setGptSlot(gptSlot);\n }\n } else if (adUnit.type === AdUnitTypeEnum.outOfPage_TopAnchor) {\n gptSlot = googletag.defineOutOfPageSlot(adUnit.adUnitPath, googletag.enums.OutOfPageFormat.TOP_ANCHOR);\n if (gptSlot) {\n gptSlot.addService(googletag.pubads());\n logUtil.consoleLog(`gptSlot created for ${adUnit.adUnitPath}`);\n adUnit.setGptSlot(gptSlot);\n }\n }\n if (!gptSlot) {\n logUtil.consoleError(`gptSlot could not be created for ${adUnit.adUnitPath}`);\n }\n this.updateAdUnit(adUnit);\n }\n\n gptEnableServices() {\n googletag.pubads().collapseEmptyDivs(false);\n googletag.pubads().disableInitialLoad();\n googletag.pubads().enableSingleRequest();\n googletag.enableServices();\n }\n\n gptSetTargeting() {\n const targetingEntries = Object.entries(this.targeting);\n targetingEntries.forEach(entry => {\n googletag.pubads().setTargeting(entry[0], entry[1])\n });\n }\n\n gptRegisterEvents() {\n this.executeAsGptCommand(() => {\n googletag.pubads().addEventListener(\"slotRenderEnded\", (event: any): void => {\n const slot = event.slot;\n const elemId = slot.getSlotElementId();\n logUtil.consoleLog(`\"GPT:slotRenderEnded for ${elemId}`, event);\n const adUnit = this.adUnits[elemId];\n if (adUnit) {\n adUnit.setGptSlotRenderEndedEventData(event);\n this.updateAdUnit(adUnit);\n }\n if (!firstSlotRenderEndedSubject.isTriggered) {\n const firstData = new SlotRenderEndedSubjectData();\n firstData.divId = elemId;\n firstData.isEmpty = event.isEmpty;\n firstSlotRenderEndedSubject.setDataAndTrigger(firstData);\n }\n });\n\n googletag.pubads().addEventListener(\"slotVisibilityChanged\", (event: any) => {\n const slot = event.slot;\n const elemId = slot.getSlotElementId();\n logUtil.consoleLog(`\"GPT:slotVisibilityChanged for ${elemId}`, event);\n const adUnit = this.adUnits[elemId];\n if (adUnit) {\n adUnit.setGptSlotVisibilityChangedEventData(event);\n this.updateAdUnit(adUnit);\n }\n });\n\n\n googletag.pubads().addEventListener(\"slotRequested\", (event: any) => {\n const slot = event.slot;\n const elemId = slot.getSlotElementId();\n logUtil.consoleLog(`\"GPT:slotRequested for ${elemId}`, event);\n const adUnit = this.adUnits[elemId];\n if (adUnit) {\n adUnit.objectState.isProcessLockEnabled = true;\n adUnit.setGptSlotRequestedEventData(event);\n this.updateAdUnit(adUnit);\n }\n });\n googletag.pubads().addEventListener(\"slotResponseReceived\", (event: any) => {\n const slot = event.slot;\n const elemId = slot.getSlotElementId();\n logUtil.consoleLog(`\"GPT:slotResponseReceived for ${elemId}`, event);\n const adUnit = this.adUnits[elemId];\n if (adUnit) {\n adUnit.objectState.isProcessLockEnabled = false;\n adUnit.setGptSlotResponseReceivedEventData(event);\n this.updateAdUnit(adUnit);\n }\n });\n\n googletag.pubads().addEventListener(\"impressionViewable\", (event: any) => {\n const slot = event.slot;\n const elemId = slot.getSlotElementId();\n logUtil.consoleLog(`\"GPT:impressionViewable for ${elemId}`, event);\n const adUnit = this.adUnits[elemId];\n if (adUnit) {\n adUnit.setGptImpressionViewableEventData(event);\n this.updateAdUnit(adUnit);\n }\n });\n googletag.pubads().addEventListener(\"slotOnload\", (event: any) => {\n const slot = event.slot;\n const elemId = slot.getSlotElementId();\n logUtil.consoleLog(`\"GPT:slotOnload for ${elemId}`, event);\n const adUnit = this.adUnits[elemId];\n if (adUnit) {\n adUnit.setGptSlotOnloadEventData(event);\n this.updateAdUnit(adUnit);\n }\n });\n });\n\n }\n\n //#endregion\n\n //#region pbjs -->\n private pbjsRequestIds = new Set;\n private pbjsResponseIds = new Set;\n\n\n pbjsWindowObject() {\n logUtil.consoleLog(\"pbjsWindowObject called\");\n window.pbjs = window.pbjs || {};\n window.pbjs.que = window.pbjs.que || [];\n }\n\n pbjsSetDefaultConfig() {\n logUtil.consoleLog(\"pbjsSetDefaultConfig called\");\n pbjs.setConfig(pbjsConfig_Default);\n pbjs.bidderSettings = pbjs_BidderSettings;\n }\n\n pbjsSetConfig(config: any) {\n logUtil.consoleLog(\"pbjsSetConfig called\");\n this.executeAsPbjsCommand(() => {\n pbjs.setConfig(config);\n });\n }\n\n pbjsMergeConfig(config: any) {\n logUtil.consoleLog(\"pbjsMergeConfig called\");\n this.executeAsPbjsCommand(() => {\n pbjs.mergeConfig(config);\n });\n\n }\n\n pbjsEnsureAdUnitsAdded(adUnits: Array) {\n logUtil.consoleLog(\"pbjsAddAdUnits called\", adUnits);\n if (adUnits && adUnits.length > 0) {\n const pbjsInternalAdUnitCodes = (pbjs.adUnits as PbjsAdUnit[]).map(q => q.code);\n const pbjsAdUnits = adUnits.filter(adUnit => !pbjsInternalAdUnitCodes.includes(adUnit.adUnitPath)).map(adUnit => {\n adUnit.pbjsState.isPbjsAdUnitAdded = true;\n this.updateAdUnit(adUnit);\n logUtil.consoleLog(\"pbjsAddAdUnits will add\", adUnit);\n return adUnit.pbjsAdUnit;\n });\n if (pbjsAdUnits && pbjsAdUnits.length > 0) {\n pbjs.addAdUnits(pbjsAdUnits);\n }\n }\n }\n\n pbjsRefreshGptSlots(requestManager: RequestManager, correlationId: string, adUnitCodes: Array, isFailSafeCall = false) {\n\n logUtil.consoleLog(`pbjsRefreshGptSlots called correlationId: ${correlationId}, isFailSafeCall:${isFailSafeCall} adUnits:`, adUnitCodes);\n if (!this.pbjsRequestIds.has(correlationId)) {\n this.pbjsRequestIds.add(correlationId);\n logUtil.consoleLog(`first use ${this.pbjsRefreshGptSlots.name}`);\n requestManager.err_pbjsRequestIds_AlreadExists = true;\n return;\n }\n if (this.pbjsResponseIds.has(correlationId)) {\n logUtil.consoleLog(`reqRes correlation id already exists ${correlationId} isFailSafeCall:${isFailSafeCall}`);\n requestManager.err_pbjsResponseIds_AlreadExists = true;\n return;\n }\n this.pbjsResponseIds.add(correlationId);\n //apstag -->\n if (requestManager.adserverRequestSent === true) {\n return;\n }\n requestManager.adserverRequestSent = true;\n //apstag --<\n this.executeAsGptCommand(() => {\n pbjs.setTargetingForGPTAsync();\n const slots = googletag.pubads().getSlots().filter(q => adUnitCodes.includes(q.getAdUnitPath()));\n logUtil.consoleLog(\"GPT slots:\", slots);\n if (slots.length !== adUnitCodes.length) {\n logUtil.consoleError(\"adUnit codes and slots do not match\", adUnitCodes);\n }\n googletag.pubads().refresh(slots);\n })\n }\n\n apstagRefreshSlots(requestManager: RequestManager, adUnitCodes: Array, isFailSafeCall = false) {\n\n logUtil.consoleLog(`apstagRefreshSlots called correlationId: ${requestManager.correlationId}, isFailSafeCall:${isFailSafeCall} adUnits:`, adUnitCodes);\n if (!this.pbjsRequestIds.has(requestManager.correlationId)) {\n this.pbjsRequestIds.add(requestManager.correlationId);\n logUtil.consoleLog(`first use ${this.pbjsRefreshGptSlots.name}`);\n requestManager.err_pbjsRequestIds_AlreadExists = true;\n return;\n }\n if (this.pbjsResponseIds.has(requestManager.correlationId)) {\n logUtil.consoleLog(`reqRes correlation id already exists ${requestManager.correlationId} isFailSafeCall:${isFailSafeCall}`);\n requestManager.err_pbjsResponseIds_AlreadExists = true;\n return;\n }\n this.pbjsResponseIds.add(requestManager.correlationId);\n //apstag -->\n if (requestManager.adserverRequestSent === true) {\n return;\n }\n requestManager.adserverRequestSent = true;\n //apstag --<\n this.executeAsGptCommand(() => {\n apstag.setDisplayBids();\n const slots = googletag.pubads().getSlots().filter(q => adUnitCodes.includes(q.getAdUnitPath()));\n googletag.pubads().getSlots().forEach(q => console.log(q.getAdUnitPath()));\n if (slots.length !== adUnitCodes.length) {\n logUtil.consoleError(\"adUnit codes and slots do not match\", adUnitCodes);\n }\n googletag.pubads().refresh(slots);\n })\n }\n\n public pbjsRequestBidsByPbjsAdUnits(adUnits: Array) {\n logUtil.consoleLog(\"pbjsRequestBidsByPbjsAdUnits called\", adUnits);\n if (adUnits === undefined || adUnits.length <= 0) {\n logUtil.consoleError(`${this.pbjsRequestBidsByPbjsAdUnits.name} canceled. adUnits are undefined or empty`);\n return;\n }\n\n const adUnitCodes = adUnits.map(adUnit => {\n adUnit.pbjsState.lastRequestedAt = dateUtil.dateTime.getTimeStamp();\n if (!adUnit.pbjsState.isPbjsInitialRequestExecuted) {\n adUnit.pbjsState.isPbjsInitialRequestExecuted = true;\n }\n this.updateAdUnit(adUnit);\n return adUnit.adUnitPath\n });\n\n const correlationId = uuidStr();\n this.pbjsRequestIds.add(correlationId);\n\n //apstag -->\n //pbjs.setTargetingForGPTAsync();\n const requestManager = new RequestManager();\n requestManager.correlationId = correlationId;\n //apstag --<\n\n\n // APS request -->\n const apsSlots = adUnits.filter(q => q.apsSlot).map(q => q.apsSlot);\n if (apsSlots && apsSlots.length > 0) {\n this.executeAsGptCommand(() => {\n apstag.fetchBids({\n timeout: PREBID_TIMEOUT,\n slots: apsSlots\n }, (bids: any) => {\n logUtil.consoleLog(`apstag response for ${correlationId} => bids:`, bids);\n googletag.cmd.push(() => {\n apstag.setDisplayBids();\n requestManager.aps = true; // signals that APS request has completed\n this.apstagRefreshSlots(requestManager, adUnitCodes)\n });\n }\n );\n })\n }\n\n // APS request --<\n\n this.executeAsPbjsCommand(() => {\n this.pbjsEnsureAdUnitsAdded(adUnits);\n\n logUtil.consoleLog(`request sent for ${correlationId}`);\n\n\n\n pbjs.requestBids({\n timeout: PREBID_TIMEOUT,\n adUnitCodes: adUnitCodes,\n bidsBackHandler: (bids?: any, timeOut?: boolean, auctionId?: string) => {\n logUtil.consoleLog(`bisBackHandler response for ${correlationId} => timeOut:${timeOut}, auctionId:${auctionId}, bids:`, bids);\n requestManager.prebid = true;\n pbjs.setPAAPIConfigForGPT();\n this.pbjsRefreshGptSlots(requestManager, correlationId, adUnitCodes);\n }\n });\n setTimeout(() => {\n this.pbjsRefreshGptSlots(requestManager, correlationId, adUnitCodes, true);\n }, PREBID_FAILSAFE_TIMEOUT);\n });\n\n }\n\n\n //#endregion\n\n\n //#region customLazyLoad -->\n private intersectionObserver_RootMargin = \"400px\"; //\"0px\"\n private intersectionObserver_VisibleIntersectionRatio = 0.50;\n private intersectionObserver_MinInterSectionRatio = 0.01;\n private intersectionObserver_Thresholds = [this.intersectionObserver_MinInterSectionRatio, this.intersectionObserver_VisibleIntersectionRatio];\n private intersectionObserver_Options = {\n root: null,\n //root:document.body,\n rootMargin: this.intersectionObserver_RootMargin,\n threshold: this.intersectionObserver_Thresholds,\n\n };\n\n\n intersectionObserver?: IntersectionObserver;\n intersectionObserver_VisibleDivIds = new Set;\n\n initIntersectionObserver() {\n if (this.intersectionObserver) return;\n logUtil.consoleLog(\"initIntersectionObserver_ForLazyLoad called\")\n\n //all ad units to track visibility -->\n const gptDivIds = this.filterAdUnits({ excludeLoadingStrategies: [AdLoadingStrategyTypeEnum.trigger] }).map(q => q.divId);\n //all ad units to track visibility --<\n if (gptDivIds && gptDivIds.length > 0) {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n // if(!this.gptIsReady()){\n // logUtil.consoleLog(\"intersectionObserver: GPT is not ready, will wait next intersection cycle\");\n // return;\n // }\n this.intersectionObserver_CallBack(entries);\n }, this.intersectionObserver_Options);\n gptDivIds.forEach(divId => {\n const elem = document.getElementById(divId);\n\n if (elem) {\n this.intersectionObserver!.observe(elem);\n }\n })\n }\n\n }\n\n intersectionObserver_CallBack(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const elemId = entry.target.id;\n if (entry.isIntersecting) {\n logUtil.consoleLog(`intersectionObserver: ${elemId} became visible intersectionRatio: ${entry.intersectionRatio}`);\n if (this.intersectionObserver_VisibleDivIds.has(elemId)) {\n //elem is already processed\n return;\n }\n this.intersectionObserver_VisibleDivIds.add(elemId);\n\n //check adunits to be initialized\n // let filteredAdUnits = this.filterAdUnits({ divId: elemId, mustBeInitialized: true });\n // if (filteredAdUnits && filteredAdUnits.length > 0) {\n // logUtil.consoleLog(`intersectionObserver: ${elemId} ad unit found to be initialized`);\n\n // } else {\n\n // filteredAdUnits = this.filterAdUnits({ divId: elemId, canBeRefreshed: true });\n // if (filteredAdUnits && filteredAdUnits.length > 0) {\n // logUtil.consoleLog(`intersectionObserver: ${elemId} ad unit found to be refreshed`);\n // } else {\n // const adUnit = this.getAdUnitByDivId(elemId);\n // logUtil.consoleLog(`intersectionObserver: ${elemId} ad unit is not available to be initialized/refreshed `, adUnit);\n // }\n // }\n const filteredAdUnits = this.filterAdUnits({ divId: elemId, mustBeInitialized: true });\n logUtil.consoleLog(`intersectionObserver: ${elemId} ad unit found to be initialized`, filteredAdUnits);\n filteredAdUnits.forEach(adUnit => {\n\n this.refreshOrInitializeAdUnit(adUnit);\n\n });\n\n } else {\n this.intersectionObserver_VisibleDivIds.delete(elemId);\n logUtil.consoleLog(`intersectionObserver: ${elemId} is not visible and will not be requested`)\n }\n });\n }\n\n //#endregion\n disableAndStopAutoRefresh() {\n this.setIsAutoRefreshEnabled(false);\n this.autoRefreshRefId && clearInterval(this.autoRefreshRefId);\n\n }\n applyDivStyles() {\n const adUnits = this.filterAdUnits({ excludeLoadingStrategies: [AdLoadingStrategyTypeEnum.trigger] });\n adUnits.forEach(adUnit => {\n adUnit.applyDivStyle();\n });\n }\n\n\n initAutoRefresh() {\n\n logUtil.consoleLog(`initAutoRefresh called autoRefreshIntervalInMs:`, this.autoRefreshIntervalInMs);\n\n if (this.isAutoRefreshEnabled && !this.autoRefreshRefId) {\n\n this.autoRefreshRefId = setInterval(() => {\n\n logUtil.consoleLog(\"autoRefresh triggered\", new Date());\n if (!this.gptIsReady()) {\n logUtil.consoleLog(\"autoRefresh: GPT is not ready, will wait next autoRefresh cycle\");\n return;\n }\n if (this.isAutoRefreshRunning) return;\n this.isAutoRefreshRunning = true;\n const filteredAdUnits = this.filterAdUnits({ canBeRefreshed: true });\n if (filteredAdUnits && filteredAdUnits.length > 0) {\n logUtil.consoleLog(`autoRefresh: ad units found to refresh`, filteredAdUnits);\n const pbjsAdUnits = filteredAdUnits.filter(q => q.isPreBidEnabled === true);\n if (pbjsAdUnits && pbjsAdUnits.length > 0) {\n logUtil.consoleLog(`autoRefresh: pbjsAdUnits to refresh`, pbjsAdUnits);\n this.pbjsRequestBidsByPbjsAdUnits(pbjsAdUnits)\n }\n const gptAdUnits = filteredAdUnits.filter(q => q.isPreBidEnabled === false);\n if (gptAdUnits && gptAdUnits.length > 0) {\n logUtil.consoleLog(`autoRefresh: gptAdUnits to refresh`, gptAdUnits);\n this.gptRefreshAdUnits(gptAdUnits)\n }\n } else {\n logUtil.consoleLog(`autoRefresh: ad units not found to refresh`);\n }\n\n this.isAutoRefreshRunning = false;\n }, this.autoRefreshIntervalInMs);\n }\n }\n\n refreshOrInitializeAdUnit(adUnit: AdUnit) {\n if (adUnit.objectState.isProcessLockEnabled) {\n logUtil.consoleLog('refreshOrInitializeAdUnit: adunit has proc lock and will not be refreshed', adUnit.divId, adUnit);\n return;\n }\n this.executeAsGptCommand(() => {\n adUnit.objectState.isProcessLockEnabled = true;\n //if prebid enabled adunit -->\n if (adUnit.isPreBidEnabled) {\n if (!adUnit.gptState.isDefineSlotExecuted || !adUnit.gptSlot) {\n this.gptDefineSlot(adUnit);\n }\n logUtil.consoleLog('after gptDefineSlot', adUnit.divId, adUnit);\n if (!adUnit.gptState.isDisplaySlotExecuted) {\n logUtil.consoleLog('in gptDisplayAdUnit', adUnit.divId, adUnit);\n this.gptDisplayAdUnit(adUnit);\n }\n this.pbjsRequestBidsByPbjsAdUnits([adUnit]);\n\n }\n //if prebid enabled adunit <--\n //if prebid disabled adunit -->\n else {\n if (!adUnit.gptState.isDefineSlotExecuted) {\n\n this.gptDefineSlot(adUnit);\n\n }\n if (!adUnit.gptState.isDisplaySlotExecuted) {\n this.gptDisplayAdUnit(adUnit);\n }\n\n this.gptRefreshAdUnits([adUnit]);\n\n }\n //if prebid disabled adunit <--\n adUnit.objectState.isProcessLockEnabled = false;\n this.updateAdUnit(adUnit);\n });\n }\n\n isExecuteCompleted = false;\n execute() {\n\n try {\n logUtil.consoleLog(\"client execution started\");\n if (!this.isEnabled) {\n logUtil.consoleLog(\"ads are disabled, client execution stopped\");\n return;\n }\n\n\n\n\n tcfReadySubject.subscribe((tcData) => {\n if (tcData && tcData.gdprApplies) {\n const newConf = pbjsConfig_Default;\n newConf.consentManagement = pbjsConfig_ConsentManagement;\n newConf.gvlMapping = pbjsConfig_GvlMapping;\n\n this.pbjsMergeConfig(newConf);\n }\n });\n\n\n this.gptWindowObject();\n this.gptRegisterEvents();\n this.executeAsGptCommand(() => { this.gptSetTargeting(); });\n\n const singleRequestRequiredAdUnits = this.filterAdUnits({\n adUnitType: AdUnitTypeEnum.banner,\n loadingStrategy: AdLoadingStrategyTypeEnum.sra\n });\n\n //set states to avoid recurring request while waiting GPT to load/init in page. slotResponseReceived event will release lock. -->\n singleRequestRequiredAdUnits.forEach(adUnit => {\n adUnit.objectState.isProcessLockEnabled = true;\n this.updateAdUnit(adUnit);\n });\n\n //set states to avoid recurring request while waiting GPT to load/init in page. slotResponseReceived event will release lock. --<\n this.executeAsGptCommand(() => {\n //gpt define all sra ad units -->\n singleRequestRequiredAdUnits.forEach(adUnit => {\n this.gptDefineSlot(adUnit);\n });\n });\n\n this.executeAsGptCommand(() => { this.gptEnableServices(); });\n\n\n //send request to pbjs if required -->\n const pbjsAdUnits = singleRequestRequiredAdUnits\n .filter(q => q.isPreBidEnabled && q.pbjsAdUnit);\n\n\n\n if (pbjsAdUnits && pbjsAdUnits.length > 0) {\n this.pbjsWindowObject();\n this.executeAsPbjsCommand(() => { this.pbjsSetDefaultConfig(); });\n this.executeAsGptCommand(() => {\n this.gptDisplayAdUnits(pbjsAdUnits);\n });\n this.pbjsRequestBidsByPbjsAdUnits(pbjsAdUnits);\n }\n //send request to pbjs if required --<\n // call display and refresh for all gptSlots -->\n const gptAdUnits = singleRequestRequiredAdUnits\n .filter(q => !q.isPreBidEnabled);\n if (gptAdUnits && gptAdUnits.length > 0) {\n this.executeAsGptCommand(() => {\n this.gptDisplayAdUnits(gptAdUnits);\n this.gptRefreshAdUnits(gptAdUnits);\n });\n }\n document.addEventListener(\"readystatechange\", () => {\n if (document.readyState === \"complete\") {\n this.applyDivStyles();\n this.initIntersectionObserver();\n }\n });\n\n // call display for all gptSlots --<\n document.addEventListener(\"DOMContentLoaded\", () => {\n logUtil.consoleLog(\"client execution domContentLoadedSubject started\");\n\n this.applyDivStyles();\n const preExecutedDivIds = singleRequestRequiredAdUnits && singleRequestRequiredAdUnits.length > 0 ? singleRequestRequiredAdUnits.map(q => q.divId) : [];\n //init domContentLoaded ads -->\n const domContentLoadAdUnits = this.filterAdUnits({\n loadingStrategy: AdLoadingStrategyTypeEnum.domContentLoaded,\n excludeDivIds: preExecutedDivIds\n });\n\n logUtil.consoleLog(\"domContentLoadAdUnits data:\", domContentLoadAdUnits);\n if (domContentLoadAdUnits && domContentLoadAdUnits.length > 0) {\n domContentLoadAdUnits.forEach(adUnit => {\n preExecutedDivIds.push(adUnit.divId);\n this.refreshOrInitializeAdUnit(adUnit);\n });\n }\n //init domContentLoaded ads --<\n\n\n //init custom lazy loads -->\n this.initIntersectionObserver();\n //init custom lazy loads --< \n\n\n //init outOfPAge ads -->\n setTimeout(() => {\n const outOfPAgeAdUnits = this.filterAdUnits({\n adUnitTypes: [AdUnitTypeEnum.outOfPage_Interstitial, AdUnitTypeEnum.outOfPage_BottomAnchor, AdUnitTypeEnum.outOfPage_TopAnchor],\n excludeDivIds: preExecutedDivIds\n });\n logUtil.consoleLog(\"outOfPAgeAdUnits data:\", outOfPAgeAdUnits);\n if (outOfPAgeAdUnits && outOfPAgeAdUnits.length > 0) {\n outOfPAgeAdUnits.forEach(adUnit => {\n preExecutedDivIds.push(adUnit.divId);\n this.refreshOrInitializeAdUnit(adUnit);\n });\n }\n }, 500);\n //init outOfPAge ads --<\n this.initAutoRefresh();\n\n\n logUtil.consoleLog(\"client execution domContentLoadedSubject finished\");\n this.isExecuteCompleted = true;\n\n\n })\n\n } catch (error) {\n logUtil.consoleError(error);\n\n } finally {\n logUtil.consoleLog(\"client execution finished\");\n document.addEventListener(\"DOMContentLoaded\", () => {\n pageClientExecutionEndedSubject.setDataAndTrigger(new PageClientSubjectData());\n });\n }\n\n\n\n\n }\n\n\n}\n\n\n","import { deviceUtil, logUtil, pageUtil } from \"@repo/lib-common\";\nimport { PageAdsBuilder } from \"./pageAdsBuilder\";\nimport { AdUnitSpecialUseCaseEnum } from \"./adUnit\";\n\n\nexport interface AdUnitSpecialUseCaseFunctions {\n executeIntextAds(adIndex: number): void;\n executeLoadMoreAds(adIndex: number): void;\n executeNativoAds(adIndex: number): void;\n}\nexport abstract class PageAdsBuilderForSpecialUseCases extends PageAdsBuilder {\n\n constructor(deviceType: deviceUtil.DeviceTypeEnum, pageType: pageUtil.PageTypeEnum) {\n super(deviceType, pageType);\n\n }\n executeIntextAds(adIndex: number) {\n if (!this.isEnabled) {\n logUtil.consoleLog(\"ads are disabled, executeIntextAds will not be executed\");\n return;\n }\n const adUnits = this.filterAdUnits({ specialUseCase: AdUnitSpecialUseCaseEnum.intext, specialUseCaseIndex: adIndex });\n logUtil.consoleLog(\"indext ads:\", { adIndex, adUnits });\n if (adUnits && adUnits.length > 0) {\n adUnits.forEach(adUnit => {\n this.refreshOrInitializeAdUnit(adUnit);\n });\n }\n }\n\n executeLoadMoreAds(adIndex: number) {\n if (!this.isEnabled) {\n logUtil.consoleLog(\"ads are disabled, executeLoadMoreAds will not be executed\");\n return;\n }\n const adUnits = this.filterAdUnits({ specialUseCase: AdUnitSpecialUseCaseEnum.loadMore, specialUseCaseIndex: adIndex });\n logUtil.consoleLog(\"loadMore ads:\", { adIndex, adUnits });\n if (adUnits && adUnits.length > 0) {\n adUnits.forEach(adUnit => {\n this.refreshOrInitializeAdUnit(adUnit);\n });\n }\n }\n\n executeNativoAds(adIndex: number) {\n if (!this.isEnabled) {\n logUtil.consoleLog(\"ads are disabled, executeNativoAds will not be executed\");\n return;\n }\n const adUnits = this.filterAdUnits({ specialUseCase: AdUnitSpecialUseCaseEnum.nativo, specialUseCaseIndex: adIndex });\n logUtil.consoleLog(\"nativo ads:\", { adIndex, adUnits });\n if (adUnits && adUnits.length > 0) {\n adUnits.forEach(adUnit => {\n this.refreshOrInitializeAdUnit(adUnit);\n });\n }\n\n }\n\n\n}","import {deviceUtil,pageUtil} from \"@repo/lib-common\";\nimport {Bid, BidderParamMap} from './pbjsTypes';\nimport {SingleSizeArray} from \"./googleTypes\";\n\n/** prebid /header bidding bidder class\n *\n * */\nexport class Bidder {\n static builder( code:string):Bidder {\n return new Bidder(code);\n }\n constructor( code:string){\n this.code=code;\n }\n code: string;\n isEnabled: boolean = false;\n params: BidderParamMap = {};\n isAnyDeviceAllowed: boolean = false;\n allowedDevices: deviceUtil.DeviceTypeArray = [];\n\n isAnySizeAllowed: boolean = false;\n allowedSizes: SingleSizeArray = [];\n\n \n allowedPageTypes: pageUtil.PageTypeArray = [];\n\n setIsEnabled(value: boolean): Bidder {\n this.isEnabled = value;\n return this;\n }\n setCode(value: string): Bidder {\n this.code = value;\n return this;\n }\n setParams(value: BidderParamMap): Bidder {\n this.params = value;\n return this;\n }\n\n //size -->\n setIsAnySizeAllowed(value: boolean): Bidder {\n this.isAnySizeAllowed = value;\n return this;\n }\n setAllowedSizes(value: SingleSizeArray): Bidder {\n this.isAnySizeAllowed=false;\n this.allowedSizes = value;\n return this;\n }\n //size <--\n\n //device -->\n setIsAnyDeviceAllowed(value: boolean): Bidder {\n this.isAnyDeviceAllowed = value;\n return this;\n }\n setAllowedDevices(value: deviceUtil.DeviceTypeArray): Bidder {\n this.allowedDevices = value;\n return this;\n }\n //device <--\n\n toBidObj(){\n return { bidder: this.code, params:this.params} as Bid;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { deviceUtil } from \"@repo/lib-common\";\nimport { Bidder } from \"./bidder\";\nimport { NamedSize_Val1, NamedSize_Val2, SingleSizeArray } from \"./googleTypes\";\n/** bidder helper class for easy use cases\n *\n * */\nexport class BidderHelper {\n bidders = new Array();\n addBidder(bidder: Bidder) {\n this.bidders.push(bidder);\n }\n addBidders(bidders: Array) {\n this.bidders.push(...bidders);\n }\n\n // filterBySizeArray(sizeArray: SingleSizeArray) {\n\n // const filteredBidders = new Array();\n // for (let i = 0; i < sizeArray.length; i++) {\n // const size = sizeArray[i];\n // // @ts-expect-error named obj\n // if (!Array.isArray(size) || size === NamedSize_Val1 || size === NamedSize_Val2) continue;\n // const tBidders = this.bidders.filter(b => b.isEnabled && (b.isAnySizeAllowed ||\n // b.allowedSizes.filter((value) => value[0] === size[0] && value[1] === size[1]).length > 0)\n // );\n // filteredBidders.push(...tBidders);\n // }\n\n // return filteredBidders;\n // }\n\n filterBySizeAndDevice(sizeArray: SingleSizeArray, deviceTypes: Array) {\n\n const filteredBidders = new Array();\n for (let i = 0; i < sizeArray.length; i++) {\n const size = sizeArray[i];\n // @ts-expect-error named obj\n if (!Array.isArray(size) || size === NamedSize_Val1 || size === NamedSize_Val2) continue;\n const tBidders = this.bidders.filter(b => b.isEnabled &&\n (b.isAnyDeviceAllowed === true || b.allowedDevices.filter(d => deviceTypes.includes(d)).length > 0)\n && (b.isAnySizeAllowed === true ||\n b.allowedSizes.filter((value) => value[0] === size[0] && value[1] === size[1]).length > 0)\n );\n filteredBidders.push(...tBidders);\n }\n\n return filteredBidders;\n }\n\n\n\n}\n\n\n","import { AdSizes, Bidder, BidderHelper } from \"@repo/lib-domain-tag\";\nimport { deviceUtil } from \"@repo/lib-common\";\n\n\nconst DeviceTypeInfo = deviceUtil.DeviceTypeInfo;\nconst worldPageBidderHelper = new BidderHelper();\n\n//#region criteo\n/*\nconst criteo_300x250 = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 9934, zoneId: 1471385 })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\nworldPageBidderHelper.addBidder(criteo_300x250);\n\n\nconst criteo_300x600_desktop = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 9934, zoneId: 1471386 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\nworldPageBidderHelper.addBidder(criteo_300x600_desktop);\n\n\nconst criteo_336x280_desktop = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 9934, zoneId: 1471388 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes([[336, 280]]);\nworldPageBidderHelper.addBidder(criteo_336x280_desktop);\n\n\nconst criteo_970x250_desktop = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 9934, zoneId: 1471387 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\nworldPageBidderHelper.addBidder(criteo_970x250_desktop);\n*/\n//#endregion\n\n//#region adform\nconst adForm_300x250_desktop = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231075 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\n\nworldPageBidderHelper.addBidder(adForm_300x250_desktop);\n\n\nconst adForm_300x600_desktop = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231145 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\nworldPageBidderHelper.addBidder(adForm_300x600_desktop);\n\n\nconst adForm_970x250_desktop = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231146 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\nworldPageBidderHelper.addBidder(adForm_970x250_desktop);\n\n\nconst adForm_300x250_mobile = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231147 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.mobileDevices)\n .setAllowedSizes(AdSizes.prebid_300x250);\nworldPageBidderHelper.addBidder(adForm_300x250_mobile);\n//#endregion\n\n//#region yandex\nconst yandex_300x250_mobile = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-1' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.mobileDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\nworldPageBidderHelper.addBidder(yandex_300x250_mobile);\n\nconst yandex_300x250_desktop = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-1' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\nworldPageBidderHelper.addBidder(yandex_300x250_desktop);\n\nconst yandex_300x600_desktop = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-2' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\nworldPageBidderHelper.addBidder(yandex_300x600_desktop);\n\n\nconst yandex_970x250_desktop = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-3' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\nworldPageBidderHelper.addBidder(yandex_970x250_desktop);\n\n//#endregion\n\n//#region admatic\nconst admatic_300x250 = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\nworldPageBidderHelper.addBidder(admatic_300x250);\n\n\nconst admatic_300x600_desktop = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\nworldPageBidderHelper.addBidder(admatic_300x600_desktop);\n\nconst admatic_336x280_desktop = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes([[336, 280]]);\nworldPageBidderHelper.addBidder(admatic_336x280_desktop);\n\nconst admatic_970x250_desktop = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(true).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\nworldPageBidderHelper.addBidder(admatic_970x250_desktop);\n//#endregion\n\n//#region taboola\nconst taboola_300x250 = Bidder.builder(\"taboola\")\n .setIsEnabled(true).setParams({ publisherId: 1554971, tagId: 'sozcuPrebidData_300_250' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\nworldPageBidderHelper.addBidder(taboola_300x250);\n\nconst taboola_300x600 = Bidder.builder(\"taboola\")\n .setIsEnabled(true).setParams({ publisherId: 1554971, tagId: 'sozcuPrebidData_300_600' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\nworldPageBidderHelper.addBidder(taboola_300x600);\n\nconst taboola_970x250 = Bidder.builder(\"taboola\")\n .setIsEnabled(true).setParams({ publisherId: 1554971, tagId: 'sozcuPrebidData_970_250' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\nworldPageBidderHelper.addBidder(taboola_970x250);\n\n//#endregion\n\nexport { worldPageBidderHelper };\n","import { AdSizes, Bidder, BidderHelper } from \"@repo/lib-domain-tag\";\nimport { deviceUtil } from \"@repo/lib-common\";\n\nconst DeviceTypeInfo = deviceUtil.DeviceTypeInfo;\nconst trPageBidderHelper = new BidderHelper();\n\n//#region criteo\n/* criteo iptal edildi\nconst criteo_300x250 = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 4200, zoneId: 1496268 })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(criteo_300x250);\n\n\nconst criteo_300x600_desktop = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 4200, zoneId: 1496271 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\ntrPageBidderHelper.addBidder(criteo_300x600_desktop);\n\nconst criteo_336x280_desktop = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 4200, zoneId: 1496272 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes([[336, 280]]);\ntrPageBidderHelper.addBidder(criteo_336x280_desktop);\n\n\nconst criteo_970x250_desktop = Bidder.builder(\"criteo\")\n .setIsEnabled(true).setParams({ networkId: 4200, zoneId: 1496274 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\ntrPageBidderHelper.addBidder(criteo_970x250_desktop);\n*/\n//#endregion\n\n//#region rtbHouse\nconst rtbHouse = Bidder.builder(\"rtbhouse\")\n .setIsEnabled(true).setParams({ region: 'prebid-eu', publisherId: '32e68c03e662a554d456' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(true);\ntrPageBidderHelper.addBidder(rtbHouse);\n//#endregion\n\n//#region adForm\nconst adForm_300x250_desktop = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231067 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(adForm_300x250_desktop);\n\nconst adForm_300x600_desktop = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231068 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\ntrPageBidderHelper.addBidder(adForm_300x600_desktop);\n\nconst adForm_970x250_desktop = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231076 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\ntrPageBidderHelper.addBidder(adForm_970x250_desktop);\n\nconst adForm_300x250_mobile = Bidder.builder(\"adform\")\n .setIsEnabled(true).setParams({ mid: 1231143 })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.mobileDevices)\n .setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(adForm_300x250_mobile);\n//#endregion\n\n//#region yandex\nconst yandex_300x250_mobile = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-1' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.mobileDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(yandex_300x250_mobile);\n\nconst yandex_300x250_desktop = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-1' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(yandex_300x250_desktop);\n\nconst yandex_300x600_desktop = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-2' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\ntrPageBidderHelper.addBidder(yandex_300x600_desktop);\n\n\nconst yandex_970x250_desktop = Bidder.builder(\"yandex\").setIsEnabled(true)\n .setParams({ placementId: 'R-A-2217816-3' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\ntrPageBidderHelper.addBidder(yandex_970x250_desktop);\n\n\n//#endregion\n\n//#region admatic\nconst admatic_300x250 = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(admatic_300x250);\n\n\nconst admatic_300x600_desktop = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\ntrPageBidderHelper.addBidder(admatic_300x600_desktop);\n\nconst admatic_336x280_desktop = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes([[336, 280]]);\ntrPageBidderHelper.addBidder(admatic_336x280_desktop);\n\n\nconst admatic_970x250_desktop = Bidder.builder(\"admatic\")\n .setIsEnabled(true).setParams({ networkId: 108266335578, host: 'gkbjdy0uaftq.rtb.admatic.com.tr' })\n .setIsAnyDeviceAllowed(false).setAllowedDevices(DeviceTypeInfo.desktopDevices)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\ntrPageBidderHelper.addBidder(admatic_970x250_desktop);\n\n//#endregion\n\n//#region taboola\nconst taboola_300x250 = Bidder.builder(\"taboola\")\n .setIsEnabled(true).setParams({ publisherId: 1554971, tagId: 'sozcuPrebidData_300_250' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x250);\ntrPageBidderHelper.addBidder(taboola_300x250);\n\nconst taboola_300x600 = Bidder.builder(\"taboola\")\n .setIsEnabled(true).setParams({ publisherId: 1554971, tagId: 'sozcuPrebidData_300_600' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_300x600);\ntrPageBidderHelper.addBidder(taboola_300x600);\n\nconst taboola_970x250 = Bidder.builder(\"taboola\")\n .setIsEnabled(true).setParams({ publisherId: 1554971, tagId: 'sozcuPrebidData_970_250' })\n .setIsAnyDeviceAllowed(true)\n .setIsAnySizeAllowed(false).setAllowedSizes(AdSizes.prebid_970x250);\ntrPageBidderHelper.addBidder(taboola_970x250);\n\n//#endregion\n\nexport { trPageBidderHelper };\n","export const enum CountryEnum {\n tr = \"tr\",\n usa = \"usa\",\n local = \"local\",\n world = \"world\"\n}\n","export const domainCountry = import.meta.env.VITE_COUNTRY;\nexport function init() {\n window.domainCountry = domainCountry;\n}\ninit();","import { logUtil } from \"@repo/lib-common\";\n\nimport { worldPageBidderHelper } from \"../bidderConfs/worldPageBidderHelper\";\nimport { trPageBidderHelper } from \"../bidderConfs/trPageBidderHelper\";\nimport { CountryEnum } from \"@repo/lib-domain-tag/countryEnum\";\nimport { domainCountry } from \"../main\";\n\nfunction getPageBidder() {\n\n window.domainCountry = domainCountry;\n logUtil.consoleLog(\"getPageBidder countryInfo\", domainCountry);\n if (domainCountry === CountryEnum.world) {\n return worldPageBidderHelper;\n }\n return trPageBidderHelper;\n}\nconst pageBidderHelper = getPageBidder()\nexport { pageBidderHelper }\n\n\n","import { AdLoadingStrategyTypeEnum, AdSizes, AdUnit, AdUnitSpecialUseCaseEnum, AdUnitTypeEnum } from \"@repo/lib-domain-tag\";\nimport { pageBidderHelper } from \"../pageBidderHelper\";\nimport { deviceUtil } from \"@repo/lib-common\";\n\nexport const desktopLoadMoreAdUnits : AdUnit[] = [];\n\nconst baseMultiAdUnitPath = '/66738120/sozcu_gen_lm_box_1';\nconst baseMultiDiv = 'sozcu_gen_lm_box_1_';\n\nconst baseLmAdUnitPath = '/66738120/sozcu_gen_lm_box_2';\nconst baseLmDiv = 'sozcu_gen_lm_box_2_';\n\nconst baseMastheadAdUnitPath = '/66738120/sozcu_gen_lm_masthead';\nconst baseMastheadDiv = 'sozcu_gen_lm_masthead_';\n\nconst specialUseCaseIndexStart = 1;\nconst numberOfAdUnits = 10;\n\n//sozcu_gen_lm_box\nfor (let i = 0 ; i < numberOfAdUnits; i++){\n const index = specialUseCaseIndexStart + i;\n const lmAdUnit = AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(index)\n .setIsEnabled(true)\n .setAdUnitPath(`${baseLmAdUnitPath}`)\n .setDivId(`div-${baseLmDiv}${index}`)\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_GenBodyBox)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: `${baseLmDiv}${index }` });\n \n desktopLoadMoreAdUnits.push(lmAdUnit);\n}\n//sozcu_gen_multi_box\nfor (let i = 0 ; i < numberOfAdUnits; i++){\n const index = specialUseCaseIndexStart + i;\n const multiAdUnit = AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(index)\n .setIsEnabled(true)\n .setAdUnitPath(baseMultiAdUnitPath)\n .setDivId(`div-${baseMultiDiv}${index}`)\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_GenBodyBox)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: `${baseMultiDiv}${index}` });\n\n desktopLoadMoreAdUnits.push(multiAdUnit);\n}\n//sozcu_gen_lm_masthead\nfor (let i = 0 ; i < numberOfAdUnits; i++){\n const index = specialUseCaseIndexStart + i;\n const mastheadAdUnit = AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(index)\n .setIsEnabled(true)\n .setAdUnitPath(baseMastheadAdUnitPath)\n .setDivId(`div-${baseMastheadDiv}${index + 1}`)\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Masthead)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_970x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: `${baseMastheadDiv}${index + 1}` });\n\n desktopLoadMoreAdUnits.push(mastheadAdUnit);\n}\n\n\n\n\nexport const mobileLoadMoreAdUnits = [\n //#region loadMore index 1\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(1)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_2\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_2' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 2\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(2)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_3\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_3' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 3\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(3)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_4\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_4' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 4\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(4)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_5\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_5' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 5\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(5)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_6\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_6' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 6\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(6)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_7\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_7' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 7\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(7)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_8\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_8' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region loadMore index 8\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(8)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_9\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_9' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n \n //#region loadMore index 9\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(9)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_10\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_10' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n\n ,\n //#endregion\n\n //#region loadMore index 10\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.loadMore)\n .setSpecialUseCaseIndex(10)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_lm_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_11\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_11' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n\n\n //#endregion\n];","import { AdLoadingStrategyTypeEnum, AdSizes, AdUnit, AdUnitSpecialUseCaseEnum, AdUnitTypeEnum } from \"@repo/lib-domain-tag\";\nimport { pageBidderHelper } from \"../pageBidderHelper\";\nimport { deviceUtil } from \"@repo/lib-common\";\nexport const desktopIntextAdUnits = [\n\n //#region intext index 1\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(1)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250_first\")\n .setDivId(\"div-sozcu_body_intext_300x250_1\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_1' })\n\n ,\n\n //#endregion\n\n //#region intext index 2\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(2)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_2\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_2' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(2)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_3\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_3' })\n\n ,\n //#endregion\n\n //#region intext index 3\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(3)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_4\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_4' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(3)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_5\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_5' })\n\n ,\n //#endregion\n\n //#region intext index 4\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(4)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_6\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_6' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(4)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_7\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_7' })\n\n ,\n //#endregion\n\n //#region intext index 5\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(5)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_8\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_8' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(5)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_9\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_9' })\n\n ,\n //#endregion\n\n //#region intext index 6\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(6)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_10\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_10' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(6)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_11\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_11' })\n\n ,\n //#endregion\n\n //#region intext index 7\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(7)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_12\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_12' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(7)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_13\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_13' })\n\n ,\n //#endregion\n\n //#region intext index 8\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(8)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_14\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_14' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(8)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_15\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_15' })\n\n ,\n //#endregion\n\n //#region intext index 9\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(9)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_16\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_16' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(9)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_17\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_17' })\n\n ,\n //#endregion\n\n //#region intext index 10\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(10)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_18\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_18' })\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(10)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_300x250\")\n .setDivId(\"div-sozcu_body_intext_300x250_19\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_Intext)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_body_intext_300x250_19' })\n\n ,\n //#endregion\n\n\n\n]\n\n\nexport const mobileIntextAdUnits = [\n //#region intext index 1\n\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(1)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile_first\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_1\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_1' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n\n //#endregion\n\n //#region intext index 2\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(2)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_2\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_2' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(2)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_3\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_3' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 3\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(3)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_4\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_4' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(3)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_5\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_5' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 4\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(4)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_6\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_6' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(4)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_7\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_7' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 5\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(5)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_8\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_8' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(5)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_9\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_9' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 6\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(6)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_10\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_10' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(6)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_11\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_11' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 7\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(7)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_12\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_12' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(7)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_13\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_13' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 8\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(8)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_14\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_14' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(8)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_15\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_15' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n //#region intext index 9\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(9)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_16\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_16' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(9)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_17\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_17' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n\n //#region intext index 10\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(10)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_18\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_18' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.intext)\n .setSpecialUseCaseIndex(10)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_body_intext_mobile\")\n .setDivId(\"div-sozcu_m_body_intext_300x250_19\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_body_intext_300x250_19' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n ,\n //#endregion\n\n\n]","import { deviceUtil } from \"@repo/lib-common\";\nimport { AdLoadingStrategyTypeEnum, AdSizes, AdUnit, AdUnitSpecialUseCaseEnum, AdUnitTypeEnum } from \"@repo/lib-domain-tag\";\nexport const nativoAdUnits = [\n //#region nativo index 1\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.allDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.nativo)\n .setSpecialUseCaseIndex(1)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/nativo1\")\n .setDivId(\"div-nativo1\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_And_Mobile_Nativo)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n\n ,\n\n //#endregion\n\n //#region nativo index 2\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.allDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.nativo)\n .setSpecialUseCaseIndex(2)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/nativo2\")\n .setDivId(\"div-nativo2\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_And_Mobile_Nativo)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n\n ,\n\n //#endregion\n\n //#region nativo index 3\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.allDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.nativo)\n .setSpecialUseCaseIndex(1)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/nativo3\")\n .setDivId(\"div-nativo3\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_And_Mobile_Nativo)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n\n ,\n\n //#endregion\n\n //#region nativo index 4\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.allDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.nativo)\n .setSpecialUseCaseIndex(4)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/nativo4\")\n .setDivId(\"div-nativo4\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_And_Mobile_Nativo)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n\n ,\n //#endregion\n\n\n\n //#region nativo index 5\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.allDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.nativo)\n .setSpecialUseCaseIndex(5)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/nativo5\")\n .setDivId(\"div-nativo5\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_And_Mobile_Nativo)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n\n ,\n //#endregion\n\n //#region nativo index 6\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.allDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.nativo)\n .setSpecialUseCaseIndex(6)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/nativo6\")\n .setDivId(\"div-nativo6\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.desktop_And_Mobile_Nativo)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n\n ,\n //#endregion\n]","import { deviceUtil } from \"@repo/lib-common\";\nimport { AdLoadingStrategyTypeEnum, AdSizes, AdUnit, AdUnitSpecialUseCaseEnum, AdUnitTypeEnum } from \"@repo/lib-domain-tag\";\n\nexport const desktopOutOfPageAdUnit = [\n AdUnit.builder(AdUnitTypeEnum.outOfPage_Interstitial)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setSpecialUseCaseIndex(0)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_popup\")\n .setDivId(\"div-sozcu_popup\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.general_1x1)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .build()\n];\n\n\nexport const mobileOutOfPageAdUnit = [\n AdUnit.builder(AdUnitTypeEnum.outOfPage_Interstitial)\n .setDeviceType(deviceUtil.DeviceTypeInfo.mobileDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setSpecialUseCaseIndex(0)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_mobile_interstial\")\n .setDivId(\"div-sozcu_popup\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n .setSizes(AdSizes.general_1x1)\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .build()\n];","import { SlotRenderEndedSubjectData } from \"@repo/lib-domain-tag/src/ads/eventSubjects/slotRenderEndedSubject.ts\"\nimport { DomainSubjectCallback } from \"@repo/lib-domain-tag\";\n\nexport const fixPageSkinCssClass: DomainSubjectCallback = (data) => {\n if (data && data.isEmpty === false && (data.divId === 'div-sozcu_anasayfa_pageskin_tepe' || data.divId === 'div-sozcu_gen_pageskin_tepe')) {\n document.body.classList.add(\"pageskinTrue\");\n }\n}\n\nexport const displayDivDesktopIndexStickyParent: DomainSubjectCallback = (data) => {\n\n if (data && data.isEmpty === false && data.divId === 'div-sozcu_desktop_anasayfa_sticky') {\n const divParent = document.getElementById(\"div-sozcu_desktop_anasayfa_sticky_parent\")\n if (divParent) {\n divParent.classList.add(\"bg-light\");\n }\n }\n else if (data && data.isEmpty === false && data.divId === 'div-sozcu_mobile_post_sticky_parent') {\n const divParent = document.getElementById(\"div-sozcu_mobile_detay_320x50_sticky\")\n if (divParent) {\n divParent.classList.add(\"bg-light\");\n }\n }\n}\n\n ","import {\n AdLoadingStrategyTypeEnum,\n AdSizes,\n AdUnit,\n AdUnitSpecialUseCaseEnum,\n AdUnitTypeEnum,\n PageAdsBuilderForSpecialUseCases\n} from \"@repo/lib-domain-tag\";\nimport { pageBidderHelper } from \"../pageBidderHelper\";\nimport { deviceUtil, pageUtil } from \"@repo/lib-common\";\nimport { desktopLoadMoreAdUnits } from \"./_loadMoreAdUnits\";\nimport { desktopIntextAdUnits } from \"./_intextAdUnits\";\nimport { nativoAdUnits } from \"./_nativoAdUnits\";\nimport { desktopOutOfPageAdUnit } from \"../../commonAdUnits/outOfPageAdUnits\";\nimport {displayDivDesktopIndexStickyParent, fixPageSkinCssClass} from \"../utilHelpers.ts\";\n\nexport class DesktopPostDetailPageAdsBuilder extends PageAdsBuilderForSpecialUseCases {\n\n override init() {\n\n this.setIsAutoRefreshEnabled(true);\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gen_pageskin_tepe\")\n .setDivId(\"div-sozcu_gen_pageskin_tepe\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.desktop_PageSkin_Top)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(false)\n //.setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n .onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gen_masthead\")\n .setDivId(\"div-sozcu_gen_masthead\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.desktop_Masthead)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_970x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_gen_masthead' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gen_left\")\n .setDivId(\"div-sozcu_gen_left\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.desktop_Tower)\n .addSizeMapping([1900, 0], [[300, 600], [160, 600], [120, 600], [1, 1]])\n .addSizeMapping([1366, 0], [[160, 600], [120, 600], [1, 1]])\n .addSizeMapping([0, 0], [])\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x600)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_gen_left' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gen_right\")\n .setDivId(\"div-sozcu_gen_right\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.desktop_Tower)\n .addSizeMapping([1900, 0], [[300, 600], [160, 600], [120, 600], [1, 1]])\n .addSizeMapping([1366, 0], [[160, 600], [120, 600], [1, 1]])\n .addSizeMapping([0, 0], [])\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x600)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_gen_right' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gen_body_box_1\")\n .setDivId(\"div-sozcu_gen_body_box_1\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.desktop_GenBodyBox)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_gen_body_box_1' })\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gen_body_box_2\")\n .setDivId(\"div-sozcu_gen_body_box_2\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.intersectionObserverBasedLazyLoad)\n .setSizes(AdSizes.desktop_GenBodyBox)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_gen_body_box_2' })\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_gravity\")\n .setDivId(\"div-sozcu_gravity\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.general_1x1)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(false)\n //.setPrebidSizeLimits([])\n //.setBidderHelper(pageBidderHelper)\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n this.applyAdUnit(\n //custom sticky -->\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n //.setSpecialUseCaseIndex(0)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_desktop_detay_sticky\")\n .setDivId(\"div-sozcu_desktop_detay_sticky\")\n .setDivStyleAfterRequest('')\n .setCollapseEmptyDivEnabled(true)\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.intersectionObserverBasedLazyLoad)\n .setSizes([[728, 90], [970, 90]])\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(false)\n .onSlotRenderEnded(displayDivDesktopIndexStickyParent)\n .build()\n );\n //custom sticky <--\n //#region loadMore\n desktopLoadMoreAdUnits.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n //#endregion\n\n\n //#region intext\n desktopIntextAdUnits.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n //#endregion\n\n\n //#region nativo\n nativoAdUnits.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n //#endregion\n\n desktopOutOfPageAdUnit.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n\n // if (domainCountry === CountryEnum.usa) {\n // this.applyAdUnit(\n // AdUnit.builder(AdUnitTypeEnum.outOfPage_BottomAnchor)\n // .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n // .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n // .setIsEnabled(true)\n // .setAdUnitPath(\"/66738120/sozcu_anchor_ads\")\n // //.setDivId(\"div-sozcu_anchor_ads\")\n // //.setDivStyleAfterRequest('')\n // .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n // .setSizes(AdSizes.general_1x1)\n // .setIsAutoRefreshEnabled(true)\n // .setIsPrebidEnabled(false)\n // //.setPrebidSizeLimits([])\n // //.setBidderHelper(pageBidderHelper)\n // );\n // }\n\n\n }\n}\n\nexport const desktopPostDetailPageAdsBuilder = new DesktopPostDetailPageAdsBuilder(deviceUtil.DeviceTypeEnum.desktop, pageUtil.PageTypeEnum.postDetail);\n\n\n","import {\n AdLoadingStrategyTypeEnum,\n AdSizes,\n AdUnit,\n AdUnitSpecialUseCaseEnum,\n AdUnitTypeEnum,\n PageAdsBuilderForSpecialUseCases\n} from \"@repo/lib-domain-tag\";\nimport { pageBidderHelper } from \"../pageBidderHelper\";\nimport { deviceUtil, pageUtil } from \"@repo/lib-common\";\nimport { mobileLoadMoreAdUnits } from \"./_loadMoreAdUnits\";\nimport { mobileIntextAdUnits } from \"./_intextAdUnits\";\nimport { nativoAdUnits } from \"./_nativoAdUnits\";\nimport { mobileOutOfPageAdUnit } from \"../../commonAdUnits/outOfPageAdUnits\";\nimport { displayDivDesktopIndexStickyParent } from \"../utilHelpers.ts\";\n\nexport class MobilePostDetailPageAdsBuilder extends PageAdsBuilderForSpecialUseCases {\n override init() {\n this.setIsEnabled(true);\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_masthead\")\n .setDivId(\"div-sozcu_m_gen_masthead\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.sra)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_masthead' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_box_1\")\n .setDivId(\"div-sozcu_m_gen_box_1\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.intersectionObserverBasedLazyLoad)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_1' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_m_gen_box_2\")\n .setDivId(\"div-sozcu_m_gen_box_2\")\n .setDivStyleAfterRequest('')\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.intersectionObserverBasedLazyLoad)\n .setSizes(AdSizes.mobile_Generic)\n .setIsAutoRefreshEnabled(true)\n .setIsPrebidEnabled(true)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_m_gen_box_2' })\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n this.applyAdUnit(\n AdUnit.builder(AdUnitTypeEnum.banner)\n .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n .setIsEnabled(true)\n .setAdUnitPath(\"/66738120/sozcu_mobile_detay_320x50_sticky\")\n .setDivId(\"div-sozcu_mobile_detay_320x50_sticky\")\n .setDivStyleAfterRequest('')\n .setCollapseEmptyDivEnabled(true)\n .setLoadingStrategy(AdLoadingStrategyTypeEnum.intersectionObserverBasedLazyLoad)\n .setSizes([[300, 50], [300, 100], [320, 50], [320, 100]])\n .setIsAutoRefreshEnabled(false)\n .setIsPrebidEnabled(false)\n .setPrebidSizeLimits(AdSizes.prebid_300x250)\n .setBidderHelper(pageBidderHelper)\n .setBidderCustomParam('taboola', { tagId: 'sozcu_mobile_detay_320x50_sticky' })\n .onSlotRenderEnded(displayDivDesktopIndexStickyParent)\n\n //.onSlotRenderEnded(fixPageSkinCssClass)\n\n );\n\n //#region loadMore\n mobileLoadMoreAdUnits.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n //#endregion\n\n //#region intext\n mobileIntextAdUnits.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n //#endregion\n\n\n //#region nativo\n nativoAdUnits.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n //#endregion\n\n\n mobileOutOfPageAdUnit.forEach(adUnit => {\n this.applyAdUnit(adUnit);\n });\n\n // if (domainCountry === CountryEnum.usa) {\n // this.applyAdUnit(\n // AdUnit.builder(AdUnitTypeEnum.outOfPage_BottomAnchor)\n // .setDeviceType(deviceUtil.DeviceTypeInfo.desktopDevices)\n // .setSpecialUseCase(AdUnitSpecialUseCaseEnum.none)\n // .setIsEnabled(true)\n // .setAdUnitPath(\"/66738120/sozcu_anchor_ads\")\n // //.setDivId(\"div-sozcu_anchor_ads\")\n // //.setDivStyleAfterRequest('')\n // .setLoadingStrategy(AdLoadingStrategyTypeEnum.trigger)\n // .setSizes(AdSizes.general_1x1)\n // .setIsAutoRefreshEnabled(true)\n // .setIsPrebidEnabled(false)\n // //.setPrebidSizeLimits([])\n // //.setBidderHelper(pageBidderHelper)\n // );\n // }\n\n }\n}\n\nexport const mobilePostDetailPageAdsBuilder = new MobilePostDetailPageAdsBuilder(deviceUtil.DeviceTypeEnum.mobile, pageUtil.PageTypeEnum.postDetail);\n\n\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n};\n\nexport default hooks;\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace currencyUtil{\n\n export class CurrencyCode {\n constructor(code: string, name: string, num: number) {\n this.Code = code;\n this.Num = num;\n this.Name = name;\n }\n\n public readonly Code: string;\n public readonly Num: number;\n public readonly Name: string;\n }\n\n export class Currency {\n static readonly AED = new CurrencyCode(\"AED\", \"United Arab Emirates Dirham\", 784);\n static readonly AFN = new CurrencyCode(\"AFN\", \"Afghan Afghani\", 971);\n static readonly ALL = new CurrencyCode(\"ALL\", \"Albanian Lek\", 8);\n static readonly AMD = new CurrencyCode(\"AMD\", \"Armenian Dram\", 51);\n static readonly ANG = new CurrencyCode(\"ANG\", \"Netherlands Antillean Guilder\", 532);\n static readonly AOA = new CurrencyCode(\"AOA\", \"Angolan Kwanza\", 973);\n static readonly ARS = new CurrencyCode(\"ARS\", \"Argentine Peso\", 32);\n static readonly AUD = new CurrencyCode(\"AUD\", \"Australian Dollar\", 36);\n static readonly AWG = new CurrencyCode(\"AWG\", \"Aruban Florin\", 533);\n static readonly AZN = new CurrencyCode(\"AZN\", \"Azerbaijani Manat\", 944);\n static readonly BAM = new CurrencyCode(\n \"BAM\",\n \"Bosnia And Herzegovina Convertible Mark\",\n 977\n );\n static readonly BBD = new CurrencyCode(\"BBD\", \"Barbados Dollar\", 52);\n static readonly BDT = new CurrencyCode(\"BDT\", \"Bangladeshi Taka\", 50);\n static readonly BGN = new CurrencyCode(\"BGN\", \"Bulgarian Lev\", 975);\n static readonly BHD = new CurrencyCode(\"BHD\", \"Bahraini Dinar\", 48);\n static readonly BIF = new CurrencyCode(\"BIF\", \"Burundian Franc\", 108);\n static readonly BMD = new CurrencyCode(\"BMD\", \"Bermudian Dollar\", 60);\n static readonly BND = new CurrencyCode(\"BND\", \"Brunei Dollar\", 96);\n static readonly BOB = new CurrencyCode(\"BOB\", \"Boliviano\", 68);\n static readonly BOV = new CurrencyCode(\"BOV\", \"Bolivian Mvdol (Funds Code)\", 984);\n static readonly BRL = new CurrencyCode(\"BRL\", \"Brazilian Real\", 986);\n static readonly BSD = new CurrencyCode(\"BSD\", \"Bahamian Dollar\", 44);\n static readonly BTN = new CurrencyCode(\"BTN\", \"Bhutanese Ngultrum\", 64);\n static readonly BWP = new CurrencyCode(\"BWP\", \"Botswana Pula\", 72);\n static readonly BYN = new CurrencyCode(\"BYN\", \"Belarusian Ruble\", 933);\n static readonly BZD = new CurrencyCode(\"BZD\", \"Belize Dollar\", 84);\n static readonly CAD = new CurrencyCode(\"CAD\", \"Canadian Dollar\", 124);\n static readonly CDF = new CurrencyCode(\"CDF\", \"Congolese Franc\", 976);\n static readonly CHE = new CurrencyCode(\n \"CHE\",\n \"Wir Euro (Complementary Currency)\",\n 947\n );\n static readonly CHF = new CurrencyCode(\"CHF\", \"Swiss Franc\", 756);\n static readonly CHW = new CurrencyCode(\n \"CHW\",\n \"Wir Franc (Complementary Currency)\",\n 948\n );\n static readonly CLF = new CurrencyCode(\"CLF\", \"Unidad De Fomento (Funds Code)\", 990);\n static readonly CLP = new CurrencyCode(\"CLP\", \"Chilean Peso\", 152);\n static readonly CNY = new CurrencyCode(\"CNY\", \"Renminbi\", 156);\n static readonly COP = new CurrencyCode(\"COP\", \"Colombian Peso\", 170);\n static readonly COU = new CurrencyCode(\n \"COU\",\n \"Unidad De Valor Real (Uvr) (Funds Code)\",\n 970\n );\n static readonly CRC = new CurrencyCode(\"CRC\", \"Costa Rican Colon\", 188);\n static readonly CUP = new CurrencyCode(\"CUP\", \"Cuban Peso\", 192);\n static readonly CVE = new CurrencyCode(\"CVE\", \"Cape Verdean Escudo\", 132);\n static readonly CZK = new CurrencyCode(\"CZK\", \"Czech Koruna\", 203);\n static readonly DJF = new CurrencyCode(\"DJF\", \"Djiboutian Franc\", 262);\n static readonly DKK = new CurrencyCode(\"DKK\", \"Danish Krone\", 208);\n static readonly DOP = new CurrencyCode(\"DOP\", \"Dominican Peso\", 214);\n static readonly DZD = new CurrencyCode(\"DZD\", \"Algerian Dinar\", 12);\n static readonly EGP = new CurrencyCode(\"EGP\", \"Egyptian Pound\", 818);\n static readonly ERN = new CurrencyCode(\"ERN\", \"Eritrean Nakfa\", 232);\n static readonly ETB = new CurrencyCode(\"ETB\", \"Ethiopian Birr\", 230);\n static readonly EUR = new CurrencyCode(\"EUR\", \"Euro\", 978);\n static readonly FJD = new CurrencyCode(\"FJD\", \"Fiji Dollar\", 242);\n static readonly FKP = new CurrencyCode(\"FKP\", \"Falkland Islands Pound\", 238);\n static readonly GBP = new CurrencyCode(\"GBP\", \"Pound Sterling\", 826);\n static readonly GEL = new CurrencyCode(\"GEL\", \"Georgian Lari\", 981);\n static readonly GHS = new CurrencyCode(\"GHS\", \"Ghanaian Cedi\", 936);\n static readonly GIP = new CurrencyCode(\"GIP\", \"Gibraltar Pound\", 292);\n static readonly GMD = new CurrencyCode(\"GMD\", \"Gambian Dalasi\", 270);\n static readonly GNF = new CurrencyCode(\"GNF\", \"Guinean Franc\", 324);\n static readonly GTQ = new CurrencyCode(\"GTQ\", \"Guatemalan Quetzal\", 320);\n static readonly GYD = new CurrencyCode(\"GYD\", \"Guyanese Dollar\", 328);\n static readonly HKD = new CurrencyCode(\"HKD\", \"Hong Kong Dollar\", 344);\n static readonly HNL = new CurrencyCode(\"HNL\", \"Honduran Lempira\", 340);\n static readonly HTG = new CurrencyCode(\"HTG\", \"Haitian Gourde\", 332);\n static readonly HUF = new CurrencyCode(\"HUF\", \"Hungarian Forint\", 348);\n static readonly IDR = new CurrencyCode(\"IDR\", \"Indonesian Rupiah\", 360);\n static readonly ILS = new CurrencyCode(\"ILS\", \"Israeli New Shekel\", 376);\n static readonly INR = new CurrencyCode(\"INR\", \"Indian Rupee\", 356);\n static readonly IQD = new CurrencyCode(\"IQD\", \"Iraqi Dinar\", 368);\n static readonly IRR = new CurrencyCode(\"IRR\", \"Iranian Rial\", 364);\n static readonly ISK = new CurrencyCode(\n \"ISK\",\n \"Icelandic Króna (Plural: Krónur)\",\n 352\n );\n static readonly JMD = new CurrencyCode(\"JMD\", \"Jamaican Dollar\", 388);\n static readonly JOD = new CurrencyCode(\"JOD\", \"Jordanian Dinar\", 400);\n static readonly JPY = new CurrencyCode(\"JPY\", \"Japanese Yen\", 392);\n static readonly KES = new CurrencyCode(\"KES\", \"Kenyan Shilling\", 404);\n static readonly KGS = new CurrencyCode(\"KGS\", \"Kyrgyzstani Som\", 417);\n static readonly KHR = new CurrencyCode(\"KHR\", \"Cambodian Riel\", 116);\n static readonly KMF = new CurrencyCode(\"KMF\", \"Comoro Franc\", 174);\n static readonly KPW = new CurrencyCode(\"KPW\", \"North Korean Won\", 408);\n static readonly KRW = new CurrencyCode(\"KRW\", \"South Korean Won\", 410);\n static readonly KWD = new CurrencyCode(\"KWD\", \"Kuwaiti Dinar\", 414);\n static readonly KYD = new CurrencyCode(\"KYD\", \"Cayman Islands Dollar\", 136);\n static readonly KZT = new CurrencyCode(\"KZT\", \"Kazakhstani Tenge\", 398);\n static readonly LAK = new CurrencyCode(\"LAK\", \"Lao Kip\", 418);\n static readonly LBP = new CurrencyCode(\"LBP\", \"Lebanese Pound\", 422);\n static readonly LKR = new CurrencyCode(\"LKR\", \"Sri Lankan Rupee\", 144);\n static readonly LRD = new CurrencyCode(\"LRD\", \"Liberian Dollar\", 430);\n static readonly LSL = new CurrencyCode(\"LSL\", \"Lesotho Loti\", 426);\n static readonly LYD = new CurrencyCode(\"LYD\", \"Libyan Dinar\", 434);\n static readonly MAD = new CurrencyCode(\"MAD\", \"Moroccan Dirham\", 504);\n static readonly MDL = new CurrencyCode(\"MDL\", \"Moldovan Leu\", 498);\n static readonly MGA = new CurrencyCode(\"MGA\", \"Malagasy Ariary\", 969);\n static readonly MKD = new CurrencyCode(\"MKD\", \"Macedonian Denar\", 807);\n static readonly MMK = new CurrencyCode(\"MMK\", \"Myanmar Kyat\", 104);\n static readonly MNT = new CurrencyCode(\"MNT\", \"Mongolian Tögrög\", 496);\n static readonly MOP = new CurrencyCode(\"MOP\", \"Macanese Pataca\", 446);\n static readonly MRU = new CurrencyCode(\"MRU\", \"Mauritanian Ouguiya\", 929);\n static readonly MUR = new CurrencyCode(\"MUR\", \"Mauritian Rupee\", 480);\n static readonly MVR = new CurrencyCode(\"MVR\", \"Maldivian Rufiyaa\", 462);\n static readonly MWK = new CurrencyCode(\"MWK\", \"Malawian Kwacha\", 454);\n static readonly MXN = new CurrencyCode(\"MXN\", \"Mexican Peso\", 484);\n static readonly MXV = new CurrencyCode(\n \"MXV\",\n \"Mexican Unidad De Inversion (Udi) (Funds Code)\",\n 979\n );\n static readonly MYR = new CurrencyCode(\"MYR\", \"Malaysian Ringgit\", 458);\n static readonly MZN = new CurrencyCode(\"MZN\", \"Mozambican Metical\", 943);\n static readonly NAD = new CurrencyCode(\"NAD\", \"Namibian Dollar\", 516);\n static readonly NGN = new CurrencyCode(\"NGN\", \"Nigerian Naira\", 566);\n static readonly NIO = new CurrencyCode(\"NIO\", \"Nicaraguan Córdoba\", 558);\n static readonly NOK = new CurrencyCode(\"NOK\", \"Norwegian Krone\", 578);\n static readonly NPR = new CurrencyCode(\"NPR\", \"Nepalese Rupee\", 524);\n static readonly NZD = new CurrencyCode(\"NZD\", \"New Zealand Dollar\", 554);\n static readonly OMR = new CurrencyCode(\"OMR\", \"Omani Rial\", 512);\n static readonly PAB = new CurrencyCode(\"PAB\", \"Panamanian Balboa\", 590);\n static readonly PEN = new CurrencyCode(\"PEN\", \"Peruvian Sol\", 604);\n static readonly PGK = new CurrencyCode(\"PGK\", \"Papua New Guinean Kina\", 598);\n static readonly PHP = new CurrencyCode(\"PHP\", \"Philippine Peso\", 608);\n static readonly PKR = new CurrencyCode(\"PKR\", \"Pakistani Rupee\", 586);\n static readonly PLN = new CurrencyCode(\"PLN\", \"Polish Złoty\", 985);\n static readonly PYG = new CurrencyCode(\"PYG\", \"Paraguayan Guaraní\", 600);\n static readonly QAR = new CurrencyCode(\"QAR\", \"Qatari Riyal\", 634);\n static readonly RON = new CurrencyCode(\"RON\", \"Romanian Leu\", 946);\n static readonly RSD = new CurrencyCode(\"RSD\", \"Serbian Dinar\", 941);\n static readonly RUB = new CurrencyCode(\"RUB\", \"Russian Ruble\", 643);\n static readonly RWF = new CurrencyCode(\"RWF\", \"Rwandan Franc\", 646);\n static readonly SAR = new CurrencyCode(\"SAR\", \"Saudi Riyal\", 682);\n static readonly SBD = new CurrencyCode(\"SBD\", \"Solomon Islands Dollar\", 90);\n static readonly SCR = new CurrencyCode(\"SCR\", \"Seychelles Rupee\", 690);\n static readonly SDG = new CurrencyCode(\"SDG\", \"Sudanese Pound\", 938);\n static readonly SEK = new CurrencyCode(\"SEK\", \"Swedish Krona (Plural: Kronor)\", 752);\n static readonly SGD = new CurrencyCode(\"SGD\", \"Singapore Dollar\", 702);\n static readonly SHP = new CurrencyCode(\"SHP\", \"Saint Helena Pound\", 654);\n static readonly SLE = new CurrencyCode(\n \"SLE\",\n \"Sierra Leonean Leone (New Leone)\",\n 925\n );\n static readonly SLL = new CurrencyCode(\n \"SLL\",\n \"Sierra Leonean Leone (Old Leone)\",\n 694\n );\n static readonly SOS = new CurrencyCode(\"SOS\", \"Somalian Shilling\", 706);\n static readonly SRD = new CurrencyCode(\"SRD\", \"Surinamese Dollar\", 968);\n static readonly SSP = new CurrencyCode(\"SSP\", \"South Sudanese Pound\", 728);\n static readonly STN = new CurrencyCode(\"STN\", \"São Tomé And Príncipe Dobra\", 930);\n static readonly SVC = new CurrencyCode(\"SVC\", \"Salvadoran Colón\", 222);\n static readonly SYP = new CurrencyCode(\"SYP\", \"Syrian Pound\", 760);\n static readonly SZL = new CurrencyCode(\"SZL\", \"Swazi Lilangeni\", 748);\n static readonly THB = new CurrencyCode(\"THB\", \"Thai Baht\", 764);\n static readonly TJS = new CurrencyCode(\"TJS\", \"Tajikistani Somoni\", 972);\n static readonly TMT = new CurrencyCode(\"TMT\", \"Turkmenistan Manat\", 934);\n static readonly TND = new CurrencyCode(\"TND\", \"Tunisian Dinar\", 788);\n static readonly TOP = new CurrencyCode(\"TOP\", \"Tongan PaʻAnga\", 776);\n static readonly TRY = new CurrencyCode(\"TRY\", \"Turkish Lira\", 949);\n static readonly TTD = new CurrencyCode(\"TTD\", \"Trinidad And Tobago Dollar\", 780);\n static readonly TWD = new CurrencyCode(\"TWD\", \"New Taiwan Dollar\", 901);\n static readonly TZS = new CurrencyCode(\"TZS\", \"Tanzanian Shilling\", 834);\n static readonly UAH = new CurrencyCode(\"UAH\", \"Ukrainian Hryvnia\", 980);\n static readonly UGX = new CurrencyCode(\"UGX\", \"Ugandan Shilling\", 800);\n static readonly USD = new CurrencyCode(\"USD\", \"United States Dollar\", 840);\n static readonly USN = new CurrencyCode(\n \"USN\",\n \"United States Dollar (Next Day) (Funds Code)\",\n 997\n );\n static readonly UYI = new CurrencyCode(\n \"UYI\",\n \"Uruguay Peso En Unidades Indexadas (Uruiurui) (Funds Code)\",\n 940\n );\n static readonly UYU = new CurrencyCode(\"UYU\", \"Uruguayan Peso\", 858);\n static readonly UYW = new CurrencyCode(\"UYW\", \"Unidad Previsional\", 927);\n static readonly UZS = new CurrencyCode(\"UZS\", \"Uzbekistani Sum\", 860);\n static readonly VED = new CurrencyCode(\"VED\", \"Venezuelan Digital Bolívar\", 926);\n static readonly VES = new CurrencyCode(\"VES\", \"Venezuelan Sovereign Bolívar\", 928);\n static readonly VND = new CurrencyCode(\"VND\", \"Vietnamese ĐồNg\", 704);\n static readonly VUV = new CurrencyCode(\"VUV\", \"Vanuatu Vatu\", 548);\n static readonly WST = new CurrencyCode(\"WST\", \"Samoan Tala\", 882);\n static readonly XAF = new CurrencyCode(\"XAF\", \"Cfa Franc Beac\", 950);\n static readonly XAG = new CurrencyCode(\"XAG\", \"Silver (One Troy Ounce)\", 961);\n static readonly XAU = new CurrencyCode(\"XAU\", \"Gold (One Troy Ounce)\", 959);\n static readonly XBA = new CurrencyCode(\n \"XBA\",\n \"European Composite Unit (Eurco) (Bond Market Unit)\",\n 955\n );\n static readonly XBB = new CurrencyCode(\n \"XBB\",\n \"European Monetary Unit (E.M.U.-6) (Bond Market Unit)\",\n 956\n );\n static readonly XBC = new CurrencyCode(\n \"XBC\",\n \"European Unit Of Account 9 (E.U.A.-9) (Bond Market Unit)\",\n 957\n );\n static readonly XBD = new CurrencyCode(\n \"XBD\",\n \"European Unit Of Account 17 (E.U.A.-17) (Bond Market Unit)\",\n 958\n );\n static readonly XCD = new CurrencyCode(\"XCD\", \"East Caribbean Dollar\", 951);\n static readonly XDR = new CurrencyCode(\"XDR\", \"Special Drawing Rights\", 960);\n static readonly XOF = new CurrencyCode(\"XOF\", \"Cfa Franc Bceao\", 952);\n static readonly XPD = new CurrencyCode(\"XPD\", \"Palladium (One Troy Ounce)\", 964);\n static readonly XPF = new CurrencyCode(\"XPF\", \"Cfp Franc (Franc Pacifique)\", 953);\n static readonly XPT = new CurrencyCode(\"XPT\", \"Platinum (One Troy Ounce)\", 962);\n static readonly XSU = new CurrencyCode(\"XSU\", \"Sucre\", 994);\n static readonly XTS = new CurrencyCode(\"XTS\", \"Code Reserved For Testing\", 963);\n static readonly XUA = new CurrencyCode(\"XUA\", \"Adb Unit Of Account\", 965);\n static readonly XXX = new CurrencyCode(\"XXX\", \"No Currency\", 999);\n static readonly YER = new CurrencyCode(\"YER\", \"Yemeni Rial\", 886);\n static readonly ZAR = new CurrencyCode(\"ZAR\", \"South African Rand\", 710);\n static readonly ZMW = new CurrencyCode(\"ZMW\", \"Zambian Kwacha\", 967);\n static readonly ZWL = new CurrencyCode(\"ZWL\", \"Zimbabwean Dollar (Fifth)\", 932);\n }\n\n }\n\n","const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.5\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from \"axios\";\nimport { logUtil as logger } from \"@repo/lib-common\";\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace httpUtil {\n export type HttpResponseCallbackFunction = (response: object) => void;\n export type HttpErrorCallbackFunction = (error: object) => void;\n\n export enum ContentTypeEnum {\n json = \"application/json\",\n formUrlEncoded = \"application/x-www-form-urlencoded\"\n }\n\n export function httpPost({ url, data, contentType = ContentTypeEnum.json, responseCallBack, errorCallBack }: {\n url: string,\n data: object,\n contentType?: ContentTypeEnum,\n responseCallBack?: HttpResponseCallbackFunction,\n errorCallBack?: HttpErrorCallbackFunction\n }) {\n logger.consoleLog(\"http request started\", url, contentType, data)\n axios.post(url, data,\n { headers: { 'content-type': contentType } }\n ).then((response) => {\n logger.consoleLog(data, \"=> response =>\", response);\n if (responseCallBack) {\n responseCallBack(response);\n }\n }).catch(error => {\n logger.consoleLog(error);\n if (errorCallBack) {\n errorCallBack(error);\n }\n });\n\n }\n\n export function httpPostPromise({ url, data, contentType = ContentTypeEnum.json }: {\n url: string,\n data: object,\n contentType?: ContentTypeEnum\n }) {\n logger.consoleLog(\"http request started\", url, contentType, data)\n return axios.post(url, data,\n { headers: { 'content-type': contentType } }\n );\n }\n\n export function httpGet({ url, data, contentType = ContentTypeEnum.json, responseCallBack, errorCallBack }: {\n url: string,\n data: object,\n contentType?: ContentTypeEnum,\n responseCallBack?: HttpResponseCallbackFunction,\n errorCallBack?: HttpResponseCallbackFunction\n }) {\n logger.consoleLog(\"http request started\", url, contentType, data)\n axios.get(url,\n { headers: { 'content-type': contentType } }\n ).then((response) => {\n logger.consoleLog(data, \"=> response =>\", response);\n if (responseCallBack) {\n responseCallBack(response);\n }\n }).catch(error => {\n logger.consoleLog(error);\n if (errorCallBack) {\n errorCallBack(error);\n }\n });\n }\n\n}","import moment from \"moment\";\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace momentUtil{\n\nexport class DateTimeHelper {\n currentTime: moment.Moment;\n\n constructor() {\n this.currentTime = moment();\n }\n\n public getTimeStamp(){\n return new Date().getTime();\n }\n\n\n\n public now() {\n this.currentTime = moment();\n return this;\n\n }\n public toIsoString(keepOffset:boolean=true){\n return this.currentTime.toISOString(keepOffset);\n }\n\n public addMinutes(minutes:number){\n this.currentTime.add(minutes, \"minutes\");\n return this;\n }\n public addHours(hours:number){\n this.currentTime.add(hours,\"hours\");\n return this;\n }\n public addDays(days:number){\n this.currentTime.add(days,\"days\");\n return this;\n }\n}\n\nexport const dateTime=new DateTimeHelper();\n}","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.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\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","/*\n * [js-sha1]{@link https://github.com/emn178/js-sha1}\n *\n * @version 0.6.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 root = typeof window === 'object' ? window : {};\n var NODE_JS = !root.JS_SHA1_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n }\n var COMMON_JS = !root.JS_SHA1_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n var createOutputMethod = function (outputType) {\n return function (message) {\n return new Sha1(true).update(message)[outputType]();\n };\n };\n\n var createMethod = function () {\n var method = createOutputMethod('hex');\n if (NODE_JS) {\n method = nodeWrap(method);\n }\n method.create = function () {\n return new Sha1();\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);\n }\n return method;\n };\n\n var nodeWrap = function (method) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash('sha1').update(message, 'utf8').digest('hex');\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (message.length === undefined) {\n return method(message);\n }\n return crypto.createHash('sha1').update(new Buffer(message)).digest('hex');\n };\n return nodeMethod;\n };\n\n function Sha1(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 this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n\n Sha1.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString = typeof(message) !== 'string';\n if (notString && message.constructor === root.ArrayBuffer) {\n message = new Uint8Array(message);\n }\n var code, index = 0, i, length = message.length || 0, 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 Sha1.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 Sha1.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4;\n var f, j, t, blocks = this.blocks;\n\n for(j = 16; j < 80; ++j) {\n t = blocks[j - 3] ^ blocks[j - 8] ^ blocks[j - 14] ^ blocks[j - 16];\n blocks[j] = (t << 1) | (t >>> 31);\n }\n\n for(j = 0; j < 20; j += 5) {\n f = (b & c) | ((~b) & d);\n t = (a << 5) | (a >>> 27);\n e = t + f + e + 1518500249 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = (a & b) | ((~a) & c);\n t = (e << 5) | (e >>> 27);\n d = t + f + d + 1518500249 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = (e & a) | ((~e) & b);\n t = (d << 5) | (d >>> 27);\n c = t + f + c + 1518500249 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = (d & e) | ((~d) & a);\n t = (c << 5) | (c >>> 27);\n b = t + f + b + 1518500249 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = (c & d) | ((~c) & e);\n t = (b << 5) | (b >>> 27);\n a = t + f + a + 1518500249 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n for(; j < 40; j += 5) {\n f = b ^ c ^ d;\n t = (a << 5) | (a >>> 27);\n e = t + f + e + 1859775393 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = a ^ b ^ c;\n t = (e << 5) | (e >>> 27);\n d = t + f + d + 1859775393 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = e ^ a ^ b;\n t = (d << 5) | (d >>> 27);\n c = t + f + c + 1859775393 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = d ^ e ^ a;\n t = (c << 5) | (c >>> 27);\n b = t + f + b + 1859775393 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = c ^ d ^ e;\n t = (b << 5) | (b >>> 27);\n a = t + f + a + 1859775393 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n for(; j < 60; j += 5) {\n f = (b & c) | (b & d) | (c & d);\n t = (a << 5) | (a >>> 27);\n e = t + f + e - 1894007588 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = (a & b) | (a & c) | (b & c);\n t = (e << 5) | (e >>> 27);\n d = t + f + d - 1894007588 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = (e & a) | (e & b) | (a & b);\n t = (d << 5) | (d >>> 27);\n c = t + f + c - 1894007588 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = (d & e) | (d & a) | (e & a);\n t = (c << 5) | (c >>> 27);\n b = t + f + b - 1894007588 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = (c & d) | (c & e) | (d & e);\n t = (b << 5) | (b >>> 27);\n a = t + f + a - 1894007588 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n for(; j < 80; j += 5) {\n f = b ^ c ^ d;\n t = (a << 5) | (a >>> 27);\n e = t + f + e - 899497514 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = a ^ b ^ c;\n t = (e << 5) | (e >>> 27);\n d = t + f + d - 899497514 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = e ^ a ^ b;\n t = (d << 5) | (d >>> 27);\n c = t + f + c - 899497514 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = d ^ e ^ a;\n t = (c << 5) | (c >>> 27);\n b = t + f + b - 899497514 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = c ^ d ^ e;\n t = (b << 5) | (b >>> 27);\n a = t + f + a - 899497514 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\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 };\n\n Sha1.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4;\n\n return 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 };\n\n Sha1.prototype.toString = Sha1.prototype.hex;\n\n Sha1.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4;\n\n return [\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 ];\n };\n\n Sha1.prototype.array = Sha1.prototype.digest;\n\n Sha1.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(20);\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 return buffer;\n };\n\n var exports = createMethod();\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha1 = exports;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","import sha1 from \"js-sha1\";\nimport {typeUtil} from \"@repo/lib-common\";\nimport {objUtil} from \"@repo/lib-common\";\ntype StringOrUndefined=typeUtil.StringOrUndefined;\nconst isNullOrEmpty=objUtil.isNullOrEmpty;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace hashUtil {\n export function hashSha1(sourceStr: string): StringOrUndefined {\n let hash: StringOrUndefined = undefined;\n if (isNullOrEmpty(sourceStr)) return hash;\n hash = sha1(sourceStr);\n return hash;\n }\n}\n","import moment from \"moment\";\nimport {StoreObjWithTtl} from \"./types\";\nexport class LocalStorageManager {\n public static testIsStoreUsable():boolean{\n\n const mod = 'local-storage-test';\n try {\n localStorage.setItem(mod, mod);\n localStorage.removeItem(mod);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n public static save(key: string, dataT?:T,ttlInMinutes:number=30) {\n const expiryObj = {expiry: moment().add(ttlInMinutes, \"minutes\"),data:dataT} as StoreObjWithTtl;\n const dataString = JSON.stringify(expiryObj);\n localStorage.setItem(key, dataString);\n }\n\n public static load(key: string): T | undefined {\n if(key===null || key===undefined) return undefined;\n const dataString = localStorage.getItem(key);\n if (dataString) {\n const dataObj: StoreObjWithTtl = JSON.parse(dataString);\n\n\n if (dataObj && dataObj.data && dataObj.expiry && moment(dataObj.expiry).isAfter(moment())) {\n return dataObj.data!;\n }\n }\n return undefined;\n }\n}\n\n","\nimport Cookies from \"js-cookie\";\nexport class CookieDataManager {\n public static testIsStoreUsable(): boolean {\n\n const mod = 'local-storage-test';\n try {\n Cookies.set(mod, mod, {expires: 1});\n Cookies.remove(mod);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n public static save(key: string, dataT?: T, ttlInMinutes: number = 30) {\n const dataString = JSON.stringify(dataT);\n const ttlObjc = new Date(new Date().getTime() + ttlInMinutes * 60 * 1000);\n Cookies.set(key, dataString, {expires: ttlObjc});\n }\n\n public static load(key: string): T | undefined {\n if (key === null || key === undefined) return undefined;\n const dataString = Cookies.get(key);\n if (dataString) {\n const dataObj: T = JSON.parse(dataString);\n return dataObj;\n }\n return undefined;\n }\n}\n\n","import { LocalStorageManager } from \"../components/localStorageDataManager\";\nimport { CookieDataManager } from \"../components/cookieDataManager\";\n\n\nexport class StorageManager {\n public static isLocalStorageEnabled: boolean =\n LocalStorageManager.testIsStoreUsable();\n public static isCookieStorageEnabled: boolean =\n StorageManager.isLocalStorageEnabled == false\n ? CookieDataManager.testIsStoreUsable()\n : false;\n\n public static save(key: string, dataT?: T, ttlInMinutes: number = 30) {\n if (this.isLocalStorageEnabled) {\n LocalStorageManager.save(key, dataT, ttlInMinutes);\n } else {\n CookieDataManager.save(key, dataT, ttlInMinutes);\n }\n }\n\n public static load(key: string): T | undefined {\n if (StorageManager.isLocalStorageEnabled) {\n return LocalStorageManager.load(key);\n } else {\n return CookieDataManager.load(key);\n }\n }\n\n \n}\n","import { httpUtil } from \"@repo/lib-web\";\nimport { logUtil, objUtil } from \"@repo/lib-common\";\nimport { StorageManager, StoreUserModel, StoreDeviceModel, EmotionReactionHistory } from \"@repo/lib-browser-data-store\";\n\ndeclare global {\n interface Window {\n postId?: string;\n }\n}\n\n/*\n1- emoji harketleri apiye gönder\n2- local storage da sakla\n3- sayfa yüklendiğinde LS'den post'id ile matchleyerek maviye boya\n*/\nconst milisecondToDay = 1000 * 60 * 60 * 24;\nconst today = Date.now() / (milisecondToDay);\nconst testApiUrl = \"https://apiv2.sozcu.com.tr\";\nconst prodApiUrl = \"https://apiv2.sozcu.com.tr\";\nconst apiUrl = `${import.meta.env.PROD ? prodApiUrl : testApiUrl}/webapp/cms/emotion/create-emotion-action`;\ninterface EmotionChange {\n postId: string; emotionType: string; direction: number;\n userId?: string | undefined;\n deviceId?: string | undefined\n}\n\nconst reactionChanges: EmotionChange[] = [];\nconst storageDeviceKey = \"l-dev\"\nconst storageDeviceTTLinMinutes = 180 * 24 * 60; //180 days to minutes\nconst storageUserKey = \"l-us\"\nconst storageUserTTLinMinutes = 30 * 24 * 60; //30days to minutes\n\nexport function emojiEnsureUserData(id?: string): StoreUserModel {\n const existingData = StorageManager.load(storageUserKey);\n logUtil.consoleLog(\"existing User Data\", existingData, id);\n if ((existingData && id !== null) || (existingData && existingData?.id !== null && existingData?.id === id)) return existingData;\n const storageData = { id: objUtil.isStrNullOrUndefined(id) ? objUtil.uuidStr() : id } as StoreUserModel;\n StorageManager.save(storageUserKey, storageData, storageUserTTLinMinutes);\n logUtil.consoleLog(id, \" userId \", storageData)\n\n return storageData;\n}\nexport function emojiEnsureDeviceData(id?: string): StoreDeviceModel {\n const existingData = StorageManager.load(storageDeviceKey);\n if ((existingData && id !== null) || (existingData && existingData?.id !== null && existingData?.id === id)) return existingData;\n const storageData = { id: objUtil.isStrNullOrUndefined(id) ? objUtil.uuidStr() : id } as StoreDeviceModel;\n StorageManager.save(storageDeviceKey, storageData, storageDeviceTTLinMinutes);\n logUtil.consoleLog(id, \" deviceId \", storageData)\n return storageData;\n}\nlet loadedData: EmotionReactionHistory[] | undefined;\nconst historyKey = 'emotionHistory';\nexport function loadEmojiData() {\n loadedData ??= StorageManager.load(historyKey);\n if (!loadedData) {\n loadedData = new Array;\n }\n\n}\nexport function assignEmojiHistory() {\n loadEmojiData();\n if (window?.postId) {\n const postIdBasedEmojiHistory = loadedData!.filter(item => item.postId === window.postId);\n postIdBasedEmojiHistory.forEach(histItem => {\n const buttons = document.querySelectorAll(\n `button[data-post-id=\"${histItem.postId}\"][data-emotion-id=\"${histItem.emotionType}\"]`\n );\n\n buttons.forEach(button =>{\n button.classList.add('reacted');\n const count = Number(button.dataset.reactionFullCount);\n if (count<1000){\n let total = count +1;\n button.dataset.reactionCount = String(total);\n button.dataset.reactionFullCount = String(total);\n }\n } );\n });\n }\n}\nexport function emojiReactionSaver(emotions: EmotionChange[]) {\n\n loadEmojiData();\n const postIdArray = emotions.map(item => item.postId);\n let uniquePostIds = new Set(postIdArray)\n const dataToSave = loadedData!.filter(item => !(uniquePostIds.has(item.postId) || (today - item.createdAt) > 30));\n emotions.forEach(item => {\n if (item.direction === 1) {\n\n dataToSave.push({\n postId: item.postId,\n emotionType: item.emotionType,\n createdAt: today\n });\n }\n });\n StorageManager.save(historyKey, dataToSave);\n}\nexport function emojiRegisterEventListener() {\n document.addEventListener('click', (e: MouseEvent) => {\n\n\n\n const target = e.target as HTMLElement;\n const button = target.matches('.post-reaction')\n ? target as HTMLButtonElement\n : target.closest('.post-reaction') as HTMLButtonElement | null;\n if (button) {\n\n const postId = button.dataset.postId!;\n const emotionId = button.dataset.emotionId!;\n const reactionList = button.closest('.reaction-list');\n if (reactionList) {\n const currentReaction = reactionList.querySelector('.post-reaction.reacted') as HTMLButtonElement | null;\n\n if (button.classList.contains('reacted')) {\n\n button.classList.remove('reacted');\n emojiUpdateReactionCount(button, -1);\n\n emojiUpdateReactionChanges({ postId: postId, emotionType: emotionId, direction: -1 });\n } else {\n if (currentReaction && currentReaction !== button) {\n\n const previousEmotionId = currentReaction.dataset.emotionId!;\n currentReaction.classList.remove('reacted');\n emojiUpdateReactionCount(currentReaction, -1);\n\n emojiUpdateReactionChanges({ postId: postId, emotionType: previousEmotionId, direction: -1 });\n }\n\n button.classList.add('reacted');\n emojiUpdateReactionCount(button, 1);\n emojiUpdateReactionChanges({ postId: postId, emotionType: emotionId, direction: 1 });\n }\n emojiOptimizeReactionData(reactionChanges, 2);\n }\n }\n });\n}\n\nexport function emojiUpdateReactionChanges(emotion: EmotionChange) {\n const existingChangeIndex = reactionChanges.findIndex(\n change => change.postId === emotion.postId && change.emotionType === emotion.emotionType\n );\n if (existingChangeIndex !== -1) {\n reactionChanges[existingChangeIndex].direction = emotion.direction;\n } else {\n reactionChanges.push({ postId: emotion.postId, emotionType: emotion.emotionType, direction: emotion.direction });\n }\n const filtered = reactionChanges.filter(item => item.postId === emotion.postId);\n reactionChanges.length=0;\n reactionChanges.push(...filtered);\n console.log(\"filtired reaction: \",reactionChanges)\n \n for (let i = reactionChanges.length - 1; i >= 0; i--) {\n if (reactionChanges[i].direction === 0) {\n reactionChanges.splice(i, 1);\n }\n }\n}\nlet userId: string | undefined = undefined;\nlet deviceId: string | undefined = undefined;\nexport function emojiOptimizeReactionData(data: Array, maxSize: number): void {\n while (data.length > maxSize) {\n data.shift();\n }\n userId ??= emojiEnsureUserData()?.id;\n deviceId ??= emojiEnsureDeviceData()?.id;\n data.forEach(item => {\n item.userId = userId;\n item.deviceId = deviceId;\n httpUtil.httpPost({ url: apiUrl, data: item, contentType: httpUtil.ContentTypeEnum.formUrlEncoded });\n });\n emojiReactionSaver(data);\n}\n\nexport function emojiUpdateReactionCount(button: HTMLButtonElement, change: number) {\n let countStr:number = Number(button.dataset.reactionFullCount) || 0;\n countStr += change;\n button.dataset.reactionFullCount = String(countStr);\n button.dataset.reactionCount = formatNumber(Number(countStr));\n}\n\n\nexport function emojiParseFormattedCount(countStr: string): number {\n const suffix = countStr.slice(-1).toUpperCase();\n const num = parseFloat(countStr);\n\n if (suffix === 'B') {\n return Math.round(num * 1000);\n } else if (suffix === 'M') {\n return Math.round(num * 1_000_000);\n } else if (!isNaN(num)) {\n return Math.round(num);\n }\n\n return 0;\n}\n\n\nexport function formatNumber(num:number) {\n if (num >= 1e12) {\n return (Math.floor(num / 1e11) / 10).toFixed(1).replace(/\\.0$/, '') + 'T';\n } else if (num >= 1e9) {\n return (Math.floor(num / 1e8) / 10).toFixed(1).replace(/\\.0$/, '') + 'Mr';\n } else if (num >= 1e6) {\n return (Math.floor(num / 1e5) / 10).toFixed(1).replace(/\\.0$/, '') + 'M';\n } else if (num >= 1e3) {\n return (Math.floor(num / 1e2) / 10).toFixed(1).replace(/\\.0$/, '') + 'B';\n }\n return num.toString();\n}","/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-namespace */\nimport { PageAdsBuilderForSpecialUseCases } from \"@repo/lib-domain-tag/src/ads/pageAdsBuilderForSpecialUseCases.ts\";\nimport { desktopPostDetailPageAdsBuilder } from \"./desktopPostDetailPageAdsBuilder.ts\";\nimport { mobilePostDetailPageAdsBuilder } from \"./mobilePostDetailPageAdsBuilder.ts\";\n\nimport { deviceUtil, pageUtil } from \"@repo/lib-common\";\nimport { DomainPageClient } from \"@repo/lib-domain-tag\";\nimport {assignEmojiHistory, emojiRegisterEventListener, loadEmojiData} from \"../../emotions/emojiHelper.ts\";\nconst PageTypeEnum = pageUtil.PageTypeEnum;\nlet isPageClientInitiated = false;\n\nwindow.domainTag = window.domainTag || { cmd: [] };\n\nexport const initPageClient_PostDetail = function () {\n if (isPageClientInitiated) return;\n isPageClientInitiated = true;\n const device = window.domainDevice || new deviceUtil.DeviceTypeInfo();\n const pageClient = new DomainPageClient();\n pageClient.device = device;\n pageClient.pageType = PageTypeEnum.postDetail;\n\n if (device.isMobile()) {\n pageClient.adsBuilder = mobilePostDetailPageAdsBuilder.setAdsConfAndApply(window.domainAdsConfForMobile) as PageAdsBuilderForSpecialUseCases;\n } else {\n pageClient.adsBuilder = desktopPostDetailPageAdsBuilder.setAdsConfAndApply(window.domainAdsConfForDesktop) as PageAdsBuilderForSpecialUseCases;\n }\n\n window.domainClient = pageClient;\n const isLoggedIn = pageClient.doesCookieExists('loggedIn') && pageClient.doesCookieExists('_sgf_facebook_name') && pageClient.doesCookieExists('_sgf_user_pids');\n pageClient.adsBuilder.setIsEnabled(!isLoggedIn);\n pageClient.adsBuilder.execute();\n}\nexport const initPageClient_PostDetail_SpecialUseCaseAds = () => {\n let loadMoreIndex = 0;\n let intextIndex = 0;\n let nativoIndex = 0;\n\n\n\n document.addEventListener(\"loadmore\", function () {\n loadMoreIndex++;\n console?.log(\"adsBuilder loadMoreIndex:\", loadMoreIndex);\n //@ts-ignore\n window.domainTag.cmd.push(() => {\n //@ts-ignore\n window.domainClient.adsBuilder.executeLoadMoreAds(loadMoreIndex);\n });\n });\n\n document.addEventListener(\"ArticleIntext\", function () {\n intextIndex++;\n console?.log(\"adsBuilder intextIndex:\", intextIndex);\n //@ts-ignore\n window.domainTag.cmd.push(() => {\n //@ts-ignore\n window.domainClient.adsBuilder.executeIntextAds(intextIndex);\n });\n });\n document.addEventListener(\"NativoSlideChanged\", function () {\n nativoIndex++;\n console?.log(\"adsBuilder nativoIndex:\", nativoIndex);\n //@ts-ignore\n window.domainTag.cmd.push(() => {\n //@ts-ignore\n domainClient.adsBuilder.executeNativoAds(nativoIndex);\n });\n });\n\n\n\n}\n\ninitPageClient_PostDetail();\ninitPageClient_PostDetail_SpecialUseCaseAds();\n\ndocument.addEventListener(\"DOMContentLoaded\", (_) => {\n emojiRegisterEventListener();\n loadEmojiData();\n assignEmojiHistory();\n});\n\n\n\n"],"names":["window","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","extend","regexes","extensions","mergedRegexes","i","enumerize","arr","enums","has","str1","str2","lowerize","str","majorize","version","trim","len","rgxMapper","ua","arrays","j","k","p","q","matches","match","regex","props","strMapper","map","oldSafariMap","windowsVersionMap","UAParser","_navigator","_ua","_uach","_rgxmap","_isSelfNav","_browser","_cpu","_device","_engine","_os","module","exports","$","parser","result","prop","this","offset","options","buf","rnds","objUtil","data","_a","uuidv4","deviceUtil","userAgent","DeviceTypeEnum","_DeviceTypeInfo","_b","_c","_d","_e","_f","type","DeviceTypeInfo","logUtil","isLoggerActive","consoleBold","consoleNormal","_logPrefix","prefix","message","numUtil","typeUtil","ObjectIndexer","isNullOrEmpty","urlUtil","name","names","urlParams","key","value","dateUtil","DateTimeHelper","pageUtil","PageTypeEnum","cookieUtil","CookieHelper","cookieName","cookies","fn","event","tcData","isTcfLoaded","complete","f","num","commandFunc","hasError","exception","e","ex","c","domainTagInstance","existingTag","cmdFunc","eventData","_AdSizes","_AdSizesTv","AdUnitTypeEnum","AdUnitSpecialUseCaseEnum","AdLoadingStrategyTypeEnum","timeDif","val","useCaseType","viewport","sizes","deviceTypes","divStyle","bidders","bidderHelper","bidderCode","args","subjectData","elem","prebid","apsSlot","endEvent","deviceType","pageType","targtingMap","targetingMap","adUnit","divId","entry","cmd","adUnits","slots","gptSlot","gm","sm","gmBuild","elemId","firstData","config","pbjsInternalAdUnitCodes","pbjsAdUnits","requestManager","correlationId","adUnitCodes","isFailSafeCall","apsSlots","bids","timeOut","auctionId","gptDivIds","entries","filteredAdUnits","gptAdUnits","newConf","singleRequestRequiredAdUnits","preExecutedDivIds","domContentLoadAdUnits","outOfPAgeAdUnits","error","adIndex","code","bidder","sizeArray","filteredBidders","size","tBidders","b","d","adForm_300x250_desktop","adForm_300x600_desktop","adForm_970x250_desktop","adForm_300x250_mobile","yandex_300x250_mobile","yandex_300x250_desktop","yandex_300x600_desktop","yandex_970x250_desktop","admatic_300x250","admatic_300x600_desktop","admatic_336x280_desktop","admatic_970x250_desktop","taboola_300x250","taboola_300x600","taboola_970x250","CountryEnum","init","index","lmAdUnit","multiAdUnit","mastheadAdUnit","divParent","callback","isArray","input","isObject","a","obj","isUndefined","isNumber","isDate","res","arrLen","format","locale","strict","m","fun","t","flags","parsedParts","isNowValid","to","from","momentPropertiesLen","msg","firstTime","arg","argLen","isFunction","parentConfig","childConfig","mom","now","output","number","targetLength","forceSign","absNumber","zerosToFill","sign","token","padded","ordinal","func","array","length","replaceLongDateFormatTokens","formatUpper","tok","withoutSuffix","string","isFuture","diff","units","inputObject","normalizedInput","normalizedProp","unitsObj","u","strictRegex","isStrict","localeData","s","matched","p1","p2","p3","p4","argumentForCoercion","coercedNumber","tokenLen","year","y","unit","keepTime","isUTC","month","date","prioritized","prioritizedLen","n","x","o","modMonth","monthName","ii","llc","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","h","M","ms","dow","doy","fwd","fwdlw","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","resWeek","weekOffsetNext","ws","weekdays","weekdayName","day","minPieces","minp","shortp","longp","lowercase","kInput","pos","pos1","pos2","hours","minutes","isLower","arr1","arr2","minl","next","split","oldLocale","aliasedRequire","values","tmpLocale","overflow","l","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffset","militaryOffset","numOffset","hm","parsedArray","defaults","nowValue","currentDate","expectedWeekday","yearToUse","w","weekYear","temp","weekdayOverflow","curWeek","tokens","skipped","stringLength","totalParsedInputLength","era","hour","meridiem","isPm","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","dayOrDate","other","moments","unitHasDecimal","orderLen","duration","years","quarters","months","weeks","days","seconds","milliseconds","array1","array2","dontConvert","lengthDiff","diffs","separator","matcher","chunk","parts","model","keepLocalTime","keepMinutes","localAdjust","tZone","ret","diffRes","inp","base","direction","period","dur","tmp","isAdding","updateOffset","isString","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","item","myMoment","time","formats","sod","localInput","inclusivity","localFrom","localTo","inputMs","asFloat","that","zoneDelta","wholeMonthDiff","anchor","anchor2","adjust","toString","keepOffset","utc","zone","datetime","suffix","inputString","newLocaleData","dividend","divisor","startOfDate","toArray","eras","eraName","abbr","narrow","dir","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","getter","weekInfo","weeksTarget","dayOfYearData","field","setter","out","localeSorted","shift","monthsFromDays","alias","posNegDuration","thresholds","roundingFunction","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","total","totalSign","ymSign","daysSign","hmsSign","target","source","converter","defaultAttributes","set","attributes","stringifiedAttributes","attributeName","get","jar","found","currencyUtil","CurrencyCode","_Currency","Currency","global","thisArg","cache","thing","prototype","kind","allOwnKeys","keys","_key","context","caseless","assignValue","targetKey","content","constructor","superConstructor","descriptors","sourceObj","destObj","filter","propFilter","merged","searchString","position","lastIndex","TypedArray","iterator","pair","regExp","hasOwnProperty","reducer","reducedDescriptors","descriptor","arrayOrString","delimiter","define","noop","defaultValue","alphabet","stack","visit","reducedValue","b64","validLen","placeHoldersLen","lens","curByte","uint8","start","end","extraBytes","maxChunkLength","len2","buffer","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","alloc","fill","encoding","checked","byteLength","actual","fromArrayLike","arrayView","copy","byteOffset","numberIsNaN","list","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","max","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","last","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","range","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","leadSurrogate","byteArray","src","dst","table","i16","BufferBigIntNotDefined","request","response","utils","customProps","axiosError","path","dots","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","exposedHelpers","build","encode","charMap","params","encoder","_encode","url","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","id","URLSearchParams","FormData","Blob","product","platform","helpers","buildPath","isNumericKey","isLast","rawValue","headers","contentType","hasJSONContentType","isObjectPayload","isFileList","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","rawHeaders","line","header","tokensRE","isHeaderNameFilter","char","accessorName","methodName","arg1","arg2","arg3","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","normalized","targets","asStrings","computed","accessors","defineAccessor","mapped","headerValue","fns","AxiosHeaders","resolve","reject","validateStatus","expires","domain","secure","cookie","baseURL","relativeURL","requestedURL","msie","urlParsingNode","originURL","resolveURL","href","requestURL","samplesCount","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","passed","listener","isDownloadStream","bytesNotified","_speedometer","loaded","progressBytes","rate","inRange","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","done","username","password","fullPath","onloadend","responseHeaders","err","timeoutErrorMessage","xsrfValue","cancel","protocol","reason","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","merge","configValue","validators","validator","formatMessage","opt","desc","opts","schema","allowUnknown","instanceConfig","InterceptorManager","configOrUrl","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","executor","resolvePromise","onfulfilled","_resolve","payload","defaultConfig","Axios","instance","CancelToken","promises","HttpStatusCode","httpUtil","ContentTypeEnum","httpPost","responseCallBack","errorCallBack","logger","axios","httpPostPromise","httpGet","momentUtil","moment","marker","timeout","process","outputType","sharedMemory","notString","blocks","h0","h1","h2","h3","h4","dataView","hashUtil","hashSha1","sourceStr","hash","mod","dataT","ttlInMinutes","expiryObj","dataString","dataObj","Cookies","ttlObjc","_StorageManager","existingData","storageData","histItem","button","count","emotions","postIdArray","uniquePostIds","dataToSave","postId","emotionId","reactionList","currentReaction","previousEmotionId","emotion","existingChangeIndex","change","filtered","maxSize","countStr","device","pageClient","isLoggedIn","loadMoreIndex","intextIndex","nativoIndex","_"],"mappings":";;;;;;AAUA,GAAC,SAAUA,GAAQC,GAAW;AAS1B,QAAIC,IAAc,UACdC,IAAc,IACdC,IAAc,KACdC,IAAc,YACdC,IAAc,aACdC,IAAc,UACdC,IAAc,UACdC,IAAc,SACdC,IAAc,SACdC,IAAc,QACdC,IAAc,QACdC,IAAc,UACdC,IAAc,WACdC,IAAc,gBACdC,IAAc,WACdC,IAAc,UACdC,IAAc,UACdC,IAAc,WACdC,IAAc,YACdC,KAAc,YACdC,IAAgB,KAEhBC,KAAU,UACVC,IAAU,SACVC,KAAU,QACVC,KAAa,cACbC,IAAU,WACVC,KAAU,UACVC,KAAU,QACVC,KAAU,WACVC,KAAU,UACVC,KAAU,UACVC,KAAU,MACVC,KAAY,aACZC,KAAY,YACZC,KAAU,SACVC,KAAU,WACVC,IAAU,SACVC,IAAU,QACVC,KAAU,UACVC,KAAU,SACVC,KAAc,YACdC,KAAc,eACdC,KAAU,UAMVC,IAAS,SAAUC,GAASC,GAAY;AACpC,UAAIC,IAAgB,CAAA;AACpB,eAASC,KAAKH;AACV,QAAIC,EAAWE,CAAC,KAAKF,EAAWE,CAAC,EAAE,SAAS,MAAM,IAC9CD,EAAcC,CAAC,IAAIF,EAAWE,CAAC,EAAE,OAAOH,EAAQG,CAAC,CAAC,IAElDD,EAAcC,CAAC,IAAIH,EAAQG,CAAC;AAGpC,aAAOD;AAAA,IACV,GACDE,KAAY,SAAUC,GAAK;AAEvB,eADIC,IAAQ,CAAA,GACHH,IAAE,GAAGA,IAAEE,EAAI,QAAQF;AACxB,QAAAG,EAAMD,EAAIF,CAAC,EAAE,YAAW,CAAE,IAAIE,EAAIF,CAAC;AAEvC,aAAOG;AAAA,IACV,GACDC,KAAM,SAAUC,GAAMC,GAAM;AACxB,aAAO,OAAOD,MAAS9C,IAAWgD,GAASD,CAAI,EAAE,QAAQC,GAASF,CAAI,CAAC,MAAM,KAAK;AAAA,IACrF,GACDE,KAAW,SAAUC,GAAK;AACtB,aAAOA,EAAI;IACd,GACDC,KAAW,SAAUC,GAAS;AAC1B,aAAO,OAAOA,MAAanD,IAAWmD,EAAQ,QAAQ,YAAYxD,CAAK,EAAE,MAAM,GAAG,EAAE,CAAC,IAAIF;AAAAA,IAC5F,GACD2D,IAAO,SAAUH,GAAKI,GAAK;AACvB,UAAI,OAAOJ,MAASjD;AAChB,eAAAiD,IAAMA,EAAI,QAAQ,UAAUtD,CAAK,GAC1B,OAAO0D,MAASvD,IAAamD,IAAMA,EAAI,UAAU,GAAGnC,CAAa;AAAA,IAExF,GAMQwC,IAAY,SAAUC,GAAIC,GAAQ;AAK9B,eAHIf,IAAI,GAAGgB,GAAGC,GAAGC,GAAGC,GAAGC,GAASC,GAGzBrB,IAAIe,EAAO,UAAU,CAACK,KAAS;AAElC,YAAIE,IAAQP,EAAOf,CAAC,GAChBuB,IAAQR,EAAOf,IAAI,CAAC;AAIxB,aAHAgB,IAAIC,IAAI,GAGDD,IAAIM,EAAM,UAAU,CAACF,KAEnBE,EAAMN,CAAC;AAGZ,cAFAI,IAAUE,EAAMN,GAAG,EAAE,KAAKF,CAAE,GAEtBM;AACF,iBAAKF,IAAI,GAAGA,IAAIK,EAAM,QAAQL;AAC1B,cAAAG,IAAQD,EAAQ,EAAEH,CAAC,GACnBE,IAAII,EAAML,CAAC,GAEP,OAAOC,MAAM7D,KAAY6D,EAAE,SAAS,IAChCA,EAAE,WAAW,IACT,OAAOA,EAAE,CAAC,KAAK/D,IAEf,KAAK+D,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,EAAE,KAAK,MAAME,CAAK,IAGlC,KAAKF,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,IAEbA,EAAE,WAAW,IAEhB,OAAOA,EAAE,CAAC,MAAM/D,KAAa,EAAE+D,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE,QAEjD,KAAKA,EAAE,CAAC,CAAC,IAAIE,IAAQF,EAAE,CAAC,EAAE,KAAK,MAAME,GAAOF,EAAE,CAAC,CAAC,IAAInE,IAGpD,KAAKmE,EAAE,CAAC,CAAC,IAAIE,IAAQA,EAAM,QAAQF,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,IAAInE,IAE9CmE,EAAE,WAAW,MAChB,KAAKA,EAAE,CAAC,CAAC,IAAIE,IAAQF,EAAE,CAAC,EAAE,KAAK,MAAME,EAAM,QAAQF,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,IAAInE,KAG1E,KAAKmE,CAAC,IAAIE,KAAgBrE;AAK1C,QAAAgD,KAAK;AAAA,MACR;AAAA,IACJ,GAEDwB,KAAY,SAAUhB,GAAKiB,GAAK;AAE5B,eAASzB,KAAKyB;AAEV,YAAI,OAAOA,EAAIzB,CAAC,MAAM1C,KAAYmE,EAAIzB,CAAC,EAAE,SAAS;AAC9C,mBAASgB,IAAI,GAAGA,IAAIS,EAAIzB,CAAC,EAAE,QAAQgB;AAC/B,gBAAIZ,GAAIqB,EAAIzB,CAAC,EAAEgB,CAAC,GAAGR,CAAG;AAClB,qBAAQR,MAAM7C,IAAWH,IAAYgD;AAAA,mBAGtCI,GAAIqB,EAAIzB,CAAC,GAAGQ,CAAG;AACtB,iBAAQR,MAAM7C,IAAWH,IAAYgD;AAG7C,aAAOQ;AAAA,IACnB,GAOQkB,KAAe;AAAA,MACX,OAAU;AAAA,MACV,OAAU;AAAA,MACV,OAAU;AAAA,MACV,OAAU;AAAA,MACV,SAAU;AAAA,MACV,SAAU;AAAA,MACV,SAAU;AAAA,MACV,KAAU;AAAA,IACb,GACDC,KAAoB;AAAA,MAChB,IAAc;AAAA,MACd,WAAc;AAAA,MACd,UAAc;AAAA,MACd,KAAc;AAAA,MACd,IAAc,CAAC,UAAU,QAAQ;AAAA,MACjC,OAAc;AAAA,MACd,GAAc;AAAA,MACd,GAAc;AAAA,MACd,OAAc;AAAA,MACd,IAAc,CAAC,UAAU,SAAS;AAAA,MAClC,IAAc;AAAA,IAC1B,GAMQ9B,KAAU;AAAA,MAEV,SAAU;AAAA,QAAC;AAAA,UAEP;AAAA;AAAA,QACC;AAAA,QAAE,CAAChC,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,MAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9B;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAMyB,KAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,QACC;AAAA,QAAE,CAACtB,GAAS,CAACH,GAAMyB,EAAK,CAAC;AAAA,QAAG;AAAA;AAAA,UAG7B;AAAA;AAAA,QACC;AAAA,QAAE,CAACtB,GAAS,CAACH,GAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAM,OAAKgB,CAAO,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAACb,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,WAAW,CAAC;AAAA,QAAG;AAAA,UACnC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,IAAI,CAAC;AAAA,QAAG;AAAA,UAC5B;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAM,kBAAgBgB,CAAO,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAAChB,GAAM,QAAQ,eAAagB,CAAO,GAAGb,CAAO;AAAA,QAAG;AAAA,UACpD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAMmB,KAAQ,QAAQ,CAAC;AAAA,QAAG;AAAA,UACxC;AAAA;AAAA,QACZ;AAAA,QAAe,CAAChB,GAAS,CAACH,GAAMyB,KAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,QACC;AAAA,QAAE,CAACtB,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMyB,KAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACtB,GAAS,CAACH,GAAM,UAAQgB,CAAO,CAAC;AAAA,QAAG;AAAA,UACvC;AAAA;AAAA,QACC;AAAA,QAAE,CAACb,GAAS,CAACH,GAAMmB,EAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACnB,GAAM,SAASgB,CAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA,QACZ;AAAA,QAAe,CAAC,CAAChB,GAAM,QAAQ,QAAQgB,CAAO,GAAGb,CAAO;AAAA,QAAG;AAAA;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAM0B,KAAU,WAAW,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAAC1B,GAAM,MAAM,GAAG,GAAGG,CAAO;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,gBAAgB,CAAC;AAAA,QAAG;AAAA,UACxC;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAM,cAAc,GAAGG,CAAO;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,CAAI;AAAA,QAAG;AAAA;AAAA,UAGX;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAM+B,EAAQ,GAAG5B,CAAO;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,KAAK,CAAC;AAAA,QAAG;AAAA,UAC7B;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAEhC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMiB,KAAO,WAAW,CAAC;AAAA,QAAG;AAAA,UAE1C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACjB,GAAMiB,KAAO,UAAU,GAAGd,CAAO;AAAA,QAAG;AAAA,UAEzC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAM,aAAWgB,CAAO,CAAC;AAAA,QAAG;AAAA,UAE1C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAChB,GAAMG,CAAO;AAAA,QAAG;AAAA,UAEpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,eAAe,CAAC;AAAA,QAAG;AAAA,UACvC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAASH,CAAI;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAM,CAACG,GAAS2D,IAAWE,EAAY,CAAC;AAAA,QAAG;AAAA,UAE/C;AAAA,QACZ;AAAA,QAAe,CAAChE,GAAMG,CAAO;AAAA,QAAG;AAAA;AAAA,UAGpB;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACH,GAAM,UAAU,GAAGG,CAAO;AAAA,QAAG;AAAA,UAClC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAMmB,KAAQ,UAAU,CAAC;AAAA,QAAG;AAAA,UAC1C;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACnB,GAAMG,CAAO;AAAA,QAAG;AAAA,UAEpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACH,GAAM,CAACG,GAAS,gBAAgB,EAAE,CAAC;AAAA,MAC1C;AAAA,MAED,KAAM;AAAA,QAAC;AAAA,UAEH;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACC,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA,UAE9B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAcyC,EAAQ,CAAC;AAAA,QAAG;AAAA,UAE/B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACzC,GAAc,MAAM,CAAC;AAAA,QAAG;AAAA,UAE7B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA,UAE9B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9B;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAc,KAAK,CAAC;AAAA,QAAG;AAAA,UAE5B;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACA,GAAc,QAAQZ,GAAOqD,EAAQ,CAAC;AAAA,QAAG;AAAA,UAE9C;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACzC,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA,UAE9B;AAAA;AAAA,QAEZ;AAAA,QAAe,CAAC,CAACA,GAAcyC,EAAQ,CAAC;AAAA,MAC/B;AAAA,MAED,QAAS;AAAA,QAAC;AAAA;AAAA;AAAA;AAAA;AAAA,UAON;AAAA,QACZ;AAAA,QAAe,CAAC9C,GAAO,CAACG,GAAQwB,EAAO,GAAG,CAACzB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQwB,EAAO,GAAG,CAACzB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQW,CAAK,GAAG,CAACZ,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQW,CAAK,GAAG,CAACZ,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA,QACC;AAAA,QAAE,CAACR,GAAO,CAACG,GAAQW,CAAK,CAAC;AAAA,QAAG;AAAA;AAAA,UAG7B;AAAA,QACZ;AAAA,QAAe,CAACd,GAAO,CAACG,GAAQyB,CAAK,GAAG,CAAC1B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG7C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQmB,EAAM,GAAG,CAACpB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQmB,EAAM,GAAG,CAACpB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAO,MAAM,GAAG,GAAG,CAACG,GAAQ2B,EAAM,GAAG,CAAC5B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC3D;AAAA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAC,CAAC,CAACP,GAAO,MAAM,GAAG,GAAG,CAACG,GAAQ2B,EAAM,GAAG,CAAC5B,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG1D;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGhD;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQsB,EAAQ,GAAG,CAACvB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAChD;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQsB,EAAQ,GAAG,CAACvB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGhD;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQoB,EAAE,GAAG,CAACrB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC1C;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQoB,EAAE,GAAG,CAACrB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG1C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGhD;AAAA,UACA;AAAA,QACC;AAAA,QAAE,CAAC,CAACR,GAAO,MAAM,GAAG,GAAG,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG5D;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQkB,EAAM,GAAG,CAACnB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQkB,EAAM,GAAG,CAACnB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5C;AAAA,UACA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAO,eAAe,GAAG,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG/D;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjD;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQU,EAAM,GAAG,CAACX,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACR,GAAO,SAAS,eAAe,GAAG,CAACG,GAAQU,EAAM,GAAG,CAACX,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG1E;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAOG,GAAQ,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQa,EAAU,GAAG,CAACd,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGlD;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQY,EAAI,GAAG,CAACb,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5C;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQY,EAAI,GAAG,CAACb,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG5C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA;AAAA,UAGA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACL,GAAQ,CAACH,GAAO,MAAM,GAAG,GAAG,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjD;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG/C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjD;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACJ,GAAQH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAEpC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACJ,GAAQH,GAAO,CAACE,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAEpC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQqB,EAAS,GAAG,CAACtB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,WAAW,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACnD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,gBAAgB,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACxD;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,UAAU,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAClD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACL,GAAQ,cAAc,GAAGH,GAAO,CAACE,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACtD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,UAAU,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAClD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,UAAU,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAClD;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACL,GAAQ,OAAO,GAAGH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACJ,GAAQ,OAAO,GAAGH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,WAAW,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACnD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,WAAW,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACnD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAChD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACL,GAAQH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAO,OAAO,GAAG,GAAG,CAACG,GAAQqB,EAAS,GAAG,CAACtB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/D;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ4B,EAAK,GAAG,CAAC7B,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ4B,EAAK,GAAG,CAAC7B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAM7C;AAAA;AAAA,QACC;AAAA,QAAE,CAACJ,GAAQ,CAACD,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC9B;AAAA,QACC;AAAA,QAAE,CAAC,CAACT,GAAO,KAAK,SAAS,GAAG,CAACG,GAAQwB,EAAO,GAAG,CAACzB,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAClE;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACN,GAAQoB,EAAE,GAAG,CAACrB,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAQ,CAACH,GAAOc,IAAM,KAAK,GAAG,CAACZ,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACpD;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACT,GAAOkB,KAAO,MAAM,GAAG,CAACf,GAAQkB,EAAM,GAAG,CAACnB,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAChE;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQU,EAAM,GAAG,CAACX,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQyB,CAAK,GAAG,CAAC1B,GAAMO,CAAO,CAAC;AAAA,QAAE;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQ2B,EAAM,GAAG,CAAC5B,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAQH,GAAO,CAACE,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACN,GAAQ+C,CAAI,GAAG,CAAClD,GAAOkD,CAAI,GAAG,CAAChD,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACrD;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMtB;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAQH,GAAO,CAACE,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAO,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAO,CAACG,GAAQqB,EAAS,GAAG,CAACtB,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMlD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAQH,GAAO,CAACE,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQW,CAAK,GAAG,CAACZ,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQkB,EAAM,GAAG,CAACnB,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UAChD;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQ4B,EAAK,GAAG,CAAC7B,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQ6B,EAAQ,GAAG,CAAC9B,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMlD;AAAA;AAAA,QACC;AAAA,QAAE,CAACP,GAAQ,CAACD,GAAMS,EAAQ,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,QACZ;AAAA,QAAe,CAACX,GAAO,CAACG,GAAQU,EAAM,GAAG,CAACX,GAAMS,EAAQ,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMhD;AAAA;AAAA,QACC;AAAA,QAAE,CAACX,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5B;AAAA;AAAA,QACC;AAAA,QAAE,CAACP,GAAO,CAACE,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACN,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACrB;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACN,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACrB;AAAA;AAAA,QACC;AAAA,QAAE,CAACP,GAAO,CAACG,GAAQ,SAAS,CAAC;AAAA,MACjC;AAAA,MAED,QAAS;AAAA,QAAC;AAAA,UAEN;AAAA;AAAA,QACZ;AAAA,QAAe,CAACC,GAAS,CAACH,GAAMkB,KAAK,MAAM,CAAC;AAAA,QAAG;AAAA,UAEnC;AAAA;AAAA,QACC;AAAA,QAAE,CAACf,GAAS,CAACH,GAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UAE/B;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UAEpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAASH,CAAI;AAAA,MACpB;AAAA,MAED,IAAK;AAAA,QAAC;AAAA;AAAA,UAGF;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAM,CAACG,GAAS2D,IAAWG,EAAiB,CAAC;AAAA,QAAG;AAAA,UACpD;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAAC,CAAC9D,GAAS2D,IAAWG,EAAiB,GAAG,CAACjE,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjE;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACG,GAAS,MAAM,GAAG,GAAG,CAACH,GAAM,KAAK,CAAC;AAAA,QAAG;AAAA,UAC1C;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACA,GAAMiC,EAAM,GAAG,CAAC9B,GAAS,MAAM,GAAG,CAAC;AAAA,QAAG;AAAA;AAAA,UAG3C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAASH,CAAI;AAAA,QAAG;AAAA;AAAA,UACpB;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAMe,EAAU,CAAC;AAAA,QAAG;AAAA,UAClC;AAAA;AAAA,QACC;AAAA,QAAE,CAACZ,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMmB,KAAQ,KAAK,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAAChB,GAAS,CAACH,GAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMiB,KAAO,MAAM,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACjB,GAAMgC,EAAW,GAAG7B,CAAO;AAAA,QAAE;AAAA;AAAA,UAGlC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACH,GAAM,SAAS,GAAGG,CAAO;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,MACpB;AAAA,IACT,GAMQ+D,IAAW,SAAUd,GAAIhB,GAAY;AAOrC,UALI,OAAOgB,MAAOxD,MACdwC,IAAagB,GACbA,IAAK9D,IAGL,EAAE,gBAAgB4E;AAClB,eAAO,IAAIA,EAASd,GAAIhB,CAAU,EAAE,UAAS;AAGjD,UAAI+B,IAAc,OAAO9E,MAAWM,KAAcN,EAAO,YAAaA,EAAO,YAAYC,GACrF8E,IAAMhB,MAAQe,KAAcA,EAAW,YAAaA,EAAW,YAAY3E,IAC3E6E,IAASF,KAAcA,EAAW,gBAAiBA,EAAW,gBAAgB7E,GAC9EgF,IAAUlC,IAAaF,EAAOC,IAASC,CAAU,IAAID,IACrDoC,IAAaJ,KAAcA,EAAW,aAAaC;AAEvD,kBAAK,aAAa,WAAY;AAC1B,YAAII,IAAW,CAAA;AACf,eAAAA,EAASxE,CAAI,IAAIV,GACjBkF,EAASrE,CAAO,IAAIb,GACpB6D,EAAU,KAAKqB,GAAUJ,GAAKE,EAAQ,OAAO,GAC7CE,EAAS1E,CAAK,IAAIiD,GAASyB,EAASrE,CAAO,CAAC,GAExCoE,KAAcJ,KAAcA,EAAW,SAAS,OAAOA,EAAW,MAAM,WAAWzE,MACnF8E,EAASxE,CAAI,IAAI,UAEdwE;AAAA,MACnB,GACQ,KAAK,SAAS,WAAY;AACtB,YAAIC,IAAO,CAAA;AACX,eAAAA,EAAKrE,CAAY,IAAId,GACrB6D,EAAU,KAAKsB,GAAML,GAAKE,EAAQ,GAAG,GAC9BG;AAAA,MACnB,GACQ,KAAK,YAAY,WAAY;AACzB,YAAIC,IAAU,CAAA;AACd,eAAAA,EAAQxE,CAAM,IAAIZ,GAClBoF,EAAQ3E,CAAK,IAAIT,GACjBoF,EAAQzE,CAAI,IAAIX,GAChB6D,EAAU,KAAKuB,GAASN,GAAKE,EAAQ,MAAM,GACvCC,KAAc,CAACG,EAAQzE,CAAI,KAAKoE,KAASA,EAAM,WAC/CK,EAAQzE,CAAI,IAAIK,IAGhBiE,KAAcG,EAAQ3E,CAAK,KAAK,eAAeoE,KAAc,OAAOA,EAAW,eAAexE,KAAcwE,EAAW,kBAAkBA,EAAW,iBAAiB,MACrKO,EAAQ3E,CAAK,IAAI,QACjB2E,EAAQzE,CAAI,IAAIM,IAEbmE;AAAA,MACnB,GACQ,KAAK,YAAY,WAAY;AACzB,YAAIC,IAAU,CAAA;AACd,eAAAA,EAAQ3E,CAAI,IAAIV,GAChBqF,EAAQxE,CAAO,IAAIb,GACnB6D,EAAU,KAAKwB,GAASP,GAAKE,EAAQ,MAAM,GACpCK;AAAA,MACnB,GACQ,KAAK,QAAQ,WAAY;AACrB,YAAIC,IAAM,CAAA;AACV,eAAAA,EAAI5E,CAAI,IAAIV,GACZsF,EAAIzE,CAAO,IAAIb,GACf6D,EAAU,KAAKyB,GAAKR,GAAKE,EAAQ,EAAE,GAC/BC,KAAc,CAACK,EAAI5E,CAAI,KAAKqE,KAASA,EAAM,YAAY,cACvDO,EAAI5E,CAAI,IAAIqE,EAAM,SACG,QAAQ,cAAcrC,EAAW,EACjC,QAAQ,UAAUC,EAAM,IAE1C2C;AAAA,MACnB,GACQ,KAAK,YAAY,WAAY;AACzB,eAAO;AAAA,UACH,IAAU,KAAK,MAAO;AAAA,UACtB,SAAU,KAAK,WAAY;AAAA,UAC3B,QAAU,KAAK,UAAW;AAAA,UAC1B,IAAU,KAAK,MAAO;AAAA,UACtB,QAAU,KAAK,UAAW;AAAA,UAC1B,KAAU,KAAK,OAAQ;AAAA,QACvC;AAAA,MACA,GACQ,KAAK,QAAQ,WAAY;AACrB,eAAOR;AAAA,MACnB,GACQ,KAAK,QAAQ,SAAUhB,GAAI;AACvB,eAAAgB,IAAO,OAAOhB,MAAOvD,KAAYuD,EAAG,SAASzC,IAAiBsC,EAAKG,GAAIzC,CAAa,IAAIyC,GACjF;AAAA,MACnB,GACQ,KAAK,MAAMgB,CAAG,GACP;AAAA,IACf;AAEI,IAAAF,EAAS,UAAU3E,GACnB2E,EAAS,UAAW3B,GAAU,CAACvC,GAAMG,GAASL,CAAK,CAAC,GACpDoE,EAAS,MAAM3B,GAAU,CAACnC,CAAY,CAAC,GACvC8D,EAAS,SAAS3B,GAAU,CAACxC,GAAOG,GAAQD,GAAMI,GAASC,GAAQE,GAASD,GAAQE,GAAUC,EAAQ,CAAC,GACvGwD,EAAS,SAASA,EAAS,KAAK3B,GAAU,CAACvC,GAAMG,CAAO,CAAC,GASjB0E,EAAO,YACvCC,IAAUD,EAAiB,UAAAX,IAE/BY,EAAA,WAAmBZ;AAkBvB,QAAIa,IAAI,OAAO1F,MAAWM,MAAeN,EAAO,UAAUA,EAAO;AACjE,QAAI0F,KAAK,CAACA,EAAE,IAAI;AACZ,UAAIC,IAAS,IAAId;AACjB,MAAAa,EAAE,KAAKC,EAAO,aACdD,EAAE,GAAG,MAAM,WAAY;AACnB,eAAOC,EAAO;MAC1B,GACQD,EAAE,GAAG,MAAM,SAAU3B,GAAI;AACrB,QAAA4B,EAAO,MAAM5B,CAAE;AACf,YAAI6B,IAASD,EAAO;AACpB,iBAASE,KAAQD;AACb,UAAAF,EAAE,GAAGG,CAAI,IAAID,EAAOC,CAAI;AAAA,MAExC;AAAA,IACK;AAAA,EAEJ,GAAE,OAAO,UAAW,WAAW,SAASC,cAAI;;;AC96B7C,IAAI;AACJ,MAAM,QAAQ,IAAI,WAAW,EAAE;AAChB,SAAS,MAAM;AAE5B,MAAI,CAAC,oBAEH,kBAAkB,OAAO,SAAW,OAAe,OAAO,mBAAmB,OAAO,gBAAgB,KAAK,MAAM,GAE3G,CAAC;AACH,UAAM,IAAI,MAAM,0GAA0G;AAI9H,SAAO,gBAAgB,KAAK;AAC9B;ACXA,MAAM,YAAY,CAAA;AAElB,SAAS7C,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,YAAU,MAAMA,IAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAG3C,SAAS,gBAAgBE,GAAK4C,IAAS,GAAG;AAG/C,SAAO,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,MAAM,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,MAAM,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,MAAM,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,CAAC,CAAC,IAAI,MAAM,UAAU5C,EAAI4C,IAAS,EAAE,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,EAAE,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,EAAE,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,EAAE,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,EAAE,CAAC,IAAI,UAAU5C,EAAI4C,IAAS,EAAE,CAAC;AACnf;AChBA,MAAM,aAAa,OAAO,SAAW,OAAe,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM,GACvF,SAAA;AAAA,EACb;AACF;ACCA,SAAS,GAAGC,GAASC,GAAKF,GAAQ;AAChC,MAAI,OAAO,cAAc,CAACE,KAAO,CAACD;AAChC,WAAO,OAAO;AAGhB,EAAAA,IAAUA,KAAW;AACrB,QAAME,IAAOF,EAAQ,WAAWA,EAAQ,OAAO;AAK/C,MAHAE,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,IAC3BA,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,KAEvBD,GAAK;AACP,IAAAF,IAASA,KAAU;AAEnB,aAAS9C,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,MAAAgD,EAAIF,IAAS9C,CAAC,IAAIiD,EAAKjD,CAAC;AAG1B,WAAOgD;AAAA,EACR;AAED,SAAO,gBAAgBC,CAAI;AAC7B;ACvBiB,IAAA;AAAA,CAAV,CAAUC,MAAV;AACQA,EAAAA,EAAA,uBAAuB,CAACC,MAAqC;;AACjE,WAAAA,KAAS,UAA8BC,IAAAD,KAAA,gBAAAA,EAAM,WAAN,gBAAAC,EAAc,YAAW,MAAKD,KAAA,gBAAAA,EAAM,YAAW;AAAA,EAAA,GAGlFD,EAAA,gBAAgBA,EAAA,sBAEhBA,EAAA,uBAAuB,CAACC,MAC5BA,KAAS,MAELD,EAAA,uBAAuB,CAACC,MAC5BA,KAAS,MAGLD,EAAA,UAAU,MACdG,GAAO;AAChB,GAhBe,YAAA,UAAA,CAAA,EAAA;ACCjB,MAAM,uBAAqB,QAAQ;AAElB,IAAA;AAAA,CAAV,CAAUC,MAAV;AAGUA,EAAAA,EAAA,cAAc,CAACC,MACjB,sKAAsK,KAAKA,KAAa,UAAU,SAAS,IAG/M,CAAKC,MAAL;AACHA,IAAAA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,UAAU;AAAA,EAAA,GALFF,EAAA,mBAAAA,EAAA,iBAAA,CAAA,EAAA;AAUL,QAAMG,IAAN,MAAMA,EAAe;AAAA,IAGxB,cAAc;;AAEJ,YAAA3C,IADW,IAAIc,gBAAS,UAAAwB,IAAA,iCAAQ,cAAR,gBAAAA,EAAmB,SAAS,EACtC;AACf,WAAA,SAAQM,IAAA5C,EAAG,WAAH,gBAAA4C,EAAW,OACnB,KAAA,UAASC,IAAA7C,EAAG,WAAH,gBAAA6C,EAAW,QACpB,KAAA,UAASC,IAAA9C,EAAG,OAAH,gBAAA8C,EAAO,MAChB,KAAA,aAAYC,IAAA/C,EAAG,OAAH,gBAAA+C,EAAO,SACnB,KAAA,QAAOC,IAAAhD,EAAG,WAAH,gBAAAgD,EAAW,MACnB,qBAAqB,KAAK,IAAI,UAC1BR,EAAA,iBACA,KAAK,OAAO,WAEZ,KAAK,OAAO;AAAA,IAIxB;AAAA,IAOA,YAAmB;AACT,YAAAS,IAAK,KAAK,QAAQ;AAEjB,aADMN,EAAe,eAAe,KAAK,CAAAtC,MAAGA,MAAM4C,CAAI;AAAA,IAEjE;AAAA,IACA,WAAkB;AACR,YAAAA,IAAK,KAAK,QAAQ;AAEjB,aADMN,EAAe,cAAc,KAAK,CAAAtC,MAAGA,MAAM4C,CAAI;AAAA,IAEhE;AAAA,EAWJ;AARI,EAAAN,EAAuB,iBAAiB;AAAA,IAAC;AAAA,IAAwB;AAAA,IAAuB;AAAA;AAAA,EAAsB,GACvFA,EAAA,gBAAgB;AAAA,IAAC;AAAA,IAAuB;AAAA;AAAA,EAAoB,GACnFA,EAAuB,aAAa;AAAA,IAChC;AAAA,IAAsB;AAAA,IACtB;AAAA,IAAwB;AAAA,IAAsB;AAAA;AAAA,EAAA;AA1C/C,MAAMO,IAANP;AAAAH,EAAAA,EAAM,iBAAAU;AAAA,GAjBA,eAAA,aAAA,CAAA,EAAA;ACHA,IAAA;AAAA,CAAV,CAAUC,MAAV;AACD,MAAAC;AACJ,QAAMC,IAAc,qBACdC,IAAgB;AAGtB,MAAIC,IAAa;AACJJ,EAAAA,EAAA,UAAU,MAAe;;AACpC,WAAIC,KAAkB,SACtBA,MAAiBR,KAAAN,IAAA,OAAO,aAAP,gBAAAA,EAAiB,WAAjB,gBAAAM,EAAyB,QAAQ,iBAAgB,IAC3DQ;AAAA,EAAA,GAEID,EAAA,eAAe,CAACK,MAAmB;AACjC,IAAAD,IAAAC,OACbL,EAAA;EAAQ,OAEVA,EAAA,cAAaI,CAAU,GASVJ,EAAA,aAAa,IAAId,MAAa;AACzC,IAAIe,MACA,2BAAS,IAAI,KAAKG,CAAU,MAAMF,GAAaC,GAAc,GAAGjB;AAAA,EAClE,GAGSc,EAAA,cAAc,IAAId,MAAc;AAC3C,+BAAS,KAAK,KAAKkB,CAAU,MAAMF,GAAaC,GAAe,GAAGjB;AAAA,EAAI,GAG3Dc,EAAA,eAAe,IAAId,MAAc;AAC5C,+BAAS,MAAM,KAAKkB,CAAU,MAAMF,GAAaC,GAAe,GAAGjB;AAAA,EAAI,GAG5Dc,EAAA,aAAa,CAACM,MAAoB;AACvC,UAAA,IAAI,MAAMA,CAAO;AAAA,EAAA,GAGZN,EAAA,iBAAiB,CAACM,MAAoB;AAC3C,UAAA,IAAI,UAAUA,CAAO;AAAA,EAAA;AAE7B,GA9Ce,YAAA,UAAA,CAAA,EAAA;ACFA,IAAA;AAAA,CAAV,CAAUC,MAAV;AACQA,EAAAA,EAAA,eAAe,OACf,oBAAA,KAAA,GAAO,QAAA,IAAY;AAChC,GAHe,YAAA,UAAA,CAAA,EAAA;ACAA,IAAA;AAAA,CAAV,CAAUC,MAAV;AAAA,EAUI,MAAMC,EAA8C;AAAA,EAE3D;AAFOD,EAAAA,EAAM,gBAAAC;AAAA,GAVA,aAAA,WAAA,CAAA,EAAA;ACEjB,MAAMC,kBAAc,QAAQ;AAGX,IAAA;AAAA,CAAV,CAAUC,MAAV;AACUA,EAAAA,EAAA,yBAAyB,CAACC,MAAoC;AAEjE,UAAA1B,IADY,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACrC,IAAI0B,CAAI;AAC/B,WAAO1B,KAAc;AAAA,EAAA,GAGZyB,EAAA,qBAAqB,MAAyB;;AAEhD,YAAAxB,IAAA,iCAAQ,aAAR,gBAAAA,EAAkB;AAAA,EAAS,GAGzBwB,EAAA,sBAAsB,MAAyB;AACxD,UAAMzB,IAAO,qCAAU;AAChB,WAAAwB,gBAAcxB,CAAI,IAAI,SAAYA;AAAA,EAAA,GAGhCyB,EAAA,qBAAqB,MAAyB;;AACvD,YAAOxB,IAAA,iCAAQ,aAAR,gBAAAA,EAAkB;AAAA,EAAA,GAGhBwB,EAAA,0BAA0B,CAACE,MAAyD;AAC7F,UAAMC,IAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM,GACtDpC,wBAAa;AACnB,WAAAmC,EAAM,IAAI,CAAK3D,MAAA;AACL,YAAAgC,IAAO4B,EAAU,IAAI5D,CAAC;AAC5B,MAAAwB,EAAO,IAAIxB,GAAGgC,KAAc,MAAS;AAAA,IAAA,CACxC,GACMR;AAAA,EAAA,GAEEiC,EAAA,6BAA6B,MAAsC;AACtE,UAAAjC,wBAAa,OACboC,IAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,eAAW,CAACC,GAAKC,CAAK,KAAKF;AAChB,MAAApC,EAAA,IAAIqC,GAAKC,CAAK;AAElB,WAAAtC;AAAA,EAAA;AACX,GArCa,YAAA,UAAA,CAAA,EAAA;ACJA,IAAA;AAAA,CAAV,CAAUuC,MAAV;AAAA,EAEA,MAAMC,EAAe;AAAA,IACjB,eAAc;AACV,cAAA,oBAAI,QAAO;IACtB;AAAA,EAEJ;AALOD,EAAAA,EAAM,iBAAAC,GAOAD,EAAA,WAAS,IAAIC;AAAe,GATxB,aAAA,WAAA,CAAA,EAAA;ACDA,IAAA;AAAA,CAAV,CAAUC,MAAV;AACI,GAAA,CAAKC,MAAL;AACHA,IAAAA,EAAA,aAAa,gBACbA,EAAA,QAAQ,SACRA,EAAA,WAAW,aACXA,EAAA,aAAa,QACbA,EAAA,eAAe,kBACfA,EAAA,aAAa,eACbA,EAAA,MAAM,OACNA,EAAA,iBAAiB,mBACjBA,EAAA,oCAAoC,8BACpCA,EAAA,eAAe,iBACfA,EAAA,WAAW,YACXA,EAAA,UAAU,WACVA,EAAA,gBAAgB,kBAChBA,EAAA,OAAO,QACPA,EAAA,WAAW,YACXA,EAAA,WAAW,YACXA,EAAA,eAAe,iBACfA,EAAA,eAAe,iBACfA,EAAA,iBAAiB,oBACjBA,EAAA,iBAAiB,eACjBA,EAAA,eAAe,kBACfA,EAAA,cAAc,gBACdA,EAAA,aAAa,mBACbA,EAAA,MAAM,YACNA,EAAA,UAAU,WACVA,EAAA,aAAa;AAAA,EAAA,GA1BLD,EAAA,iBAAAA,EAAA,eAAA,CAAA,EAAA;AAAA,GADC,aAAA,WAAA,CAAA,EAAA;ACAA,IAAA;AAAA,CAAV,CAAUE,MAAV;AAAA,EACI,MAAMC,EAAa;AAAA,IACf,iBAAiBC,GAAoB;AACxC,YAAMC,IAAU,SAAS,OAAO,MAAM,GAAG;AACzC,eAASzF,IAAI,GAAGA,IAAIyF,EAAQ,QAAQzF;AAEhC,YADeyF,EAAQzF,CAAC,EAAE,KAAK,EACpB,WAAWwF,IAAa,GAAG;AAC3B,iBAAA;AAGR,aAAA;AAAA,IACX;AAAA,EAEJ;AAZOF,EAAAA,EAAM,eAAAC,GAcAD,EAAA,eAAe,IAAIC;AAAa,GAfhC,eAAA,aAAA,CAAA,EAAA;ACGV,MAAe,cAAiB;AAAA,EAQnC,cAAc;AAJd,SAAA,gBAA4C,IAAI,SAC1B,KAAA,sBAAA,IACR,KAAA,cAAA,IACE,KAAA,gBAAA,IAuBhB,KAAQ,gBAAgB,GACxB,KAAQ,aAAa;AAAA,EArBrB;AAAA,EACA,QAAQpC,GAAU;AACd,SAAK,OAAOA;AAAA,EAChB;AAAA,EACA,kBAAkBA,GAAU;AACxB,SAAK,OAAOA,GACZ,KAAK,QAAQ;AAAA,EACjB;AAAA,EACA,UAAU;AACC,WAAA,KAAK,QAAQ;EACxB;AAAA,EACO,UAAUuC,GAA8B;AAEtC,SAAA,cAAc,KAAKA,CAAE,GACtB,KAAK,eAAeA,KACpBA,EAAG,KAAK,IAAI;AAAA,EAEpB;AAAA,EAKO,UAAU;AAGT,QAFJ,KAAK,cAAc,IACnB,QAAQ,WAAW,GAAG,KAAK,IAAI,wBAAwB,KAAK,IAAI,GAC5D,OAAK,uBAAuB,KAAK,gBACjC,OAAK,cAAc,WAAW,KAAK,KAAK,cAAc,KAAK,gBAC3D;AAAA,UAAA,KAAK,cAAc,WAAW,GAAG;AAC5B,aAAA,cACL,WAAW,MAAM;AACb,eAAK,QAAQ;AAAA,WACd,GAAI;AACP;AAAA,MACJ;AACA,cAAQ,WAAW,GAAG,KAAK,IAAI,0BAA0B;AACzD,eAAS1F,IAAI,GAAGA,IAAI,KAAK,cAAc,QAAQA,KAAK;AAC1C,cAAA0F,IAAK,KAAK,cAAc1F,CAAC;AAC/B,QAAI0F,KACAA,EAAG,KAAK,IAAI;AAAA,MAEpB;AACA,WAAK,aAAa;AAAA;AAAA,EACtB;AAAA,EAEA,WAAW;AAEP,QAAI,KAAK,eAAe;AACpB,cAAQ,WAAW,GAAG,KAAK,IAAI,wBAAwB;AACvD;AAAA,IACJ;AACA,gBAAK,gBAAgB,IACrB,KAAK,KAAK,GACH;AAAA,EAEX;AAAA;AAAA;AAAA;AAQJ;ACzEO,MAAM,gCAAgC,cAAqB;AAAA,EAA3D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEI,KAAA,OAAA,2BACP,KAAA,OAAO,MAAM;AAEL,UADJ,QAAQ,WAAW,qCAAqC,GACpD,SAAS,eAAe,YAAY;AAC5B,gBAAA,WAAW,gEAAgE,SAAS,UAAU,GACtG,KAAK,QAAQ;AACb;AAAA,MACJ;AACQ,cAAA,WAAW,uDAAuD,SAAS,UAAU,GACpF,SAAA,iBAAiB,oBAAoB,CAACC,MAAU;AAC7C,gBAAA,WAAW,2BAA2BA,CAAK,GACnD,KAAK,QAAQ;AAAA,MAAA,CAChB;AAAA,IACD;AAAA,EAIJ;AAEJ;AAEA,MAAM,0BAA0B,IAAI;AACpC,wBAAwB,SAAS;ACpBjC,MAAM,mBAAmB;AAClB,MAAM,wBAAwB,cAAmB;AAAA,EAAjD,cAAA;AAAA,UAAA,GAAA,SAAA,GACI,KAAA,OAAA,mBACS,KAAA,gBAAA,GAYhB,KAAA,OAAO,MAAM;AACL,UAAA,KAAK,gBAAgB,kBAAkB;AACvC,gBAAQ,YAAY,uBAAuB;AAC3C;AAAA,MACJ;AACK,WAAA,iBACD,KAAK,aAEI,SAAA,oBAAoB,GAAG,CAACC,MAAW;AACxC,gBAAQ,IAAIA,CAAM,GACV,QAAA,WAAW,eAAeA,CAAM,GAEnC,KAAA,kBAAkB,KAAK,MAAM;AAAA,MAAA,CAErC,IAED,WAAW,MAAM;AACb,aAAK,KAAK;AAAA,SACX,GAAG;AAAA,IACV;AAAA,EAEJ;AAAA,EAhCA,WAAoB;AAEZ,QAAAC,IAAe,OAAO,OAAO,WAAa,OAAiB,OAAO,OAAO,YAAa,cAAe,OAAO,aAAa;AAEzH,QAAAA;AAAoB,aAAAA;AACpB,QAAA;AAEA,MAAAA,IAAe,OAAO,OAAO,SAAW,OAAiB,OAAO,OAAO,OAAO,WAAa;AAAA,YACnF;AAAA,IAAc;AACnB,WAAAA;AAAA,EACX;AAuBJ;AAEA,MAAM,kBAAkB,IAAI;AAK5B,wBAAwB,UAAU,MAAM;AAAE,kBAAgB,SAAS;AAAE,CAAC;ACjDtE,MAAMC,aAAS;AACR,MAAM,qCAAqC,cAAoB;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GACG,KAAA,OAAA,gCACN,KAAA,OAAK,MAAI;AAED,UADJ,QAAQ,WAAW,kEAAkE,SAAS,UAAU,EAAE,GACtG,SAAS,eAAeA,YAAU;AAClC,gBAAQ,WAAW,GAAG,KAAK,IAAI,mCAAmC,SAAS,UAAU,EAAE,GACvF,KAAK,QAAQ;AACb;AAAA,MACJ;AACS,eAAA,iBAAiB,oBAAoB,CAACH,MAAU;AACjD,QAAA,SAAS,eAAeG,eAChB,QAAA,WAAW,GAAG,KAAK,IAAI,+BAA+B,SAAS,UAAU,WAAUH,CAAK,GAChG,KAAK,QAAQ;AAAA,MACjB,CACH;AAAA,IAAA;AAAA,EACL;AACJ;AACA,MAAM,+BAA6B,IAAI;AACvC,6BAA6B,SAAS;AClBtC,MAAM,cAAY,eACZ,WAAS;AAER,MAAM,wCAAwC,cAAoB;AAAA,EAAlE,cAAA;AAAA,UAAA,GAAA,SAAA,GACG,KAAA,OAAA,mCACN,KAAA,OAAK,MAAI;AACL,UAAI,SAAS,eAAe,YAAY,SAAS,eAAc,aAAa;AACxE,gBAAQ,WAAW,GAAG,KAAK,IAAI,mCAAmC,SAAS,UAAU,EAAE,GACvF,KAAK,QAAQ;AACb;AAAA,MACJ;AACS,eAAA,iBAAiB,oBAAoB,CAACA,MAAU;AACjD,QAAA,SAAS,eAAe,gBAChB,QAAA,WAAW,GAAG,KAAK,IAAI,+BAA+B,SAAS,UAAU,WAAUA,CAAK,GAChG,KAAK,QAAQ;AAAA,MACb,CAEP;AAAA,IAAA;AAAA,EACL;AAGJ;AAEA,MAAM,kCAAgC,IAAI;AAC1C,gCAAgC,SAAS;ACxBlC,MAAM,gCAAgC,cAAoB;AAAA,EAA1D,cAAA;AAAA,UAAA,GAAA,SAAA,GACI,KAAA,OAAA,2BACP,KAAA,OAAK,MAAI;AACG,+BAAA,iBAAiB,YAAW,CAACA,MAAQ;AACjC,gBAAA,WAAW,YAAWA,CAAK,GACnC,KAAK,QAAQ;AAAA,MAAA,IAET,yBAAA,iBAAiB,cAAa,CAACA,MAAQ;AACnC,gBAAA,WAAW,cAAaA,CAAK,GACrC,KAAK,QAAQ;AAAA,MAAA;AAAA,IAChB;AAAA,EACL;AACJ;AAEA,MAAM,0BAAwB,IAAI;AAClC,wBAAwB,SAAS;AChBjC,QAAQ,aAAa,eAAe;AAS7B,MAAM,aAAa;AAAA,EAAnB,cAAA;AACH,SAAA,UAA+B,IAC/B,KAAA,WAA4B,IACJ,KAAA,eAAA,IACL,KAAA,aAAA;AAAA,EAAA;AAAA,EAGnB,KAAKI,GAAyB;AAC1B,UAAMC,IAAM,KAAK,QAAQ,KAAKD,CAAC;AAC/B,WAAI,CAAC,KAAK,gBAAgB,KAAK,cAC3B,KAAK,aAAa,GAEfC;AAAA,EACX;AAAA,EAEA,eAAqB;AACjB,QAAI,KAAK,cAAc;AACnB,cAAQ,WAAW,0BAA0B;AAC7C;AAAA,IACJ;AACA,IAAI,KAAK,iBACL,KAAK,eAAe;AAEpB,QAAA;AACO,aAAA,KAAK,QAAQ,SAAS,KAAG;AACtB,cAAAC,IAAc,KAAK,QAAQ,MAAM;AACvC,YAAIC,IAAW,IACXC,IAAY;AACZ,YAAA;AACA,UAAIF,KACYA;iBAEXG,GAAG;AACG,UAAAF,IAAA,IACCC,IAAAC,GACJ,QAAA,aAAa,sBAAsBA,CAAC;AAAA,QAChD;AACA,aAAK,SAAS,KAAK,EAAC,SAASH,GAAa,UAAAC,GAAoB,WAAAC,GAAqB;AAAA,MACvF;AAAA,aACKE,GAAI;AACT,cAAQ,aAAaA,CAAE;AAAA,IAAA,UACzB;AACE,WAAK,eAAe;AAAA,IACxB;AAAA,EACJ;AAEJ;ACjDO,MAAM,UAAU;AAAA,EAEnB,cAAc;AAWd,SAAA,MAAoB,IAAI,gBACxB,KAAA,aAAyB,IAgBA,KAAA,gBAAA,IACN,KAAA,UAAA,IAEnB,KAAA,mBAAmB,WAAW,aAAa,kBA9BvC,6BAA6B,UAAU,MAAM;AACzC,WAAK,IAAI,aAAa,IACtB,KAAK,aAAa;AAAA,IAAA,CACrB,GACD,wBAAwB,UAAU,MAAM;AACpC,WAAK,IAAI,aAAa,IACtB,KAAK,aAAa;AAAA,IAAA,CACrB;AAAA,EACL;AAAA,EAIA,aAAsCC,GAAY;AAE9C,IAAI,KAAK,WAAWA,EAAE,GAAG,KACb,QAAA,YAAY,iDAAiDA,CAAC,GAErE,KAAA,WAAWA,EAAE,GAAG,IAAIA,GACjB,QAAA,WAAW,iCAAiCA,CAAC;AAAA,EACzD;AAAA,EACA,IAAItB,GAA4B;AAErB,WADK,KAAK,WAAWA,CAAG;AAAA,EAEnC;AAAA,EACA,eAAqB;AACjB,SAAK,IAAI;EACb;AAQJ;AC1CA,IAAI,yBAAyB;AAEtB,SAAS,kBAAkB;AAC1B,MAAA;AAAwB;AACH,2BAAA;AACnB,QAAAuB,IAAoB,IAAI;AAC9B,EAAAA,EAAkB,gBAAgB;AAElC,QAAMC,IAAe,OAAO;AAE5B,MADA,OAAO,YAAYD,GACfC;AAEA,SADAD,EAAkB,UAAU,IACrBC,EAAY,OAAOA,EAAY,IAAI,SAAS,KAAG;AAC5C,YAAAC,IAAUD,EAAY,IAAI,MAAM;AACtC,MAAIC,KACkBF,EAAA,IAAI,KAAKE,CAAO;AAAA,IAG1C;AAIR;ACNO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AAIH,SAAA,mBAAmB,WAAW,aAAa;AAAA,EAAA;AAE/C;AAkBA,OAAO,gBAAgB;AAEvB,OAAO,YAAY,OAAO,aAAa,EAAE,KAAK,CAAG,EAAA;AAIjD,OAAO,OAAO,OAAO,QAAQ;AAC7B,OAAO,KAAK,MAAM,OAAO,KAAK,OAAO,CAAA;AAIrC,OAAO,eAAe,IAAI,WAAW;AACrC,OAAO,YAAY,OAAO,aAAa,EAAE,KAAK,CAAG,EAAA;AACjD,OAAO,0BAA0B,OAAO,2BAA2B;AAAA,EAC/D,WAAW;AAAA,EACX,cAAc,CAAC;AAAA,EACf,cAAc;AAClB;AAEA,gBAAgB;ACvDT,MAAM,iBAAiB,SACjB,iBAAiB,CAAC,OAAO;AAiB/B,MAAM,wBAAwB;AAAA,EACjC,YAAYC,GAAyC;AAIrD,SAAA,gCAAsB,QAHlB,KAAK,YAAYA;AAAA,EACrB;AAIJ;AAEO,MAAM,sBAAsB;AAAA,EAC/B,YAAYA,GAAuC;AAGnD,SAAA,gCAAsB,QAFlB,KAAK,YAAYA;AAAA,EACrB;AAGJ;AAEO,MAAM,mBAAmB;AAAA,EAC5B,YAAYA,GAAoC;AAGhD,SAAA,gCAAsB,QAFlB,KAAK,YAAYA;AAAA,EACrB;AAGJ;AAEO,MAAM,2BAA2B;AAAA,EACpC,YAAYA,GAA4C;AAGxD,SAAA,gCAAsB,QAFlB,KAAK,YAAYA;AAAA,EACrB;AAGJ;AAEO,MAAM,6BAA6B;AAAA,EACtC,YAAYA,GAA8C;AAG1D,SAAA,gCAAsB,QAFlB,KAAK,YAAYA;AAAA,EACrB;AAGJ;AAEO,MAAM,8BAA8B;AAAA,EACvC,YAAYA,GAA+C;AAG3D,SAAA,gCAAsB,QAFlB,KAAK,YAAYA;AAAA,EACrB;AAGJ;ACrEO,MAAM,2BAA0B;AAAA,EAAhC,cAAA;AACc,SAAA,UAAA;AAAA,EAAA;AAErB;AACO,MAAM,+BAA+B,cAAyC;AAAA,EAA9E,cAAA;AAAA,UAAA,GAAA,SAAA,GACI,KAAA,OAAA,0BACP,KAAA,OAAK,MAAI;AAAA,IAAA;AAAA,EAAC;AACd;ACgBO,MAAeC,IAAf,MAAeA,EAAQ;AA6B9B;AA5BiBA,EAAA,iBAA6B,CAAC,KAAK,GAAG,GACtCA,EAAA,iBAA6B,CAAC,KAAK,GAAG,GACtCA,EAAA,iBAA6B,CAAC,KAAK,GAAG,GACtCA,EAAA,aAAyB,CAAC,GAAG,CAAC,GAE/BA,EAAA,cAA2B,CAACA,EAAQ,UAAU,GAC9CA,EAAA,kBAA+B,CAACA,EAAQ,cAAc,GACtDA,EAAA,kBAA+B,CAACA,EAAQ,cAAc,GACtDA,EAAA,iBAAkC,CAACA,EAAQ,cAAc,GACzDA,EAAA,iBAAkC,CAACA,EAAQ,cAAc,GACzDA,EAAA,iBAAkC,CAACA,EAAQ,cAAc,GAEvEA,EAAc,uBAAoCA,EAAQ,aAC5CA,EAAA,mBAAgC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAC9GA,EAAc,gBAA6B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GACtFA,EAAc,qBAAkC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAC/FA,EAAc,sBAAmC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAC9IA,EAAc,yBAAsC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GACnGA,EAAc,yBAAsC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GACnGA,EAAc,6BAA0C,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAE7EA,EAAA,iBAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAC/GA,EAAc,4BAAyC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,GAEvEA,EAAc,iBAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,OAAO,GAC1JA,EAAc,oBAAiC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,OAAO;AA1BhJ,IAAe,UAAfA;AA+BA,MAAeC,IAAf,MAAeA,EAAU;AA8BhC;AA7BiBA,EAAA,iBAA6B,CAAC,KAAK,GAAG,GACtCA,EAAA,iBAA6B,CAAC,KAAK,GAAG,GACtCA,EAAA,iBAA6B,CAAC,KAAK,GAAG,GACtCA,EAAA,aAAyB,CAAC,GAAG,CAAC,GAE/BA,EAAA,cAA2B,CAACA,EAAU,UAAU,GAChDA,EAAA,kBAA+B,CAACA,EAAU,cAAc,GACxDA,EAAA,kBAA+B,CAACA,EAAU,cAAc,GACxDA,EAAA,iBAAkC,CAACA,EAAU,cAAc,GAC3DA,EAAA,iBAAkC,CAACA,EAAU,cAAc,GAC3DA,EAAA,iBAAkC,CAACA,EAAU,cAAc,GAEzEA,EAAc,uBAAoC,QAAQ,aAC1DA,EAAc,mBAAgC,CAAC,CAAC,KAAK,GAAG,CAAC,GAEzDA,EAAc,gBAA6B,CAAC,CAAC,KAAK,GAAG,CAAC,GAEtDA,EAAc,qBAAkC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAC/FA,EAAc,sBAAmC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAC9IA,EAAc,yBAAsC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GACnGA,EAAc,yBAAsC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GACnGA,EAAc,6BAA0C,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAE7EA,EAAA,iBAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAC/GA,EAAc,4BAAyC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,GAEvEA,EAAc,iBAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,OAAO;AA3BrJ,IAAe,YAAfA;AA+BW,IAAA,mCAAAC,OAChBA,EAAA,SAAS,UACTA,EAAA,yBAAyB,gBACzBA,EAAA,yBAAyB,iBACzBA,EAAA,sBAAsB,cAJNA,IAAA,kBAAA,CAAA,CAAA,GAUA,6CAAAC,OAChBA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,WAAW,YACXA,EAAA,WAAW,YALKA,IAAA,4BAAA,CAAA,CAAA,GAUA,8CAAAC,OAEhBA,EAAA,OAAO,QAEPA,EAAA,MAAM,OAENA,EAAA,UAAU,WAEVA,EAAA,oCAAoC,mCAGpCA,EAAA,cAAc,iBAGdA,EAAA,mBAAmB,sBAdHA,IAAA,6BAAA,CAAA,CAAA;AAqBX,MAAM,UAAU;AAAA,EAAhB,cAAA;AACL,SAAQ,gCAAgC,IAcxC,KAAQ,qBAAqB;AAAA,EAAA;AAAA,EAb7B,IAAW,+BAA+B;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,6BAA6B9B,GAAO;AAC7C,SAAK,gCAAgCA;AAAA,EACvC;AAAA,EAEA,IAAW,8BAAkD;AAC3D,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,4BAA4BA,GAA2B;AAChE,SAAK,+BAA+BA;AAAA,EACtC;AAAA,EAEA,IAAW,oBAAoB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,kBAAkBA,GAAO;AAC7B,SAAA,8BAA8B,SAAS,SAAS,aAAa,GAClE,KAAK,qBAAqBA;AAAA,EAC5B;AAAA,EAGA,IAAW,kBAAsC;AAC/C,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,gBAAgBA,GAA2B;AACpD,SAAK,mBAAmBA;AAAA,EAC1B;AACF;AAEO,MAAM,SAAS;AAAA,EAAf,cAAA;AAEL,SAAQ,wBAAwB,IAQhC,KAAQ,yBAAyB,IAgBjC,KAAQ,yBAAyB;AAAA,EAAA;AAAA,EAvBjC,IAAW,uBAAuB;AAChC,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,qBAAqBA,GAAO;AACrC,SAAK,wBAAwBA;AAAA,EAC/B;AAAA,EAGA,IAAW,wBAAwB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,sBAAsBA,GAAO;AACtC,SAAK,yBAAyBA;AAAA,EAChC;AAAA,EAGA,IAAW,wBAA4C;AACrD,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,sBAAsBA,GAA2B;AAC1D,SAAK,yBAAyBA;AAAA,EAChC;AAAA,EAGA,IAAW,wBAAwB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,sBAAsBA,GAAO;AACjC,SAAA,wBAAwB,SAAS,SAAS,aAAa,GAC5D,KAAK,yBAAyBA;AAAA,EAChC;AAAA,EAIA,IAAW,0BAA+D;AACxE,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,wBAAwBA,GAA4C;AAC7E,SAAK,2BAA2BA;AAAA,EAClC;AAAA,EAGA,IAAW,wBAA2D;AACpE,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,sBAAsBA,GAA0C;AACzE,SAAK,yBAAyBA;AAAA,EAChC;AAAA,EAGA,IAAW,qBAAqD;AAC9D,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,mBAAmBA,GAAuC;AACnE,SAAK,sBAAsBA;AAAA,EAC7B;AAAA,EAGA,IAAW,6BAAqE;AAC9E,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,2BAA2BA,GAA+C;AACnF,SAAK,8BAA8BA;AAAA,EACrC;AAAA,EAGA,IAAW,+BAAyE;AAClF,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,6BAA6BA,GAAiD;AACvF,SAAK,gCAAgCA;AAAA,EACvC;AAAA,EAGA,IAAW,gCAA2E;AACpF,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,8BAA8BA,GAAkD;AACzF,SAAK,iCAAiCA;AAAA,EACxC;AAAA;AAIF;AAEO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AAEL,SAAQ,eAAe;AAAA,EAAA;AAAA,EACvB,IAAW,cAAc;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,YAAYA,GAAO;AAC5B,SAAK,eAAeA;AAAA,EACtB;AAAA,EAGA,IAAW,cAAkC;AAC3C,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,YAAYA,GAA2B;AAChD,SAAK,eAAeA;AAAA,EACtB;AAEF;AACO,MAAM,0BAA0B;AAAA,EAAhC,cAAA;AAEL,SAAQ,eAAe;AAAA,EAAA;AAAA,EACvB,IAAW,cAAc;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,YAAYA,GAAO;AACvB,SAAA,cAAc,SAAS,SAAS,aAAa,GAClD,KAAK,eAAeA;AAAA,EACtB;AAAA,EAGA,IAAW,cAAkC;AAC3C,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,YAAYA,GAA2B;AAChD,SAAK,eAAeA;AAAA,EACtB;AAEF;AAGO,MAAM,YAAY;AAAA,EAAlB,cAAA;AACL,SAAQ,wBAAiC;AAAA,EAAA;AAAA,EACzC,IAAW,uBAAgC;AACzC,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,qBAAqBA,GAAgB;AAC9C,SAAK,wBAAwBA;AAAA,EAC/B;AACF;AAOO,MAAM,OAAO;AAAA,EAOlB,YAAYlB,GAAsB;AASlC,SAAA,WAAW,IAAI,YACf,KAAA,YAAY,IAAI,aAChB,KAAA,mBAAmB,IAAI,oBACvB,KAAA,cAAc,IAAI,eAClB,KAAA,4BAA4B,IAAI,6BAqChC,KAAQ,uBAAuB,KAAK,KAkEf,KAAA,YAAA,IAErB,KAAA,QAAqB,IAGgB,KAAA,4BAAA,IACQ,KAAA,kBAAA,QAEM,KAAA,0CAAA,IACnB,KAAA,uBAAA,IACe,KAAA,qBAAA,QACjB,KAAA,sBAAA,GA2B9B,KAAA,eAAyC,IAgEvB,KAAA,kBAAA,IAClB,KAAA,mBAAoC,IAEpC,KAAA,iBAA6C,IAoCrC,KAAA,yBAAyB,IAAI,0BAuDjB,KAAA,oBAAA,IAvTlB,KAAK,OAAOA;AAAA,EACd;AAAA,EALA,OAAO,QAAQA,GAA8B;AACpC,WAAA,IAAI,OAAOA,CAAI;AAAA,EACxB;AAAA,EAqBA,oBAAoB;AACd,WAAA,KAAK,YAAY,wBACnB,QAAQ,WAAW,UAAU,KAAK,KAAK,8DAA8D,KAAK,YAAY,oBAAoB,GACnI,MAEL,KAAK,SAAS,wBAChB,QAAQ,WAAW,UAAU,KAAK,KAAK,2DAA2D,KAAK,SAAS,oBAAoB,GAC7H,MAEL,KAAK,SAAS,yBAChB,QAAQ,WAAW,UAAU,KAAK,KAAK,4DAA4D,KAAK,SAAS,qBAAqB,GAC/H,MAGL,KAAK,mBAAmB,KAAK,UAAU,qBACzC,QAAQ,WAAW,UAAU,KAAK,KAAK,yDAAyD,KAAK,UAAU,iBAAiB,GACzH,MAEL,KAAK,mBAAmB,KAAK,UAAU,gCACzC,QAAQ,WAAW,UAAU,KAAK,KAAK,oEAAoE,KAAK,UAAU,4BAA4B,GAC/I,MAEL,KAAK,WACP,QAAQ,WAAW,UAAU,KAAK,KAAK,qCAAqC,KAAK,OAAO,GACjF,OAET,QAAQ,WAAW,UAAU,KAAK,KAAK,yBAAyB,GACzD;AAAA,EACT;AAAA;AAAA,EAGA,iBAAiB;;AACX,QAAA,CAAC,KAAK;AACR,qBAAQ,WAAW,UAAU,KAAK,KAAK,gDAAgD,KAAK,oBAAoB,GACzG;AAEL,QAAA,KAAK,YAAY;AACnB,qBAAQ,WAAW,UAAU,KAAK,KAAK,4DAA4D,KAAK,YAAY,oBAAoB,GACjI;AAET,QAAI,KAAK,SAAS,yBAAyB,KAAK,SAAS,uBAAuB;AAC9E,YAAMiD,IAAU,SAAS,SAAS,aAAa,IAAI,KAAK,SAAS;AAC7D,UAAAA,IAAU,KAAK;AACjB,uBAAQ,WAAW,UAAU,KAAK,KAAK,kEAAkEA,CAAO,GACzG;AAAA,IAEX;AACI,QAAA,KAAK;AACP,qBAAQ,WAAW,UAAU,KAAK,KAAK,6CAA6C,KAAK,mBAAmB,GACrG;AAGT,QAAI,KAAK,SAAS,8BAA8B,KAAK,SAAS,2BAA2B,WAAW;AAC5F,YAAAA,IAAU,SAAS,SAAS,iBAAiB,KAAK,SAAS,2BAA2B,UAAU;AAClG,UAAAA,IAAU,KAAK;AACjB,uBAAQ,WAAW,UAAU,KAAK,KAAK,iFAAiFA,CAAO,GACxH;AAAA,IAEX;AACA,QAAI,KAAK,SAAS,iCAAiC,KAAK,SAAS,8BAA8B,eAC1F5D,IAAA,KAAK,SAAS,8BAA8B,cAA5C,gBAAAA,EAAuD,qBAAoB;AACtE,qBAAA,WAAW,UAAU,KAAK,KAAK,8FAA6FM,IAAA,KAAK,SAAS,8BAA8B,cAA5C,gBAAAA,EAAuD,gBAAgB,GACpM;AAGT,QAAI,KAAK,0BAA0B,eAAe,KAAK,0BAA0B,aAAa;AAC5F,YAAMsD,IAAU,SAAS,SAAS,aAAa,IAAI,KAAK,0BAA0B;AAC9E,UAAAA,IAAU,KAAK;AACjB,uBAAQ,WAAW,UAAU,KAAK,KAAK,yEAAyEA,CAAO,GAChH;AAAA,IAEX;AAEA,QAAI,KAAK,iBAAiB,eAAe,KAAK,iBAAiB,aAAa;AAC1E,YAAMA,IAAU,SAAS,SAAS,aAAa,IAAI,KAAK,iBAAiB;AACrE,UAAAA,IAAU,KAAK;AACjB,uBAAQ,WAAW,UAAU,KAAK,KAAK,gEAAgEA,CAAO,GACvG;AAAA,IAEX;AAEA,mBAAQ,WAAW,UAAU,KAAK,KAAK,wBAAwB,IAAI,GAE5D;AAAA,EAKT;AAAA,EAoBA,uBAAuBC,GAAa;AAClC,gBAAK,sBAAsBA,GACpB;AAAA,EACT;AAAA,EAGA,kBAAkBC,GAAuC;AACvD,gBAAK,qBAAqBA,GACnB;AAAA,EACT;AAAA,EAEA,aAAajC,GAAwB;AACnC,gBAAK,YAAYA,GACV;AAAA,EACT;AAAA,EACA,cAAcA,GAAuB;AACnC,gBAAK,aAAaA,GACX;AAAA,EACT;AAAA,EACA,SAASA,GAA4B;AACnC,gBAAK,QAAQA,GACN;AAAA,EACT;AAAA,EAKA,eAAekC,GAAsBC,GAAoB;AACvD,gBAAK,aAAa,KAAK,EAAE,UAAAD,GAAU,OAAAC,EAAO,CAAA,GAGnC;AAAA,EAET;AAAA,EACA,cAAcC,GAAyC;AACrD,gBAAK,iBAAiBA,GACf;AAAA,EACT;AAAA,EAIA,SAASpC,GAAuB;AAC9B,gBAAK,QAAQA,GACN;AAAA,EACT;AAAA,EACA,wBAAwBqC,GAAkB;AACxC,gBAAK,WAAWA,GACT;AAAA,EACT;AAAA,EACA,2BAA2BrC,GAAwB;AACjD,gBAAK,4BAA4BA,GAC1B;AAAA,EACT;AAAA,EAEA,mBAAmBA,GAA0C;AAC3D,gBAAK,kBAAkBA,GAChB;AAAA,EACT;AAAA,EAEA,wBAAwBA,GAAwB;AAC9C,gBAAK,uBAAuBA,GACrB;AAAA,EACT;AAAA,EAEA,2CAA2CA,GAAwB;AACjE,gBAAK,0CAA0CA,GACxC;AAAA,EACT;AAAA,EAGA,QAAQA,GAA+B;AACrC,gBAAK,OAAOA,GACL;AAAA,EACT;AAAA,EACA,WAAWA,GAAgB;AACzB,gBAAK,UAAUA,GACR;AAAA,EACT;AAAA,EAmBA,mBAAmBA,GAAwB;AACzC,gBAAK,kBAAkBA,GAChB;AAAA,EACT;AAAA,EAEA,oBAAoBmC,GAAwB;AAC1C,gBAAK,mBAAmBA,GACjB;AAAA,EACT;AAAA,EACA,WAAWG,GAAgC;AACzC,gBAAK,oBAAoBA,GAClB;AAAA,EACT;AAAA,EACA,gBAAgBC,GAA4B;AAC1C,gBAAK,eAAeA,GACb;AAAA,EACT;AAAA,EAEA,qBAAqBC,GAAoBC,GAAmB;;AAE1D,WAAI,KAAK,qBAAmBtE,IAAA,KAAK,iBAAL,QAAAA,EAAmB,YAC7C,KAAK,aAAa,QAAQ,QAAQ,CAACjC,MAAsC;AACnE,MAAAA,EAAE,SAASsG,MACbtG,EAAE,SAAS,EAAE,GAAGA,EAAE,QAAQ,GAAGuG;IAC/B,CACD,GAEI;AAAA,EAET;AAAA,EAKA,kBAAkBhC,GAAuD;AAClE,gBAAA,uBAAuB,UAAUA,CAAE,GACjC;AAAA,EACT;AAAA;AAAA;AAAA,EAKA,+BAA+BvC,GAAmC;AAEhE,SAAK,SAAS,0BAA0B,IAAI,wBAAwBA,CAAI;AAClE,UAAAwE,IAAc,IAAI;AACxB,WAAAA,EAAY,UAAUxE,EAAK,SAC3BwE,EAAY,QAAQ,KAAK,OACpB,KAAA,uBAAuB,kBAAkBA,CAAW,GAElD;AAAA,EACT;AAAA,EAEA,6BAA6BxE,GAAiC;AAC5D,gBAAK,SAAS,wBAAwB,SAAS,SAAS,aAAa,GACrE,KAAK,SAAS,wBAAwB,IAAI,sBAAsBA,CAAI,GAC7D;AAAA,EACT;AAAA,EAGA,0BAA0BA,GAA8B;AACtD,gBAAK,SAAS,qBAAqB,IAAI,mBAAmBA,CAAI,GACvD;AAAA,EACT;AAAA,EAGA,kCAAkCA,GAAsC;AACtE,gBAAK,SAAS,6BAA6B,IAAI,2BAA2BA,CAAI,GACvE;AAAA,EACT;AAAA,EAGA,oCAAoCA,GAAwC;AAC1E,gBAAK,SAAS,wBAAwB,SAAS,SAAS,aAAa,GACrE,KAAK,SAAS,+BAA+B,IAAI,6BAA6BA,CAAI,GAC3E;AAAA,EACT;AAAA,EAGA,qCAAqCA,GAAyC;AAC5E,gBAAK,SAAS,gCAAgC,IAAI,8BAA8BA,CAAI,GAC7E;AAAA,EACT;AAAA,EAOA,gBAAgB;AACd,QAAI,MAAK;AACL,UAAA,KAAK,aAAa,QAAW;AAC/B,cAAMyE,IAAO,SAAS,eAAe,KAAK,KAAK;AAC/C,YAAIA,GAAM;AACH,UAAAA,EAAA,aAAa,SAAS,KAAK,QAAQ,GACxC,KAAK,oBAAoB;AACzB;AAAA,QACF;AACA,gBAAQ,YAAY,GAAG,KAAK,KAAK,kDAAkD;AAAA,MAAA;AAEnF,gBAAQ,YAAY,GAAG,KAAK,KAAK,uDAAuD,KAAK,QAAQ;AAAA,EAEzG;AAAA;AAAA,EAGA,QAAQ;;AACF,QAAA,KAAK,oBAAoB;AAC3B,qBAAQ,WAAW,wCAAwC,KAAK,KAAK,IAAI,KAAK,UAAU,EAAE,GACnF;AAEL,QAAA,CAAC,KAAK;AACR,qBAAQ,aAAa,8BAA8B,KAAK,KAAK,IAAI,KAAK,UAAU,EAAE,GAC3E;AAET,QAAI,CAAC,KAAK,SAAS,KAAK,QAAQ;AAC9B,qBAAQ,WAAW,mBAAmB,GAC/B;AAGT,QAAI,KAAK,iBAAiB;AAGxB,UADA,KAAK,qBAAoBxE,IAAA,KAAK,iBAAL,gBAAAA,EAAmB,sBAAsB,KAAK,kBAAkB,KAAK,iBAC1F,EAAE,KAAK,uBAAqBM,IAAA,KAAK,sBAAL,gBAAAA,EAAwB,UAAS;AAC/D,uBAAQ,WAAW,uCAAuC,KAAK,KAAK,IAAI,KAAK,UAAU,EAAE,GAClF;AAET,YAAMmE,IAAS,CAAA;AACf,MAAAA,EAAO,OAAO,KAAK,YACnBA,EAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,KAAK,sBAC5CA,EAAO,OAAO,KAAK,kBAAkB,IAAI,CAAK1G,MAAAA,EAAE,UAAU,GAC1D,KAAK,aAAa0G;AAGlB,YAAMC,IAAU,CAAA;AAChB,MAAAA,EAAQ,SAAS,KAAK,OACtBA,EAAQ,WAAW,KAAK,YACxBA,EAAQ,QAAQ,KAAK,kBACrB,KAAK,UAAUA;AAAA,IAEjB;AAEO,WAAA;AAAA,EACT;AAKF;AC1qBO,MAAM,kBAAuB;AAAA,EAChC,SAAS;AAAA,EACT,KAAK;AAAA,IACD,YAAY;AAAA,EAChB;AAAA,EACA,iBAAiB;AAAA,EACjB,SAAS,CAAC,UAAU,UAAU;AAClC,GAGa,yBAA8B;AAAA,EACvC,SAAS;AAAA,EACT,SAAS,CAAC,UAAU,UAAU;AAAA,EAC9B,iBAAiB;AACrB,GAIa,qBAA0B;AAAA,EACnC,QAAQ;AAAA,IACJ,gBAAgB;AAAA,EACpB;AAAA,EACA,cAAc;AAAA,EACd,OAAO;AAAA,EACP,UAAU;AAAA,IACN,kBAAkB;AAAA,EACtB;AAAA,EACA,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,kBAAkB;AAAA,IACd,SAAW;AAAA,MACP;AAAA,QACI,WAAa;AAAA,QACb,KAAO;AAAA,QACP,KAAO;AAAA,QACP,WAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,WAAa;AAAA,QACb,KAAO;AAAA,QACP,KAAO;AAAA,QACP,WAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,WAAa;AAAA,QACb,KAAO;AAAA,QACP,KAAO;AAAA,QACP,WAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,WAAa;AAAA,QACb,KAAO;AAAA,QACP,KAAO;AAAA,QACP,WAAa;AAAA,MACjB;AAAA,IAAC;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACN,SAAS;AAAA,MACL;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,QACb;AAAA,MACJ;AAAA,IAAC;AAAA,IACL,WAAW;AAAA;AAAA,EACf;AAEJ,GAEa,+BAAoC;AAAA,EAC7C,MAAM;AAAA,IACF,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,4BAA4B;AAAA;AAAA,IAC5B,SAAS;AAAA,IACT,OAAO,CAAC;AAAA,MACJ,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB,CAAC,QAAQ;AAAA,IAAA,GAC5B;AAAA,MACC,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB,CAAC,QAAQ;AAAA,IAAA,GAC5B;AAAA,MACC,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB,CAAC,QAAQ;AAAA,IAAA,GAC5B;AAAA,MACC,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB,CAAC,QAAQ;AAAA,IAAA,CAE9B;AAAA,EACL;AAAA,EACA,KAAK;AAAA,IACD,QAAQ;AAAA,IACR,SAAS;AAAA,EACb;AACJ,GAEa,wBAAwB;AAAA,EACjC,QAAU;AACd,GAEa,sBAAsB;AAAA,EAC/B,SAAS;AAAA,IACL,gBAAgB;AAAA,EACpB;AACJ;AChHO,MAAM,oCAAoC,cAAyC;AAAA,EAAnF,cAAA;AAAA,UAAA,GAAA,SAAA,GACE,KAAA,OAAA,+BACe,KAAA,sBAAA,IAEpB,KAAA,iBAAe,MAAI;AACf,iBAAW,MAAI;AACL,cAAAC,IAAS,IAAI,YAAwC,0BAA0B;AACrF,sBAAcA,CAAQ;AAAA,SACxB,GAAI;AAAA,IAAA,GAEV,KAAA,OAAK,MAAI;AAAA,IAAA;AAAA,EAAC;AAEd;AAEA,MAAM,8BAA4B,IAAI;AACtC,4BAA4B,SAAS;AChB9B,MAAM,sBAAsB;AAAA,EAA5B,cAAA;AACH,SAAA,gCAAgB;EAAK;AACzB;AAEO,MAAM,wCAAwC,cAAqC;AAAA,EAAnF,cAAA;AAAA,UAAA,GAAA,SAAA,GACI,KAAA,OAAA,mCACe,KAAA,sBAAA,IAGtB,KAAA,iBAAiB,MAAM;AACnB,iBAAW,MAAM;AACP,cAAAA,IAAW,IAAI,YAAmC,0BAA0B;AAClF,sBAAcA,CAAQ;AAAA,SACvB,GAAI;AAAA,IAAA,GAGX,KAAA,OAAO,MAAM;AACT,WAAK,UAAU,MAAM;AACX,cAAAA,IAAW,IAAI,YAAmC,0BAA0B;AAClF,sBAAcA,CAAQ;AAAA,MAAA,CACzB;AAAA,IAAA;AAAA,EACL;AAEJ;AAEA,MAAM,kCAAkC,IAAI;AAC5C,gCAAgC,SAAS;ACVzC,MAAM,UAAU,QAAQ,SAGlB,iBAAiB,KACjB,0BAA0B;AAQzB,MAAM,eAAe;AAAA,EAArB,cAAA;AACmB,SAAA,sBAAA,IAChB,KAAA,MAAA,IACG,KAAA,SAAA,IACyB,KAAA,kCAAA,IACC,KAAA,mCAAA;AAAA,EAAA;AAEvC;AAEO,MAAe,eAAe;AAAA,EAEjC,YAAYC,GAAuCC,GAAiC;AAIhF,IAMiB,KAAA,YAAA,IAErB,KAAA,YAA0B,IAC1B,KAAA,UAAqB,IAKE,KAAA,uBAAA,IACA,KAAA,uBAAA,IACvB,KAAA,0BAA0B,KAAK,KAoE/B,KAAQ,qBAAqB;AAAA,MACzB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,eAAe;AAAA,IAAA,GAwQnB,KAAQ,iBAAqB,oBAAA,OAC7B,KAAQ,kBAAsB,oBAAA,OA0L9B,KAAQ,kCAAkC,SAC1C,KAAQ,gDAAgD,KACxD,KAAQ,4CAA4C,MACpD,KAAQ,kCAAkC,CAAC,KAAK,2CAA2C,KAAK,6CAA6C,GAC7I,KAAQ,+BAA+B;AAAA,MACnC,MAAM;AAAA;AAAA,MAEN,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,IAAA,GAMpB,KAAA,qCAAyC,oBAAA,OAiKpB,KAAA,qBAAA,IA5sBjB,KAAK,WAAWA,GAChB,KAAK,aAAaD,GAClB,KAAK,UAAU,GAAG,KAAK,UAAU,IAAI,KAAK,QAAQ,IAC7C,KAAK,aACV,KAAK,KAAK;AAAA,EACd;AAAA,EAiBA,mBAAmBf,GAAc;AAC7B,gBAAK,UAAUA,GAEX,KAAK,YACG,QAAA,WAAW,mCAAmC,KAAK,OAAO,GAC7D,KAAA,YAAY,KAAK,QAAQ,WACzB,KAAA,kBAAkB,KAAK,QAAQ,YAAY,IAI7C;AAAA,EACX;AAAA,EAGA,wBAAwBA,GAAc;AAClC,gBAAK,uBAAuBA,GACrB;AAAA,EACX;AAAA,EACA,0BAA0B;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAIA,aAAahC,GAAgC;AACzC,gBAAK,YAAYA,GACV;AAAA,EACX;AAAA,EAGA,aAAaD,GAAaC,GAA+B;AAChD,gBAAA,UAAUD,CAAG,IAAIC,GACf;AAAA,EACX;AAAA,EAEA,kBAAkBiD,GAA2C;AACzD,WAAKA,KACL,OAAO,KAAKA,CAAW,EAAE,QAAQ,CAAOlD,MAAA;AACpC,WAAK,UAAUA,CAAG,IAAIkD,EAAYlD,CAAG;AAAA,IAAA,CACxC,GACM,QAJkB;AAAA,EAK7B;AAAA,EAEA,gBAAgBmD,GAA4C;AACxD,gBAAK,YAAYA,GACV;AAAA,EACX;AAAA,EAEA,YAAYC,GAAgB;AACpB,QAAA,CAACA,EAAO;AACD,aAAA;AAGP,QADJA,EAAO,cAAc,CAAC,KAAK,UAAU,CAAC,GAClCA,EAAO;AACF,kBAAA,QAAQA,EAAO,KAAK,IAAIA,GACtB;AAEH,YAAA,aAAa,mCAAmCA,CAAM;AAAA,EAElE;AAAA,EAEA,iBAAiBC,GAAuB;AAC7B,WAAA,KAAK,QAAQA,CAAK;AAAA,EAC7B;AAAA,EAQA,cAAcX,GAiBX;AACC,WAAO,OAAO,QAAQ,KAAK,OAAO,EAAE;AAAA,MAAO,CAASY,MAAA;AAC1C,cAAAF,IAASE,EAAM,CAAC;AAqBtB,eApBI,GAACF,EAAO,aAERV,KAAA,QAAAA,EAAM,eAAcA,KAAA,gBAAAA,EAAM,gBAAeU,EAAO,QAChDV,KAAA,QAAAA,EAAM,eAAeA,EAAK,YAAY,SAAS,KAAK,EAACA,KAAA,QAAAA,EAAM,YAAY,SAASU,EAAO,UACvFV,KAAA,QAAAA,EAAM,oBAAmBA,KAAA,gBAAAA,EAAM,qBAAoBU,EAAO,mBAC1DV,KAAA,QAAAA,EAAM,6BAA4BA,KAAA,QAAAA,EAAM,yBAAyB,SAASU,EAAO,qBACjFV,KAAA,QAAAA,EAAM,sBAAqBA,KAAA,gBAAAA,EAAM,kBAAkB,UAAS,KAAK,CAACA,EAAK,kBAAkB,SAASU,EAAO,eAAe,KACxHV,KAAA,QAAAA,EAAM,oBAAmBA,KAAA,gBAAAA,EAAM,qBAAoBU,EAAO,mBAC1DV,KAAA,QAAAA,EAAM,mBAAkBA,KAAA,gBAAAA,EAAM,oBAAmBU,EAAO,sBACxDV,KAAA,QAAAA,EAAM,sBAAsB,yBAAyB,SAASU,EAAO,sBACrEV,KAAA,QAAAA,EAAM,iBAAiB,CAAC,KAAK,mBAAmB,SAASU,EAAO,IAAI,KACpEV,KAAA,QAAAA,EAAM,yBAAwBA,KAAA,gBAAAA,EAAM,0BAAyBU,EAAO,wBACpEV,KAAA,QAAAA,EAAM,iBAAiBA,EAAK,cAAc,SAAS,KAAKA,EAAK,cAAc,SAASU,EAAO,KAAK,KAChGV,KAAA,QAAAA,EAAM,SAASA,EAAK,UAAUU,EAAO,SACrCV,KAAA,QAAAA,EAAM,UAAU,CAACA,EAAK,OAAO,SAASU,EAAO,KAAK,KAClDV,KAAA,QAAAA,EAAM,qBAAqBA,EAAK,sBAAsBU,EAAO,kBAAkB,KAE/EV,KAAA,QAAAA,EAAM,kBAAkB,CAACU,EAAO,eAAe,KAC/CV,KAAA,QAAAA,EAAM,kBAAkB,CAAC,KAAK,mCAAmC,IAAIU,EAAO,KAAK,KAEjFV,KAAA,QAAAA,EAAM,wBAAuBA,KAAA,gBAAAA,EAAM,yBAAwBU,EAAO;AAAA,MAI1E;AAAA,MACE,IAAI,CAAC,CAAA,EAAGjH,CAAC,MAAMA,CAAC;AAAA,EAEtB;AAAA,EAEA,aAAaiH,GAAgB;AACpB,SAAA,QAAQA,EAAO,KAAK,IAAIA;AAAA,EACjC;AAAA;AAAA,EAGA,kBAAkB;AAGd,WAAO,YAAY,OAAO,aAAa,EAAE,KAAK,CAAA;EAClD;AAAA,EACA,aAAa;AACT,WAAO,OAAO,aAAa,UAAU,YAAY,UAAU;AAAA,EAE/D;AAAA,EACA,oBAAoBG,GAAmB;AAC/B,IAAA,KAAK,eACDA,MAEM,UAAA,IAAI,KAAKA,CAAG;AAAA,EAE9B;AAAA,EACA,qBAAqBA,GAAmB;AAChC,IAAA,OAAO,QAAQ,KAAK,YAChBA,MAEC,KAAA,IAAI,KAAKA,CAAG;AAAA,EAEzB;AAAA,EAGA,kBAAkBC,GAAwB;AAChC,UAAAC,IAAQD,EAAQ,OAAO,CAAArH,MAAKA,EAAE,OAAO,EAAE,IAAI,CAAKA,OAClDA,EAAE,SAAS,wBAAwB,IACnC,KAAK,aAAaA,CAAC,GACZA,EAAE,QACZ;AACD,QAAI,CAACsH,KAASA,EAAM,UAAU,GAAG;AACrB,cAAA,YAAY,6CAA6CD,CAAO;AACxE;AAAA,IACJ;AACU,cAAA,OAAA,EAAS,QAAQC,CAAK;AAAA,EACpC;AAAA,EAEA,iBAAiBL,GAAgB;AACrB,YAAA,WAAW,qCAAqCA,EAAO,KAAK,GACpEA,EAAO,SAAS,wBAAwB,IACpCA,EAAO,UACG,UAAA,QAAQA,EAAO,OAAO,IAExB,QAAA,YAAY,iEAAiEA,EAAO,KAAK,GAErG,KAAK,aAAaA,CAAM;AAAA,EAC5B;AAAA,EAEA,kBAAkBI,GAAwB;AACtC,IAAAA,EAAQ,QAAQ,CAAUJ,MAAA;AACtB,WAAK,iBAAiBA,CAAM;AAAA,IAAA,CAC/B;AAAA,EACL;AAAA,EAEA,cAAcA,GAAgB;AAE1B,QADQ,QAAA,WAAW,yCAAyCA,EAAO,KAAK,GACpEA,EAAO,SAAS,wBAAwBA,EAAO,SAAS;AAChD,cAAA,WAAW,qDAAqDA,EAAO,KAAK;AACpF;AAAA,IACJ;AAEA,IAAAA,EAAO,SAAS,uBAAuB;AACnC,QAAAM;AACA,QAAAN,EAAO,SAAS,eAAe;AAE/B,UADAM,IAAU,UAAU,WAAWN,EAAO,YAAYA,EAAO,OAAOA,EAAO,KAAK,GACxEM,GAAS;AAGT,YAFQA,EAAA,WAAW,UAAU,OAAQ,CAAA,GAC7BA,EAAA,oBAAoBN,EAAO,yBAAyB,GACxDA,EAAO,gBAAgBA,EAAO,aAAa,SAAS,GAAG;AACjD,gBAAAO,IAAK,UAAU;AACd,UAAAP,EAAA,aAAa,IAAI,CAAMQ,MAAA;AAC1B,YAAAD,EAAG,QAAQC,EAAG,UAAUA,EAAG,KAAK;AAAA,UAAA,CACnC;AACK,gBAAAC,IAAUF,EAAG;AACnB,UAAIE,KAAWH,EAAQ,kBAAkBG,CAAQ;AAAA,QACrD;AAGA,gBAAQ,WAAW,uBAAuBT,EAAO,UAAU,EAAE,GAC7DA,EAAO,WAAWM,CAAO;AAAA,MAC7B;AAAA;AAEO,MAAAN,EAAO,SAAS,eAAe,0BAEtCM,IAAU,UAAU,oBAAoBN,EAAO,YAAYA,EAAO,KAAK,GACnEM,MACQA,EAAA,WAAW,UAAU,OAAQ,CAAA,GACrC,QAAQ,WAAW,uBAAuBN,EAAO,UAAU,EAAE,GAC7DA,EAAO,WAAWM,CAAO,MAEtBN,EAAO,SAAS,eAAe,0BACtCM,IAAU,UAAU,oBAAoBN,EAAO,YAAY,UAAU,MAAM,gBAAgB,aAAa,GACpGM,MACQA,EAAA,WAAW,UAAU,OAAQ,CAAA,GACrC,QAAQ,WAAW,uBAAuBN,EAAO,UAAU,EAAE,GAC7DA,EAAO,WAAWM,CAAO,MAEtBN,EAAO,SAAS,eAAe,wBACtCM,IAAU,UAAU,oBAAoBN,EAAO,YAAY,UAAU,MAAM,gBAAgB,UAAU,GACjGM,MACQA,EAAA,WAAW,UAAU,OAAQ,CAAA,GACrC,QAAQ,WAAW,uBAAuBN,EAAO,UAAU,EAAE,GAC7DA,EAAO,WAAWM,CAAO;AAGjC,IAAKA,KACD,QAAQ,aAAa,oCAAoCN,EAAO,UAAU,EAAE,GAEhF,KAAK,aAAaA,CAAM;AAAA,EAC5B;AAAA,EAEA,oBAAoB;AACN,cAAA,OAAA,EAAS,kBAAkB,EAAK,GAChC,UAAA,SAAS,sBACT,UAAA,SAAS,uBACnB,UAAU,eAAe;AAAA,EAC7B;AAAA,EAEA,kBAAkB;AAEd,IADyB,OAAO,QAAQ,KAAK,SAAS,EACrC,QAAQ,CAASE,MAAA;AACpB,gBAAA,SAAS,aAAaA,EAAM,CAAC,GAAGA,EAAM,CAAC,CAAC;AAAA,IAAA,CACrD;AAAA,EACL;AAAA,EAEA,oBAAoB;AAChB,SAAK,oBAAoB,MAAM;AAC3B,gBAAU,OAAO,EAAE,iBAAiB,mBAAmB,CAAC3C,MAAqB;AAEnE,cAAAmD,IADOnD,EAAM,KACC;AACpB,gBAAQ,WAAW,4BAA4BmD,CAAM,IAAInD,CAAK;AACxD,cAAAyC,IAAS,KAAK,QAAQU,CAAM;AAK9B,YAJAV,MACAA,EAAO,+BAA+BzC,CAAK,GAC3C,KAAK,aAAayC,CAAM,IAExB,CAAC,4BAA4B,aAAa;AACpC,gBAAAW,IAAY,IAAI;AACtB,UAAAA,EAAU,QAAQD,GAClBC,EAAU,UAAUpD,EAAM,SAC1B,4BAA4B,kBAAkBoD,CAAS;AAAA,QAC3D;AAAA,MAAA,CACH,GAED,UAAU,OAAO,EAAE,iBAAiB,yBAAyB,CAACpD,MAAe;AAEnE,cAAAmD,IADOnD,EAAM,KACC;AACpB,gBAAQ,WAAW,kCAAkCmD,CAAM,IAAInD,CAAK;AAC9D,cAAAyC,IAAS,KAAK,QAAQU,CAAM;AAClC,QAAIV,MACAA,EAAO,qCAAqCzC,CAAK,GACjD,KAAK,aAAayC,CAAM;AAAA,MAC5B,CACH,GAGD,UAAU,OAAO,EAAE,iBAAiB,iBAAiB,CAACzC,MAAe;AAE3D,cAAAmD,IADOnD,EAAM,KACC;AACpB,gBAAQ,WAAW,0BAA0BmD,CAAM,IAAInD,CAAK;AACtD,cAAAyC,IAAS,KAAK,QAAQU,CAAM;AAClC,QAAIV,MACAA,EAAO,YAAY,uBAAuB,IAC1CA,EAAO,6BAA6BzC,CAAK,GACzC,KAAK,aAAayC,CAAM;AAAA,MAC5B,CACH,GACD,UAAU,OAAO,EAAE,iBAAiB,wBAAwB,CAACzC,MAAe;AAElE,cAAAmD,IADOnD,EAAM,KACC;AACpB,gBAAQ,WAAW,iCAAiCmD,CAAM,IAAInD,CAAK;AAC7D,cAAAyC,IAAS,KAAK,QAAQU,CAAM;AAClC,QAAIV,MACAA,EAAO,YAAY,uBAAuB,IAC1CA,EAAO,oCAAoCzC,CAAK,GAChD,KAAK,aAAayC,CAAM;AAAA,MAC5B,CACH,GAED,UAAU,OAAO,EAAE,iBAAiB,sBAAsB,CAACzC,MAAe;AAEhE,cAAAmD,IADOnD,EAAM,KACC;AACpB,gBAAQ,WAAW,+BAA+BmD,CAAM,IAAInD,CAAK;AAC3D,cAAAyC,IAAS,KAAK,QAAQU,CAAM;AAClC,QAAIV,MACAA,EAAO,kCAAkCzC,CAAK,GAC9C,KAAK,aAAayC,CAAM;AAAA,MAC5B,CACH,GACD,UAAU,OAAO,EAAE,iBAAiB,cAAc,CAACzC,MAAe;AAExD,cAAAmD,IADOnD,EAAM,KACC;AACpB,gBAAQ,WAAW,uBAAuBmD,CAAM,IAAInD,CAAK;AACnD,cAAAyC,IAAS,KAAK,QAAQU,CAAM;AAClC,QAAIV,MACAA,EAAO,0BAA0BzC,CAAK,GACtC,KAAK,aAAayC,CAAM;AAAA,MAC5B,CACH;AAAA,IAAA,CACJ;AAAA,EAEL;AAAA,EASA,mBAAmB;AACf,YAAQ,WAAW,yBAAyB,GACrC,OAAA,OAAO,OAAO,QAAQ,CAAA,GAC7B,OAAO,KAAK,MAAM,OAAO,KAAK,OAAO;EACzC;AAAA,EAEA,uBAAuB;AACnB,YAAQ,WAAW,6BAA6B,GAChD,KAAK,UAAU,kBAAkB,GACjC,KAAK,iBAAiB;AAAA,EAC1B;AAAA,EAEA,cAAcY,GAAa;AACvB,YAAQ,WAAW,sBAAsB,GACzC,KAAK,qBAAqB,MAAM;AAC5B,WAAK,UAAUA,CAAM;AAAA,IAAA,CACxB;AAAA,EACL;AAAA,EAEA,gBAAgBA,GAAa;AACzB,YAAQ,WAAW,wBAAwB,GAC3C,KAAK,qBAAqB,MAAM;AAC5B,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B;AAAA,EAEL;AAAA,EAEA,uBAAuBR,GAAwB;AAEvC,QADI,QAAA,WAAW,yBAAyBA,CAAO,GAC/CA,KAAWA,EAAQ,SAAS,GAAG;AAC/B,YAAMS,IAA2B,KAAK,QAAyB,IAAI,CAAA9H,MAAKA,EAAE,IAAI,GACxE+H,IAAcV,EAAQ,OAAO,CAAAJ,MAAU,CAACa,EAAwB,SAASb,EAAO,UAAU,CAAC,EAAE,IAAI,CAAUA,OAC7GA,EAAO,UAAU,oBAAoB,IACrC,KAAK,aAAaA,CAAM,GAChB,QAAA,WAAW,2BAA2BA,CAAM,GAC7CA,EAAO,WACjB;AACG,MAAAc,KAAeA,EAAY,SAAS,KACpC,KAAK,WAAWA,CAAW;AAAA,IAEnC;AAAA,EACJ;AAAA,EAEA,oBAAoBC,GAAgCC,GAAuBC,GAA4BC,IAAiB,IAAO;AAG3H,QADA,QAAQ,WAAW,6CAA6CF,CAAa,oBAAoBE,CAAc,aAAaD,CAAW,GACnI,CAAC,KAAK,eAAe,IAAID,CAAa,GAAG;AACpC,WAAA,eAAe,IAAIA,CAAa,GACrC,QAAQ,WAAW,aAAa,KAAK,oBAAoB,IAAI,EAAE,GAC/DD,EAAe,kCAAkC;AACjD;AAAA,IACJ;AACA,QAAI,KAAK,gBAAgB,IAAIC,CAAa,GAAG;AACzC,cAAQ,WAAW,wCAAwCA,CAAa,mBAAmBE,CAAc,EAAE,GAC3GH,EAAe,mCAAmC;AAClD;AAAA,IACJ;AAGI,IAFC,KAAA,gBAAgB,IAAIC,CAAa,GAElCD,EAAe,wBAAwB,OAG3CA,EAAe,sBAAsB,IAErC,KAAK,oBAAoB,MAAM;AAC3B,WAAK,wBAAwB;AAC7B,YAAMV,IAAQ,UAAU,OAAO,EAAE,SAAS,EAAE,OAAO,CAAAtH,MAAKkI,EAAY,SAASlI,EAAE,cAAA,CAAe,CAAC;AACvF,cAAA,WAAW,cAAcsH,CAAK,GAClCA,EAAM,WAAWY,EAAY,UACrB,QAAA,aAAa,uCAAuCA,CAAW,GAEjE,UAAA,OAAA,EAAS,QAAQZ,CAAK;AAAA,IAAA,CACnC;AAAA,EACL;AAAA,EAEA,mBAAmBU,GAAgCE,GAA4BC,IAAiB,IAAO;AAGnG,QADA,QAAQ,WAAW,4CAA4CH,EAAe,aAAa,oBAAoBG,CAAc,aAAaD,CAAW,GACjJ,CAAC,KAAK,eAAe,IAAIF,EAAe,aAAa,GAAG;AACnD,WAAA,eAAe,IAAIA,EAAe,aAAa,GACpD,QAAQ,WAAW,aAAa,KAAK,oBAAoB,IAAI,EAAE,GAC/DA,EAAe,kCAAkC;AACjD;AAAA,IACJ;AACA,QAAI,KAAK,gBAAgB,IAAIA,EAAe,aAAa,GAAG;AACxD,cAAQ,WAAW,wCAAwCA,EAAe,aAAa,mBAAmBG,CAAc,EAAE,GAC1HH,EAAe,mCAAmC;AAClD;AAAA,IACJ;AAGI,IAFC,KAAA,gBAAgB,IAAIA,EAAe,aAAa,GAEjDA,EAAe,wBAAwB,OAG3CA,EAAe,sBAAsB,IAErC,KAAK,oBAAoB,MAAM;AAC3B,aAAO,eAAe;AACtB,YAAMV,IAAQ,UAAU,OAAO,EAAE,SAAS,EAAE,OAAO,CAAAtH,MAAKkI,EAAY,SAASlI,EAAE,cAAA,CAAe,CAAC;AACrF,gBAAA,OAAA,EAAS,SAAA,EAAW,QAAQ,CAAKA,MAAA,QAAQ,IAAIA,EAAE,cAAc,CAAC,CAAC,GACrEsH,EAAM,WAAWY,EAAY,UACrB,QAAA,aAAa,uCAAuCA,CAAW,GAEjE,UAAA,OAAA,EAAS,QAAQZ,CAAK;AAAA,IAAA,CACnC;AAAA,EACL;AAAA,EAEO,6BAA6BD,GAAwB;AAExD,QADQ,QAAA,WAAW,uCAAuCA,CAAO,GAC7DA,MAAY,UAAaA,EAAQ,UAAU,GAAG;AAC9C,cAAQ,aAAa,GAAG,KAAK,6BAA6B,IAAI,2CAA2C;AACzG;AAAA,IACJ;AAEM,UAAAa,IAAcb,EAAQ,IAAI,CAAUJ,OACtCA,EAAO,UAAU,kBAAkB,SAAS,SAAS,aAAa,GAC7DA,EAAO,UAAU,iCAClBA,EAAO,UAAU,+BAA+B,KAEpD,KAAK,aAAaA,CAAM,GACjBA,EAAO,WACjB,GAEKgB,IAAgB;AACjB,SAAA,eAAe,IAAIA,CAAa;AAI/B,UAAAD,IAAiB,IAAI;AAC3B,IAAAA,EAAe,gBAAgBC;AAKzB,UAAAG,IAAWf,EAAQ,OAAO,CAAKrH,MAAAA,EAAE,OAAO,EAAE,IAAI,CAAKA,MAAAA,EAAE,OAAO;AAC9D,IAAAoI,KAAYA,EAAS,SAAS,KAC9B,KAAK,oBAAoB,MAAM;AACpB,aAAA;AAAA,QAAU;AAAA,UACb,SAAS;AAAA,UACT,OAAOA;AAAA,QACX;AAAA,QAAG,CAACC,MAAc;AACd,kBAAQ,WAAW,uBAAuBJ,CAAa,aAAaI,CAAI,GAC9D,UAAA,IAAI,KAAK,MAAM;AACrB,mBAAO,eAAe,GACtBL,EAAe,MAAM,IAChB,KAAA,mBAAmBA,GAAgBE,CAAW;AAAA,UAAA,CACtD;AAAA,QACL;AAAA,MAAA;AAAA,IACA,CACH,GAKL,KAAK,qBAAqB,MAAM;AAC5B,WAAK,uBAAuBb,CAAO,GAE3B,QAAA,WAAW,oBAAoBY,CAAa,EAAE,GAItD,KAAK,YAAY;AAAA,QACb,SAAS;AAAA,QACT,aAAAC;AAAA,QACA,iBAAiB,CAACG,GAAYC,GAAmBC,MAAuB;AAC5D,kBAAA,WAAW,+BAA+BN,CAAa,eAAeK,CAAO,eAAeC,CAAS,WAAWF,CAAI,GAC5HL,EAAe,SAAS,IACxB,KAAK,qBAAqB,GACrB,KAAA,oBAAoBA,GAAgBC,GAAeC,CAAW;AAAA,QACvE;AAAA,MAAA,CACH,GACD,WAAW,MAAM;AACb,aAAK,oBAAoBF,GAAgBC,GAAeC,GAAa,EAAI;AAAA,SAC1E,uBAAuB;AAAA,IAAA,CAC7B;AAAA,EAEL;AAAA,EAuBA,2BAA2B;AACvB,QAAI,KAAK;AAAsB;AAC/B,YAAQ,WAAW,6CAA6C;AAGhE,UAAMM,IAAY,KAAK,cAAc,EAAE,0BAA0B,CAAC,0BAA0B,OAAO,EAAG,CAAA,EAAE,IAAI,CAAAxI,MAAKA,EAAE,KAAK;AAEpH,IAAAwI,KAAaA,EAAU,SAAS,MAChC,KAAK,uBAAuB,IAAI,qBAAqB,CAACC,MAAY;AAK9D,WAAK,8BAA8BA,CAAO;AAAA,IAAA,GAC3C,KAAK,4BAA4B,GACpCD,EAAU,QAAQ,CAAStB,MAAA;AACjB,YAAAT,IAAO,SAAS,eAAeS,CAAK;AAE1C,MAAIT,KACK,KAAA,qBAAsB,QAAQA,CAAI;AAAA,IAC3C,CACH;AAAA,EAGT;AAAA,EAEA,8BAA8BgC,GAAsC;AACxD,IAAAA,EAAA,QAAQ,CAACtB,MAAU;AACjB,YAAAQ,IAASR,EAAM,OAAO;AAC5B,UAAIA,EAAM,gBAAgB;AAEtB,YADA,QAAQ,WAAW,yBAAyBQ,CAAM,uCAAuCR,EAAM,iBAAiB,EAAE,GAC9G,KAAK,mCAAmC,IAAIQ,CAAM;AAElD;AAEC,aAAA,mCAAmC,IAAIA,CAAM;AAiB5C,cAAAe,IAAkB,KAAK,cAAc,EAAE,OAAOf,GAAQ,mBAAmB,IAAM;AACrF,gBAAQ,WAAW,yBAAyBA,CAAM,oCAAoCe,CAAe,GACrGA,EAAgB,QAAQ,CAAUzB,MAAA;AAE9B,eAAK,0BAA0BA,CAAM;AAAA,QAAA,CAExC;AAAA,MAAA;AAGI,aAAA,mCAAmC,OAAOU,CAAM,GAC7C,QAAA,WAAW,yBAAyBA,CAAM,2CAA2C;AAAA,IACjG,CACH;AAAA,EACL;AAAA;AAAA,EAGA,4BAA4B;AACxB,SAAK,wBAAwB,EAAK,GAC7B,KAAA,oBAAoB,cAAc,KAAK,gBAAgB;AAAA,EAEhE;AAAA,EACA,iBAAiB;AAEb,IADgB,KAAK,cAAc,EAAE,0BAA0B,CAAC,0BAA0B,OAAO,EAAA,CAAG,EAC5F,QAAQ,CAAUV,MAAA;AACtB,MAAAA,EAAO,cAAc;AAAA,IAAA,CACxB;AAAA,EACL;AAAA,EAGA,kBAAkB;AAEN,YAAA,WAAW,mDAAmD,KAAK,uBAAuB,GAE9F,KAAK,wBAAwB,CAAC,KAAK,qBAE9B,KAAA,mBAAmB,YAAY,MAAM;AAGlC,UADJ,QAAQ,WAAW,yBAA6B,oBAAA,KAAM,CAAA,GAClD,CAAC,KAAK,cAAc;AACpB,gBAAQ,WAAW,iEAAiE;AACpF;AAAA,MACJ;AACA,UAAI,KAAK;AAAsB;AAC/B,WAAK,uBAAuB;AAC5B,YAAMyB,IAAkB,KAAK,cAAc,EAAE,gBAAgB,IAAM;AAC/D,UAAAA,KAAmBA,EAAgB,SAAS,GAAG;AACvC,gBAAA,WAAW,0CAA0CA,CAAe;AAC5E,cAAMX,IAAcW,EAAgB,OAAO,CAAK1I,MAAAA,EAAE,oBAAoB,EAAI;AACtE,QAAA+H,KAAeA,EAAY,SAAS,MAC5B,QAAA,WAAW,uCAAuCA,CAAW,GACrE,KAAK,6BAA6BA,CAAW;AAEjD,cAAMY,IAAaD,EAAgB,OAAO,CAAK1I,MAAAA,EAAE,oBAAoB,EAAK;AACtE,QAAA2I,KAAcA,EAAW,SAAS,MAC1B,QAAA,WAAW,sCAAsCA,CAAU,GACnE,KAAK,kBAAkBA,CAAU;AAAA,MACrC;AAEA,gBAAQ,WAAW,4CAA4C;AAGnE,WAAK,uBAAuB;AAAA,IAAA,GAC7B,KAAK,uBAAuB;AAAA,EAEvC;AAAA,EAEA,0BAA0B1B,GAAgB;AAClC,QAAAA,EAAO,YAAY,sBAAsB;AACzC,cAAQ,WAAW,6EAA6EA,EAAO,OAAOA,CAAM;AACpH;AAAA,IACJ;AACA,SAAK,oBAAoB,MAAM;AAC3B,MAAAA,EAAO,YAAY,uBAAuB,IAEtCA,EAAO,oBACH,CAACA,EAAO,SAAS,wBAAwB,CAACA,EAAO,YACjD,KAAK,cAAcA,CAAM,GAE7B,QAAQ,WAAW,uBAAuBA,EAAO,OAAOA,CAAM,GACzDA,EAAO,SAAS,0BACjB,QAAQ,WAAW,uBAAuBA,EAAO,OAAOA,CAAM,GAC9D,KAAK,iBAAiBA,CAAM,IAE3B,KAAA,6BAA6B,CAACA,CAAM,CAAC,MAMrCA,EAAO,SAAS,wBAEjB,KAAK,cAAcA,CAAM,GAGxBA,EAAO,SAAS,yBACjB,KAAK,iBAAiBA,CAAM,GAG3B,KAAA,kBAAkB,CAACA,CAAM,CAAC,IAInCA,EAAO,YAAY,uBAAuB,IAC1C,KAAK,aAAaA,CAAM;AAAA,IAAA,CAC3B;AAAA,EACL;AAAA,EAGA,UAAU;AAEF,QAAA;AAEI,UADJ,QAAQ,WAAW,0BAA0B,GACzC,CAAC,KAAK,WAAW;AACjB,gBAAQ,WAAW,4CAA4C;AAC/D;AAAA,MACJ;AAKgB,sBAAA,UAAU,CAACxC,MAAW;AAC9B,YAAAA,KAAUA,EAAO,aAAa;AAC9B,gBAAMmE,IAAU;AAChB,UAAAA,EAAQ,oBAAoB,8BAC5BA,EAAQ,aAAa,uBAErB,KAAK,gBAAgBA,CAAO;AAAA,QAChC;AAAA,MAAA,CACH,GAGD,KAAK,gBAAgB,GACrB,KAAK,kBAAkB,GACvB,KAAK,oBAAoB,MAAM;AAAE,aAAK,gBAAgB;AAAA,MAAA,CAAI;AAEpD,YAAAC,IAA+B,KAAK,cAAc;AAAA,QACpD,YAAY,eAAe;AAAA,QAC3B,iBAAiB,0BAA0B;AAAA,MAAA,CAC9C;AAGD,MAAAA,EAA6B,QAAQ,CAAU5B,MAAA;AAC3C,QAAAA,EAAO,YAAY,uBAAuB,IAC1C,KAAK,aAAaA,CAAM;AAAA,MAAA,CAC3B,GAGD,KAAK,oBAAoB,MAAM;AAE3B,QAAA4B,EAA6B,QAAQ,CAAU5B,MAAA;AAC3C,eAAK,cAAcA,CAAM;AAAA,QAAA,CAC5B;AAAA,MAAA,CACJ,GAED,KAAK,oBAAoB,MAAM;AAAE,aAAK,kBAAkB;AAAA,MAAA,CAAI;AAI5D,YAAMc,IAAcc,EACf,OAAO,OAAK7I,EAAE,mBAAmBA,EAAE,UAAU;AAI9C,MAAA+H,KAAeA,EAAY,SAAS,MACpC,KAAK,iBAAiB,GACtB,KAAK,qBAAqB,MAAM;AAAE,aAAK,qBAAqB;AAAA,MAAA,CAAI,GAChE,KAAK,oBAAoB,MAAM;AAC3B,aAAK,kBAAkBA,CAAW;AAAA,MAAA,CACrC,GACD,KAAK,6BAA6BA,CAAW;AAIjD,YAAMY,IAAaE,EACd,OAAO,CAAK7I,MAAA,CAACA,EAAE,eAAe;AAC/B,MAAA2I,KAAcA,EAAW,SAAS,KAClC,KAAK,oBAAoB,MAAM;AAC3B,aAAK,kBAAkBA,CAAU,GACjC,KAAK,kBAAkBA,CAAU;AAAA,MAAA,CACpC,GAEI,SAAA,iBAAiB,oBAAoB,MAAM;AAC5C,QAAA,SAAS,eAAe,eACxB,KAAK,eAAe,GACpB,KAAK,yBAAyB;AAAA,MAClC,CACH,GAGQ,SAAA,iBAAiB,oBAAoB,MAAM;AAChD,gBAAQ,WAAW,kDAAkD,GAErE,KAAK,eAAe;AACd,cAAAG,IAAoBD,KAAgCA,EAA6B,SAAS,IAAIA,EAA6B,IAAI,CAAK7I,MAAAA,EAAE,KAAK,IAAI,CAAA,GAE/I+I,IAAwB,KAAK,cAAc;AAAA,UAC7C,iBAAiB,0BAA0B;AAAA,UAC3C,eAAeD;AAAA,QAAA,CAClB;AAEO,gBAAA,WAAW,+BAA+BC,CAAqB,GACnEA,KAAyBA,EAAsB,SAAS,KACxDA,EAAsB,QAAQ,CAAU9B,MAAA;AAClB,UAAA6B,EAAA,KAAK7B,EAAO,KAAK,GACnC,KAAK,0BAA0BA,CAAM;AAAA,QAAA,CACxC,GAML,KAAK,yBAAyB,GAK9B,WAAW,MAAM;AACP,gBAAA+B,IAAmB,KAAK,cAAc;AAAA,YACxC,aAAa,CAAC,eAAe,wBAAwB,eAAe,wBAAwB,eAAe,mBAAmB;AAAA,YAC9H,eAAeF;AAAA,UAAA,CAClB;AACO,kBAAA,WAAW,0BAA0BE,CAAgB,GACzDA,KAAoBA,EAAiB,SAAS,KAC9CA,EAAiB,QAAQ,CAAU/B,MAAA;AACb,YAAA6B,EAAA,KAAK7B,EAAO,KAAK,GACnC,KAAK,0BAA0BA,CAAM;AAAA,UAAA,CACxC;AAAA,WAEN,GAAG,GAEN,KAAK,gBAAgB,GAGrB,QAAQ,WAAW,mDAAmD,GACtE,KAAK,qBAAqB;AAAA,MAAA,CAG7B;AAAA,aAEIgC,GAAO;AACZ,cAAQ,aAAaA,CAAK;AAAA,IAAA,UAE5B;AACE,cAAQ,WAAW,2BAA2B,GACrC,SAAA,iBAAiB,oBAAoB,MAAM;AAChB,wCAAA,kBAAkB,IAAI,sBAAA,CAAuB;AAAA,MAAA,CAChF;AAAA,IACL;AAAA,EAKJ;AAGJ;ACj4BO,MAAe,yCAAyC,eAAe;AAAA,EAE1E,YAAYpC,GAAuCC,GAAiC;AAChF,UAAMD,GAAYC,CAAQ;AAAA,EAE9B;AAAA,EACA,iBAAiBoC,GAAiB;AAC1B,QAAA,CAAC,KAAK,WAAW;AACjB,cAAQ,WAAW,yDAAyD;AAC5E;AAAA,IACJ;AACM,UAAA7B,IAAU,KAAK,cAAc,EAAE,gBAAgB,yBAAyB,QAAQ,qBAAqB6B,EAAA,CAAS;AACpH,YAAQ,WAAW,eAAe,EAAE,SAAAA,GAAS,SAAA7B,EAAS,CAAA,GAClDA,KAAWA,EAAQ,SAAS,KAC5BA,EAAQ,QAAQ,CAAUJ,MAAA;AACtB,WAAK,0BAA0BA,CAAM;AAAA,IAAA,CACxC;AAAA,EAET;AAAA,EAEA,mBAAmBiC,GAAiB;AAC5B,QAAA,CAAC,KAAK,WAAW;AACjB,cAAQ,WAAW,2DAA2D;AAC9E;AAAA,IACJ;AACM,UAAA7B,IAAU,KAAK,cAAc,EAAE,gBAAgB,yBAAyB,UAAU,qBAAqB6B,EAAA,CAAS;AACtH,YAAQ,WAAW,iBAAiB,EAAE,SAAAA,GAAS,SAAA7B,EAAS,CAAA,GACpDA,KAAWA,EAAQ,SAAS,KAC5BA,EAAQ,QAAQ,CAAUJ,MAAA;AACtB,WAAK,0BAA0BA,CAAM;AAAA,IAAA,CACxC;AAAA,EAET;AAAA,EAEA,iBAAiBiC,GAAiB;AAC1B,QAAA,CAAC,KAAK,WAAW;AACjB,cAAQ,WAAW,yDAAyD;AAC5E;AAAA,IACJ;AACM,UAAA7B,IAAU,KAAK,cAAc,EAAE,gBAAgB,yBAAyB,QAAQ,qBAAqB6B,EAAA,CAAS;AACpH,YAAQ,WAAW,eAAe,EAAE,SAAAA,GAAS,SAAA7B,EAAS,CAAA,GAClDA,KAAWA,EAAQ,SAAS,KAC5BA,EAAQ,QAAQ,CAAUJ,MAAA;AACtB,WAAK,0BAA0BA,CAAM;AAAA,IAAA,CACxC;AAAA,EAGT;AAGJ;ACrDO,MAAM,OAAO;AAAA,EAIhB,YAAakC,GAAY;AAIJ,SAAA,YAAA,IACrB,KAAA,SAAyB,IACK,KAAA,qBAAA,IAC9B,KAAA,iBAA6C,IAEjB,KAAA,mBAAA,IAC5B,KAAA,eAAgC,IAGhC,KAAA,mBAA2C,IAZvC,KAAK,OAAKA;AAAA,EACd;AAAA,EALA,OAAO,QAASA,GAAoB;AACzB,WAAA,IAAI,OAAOA,CAAI;AAAA,EAC1B;AAAA,EAgBA,aAAarF,GAAwB;AACjC,gBAAK,YAAYA,GACV;AAAA,EACX;AAAA,EACA,QAAQA,GAAuB;AAC3B,gBAAK,OAAOA,GACL;AAAA,EACX;AAAA,EACA,UAAUA,GAA+B;AACrC,gBAAK,SAASA,GACP;AAAA,EACX;AAAA;AAAA,EAGA,oBAAoBA,GAAwB;AACxC,gBAAK,mBAAmBA,GACjB;AAAA,EACX;AAAA,EACA,gBAAgBA,GAAgC;AAC5C,gBAAK,mBAAiB,IACtB,KAAK,eAAeA,GACb;AAAA,EACX;AAAA;AAAA;AAAA,EAIA,sBAAsBA,GAAwB;AAC1C,gBAAK,qBAAqBA,GACnB;AAAA,EACX;AAAA,EACA,kBAAkBA,GAA2C;AACzD,gBAAK,iBAAiBA,GACf;AAAA,EACX;AAAA;AAAA,EAGA,WAAU;AACN,WAAO,EAAE,QAAQ,KAAK,MAAM,QAAO,KAAK;EAC5C;AACJ;AC1DO,MAAM,aAAa;AAAA,EAAnB,cAAA;AACH,SAAA,UAAU,IAAI;EAAc;AAAA,EAC5B,UAAUsF,GAAgB;AACjB,SAAA,QAAQ,KAAKA,CAAM;AAAA,EAC5B;AAAA,EACA,WAAWhD,GAAwB;AAC1B,SAAA,QAAQ,KAAK,GAAGA,CAAO;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,sBAAsBiD,GAA4BnD,GAA+C;AAEvF,UAAAoD,IAAkB,IAAI;AAC5B,aAASzK,IAAI,GAAGA,IAAIwK,EAAU,QAAQxK,KAAK;AACjC,YAAA0K,IAAOF,EAAUxK,CAAC;AAExB,UAAI,CAAC,MAAM,QAAQ0K,CAAI,KAAKA,MAAS,kBAAkBA,MAAS;AAAgB;AAC1E,YAAAC,IAAW,KAAK,QAAQ;AAAA,QAAO,OAAKC,EAAE,cACvCA,EAAE,uBAAuB,MAAQA,EAAE,eAAe,OAAO,CAAAC,MAAKxD,EAAY,SAASwD,CAAC,CAAC,EAAE,SAAS,OAC7FD,EAAE,qBAAqB,MACvBA,EAAE,aAAa,OAAO,CAAC3F,MAAUA,EAAM,CAAC,MAAMyF,EAAK,CAAC,KAAKzF,EAAM,CAAC,MAAMyF,EAAK,CAAC,CAAC,EAAE,SAAS;AAAA,MAAA;AAEhF,MAAAD,EAAA,KAAK,GAAGE,CAAQ;AAAA,IACpC;AAEO,WAAAF;AAAA,EACX;AAIJ;AChDA,MAAMzG,mBAAiB,WAAW,gBAC5B,wBAAwB,IAAI,gBAkC5B8G,2BAAyB,OAAO,QAAQ,QAAQ,EACjD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAC7C,sBAAsB,EAAK,EAAE,kBAAkB9G,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AAEtE,sBAAsB,UAAU8G,wBAAsB;AAGtD,MAAMC,2BAAyB,OAAO,QAAQ,QAAQ,EACjD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAC7C,sBAAsB,EAAK,EAAE,kBAAkB/G,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAU+G,wBAAsB;AAGtD,MAAMC,2BAAyB,OAAO,QAAQ,QAAQ,EACjD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAC7C,sBAAsB,EAAK,EAAE,kBAAkBhH,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUgH,wBAAsB;AAGtD,MAAMC,0BAAwB,OAAO,QAAQ,QAAQ,EAChD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAS,CAAA,EAC7C,sBAAsB,EAAK,EAAE,kBAAkBjH,iBAAe,aAAa,EAC3E,gBAAgB,QAAQ,cAAc;AAC3C,sBAAsB,UAAUiH,uBAAqB;AAIrD,MAAMC,0BAAwB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACnE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkBlH,iBAAe,aAAa,EAC3E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUkH,uBAAqB;AAErD,MAAMC,2BAAyB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACpE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkBnH,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUmH,wBAAsB;AAEtD,MAAMC,2BAAyB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACpE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkBpH,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUoH,wBAAsB;AAGtD,MAAMC,2BAAyB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACpE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkBrH,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUqH,wBAAsB;AAKtD,MAAMC,oBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,mCAAmC,EACjG,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUA,iBAAe;AAG/C,MAAMC,4BAA0B,OAAO,QAAQ,SAAS,EACnD,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,kCAAA,CAAmC,EACjG,sBAAsB,EAAK,EAAE,kBAAkBvH,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUuH,yBAAuB;AAEvD,MAAMC,4BAA0B,OAAO,QAAQ,SAAS,EACnD,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,mCAAmC,EACjG,sBAAsB,EAAK,EAAE,kBAAkBxH,iBAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5D,sBAAsB,UAAUwH,yBAAuB;AAEvD,MAAMC,4BAA0B,OAAO,QAAQ,SAAS,EACnD,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,kCAAA,CAAmC,EACjG,sBAAsB,EAAI,EAAE,kBAAkBzH,iBAAe,cAAc,EAC3E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUyH,yBAAuB;AAIvD,MAAMC,oBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,aAAa,SAAS,OAAO,2BAA2B,EACvF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUA,iBAAe;AAE/C,MAAMC,oBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,aAAa,SAAS,OAAO,2BAA2B,EACvF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUA,iBAAe;AAE/C,MAAMC,oBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,aAAa,SAAS,OAAO,2BAA2B,EACvF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,sBAAsB,UAAUA,iBAAe;ACzI/C,MAAM,iBAAiB,WAAW,gBAC5B,qBAAqB,IAAI,gBAiCzB,WAAW,OAAO,QAAQ,UAAU,EACrC,aAAa,EAAI,EAAE,UAAU,EAAE,QAAQ,aAAa,aAAa,wBAAwB,EACzF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAI;AAC7B,mBAAmB,UAAU,QAAQ;AAIrC,MAAM,yBAAyB,OAAO,QAAQ,QAAQ,EACjD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAC7C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,sBAAsB;AAEnD,MAAM,yBAAyB,OAAO,QAAQ,QAAQ,EACjD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAC7C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,sBAAsB;AAEnD,MAAM,yBAAyB,OAAO,QAAQ,QAAQ,EACjD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAQ,CAAC,EAC7C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,sBAAsB;AAEnD,MAAM,wBAAwB,OAAO,QAAQ,QAAQ,EAChD,aAAa,EAAI,EAAE,UAAU,EAAE,KAAK,QAAS,CAAA,EAC7C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,aAAa,EAC3E,gBAAgB,QAAQ,cAAc;AAC3C,mBAAmB,UAAU,qBAAqB;AAIlD,MAAM,wBAAwB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACnE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,aAAa,EAC3E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,qBAAqB;AAElD,MAAM,yBAAyB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACpE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,sBAAsB;AAEnD,MAAM,yBAAyB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACpE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,sBAAsB;AAGnD,MAAM,yBAAyB,OAAO,QAAQ,QAAQ,EAAE,aAAa,EAAI,EACpE,UAAU,EAAE,aAAa,gBAAgB,CAAC,EAC1C,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,sBAAsB;AAMnD,MAAM,kBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,mCAAmC,EACjG,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,eAAe;AAG5C,MAAM,0BAA0B,OAAO,QAAQ,SAAS,EACnD,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,kCAAA,CAAmC,EACjG,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,uBAAuB;AAEpD,MAAM,0BAA0B,OAAO,QAAQ,SAAS,EACnD,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,mCAAmC,EACjG,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5D,mBAAmB,UAAU,uBAAuB;AAGpD,MAAM,0BAA0B,OAAO,QAAQ,SAAS,EACnD,aAAa,EAAI,EAAE,UAAU,EAAE,WAAW,cAAc,MAAM,kCAAA,CAAmC,EACjG,sBAAsB,EAAK,EAAE,kBAAkB,eAAe,cAAc,EAC5E,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,uBAAuB;AAKpD,MAAM,kBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,aAAa,SAAS,OAAO,2BAA2B,EACvF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,eAAe;AAE5C,MAAM,kBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,aAAa,SAAS,OAAO,2BAA2B,EACvF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,eAAe;AAE5C,MAAM,kBAAkB,OAAO,QAAQ,SAAS,EAC3C,aAAa,EAAI,EAAE,UAAU,EAAE,aAAa,SAAS,OAAO,2BAA2B,EACvF,sBAAsB,EAAI,EAC1B,oBAAoB,EAAK,EAAE,gBAAgB,QAAQ,cAAc;AACtE,mBAAmB,UAAU,eAAe;ACjJ1B,IAAA,gCAAAC,OACdA,EAAA,KAAK,MACLA,EAAA,MAAM,OACNA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SAJMA,IAAA,eAAA,CAAA,CAAA;ACAL,MAAA,gBAAgB;AACtB,SAASC,SAAO;AACnB,SAAO,gBAAgB;AAC3B;AACAA,OAAK;ACGL,SAAS,gBAAgB;AAIjB,SAFJ,OAAO,gBAAgB,eACf,QAAA,WAAW,6BAA6B,aAAa,GACzD,kBAAkB,YAAY,QACvB,wBAEJ;AACX;AACA,MAAM,mBAAmB,cAAc,GCZ1B,yBAAoC,CAAA,GAE3C,sBAAsB,gCACtB,eAAe,uBAEf,mBAAmB,gCACnB,YAAY,uBAEZ,yBAAyB,mCACzB,kBAAkB,0BAElB,2BAA2B,GAC3B,kBAAkB;AAGxB,SAAS9L,IAAI,GAAIA,IAAI,iBAAiBA,KAAI;AACtC,QAAM+L,IAAQ,2BAA2B/L,GACnCgM,IAAW,OAAO,QAAQ,eAAe,MAAM,EAC5C,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuBD,CAAK,EAC5B,aAAa,EAAI,EACjB,cAAc,GAAG,gBAAgB,EAAE,EACnC,SAAS,OAAO,SAAS,GAAGA,CAAK,EAAE,EACnC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,kBAAkB,EACnC,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,GAAG,SAAS,GAAGA,CAAM,GAAI,CAAA;AAE3E,yBAAuB,KAAKC,CAAQ;AACxC;AAEA,SAAShM,IAAI,GAAIA,IAAI,iBAAiBA,KAAI;AACtC,QAAM+L,IAAQ,2BAA2B/L,GACnCiM,IAAc,OAAO,QAAQ,eAAe,MAAM,EACnD,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuBF,CAAK,EAC5B,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,OAAO,YAAY,GAAGA,CAAK,EAAE,EACtC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,kBAAkB,EACnC,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,GAAG,YAAY,GAAGA,CAAK,GAAI,CAAA;AAEzE,yBAAuB,KAAKE,CAAW;AAC3C;AAEA,SAASjM,IAAI,GAAIA,IAAI,iBAAiBA,KAAI;AACtC,QAAM+L,IAAQ,2BAA2B/L,GACnCkM,IAAiB,OAAO,QAAQ,eAAe,MAAM,EACtD,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuBH,CAAK,EAC5B,aAAa,EAAI,EACjB,cAAc,sBAAsB,EACpC,SAAS,OAAO,eAAe,GAAGA,IAAQ,CAAC,EAAE,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,gBAAgB,EACjC,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,GAAG,eAAe,GAAGA,IAAQ,CAAC,GAAI,CAAA;AAEhF,yBAAuB,KAAKG,CAAc;AAC9C;AAKO,MAAM,wBAAwB;AAAA;AAAA,EAGjC,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,oBAAA,CAAqB;AAAA;AAAA;AAAA,EASnE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,wBAAwB,EACjC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,qBAAA,CAAsB;AAAA;AAAA;AAAA,EASpE,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,QAAQ,EACnD,uBAAuB,EAAE,EACzB,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,wBAAwB,EACjC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,qBAAA,CAAsB;AAAA;AAAA;AAMxE,GCxTa,uBAAuB;AAAA;AAAA,EAGhC,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,2CAA2C,EACzD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA;AAAA;AAAA,EAO7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA,EAG7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA;AAAA;AAAA,EAM7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA,EAG7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA;AAAA;AAAA,EAM7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA,EAG7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA;AAAA;AAAA,EAM7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA,EAG7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,iCAAiC,EAC1C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,8BAAA,CAA+B;AAAA;AAAA;AAAA,EAM7E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA,EAG9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA;AAAA;AAAA,EAM9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA,EAG9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA;AAAA;AAAA,EAM9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA,EAG9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA;AAAA;AAAA,EAM9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA,EAG9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA;AAAA;AAAA,EAM9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,EAAE,EACzB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA,EAG9E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,EAAE,EACzB,aAAa,EAAI,EACjB,cAAc,qCAAqC,EACnD,SAAS,kCAAkC,EAC3C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,+BAAA,CAAgC;AAAA;AAOlF,GAGa,sBAAsB;AAAA;AAAA,EAG/B,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,0CAA0C,EACxD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA;AAAA;AAAA,EAQ/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA,EAI/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA;AAAA;AAAA,EAO/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA,EAI/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA;AAAA;AAAA,EAO/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA,EAI/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA;AAAA;AAAA,EAO/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA,EAI/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,mCAAmC,EAC5C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,gCAAA,CAAiC;AAAA;AAAA;AAAA,EAO/E,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA,EAIhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA;AAAA;AAAA,EAOhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA,EAIhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA;AAAA;AAAA,EAOhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA,EAIhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA;AAAA;AAAA,EAOhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA,EAIhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA;AAAA;AAAA,EAQhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,EAAE,EACzB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA,EAIhF,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,EAAE,EACzB,aAAa,EAAI,EACjB,cAAc,oCAAoC,EAClD,SAAS,oCAAoC,EAC7C,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,iCAAA,CAAkC;AAAA;AAOpF,GCnuBa,gBAAgB;AAAA;AAAA,EAEzB,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,UAAU,EAClD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,aAAa,EACtB,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,yBAAyB,EAC1C,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,EAAE;AAAA;AAAA;AAAA,EAQ3B,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,UAAU,EAClD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,aAAa,EACtB,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,yBAAyB,EAC1C,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,EAAE;AAAA;AAAA;AAAA,EAQ3B,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,UAAU,EAClD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,aAAa,EACtB,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,yBAAyB,EAC1C,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,EAAE;AAAA;AAAA;AAAA,EAQ3B,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,UAAU,EAClD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,aAAa,EACtB,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,yBAAyB,EAC1C,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,EAAE;AAAA;AAAA;AAAA,EAS3B,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,UAAU,EAClD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,aAAa,EACtB,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,yBAAyB,EAC1C,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,EAAE;AAAA;AAAA;AAAA,EAO3B,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,UAAU,EAClD,kBAAkB,yBAAyB,MAAM,EACjD,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mBAAmB,EACjC,SAAS,aAAa,EACtB,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,yBAAyB,EAC1C,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,EAAE;AAAA;AAK/B,GCtHa,yBAAyB;AAAA,EAClC,OAAO,QAAQ,eAAe,sBAAsB,EAC/C,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,IAAI,EAC/C,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,uBAAuB,EACrC,SAAS,iBAAiB,EAC1B,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,WAAW,EAC5B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,MAAM;AACf,GAGa,wBAAwB;AAAA,EACjC,OAAO,QAAQ,eAAe,sBAAsB,EAC/C,cAAc,WAAW,eAAe,aAAa,EACrD,kBAAkB,yBAAyB,IAAI,EAC/C,uBAAuB,CAAC,EACxB,aAAa,EAAI,EACjB,cAAc,mCAAmC,EACjD,SAAS,iBAAiB,EAC1B,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,OAAO,EACpD,SAAS,QAAQ,WAAW,EAC5B,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,MAAM;AACf,GC/Ba,sBAAyE,CAAC/I,MAAS;AACxF,EAAAA,KAAQA,EAAK,YAAY,OAAUA,EAAK,UAAU,sCAAsCA,EAAK,UAAU,kCAC9F,SAAA,KAAK,UAAU,IAAI,cAAc;AAElD,GAEa,qCAAwF,CAACA,MAAS;AAE3G,MAAIA,KAAQA,EAAK,YAAY,MAASA,EAAK,UAAU,qCAAqC;AAChF,UAAAgJ,IAAY,SAAS,eAAe,0CAA0C;AACpF,IAAIA,KACUA,EAAA,UAAU,IAAI,UAAU;AAAA,EACtC,WAEMhJ,KAAQA,EAAK,YAAY,MAASA,EAAK,UAAU,uCAAuC;AACxF,UAAAgJ,IAAY,SAAS,eAAe,sCAAsC;AAChF,IAAIA,KACUA,EAAA,UAAU,IAAI,UAAU;AAAA,EAE1C;AACJ;ACPO,MAAM,wCAAwC,iCAAiC;AAAA,EAEzE,OAAO;AAEZ,SAAK,wBAAwB,EAAI,GAC5B,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,mCAAmC,EACjD,SAAS,6BAA6B,EACtC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,oBAAoB,EACrC,wBAAwB,EAAI,EAC5B,mBAAmB,EAAK,EAG5B,kBAAkB,mBAAmB;AAAA,IAAA,GAGrC,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,8BAA8B,EAC5C,SAAS,wBAAwB,EACjC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,gBAAgB,EACjC,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,sBAAsB;AAAA;AAAA,IAAA,GAKnE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,0BAA0B,EACxC,SAAS,oBAAoB,EAC7B,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,aAAa,EAC9B,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EACtE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAC1D,eAAe,CAAC,GAAG,CAAC,GAAG,CAAA,CAAE,EACzB,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,kBAAkB;AAAA;AAAA,IAAA,GAK/D,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,2BAA2B,EACzC,SAAS,qBAAqB,EAC9B,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,aAAa,EAC9B,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EACtE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAC1D,eAAe,CAAC,GAAG,CAAC,GAAG,CAAA,CAAE,EACzB,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,mBAAmB;AAAA;AAAA,IAAA,GAMhE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,0BAA0B,EACnC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,kBAAkB,EACnC,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,wBAAwB;AAAA,IAAA,GAIrE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,0BAA0B,EACnC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,iCAAiC,EAC9E,SAAS,QAAQ,kBAAkB,EACnC,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,wBAAwB;AAAA,IAAA,GAIrE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,yBAAyB,EACvC,SAAS,mBAAmB,EAC5B,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,WAAW,EAC5B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAK;AAAA;AAAA;AAAA;AAAA,IAAA,GAM5B,KAAA;AAAA;AAAA,MAED,OAAO,QAAQ,eAAe,MAAM,EAC/B,cAAc,WAAW,eAAe,cAAc,EACtD,kBAAkB,yBAAyB,IAAI,EAE/C,aAAa,EAAI,EACjB,cAAc,sCAAsC,EACpD,SAAS,gCAAgC,EACzC,wBAAwB,EAAE,EAC1B,2BAA2B,EAAI,EAC/B,mBAAmB,0BAA0B,iCAAiC,EAC9E,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAK,EACxB,kBAAkB,kCAAkC,EACpD,MAAM;AAAA,IAAA,GAIf,uBAAuB,QAAQ,CAAU/D,MAAA;AACrC,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B,GAKD,qBAAqB,QAAQ,CAAUA,MAAA;AACnC,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B,GAKD,cAAc,QAAQ,CAAUA,MAAA;AAC5B,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B,GAGD,uBAAuB,QAAQ,CAAUA,MAAA;AACrC,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B;AAAA,EAqBL;AACJ;AAEa,MAAA,kCAAkC,IAAI,gCAAgC,WAAW,eAAe,SAAS,SAAS,aAAa,UAAU;ACrM/I,MAAM,uCAAuC,iCAAiC;AAAA,EACxE,OAAO;AACZ,SAAK,aAAa,EAAI,GAEjB,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,gCAAgC,EAC9C,SAAS,0BAA0B,EACnC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,GAAG,EAChD,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,wBAAwB;AAAA;AAAA,IAAA,GAKrE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,6BAA6B,EAC3C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,iCAAiC,EAC9E,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,qBAAqB;AAAA;AAAA,IAAA,GAKlE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,6BAA6B,EAC3C,SAAS,uBAAuB,EAChC,wBAAwB,EAAE,EAC1B,mBAAmB,0BAA0B,iCAAiC,EAC9E,SAAS,QAAQ,cAAc,EAC/B,wBAAwB,EAAI,EAC5B,mBAAmB,EAAI,EACvB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,qBAAqB;AAAA;AAAA,IAAA,GAKlE,KAAA;AAAA,MACD,OAAO,QAAQ,eAAe,MAAM,EAC/B,kBAAkB,yBAAyB,IAAI,EAC/C,aAAa,EAAI,EACjB,cAAc,4CAA4C,EAC1D,SAAS,sCAAsC,EAC/C,wBAAwB,EAAE,EAC1B,2BAA2B,EAAI,EAC/B,mBAAmB,0BAA0B,iCAAiC,EAC9E,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EACvD,wBAAwB,EAAK,EAC7B,mBAAmB,EAAK,EACxB,oBAAoB,QAAQ,cAAc,EAC1C,gBAAgB,gBAAgB,EAChC,qBAAqB,WAAW,EAAE,OAAO,mCAAoC,CAAA,EAC7E,kBAAkB,kCAAkC;AAAA;AAAA,IAAA,GAO7D,sBAAsB,QAAQ,CAAUA,MAAA;AACpC,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B,GAID,oBAAoB,QAAQ,CAAUA,MAAA;AAClC,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B,GAKD,cAAc,QAAQ,CAAUA,MAAA;AAC5B,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B,GAID,sBAAsB,QAAQ,CAAUA,MAAA;AACpC,WAAK,YAAYA,CAAM;AAAA,IAAA,CAC1B;AAAA,EAoBL;AACJ;AAEa,MAAA,iCAAiC,IAAI,+BAA+B,WAAW,eAAe,QAAQ,SAAS,aAAa,UAAU;AC5InJ;AACA;AACA;AACA;AACA;AAEA,IAAI;AAEJ,SAAS,QAAQ;AACb,SAAO,aAAa,MAAM,MAAM,SAAS;AAC7C;AAIA,SAAS,gBAAgBgE,GAAU;AAC/B,iBAAeA;AACnB;AAEA,SAASC,UAAQC,GAAO;AACpB,SACIA,aAAiB,SACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAElD;AAEA,SAASC,WAASD,GAAO;AAGrB,SACIA,KAAS,QACT,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAElD;AAEA,SAAS,WAAWE,GAAG5B,GAAG;AACtB,SAAO,OAAO,UAAU,eAAe,KAAK4B,GAAG5B,CAAC;AACpD;AAEA,SAAS,cAAc6B,GAAK;AACxB,MAAI,OAAO;AACP,WAAO,OAAO,oBAAoBA,CAAG,EAAE,WAAW;AAElD,MAAIxL;AACJ,OAAKA,KAAKwL;AACN,QAAI,WAAWA,GAAKxL,CAAC;AACjB,aAAO;AAGf,SAAO;AAEf;AAEA,SAASyL,cAAYJ,GAAO;AACxB,SAAOA,MAAU;AACrB;AAEA,SAASK,WAASL,GAAO;AACrB,SACI,OAAOA,KAAU,YACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAElD;AAEA,SAASM,SAAON,GAAO;AACnB,SACIA,aAAiB,QACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAElD;AAEA,SAAS,IAAIpM,GAAKwF,GAAI;AAClB,MAAImH,IAAM,CAAE,GACR7M,GACA8M,IAAS5M,EAAI;AACjB,OAAKF,IAAI,GAAGA,IAAI8M,GAAQ,EAAE9M;AACtB,IAAA6M,EAAI,KAAKnH,EAAGxF,EAAIF,CAAC,GAAGA,CAAC,CAAC;AAE1B,SAAO6M;AACX;AAEA,SAASjN,SAAO4M,GAAG5B,GAAG;AAClB,WAAS5K,KAAK4K;AACV,IAAI,WAAWA,GAAG5K,CAAC,MACfwM,EAAExM,CAAC,IAAI4K,EAAE5K,CAAC;AAIlB,SAAI,WAAW4K,GAAG,UAAU,MACxB4B,EAAE,WAAW5B,EAAE,WAGf,WAAWA,GAAG,SAAS,MACvB4B,EAAE,UAAU5B,EAAE,UAGX4B;AACX;AAEA,SAAS,UAAUF,GAAOS,GAAQC,GAAQC,GAAQ;AAC9C,SAAO,iBAAiBX,GAAOS,GAAQC,GAAQC,GAAQ,EAAI,EAAE;AACjE;AAEA,SAAS,sBAAsB;AAE3B,SAAO;AAAA,IACH,OAAO;AAAA,IACP,cAAc,CAAE;AAAA,IAChB,aAAa,CAAE;AAAA,IACf,UAAU;AAAA,IACV,eAAe;AAAA,IACf,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,KAAK;AAAA,IACL,iBAAiB,CAAE;AAAA,IACnB,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,IACT,iBAAiB;AAAA,EACzB;AACA;AAEA,SAAS,gBAAgBC,GAAG;AACxB,SAAIA,EAAE,OAAO,SACTA,EAAE,MAAM,wBAELA,EAAE;AACb;AAEA,IAAI;AACA,MAAM,UAAU,OAChB,OAAO,MAAM,UAAU,OAEvB,OAAO,SAAUC,GAAK;AAClB,MAAIC,IAAI,OAAO,IAAI,GACfxM,IAAMwM,EAAE,WAAW,GACnBpN;AAEJ,OAAKA,IAAI,GAAGA,IAAIY,GAAKZ;AACjB,QAAIA,KAAKoN,KAAKD,EAAI,KAAK,MAAMC,EAAEpN,CAAC,GAAGA,GAAGoN,CAAC;AACnC,aAAO;AAIf,SAAO;AACf;AAGA,SAAS,QAAQF,GAAG;AAChB,MAAIG,IAAQ,MACRC,IAAc,IACdC,IAAaL,EAAE,MAAM,CAAC,MAAMA,EAAE,GAAG,QAAO,CAAE;AAyB9C,MAxBIK,MACAF,IAAQ,gBAAgBH,CAAC,GACzBI,IAAc,KAAK,KAAKD,EAAM,iBAAiB,SAAUrN,GAAG;AACxD,WAAOA,KAAK;AAAA,EACxB,CAAS,GACDuN,IACIF,EAAM,WAAW,KACjB,CAACA,EAAM,SACP,CAACA,EAAM,cACP,CAACA,EAAM,gBACP,CAACA,EAAM,kBACP,CAACA,EAAM,mBACP,CAACA,EAAM,aACP,CAACA,EAAM,iBACP,CAACA,EAAM,oBACN,CAACA,EAAM,YAAaA,EAAM,YAAYC,IACvCJ,EAAE,YACFK,IACIA,KACAF,EAAM,kBAAkB,KACxBA,EAAM,aAAa,WAAW,KAC9BA,EAAM,YAAY,UAG1B,OAAO,YAAY,QAAQ,CAAC,OAAO,SAASH,CAAC;AAC7C,IAAAA,EAAE,WAAWK;AAAA;AAEb,WAAOA;AAEX,SAAOL,EAAE;AACb;AAEA,SAAS,cAAcG,GAAO;AAC1B,MAAIH,IAAI,UAAU,GAAG;AACrB,SAAIG,KAAS,OACTzN,SAAO,gBAAgBsN,CAAC,GAAGG,CAAK,IAEhC,gBAAgBH,CAAC,EAAE,kBAAkB,IAGlCA;AACX;AAIA,IAAI,mBAAoB,MAAM,mBAAmB,IAC7C,mBAAmB;AAEvB,SAAS,WAAWM,GAAIC,GAAM;AAC1B,MAAIzN,GACA4C,GACAqE,GACAyG,IAAsB,iBAAiB;AAiC3C,MA/BKhB,cAAYe,EAAK,gBAAgB,MAClCD,EAAG,mBAAmBC,EAAK,mBAE1Bf,cAAYe,EAAK,EAAE,MACpBD,EAAG,KAAKC,EAAK,KAEZf,cAAYe,EAAK,EAAE,MACpBD,EAAG,KAAKC,EAAK,KAEZf,cAAYe,EAAK,EAAE,MACpBD,EAAG,KAAKC,EAAK,KAEZf,cAAYe,EAAK,OAAO,MACzBD,EAAG,UAAUC,EAAK,UAEjBf,cAAYe,EAAK,IAAI,MACtBD,EAAG,OAAOC,EAAK,OAEdf,cAAYe,EAAK,MAAM,MACxBD,EAAG,SAASC,EAAK,SAEhBf,cAAYe,EAAK,OAAO,MACzBD,EAAG,UAAUC,EAAK,UAEjBf,cAAYe,EAAK,GAAG,MACrBD,EAAG,MAAM,gBAAgBC,CAAI,IAE5Bf,cAAYe,EAAK,OAAO,MACzBD,EAAG,UAAUC,EAAK,UAGlBC,IAAsB;AACtB,SAAK1N,IAAI,GAAGA,IAAI0N,GAAqB1N;AACjC,MAAA4C,IAAO,iBAAiB5C,CAAC,GACzBiH,IAAMwG,EAAK7K,CAAI,GACV8J,cAAYzF,CAAG,MAChBuG,EAAG5K,CAAI,IAAIqE;AAKvB,SAAOuG;AACX;AAGA,SAAS,OAAOxE,GAAQ;AACpB,aAAW,MAAMA,CAAM,GACvB,KAAK,KAAK,IAAI,KAAKA,EAAO,MAAM,OAAOA,EAAO,GAAG,QAAS,IAAG,GAAG,GAC3D,KAAK,cACN,KAAK,KAAK,oBAAI,KAAK,GAAG,IAItB,qBAAqB,OACrB,mBAAmB,IACnB,MAAM,aAAa,IAAI,GACvB,mBAAmB;AAE3B;AAEA,SAAS,SAASyD,GAAK;AACnB,SACIA,aAAe,UAAWA,KAAO,QAAQA,EAAI,oBAAoB;AAEzE;AAEA,SAAS,KAAKkB,GAAK;AACf,EACI,MAAM,gCAAgC,MACtC,OAAO,UAAY,OACnB,QAAQ,QAER,QAAQ,KAAK,0BAA0BA,CAAG;AAElD;AAEA,SAAS,UAAUA,GAAKjI,GAAI;AACxB,MAAIkI,IAAY;AAEhB,SAAOhO,SAAO,WAAY;AAItB,QAHI,MAAM,sBAAsB,QAC5B,MAAM,mBAAmB,MAAM+N,CAAG,GAElCC,GAAW;AACX,UAAIlG,IAAO,CAAE,GACTmG,GACA7N,GACAgF,GACA8I,IAAS,UAAU;AACvB,WAAK9N,IAAI,GAAGA,IAAI8N,GAAQ9N,KAAK;AAEzB,YADA6N,IAAM,IACF,OAAO,UAAU7N,CAAC,KAAM,UAAU;AAClC,UAAA6N,KAAO;AAAA,KAAQ7N,IAAI;AACnB,eAAKgF,KAAO,UAAU,CAAC;AACnB,YAAI,WAAW,UAAU,CAAC,GAAGA,CAAG,MAC5B6I,KAAO7I,IAAM,OAAO,UAAU,CAAC,EAAEA,CAAG,IAAI;AAGhD,UAAA6I,IAAMA,EAAI,MAAM,GAAG,EAAE;AAAA,QACzC;AACoB,UAAAA,IAAM,UAAU7N,CAAC;AAErB,QAAA0H,EAAK,KAAKmG,CAAG;AAAA,MAChB;AACD;AAAA,QACIF,IACI;AAAA,eACA,MAAM,UAAU,MAAM,KAAKjG,CAAI,EAAE,KAAK,EAAE,IACxC;AAAA,IACA,IAAI,MAAO,EAAC;AAAA,MAChC,GACYkG,IAAY;AAAA,IACf;AACD,WAAOlI,EAAG,MAAM,MAAM,SAAS;AAAA,EAClC,GAAEA,CAAE;AACT;AAEA,IAAI,eAAe,CAAA;AAEnB,SAAS,gBAAgBb,GAAM8I,GAAK;AAChC,EAAI,MAAM,sBAAsB,QAC5B,MAAM,mBAAmB9I,GAAM8I,CAAG,GAEjC,aAAa9I,CAAI,MAClB,KAAK8I,CAAG,GACR,aAAa9I,CAAI,IAAI;AAE7B;AAEA,MAAM,8BAA8B;AACpC,MAAM,qBAAqB;AAE3B,SAASkJ,aAAWzB,GAAO;AACvB,SACK,OAAO,WAAa,OAAeA,aAAiB,YACrD,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAElD;AAEA,SAAS,IAAItD,GAAQ;AACjB,MAAIpG,GAAM5C;AACV,OAAKA,KAAKgJ;AACN,IAAI,WAAWA,GAAQhJ,CAAC,MACpB4C,IAAOoG,EAAOhJ,CAAC,GACX+N,aAAWnL,CAAI,IACf,KAAK5C,CAAC,IAAI4C,IAEV,KAAK,MAAM5C,CAAC,IAAI4C;AAI5B,OAAK,UAAUoG,GAIf,KAAK,iCAAiC,IAAI;AAAA,KACrC,KAAK,wBAAwB,UAAU,KAAK,cAAc,UACvD,MACA,UAAU;AAAA,EACtB;AACA;AAEA,SAAS,aAAagF,GAAcC,GAAa;AAC7C,MAAIpB,IAAMjN,SAAO,CAAE,GAAEoO,CAAY,GAC7BpL;AACJ,OAAKA,KAAQqL;AACT,IAAI,WAAWA,GAAarL,CAAI,MACxB2J,WAASyB,EAAapL,CAAI,CAAC,KAAK2J,WAAS0B,EAAYrL,CAAI,CAAC,KAC1DiK,EAAIjK,CAAI,IAAI,IACZhD,SAAOiN,EAAIjK,CAAI,GAAGoL,EAAapL,CAAI,CAAC,GACpChD,SAAOiN,EAAIjK,CAAI,GAAGqL,EAAYrL,CAAI,CAAC,KAC5BqL,EAAYrL,CAAI,KAAK,OAC5BiK,EAAIjK,CAAI,IAAIqL,EAAYrL,CAAI,IAE5B,OAAOiK,EAAIjK,CAAI;AAI3B,OAAKA,KAAQoL;AACT,IACI,WAAWA,GAAcpL,CAAI,KAC7B,CAAC,WAAWqL,GAAarL,CAAI,KAC7B2J,WAASyB,EAAapL,CAAI,CAAC,MAG3BiK,EAAIjK,CAAI,IAAIhD,SAAO,CAAE,GAAEiN,EAAIjK,CAAI,CAAC;AAGxC,SAAOiK;AACX;AAEA,SAAS,OAAO7D,GAAQ;AACpB,EAAIA,KAAU,QACV,KAAK,IAAIA,CAAM;AAEvB;AAEA,IAAI;AAEA,OAAO,OACP,OAAO,OAAO,OAEd,OAAO,SAAUyD,GAAK;AAClB,MAAIzM,GACA6M,IAAM,CAAA;AACV,OAAK7M,KAAKyM;AACN,IAAI,WAAWA,GAAKzM,CAAC,KACjB6M,EAAI,KAAK7M,CAAC;AAGlB,SAAO6M;AACf;AAGA,IAAI,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AACd;AAEA,SAAS,SAAS7H,GAAKkJ,GAAKC,GAAK;AAC7B,MAAIC,IAAS,KAAK,UAAUpJ,CAAG,KAAK,KAAK,UAAU;AACnD,SAAO+I,aAAWK,CAAM,IAAIA,EAAO,KAAKF,GAAKC,CAAG,IAAIC;AACxD;AAEA,SAAS,SAASC,GAAQC,GAAcC,GAAW;AAC/C,MAAIC,IAAY,KAAK,KAAK,IAAIH,CAAM,GAChCI,IAAcH,IAAeE,EAAU,QACvCE,IAAOL,KAAU;AACrB,UACKK,IAAQH,IAAY,MAAM,KAAM,OACjC,KAAK,IAAI,IAAI,KAAK,IAAI,GAAGE,CAAW,CAAC,EAAE,WAAW,OAAO,CAAC,IAC1DD;AAER;AAEA,IAAI,mBACI,0MACJ,wBAAwB,8CACxB,kBAAkB,CAAE,GACpB,uBAAuB,CAAA;AAM3B,SAAS,eAAeG,GAAOC,GAAQC,GAASzC,GAAU;AACtD,MAAI0C,IAAO1C;AACX,EAAI,OAAOA,KAAa,aACpB0C,IAAO,WAAY;AACf,WAAO,KAAK1C,CAAQ;EAChC,IAEQuC,MACA,qBAAqBA,CAAK,IAAIG,IAE9BF,MACA,qBAAqBA,EAAO,CAAC,CAAC,IAAI,WAAY;AAC1C,WAAO,SAASE,EAAK,MAAM,MAAM,SAAS,GAAGF,EAAO,CAAC,GAAGA,EAAO,CAAC,CAAC;AAAA,EAC7E,IAEQC,MACA,qBAAqBA,CAAO,IAAI,WAAY;AACxC,WAAO,KAAK,WAAU,EAAG;AAAA,MACrBC,EAAK,MAAM,MAAM,SAAS;AAAA,MAC1BH;AAAA,IAChB;AAAA,EACA;AAEA;AAEA,SAAS,uBAAuBrC,GAAO;AACnC,SAAIA,EAAM,MAAM,UAAU,IACfA,EAAM,QAAQ,YAAY,EAAE,IAEhCA,EAAM,QAAQ,OAAO,EAAE;AAClC;AAEA,SAAS,mBAAmBS,GAAQ;AAChC,MAAIgC,IAAQhC,EAAO,MAAM,gBAAgB,GACrC/M,GACAgP;AAEJ,OAAKhP,IAAI,GAAGgP,IAASD,EAAM,QAAQ/O,IAAIgP,GAAQhP;AAC3C,IAAI,qBAAqB+O,EAAM/O,CAAC,CAAC,IAC7B+O,EAAM/O,CAAC,IAAI,qBAAqB+O,EAAM/O,CAAC,CAAC,IAExC+O,EAAM/O,CAAC,IAAI,uBAAuB+O,EAAM/O,CAAC,CAAC;AAIlD,SAAO,SAAUkO,GAAK;AAClB,QAAIE,IAAS,IACTpO;AACJ,SAAKA,IAAI,GAAGA,IAAIgP,GAAQhP;AACpB,MAAAoO,KAAUL,aAAWgB,EAAM/O,CAAC,CAAC,IACvB+O,EAAM/O,CAAC,EAAE,KAAKkO,GAAKnB,CAAM,IACzBgC,EAAM/O,CAAC;AAEjB,WAAOoO;AAAA,EACf;AACA;AAGA,SAAS,aAAalB,GAAGH,GAAQ;AAC7B,SAAKG,EAAE,aAIPH,IAAS,aAAaA,GAAQG,EAAE,WAAY,CAAA,GAC5C,gBAAgBH,CAAM,IAClB,gBAAgBA,CAAM,KAAK,mBAAmBA,CAAM,GAEjD,gBAAgBA,CAAM,EAAEG,CAAC,KAPrBA,EAAE,aAAa;AAQ9B;AAEA,SAAS,aAAaH,GAAQC,GAAQ;AAClC,MAAIhN,IAAI;AAER,WAASiP,EAA4B3C,GAAO;AACxC,WAAOU,EAAO,eAAeV,CAAK,KAAKA;AAAA,EAC1C;AAGD,OADA,sBAAsB,YAAY,GAC3BtM,KAAK,KAAK,sBAAsB,KAAK+M,CAAM;AAC9C,IAAAA,IAASA,EAAO;AAAA,MACZ;AAAA,MACAkC;AAAA,IACZ,GACQ,sBAAsB,YAAY,GAClCjP,KAAK;AAGT,SAAO+M;AACX;AAEA,IAAI,wBAAwB;AAAA,EACxB,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,MAAM;AACV;AAEA,SAAS,eAAe/H,GAAK;AACzB,MAAI+H,IAAS,KAAK,gBAAgB/H,CAAG,GACjCkK,IAAc,KAAK,gBAAgBlK,EAAI,YAAa,CAAA;AAExD,SAAI+H,KAAU,CAACmC,IACJnC,KAGX,KAAK,gBAAgB/H,CAAG,IAAIkK,EACvB,MAAM,gBAAgB,EACtB,IAAI,SAAUC,GAAK;AAChB,WACIA,MAAQ,UACRA,MAAQ,QACRA,MAAQ,QACRA,MAAQ,SAEDA,EAAI,MAAM,CAAC,IAEfA;AAAA,EACnB,CAAS,EACA,KAAK,EAAE,GAEL,KAAK,gBAAgBnK,CAAG;AACnC;AAEA,IAAI,qBAAqB;AAEzB,SAAS,cAAc;AACnB,SAAO,KAAK;AAChB;AAEA,IAAI,iBAAiB,MACjB,gCAAgC;AAEpC,SAAS,QAAQqJ,GAAQ;AACrB,SAAO,KAAK,SAAS,QAAQ,MAAMA,CAAM;AAC7C;AAEA,IAAI,sBAAsB;AAAA,EACtB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AACR;AAEA,SAAS,aAAaA,GAAQe,GAAeC,GAAQC,GAAU;AAC3D,MAAIlB,IAAS,KAAK,cAAciB,CAAM;AACtC,SAAOtB,aAAWK,CAAM,IAClBA,EAAOC,GAAQe,GAAeC,GAAQC,CAAQ,IAC9ClB,EAAO,QAAQ,OAAOC,CAAM;AACtC;AAEA,SAAS,WAAWkB,GAAMnB,GAAQ;AAC9B,MAAIrB,IAAS,KAAK,cAAcwC,IAAO,IAAI,WAAW,MAAM;AAC5D,SAAOxB,aAAWhB,CAAM,IAAIA,EAAOqB,CAAM,IAAIrB,EAAO,QAAQ,OAAOqB,CAAM;AAC7E;AAEA,IAAI,UAAU;AAAA,EACV,GAAG;AAAA,EACH,OAAO;AAAA,EACP,MAAM;AAAA,EACN,GAAG;AAAA,EACH,MAAM;AAAA,EACN,KAAK;AAAA,EACL,GAAG;AAAA,EACH,UAAU;AAAA,EACV,SAAS;AAAA,EACT,GAAG;AAAA,EACH,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,GAAG;AAAA,EACH,OAAO;AAAA,EACP,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AAAA,EACH,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,GAAG;AAAA,EACH,UAAU;AAAA,EACV,SAAS;AAAA,EACT,GAAG;AAAA,EACH,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AAAA,EACH,OAAO;AAAA,EACP,MAAM;AAAA,EACN,GAAG;AAAA,EACH,UAAU;AAAA,EACV,SAAS;AAAA,EACT,GAAG;AAAA,EACH,OAAO;AAAA,EACP,MAAM;AACV;AAEA,SAAS,eAAeoB,GAAO;AAC3B,SAAO,OAAOA,KAAU,WAClB,QAAQA,CAAK,KAAK,QAAQA,EAAM,YAAW,CAAE,IAC7C;AACV;AAEA,SAAS,qBAAqBC,GAAa;AACvC,MAAIC,IAAkB,CAAE,GACpBC,GACA/M;AAEJ,OAAKA,KAAQ6M;AACT,IAAI,WAAWA,GAAa7M,CAAI,MAC5B+M,IAAiB,eAAe/M,CAAI,GAChC+M,MACAD,EAAgBC,CAAc,IAAIF,EAAY7M,CAAI;AAK9D,SAAO8M;AACX;AAEA,IAAI,aAAa;AAAA,EACb,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AACV;AAEA,SAAS,oBAAoBE,GAAU;AACnC,MAAIJ,IAAQ,CAAE,GACVK;AACJ,OAAKA,KAAKD;AACN,IAAI,WAAWA,GAAUC,CAAC,KACtBL,EAAM,KAAK,EAAE,MAAMK,GAAG,UAAU,WAAWA,CAAC,EAAC,CAAE;AAGvD,SAAAL,EAAM,KAAK,SAAUhD,GAAG5B,GAAG;AACvB,WAAO4B,EAAE,WAAW5B,EAAE;AAAA,EAC9B,CAAK,GACM4E;AACX;AAEA,IAAI,SAAS,MACT,SAAS,QACT,SAAS,SACT,SAAS,SACT,SAAS,cACT,YAAY,SACZ,YAAY,aACZ,YAAY,iBACZ,YAAY,WACZ,YAAY,WACZ,YAAY,gBACZ,gBAAgB,OAChB,cAAc,YACd,cAAc,sBACd,mBAAmB,2BACnB,iBAAiB,wBAGjB,YACI,yJACJ,yBAAyB,aACzB,mBAAmB,iBACnB;AAEJ,UAAU;AAEV,SAAS,cAAcb,GAAOrN,GAAOwO,GAAa;AAC9C,UAAQnB,CAAK,IAAIZ,aAAWzM,CAAK,IAC3BA,IACA,SAAUyO,GAAUC,GAAY;AAC5B,WAAOD,KAAYD,IAAcA,IAAcxO;AAAA,EAC7D;AACA;AAEA,SAAS,sBAAsBqN,GAAO3F,GAAQ;AAC1C,SAAK,WAAW,SAAS2F,CAAK,IAIvB,QAAQA,CAAK,EAAE3F,EAAO,SAASA,EAAO,OAAO,IAHzC,IAAI,OAAO,eAAe2F,CAAK,CAAC;AAI/C;AAGA,SAAS,eAAesB,GAAG;AACvB,SAAO;AAAA,IACHA,EACK,QAAQ,MAAM,EAAE,EAChB;AAAA,MACG;AAAA,MACA,SAAUC,GAASC,GAAIC,GAAIC,GAAIC,GAAI;AAC/B,eAAOH,KAAMC,KAAMC,KAAMC;AAAA,MAC5B;AAAA,IACJ;AAAA,EACb;AACA;AAEA,SAAS,YAAYL,GAAG;AACpB,SAAOA,EAAE,QAAQ,0BAA0B,MAAM;AACrD;AAEA,SAAS,SAAS5B,GAAQ;AACtB,SAAIA,IAAS,IAEF,KAAK,KAAKA,CAAM,KAAK,IAErB,KAAK,MAAMA,CAAM;AAEhC;AAEA,SAAS,MAAMkC,GAAqB;AAChC,MAAIC,IAAgB,CAACD,GACjBtL,IAAQ;AAEZ,SAAIuL,MAAkB,KAAK,SAASA,CAAa,MAC7CvL,IAAQ,SAASuL,CAAa,IAG3BvL;AACX;AAEA,IAAI,SAAS,CAAA;AAEb,SAAS,cAAc0J,GAAOvC,GAAU;AACpC,MAAIpM,GACA8O,IAAO1C,GACPqE;AAUJ,OATI,OAAO9B,KAAU,aACjBA,IAAQ,CAACA,CAAK,IAEdhC,WAASP,CAAQ,MACjB0C,IAAO,SAAUxC,GAAOyC,GAAO;AAC3B,IAAAA,EAAM3C,CAAQ,IAAI,MAAME,CAAK;AAAA,EACzC,IAEImE,IAAW9B,EAAM,QACZ3O,IAAI,GAAGA,IAAIyQ,GAAUzQ;AACtB,WAAO2O,EAAM3O,CAAC,CAAC,IAAI8O;AAE3B;AAEA,SAAS,kBAAkBH,GAAOvC,GAAU;AACxC,gBAAcuC,GAAO,SAAUrC,GAAOyC,GAAO/F,GAAQ2F,GAAO;AACxD,IAAA3F,EAAO,KAAKA,EAAO,MAAM,CAAA,GACzBoD,EAASE,GAAOtD,EAAO,IAAIA,GAAQ2F,CAAK;AAAA,EAChD,CAAK;AACL;AAEA,SAAS,wBAAwBA,GAAOrC,GAAOtD,GAAQ;AACnD,EAAIsD,KAAS,QAAQ,WAAW,QAAQqC,CAAK,KACzC,OAAOA,CAAK,EAAErC,GAAOtD,EAAO,IAAIA,GAAQ2F,CAAK;AAErD;AAEA,SAAS,WAAW+B,GAAM;AACtB,SAAQA,IAAO,MAAM,KAAKA,IAAO,QAAQ,KAAMA,IAAO,QAAQ;AAClE;AAEA,IAAI,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,cAAc,GACd,OAAO,GACP,UAAU;AAId,eAAe,KAAK,GAAG,GAAG,WAAY;AAClC,MAAIC,IAAI,KAAK;AACb,SAAOA,KAAK,OAAO,SAASA,GAAG,CAAC,IAAI,MAAMA;AAC9C,CAAC;AAED,eAAe,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,WAAY;AACxC,SAAO,KAAK,KAAM,IAAG;AACzB,CAAC;AAED,eAAe,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM;AACxC,eAAe,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM;AACzC,eAAe,GAAG,CAAC,UAAU,GAAG,EAAI,GAAG,GAAG,MAAM;AAIhD,cAAc,KAAK,WAAW;AAC9B,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,QAAQ,WAAW,MAAM;AACvC,cAAc,SAAS,WAAW,MAAM;AACxC,cAAc,UAAU,WAAW,MAAM;AAEzC,cAAc,CAAC,SAAS,QAAQ,GAAG,IAAI;AACvC,cAAc,QAAQ,SAAUrE,GAAOyC,GAAO;AAC1C,EAAAA,EAAM,IAAI,IACNzC,EAAM,WAAW,IAAI,MAAM,kBAAkBA,CAAK,IAAI,MAAMA,CAAK;AACzE,CAAC;AACD,cAAc,MAAM,SAAUA,GAAOyC,GAAO;AACxC,EAAAA,EAAM,IAAI,IAAI,MAAM,kBAAkBzC,CAAK;AAC/C,CAAC;AACD,cAAc,KAAK,SAAUA,GAAOyC,GAAO;AACvC,EAAAA,EAAM,IAAI,IAAI,SAASzC,GAAO,EAAE;AACpC,CAAC;AAID,SAAS,WAAWoE,GAAM;AACtB,SAAO,WAAWA,CAAI,IAAI,MAAM;AACpC;AAIA,MAAM,oBAAoB,SAAUpE,GAAO;AACvC,SAAO,MAAMA,CAAK,KAAK,MAAMA,CAAK,IAAI,KAAK,OAAO;AACtD;AAIA,IAAI,aAAa,WAAW,YAAY,EAAI;AAE5C,SAAS,gBAAgB;AACrB,SAAO,WAAW,KAAK,KAAI,CAAE;AACjC;AAEA,SAAS,WAAWsE,GAAMC,GAAU;AAChC,SAAO,SAAU5L,GAAO;AACpB,WAAIA,KAAS,QACT,MAAM,MAAM2L,GAAM3L,CAAK,GACvB,MAAM,aAAa,MAAM4L,CAAQ,GAC1B,QAEA,IAAI,MAAMD,CAAI;AAAA,EAEjC;AACA;AAEA,SAAS,IAAI1C,GAAK0C,GAAM;AACpB,MAAI,CAAC1C,EAAI;AACL,WAAO;AAGX,MAAIrD,IAAIqD,EAAI,IACR4C,IAAQ5C,EAAI;AAEhB,UAAQ0C,GAAI;AAAA,IACR,KAAK;AACD,aAAOE,IAAQjG,EAAE,mBAAoB,IAAGA,EAAE,gBAAe;AAAA,IAC7D,KAAK;AACD,aAAOiG,IAAQjG,EAAE,cAAe,IAAGA,EAAE,WAAU;AAAA,IACnD,KAAK;AACD,aAAOiG,IAAQjG,EAAE,cAAe,IAAGA,EAAE,WAAU;AAAA,IACnD,KAAK;AACD,aAAOiG,IAAQjG,EAAE,YAAa,IAAGA,EAAE,SAAQ;AAAA,IAC/C,KAAK;AACD,aAAOiG,IAAQjG,EAAE,WAAY,IAAGA,EAAE,QAAO;AAAA,IAC7C,KAAK;AACD,aAAOiG,IAAQjG,EAAE,UAAW,IAAGA,EAAE,OAAM;AAAA,IAC3C,KAAK;AACD,aAAOiG,IAAQjG,EAAE,YAAa,IAAGA,EAAE,SAAQ;AAAA,IAC/C,KAAK;AACD,aAAOiG,IAAQjG,EAAE,eAAgB,IAAGA,EAAE,YAAW;AAAA,IACrD;AACI,aAAO;AAAA,EACd;AACL;AAEA,SAAS,MAAMqD,GAAK0C,GAAM3L,GAAO;AAC7B,MAAI4F,GAAGiG,GAAOJ,GAAMK,GAAOC;AAE3B,MAAI,GAAC9C,EAAI,QAAS,KAAI,MAAMjJ,CAAK,IAOjC;AAAA,YAHA4F,IAAIqD,EAAI,IACR4C,IAAQ5C,EAAI,QAEJ0C,GAAI;AAAA,MACR,KAAK;AACD,eAAO,MAAME,IACPjG,EAAE,mBAAmB5F,CAAK,IAC1B4F,EAAE,gBAAgB5F,CAAK;AAAA,MACjC,KAAK;AACD,eAAO,MAAM6L,IAAQjG,EAAE,cAAc5F,CAAK,IAAI4F,EAAE,WAAW5F,CAAK;AAAA,MACpE,KAAK;AACD,eAAO,MAAM6L,IAAQjG,EAAE,cAAc5F,CAAK,IAAI4F,EAAE,WAAW5F,CAAK;AAAA,MACpE,KAAK;AACD,eAAO,MAAM6L,IAAQjG,EAAE,YAAY5F,CAAK,IAAI4F,EAAE,SAAS5F,CAAK;AAAA,MAChE,KAAK;AACD,eAAO,MAAM6L,IAAQjG,EAAE,WAAW5F,CAAK,IAAI4F,EAAE,QAAQ5F,CAAK;AAAA,MAK9D,KAAK;AACD;AAAA,MACJ;AACI;AAAA,IACP;AAED,IAAAyL,IAAOzL,GACP8L,IAAQ7C,EAAI,SACZ8C,IAAO9C,EAAI,QACX8C,IAAOA,MAAS,MAAMD,MAAU,KAAK,CAAC,WAAWL,CAAI,IAAI,KAAKM,GACxDF,IACAjG,EAAE,eAAe6F,GAAMK,GAAOC,CAAI,IAClCnG,EAAE,YAAY6F,GAAMK,GAAOC,CAAI;AAAA;AACzC;AAIA,SAAS,UAAUxB,GAAO;AAEtB,SADAA,IAAQ,eAAeA,CAAK,GACxBzB,aAAW,KAAKyB,CAAK,CAAC,IACf,KAAKA,CAAK,MAEd;AACX;AAEA,SAAS,UAAUA,GAAOvK,GAAO;AAC7B,MAAI,OAAOuK,KAAU,UAAU;AAC3B,IAAAA,IAAQ,qBAAqBA,CAAK;AAClC,QAAIyB,IAAc,oBAAoBzB,CAAK,GACvCxP,GACAkR,IAAiBD,EAAY;AACjC,SAAKjR,IAAI,GAAGA,IAAIkR,GAAgBlR;AAC5B,WAAKiR,EAAYjR,CAAC,EAAE,IAAI,EAAEwP,EAAMyB,EAAYjR,CAAC,EAAE,IAAI,CAAC;AAAA,EAEhE,WACQwP,IAAQ,eAAeA,CAAK,GACxBzB,aAAW,KAAKyB,CAAK,CAAC;AACtB,WAAO,KAAKA,CAAK,EAAEvK,CAAK;AAGhC,SAAO;AACX;AAEA,SAAS,IAAIkM,GAAGC,GAAG;AACf,UAASD,IAAIC,IAAKA,KAAKA;AAC3B;AAEA,IAAI;AAEA,MAAM,UAAU,UAChB,UAAU,MAAM,UAAU,UAE1B,UAAU,SAAUC,GAAG;AAEnB,MAAIrR;AACJ,OAAKA,IAAI,GAAGA,IAAI,KAAK,QAAQ,EAAEA;AAC3B,QAAI,KAAKA,CAAC,MAAMqR;AACZ,aAAOrR;AAGf,SAAO;AACf;AAGA,SAAS,YAAY0Q,GAAMK,GAAO;AAC9B,MAAI,MAAML,CAAI,KAAK,MAAMK,CAAK;AAC1B,WAAO;AAEX,MAAIO,IAAW,IAAIP,GAAO,EAAE;AAC5B,SAAAL,MAASK,IAAQO,KAAY,IACtBA,MAAa,IACd,WAAWZ,CAAI,IACX,KACA,KACJ,KAAOY,IAAW,IAAK;AACjC;AAIA,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,WAAY;AAC7C,SAAO,KAAK,MAAO,IAAG;AAC1B,CAAC;AAED,eAAe,OAAO,GAAG,GAAG,SAAUvE,GAAQ;AAC1C,SAAO,KAAK,WAAY,EAAC,YAAY,MAAMA,CAAM;AACrD,CAAC;AAED,eAAe,QAAQ,GAAG,GAAG,SAAUA,GAAQ;AAC3C,SAAO,KAAK,WAAY,EAAC,OAAO,MAAMA,CAAM;AAChD,CAAC;AAID,cAAc,KAAK,WAAW,sBAAsB;AACpD,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,OAAO,SAAUgD,GAAU/C,GAAQ;AAC7C,SAAOA,EAAO,iBAAiB+C,CAAQ;AAC3C,CAAC;AACD,cAAc,QAAQ,SAAUA,GAAU/C,GAAQ;AAC9C,SAAOA,EAAO,YAAY+C,CAAQ;AACtC,CAAC;AAED,cAAc,CAAC,KAAK,IAAI,GAAG,SAAUzD,GAAOyC,GAAO;AAC/C,EAAAA,EAAM,KAAK,IAAI,MAAMzC,CAAK,IAAI;AAClC,CAAC;AAED,cAAc,CAAC,OAAO,MAAM,GAAG,SAAUA,GAAOyC,GAAO/F,GAAQ2F,GAAO;AAClE,MAAIoC,IAAQ/H,EAAO,QAAQ,YAAYsD,GAAOqC,GAAO3F,EAAO,OAAO;AAEnE,EAAI+H,KAAS,OACThC,EAAM,KAAK,IAAIgC,IAEf,gBAAgB/H,CAAM,EAAE,eAAesD;AAE/C,CAAC;AAID,IAAI,sBACI,wFAAwF;AAAA,EACpF;AACH,GACL,2BACI,kDAAkD,MAAM,GAAG,GAC/D,mBAAmB,iCACnB,0BAA0B,WAC1B,qBAAqB;AAEzB,SAAS,aAAaY,GAAGH,GAAQ;AAC7B,SAAKG,IAKEb,UAAQ,KAAK,OAAO,IACrB,KAAK,QAAQa,EAAE,OAAO,IACtB,KAAK,SACA,KAAK,QAAQ,YAAY,kBAAkB,KAAKH,CAAM,IACjD,WACA,YACpB,EAAYG,EAAE,MAAK,CAAE,IAVNb,UAAQ,KAAK,OAAO,IACrB,KAAK,UACL,KAAK,QAAQ;AAS3B;AAEA,SAAS,kBAAkBa,GAAGH,GAAQ;AAClC,SAAKG,IAKEb,UAAQ,KAAK,YAAY,IAC1B,KAAK,aAAaa,EAAE,OAAO,IAC3B,KAAK,aACD,iBAAiB,KAAKH,CAAM,IAAI,WAAW,YACzD,EAAYG,EAAE,MAAK,CAAE,IARNb,UAAQ,KAAK,YAAY,IAC1B,KAAK,eACL,KAAK,aAAa;AAOhC;AAEA,SAAS,kBAAkBkF,GAAWxE,GAAQE,GAAQ;AAClD,MAAIjN,GACAwR,GACAtD,GACAuD,IAAMF,EAAU;AACpB,MAAI,CAAC,KAAK;AAKN,SAHA,KAAK,eAAe,IACpB,KAAK,mBAAmB,IACxB,KAAK,oBAAoB,IACpBvR,IAAI,GAAGA,IAAI,IAAI,EAAEA;AAClB,MAAAkO,IAAM,UAAU,CAAC,KAAMlO,CAAC,CAAC,GACzB,KAAK,kBAAkBA,CAAC,IAAI,KAAK;AAAA,QAC7BkO;AAAA,QACA;AAAA,MACH,EAAC,kBAAiB,GACnB,KAAK,iBAAiBlO,CAAC,IAAI,KAAK,OAAOkO,GAAK,EAAE,EAAE;AAIxD,SAAIjB,IACIF,MAAW,SACXyE,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACtCD,MAAO,KAAKA,IAAK,SAExBA,IAAK,QAAQ,KAAK,KAAK,kBAAkBC,CAAG,GACrCD,MAAO,KAAKA,IAAK,QAGxBzE,MAAW,SACXyE,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACzCD,MAAO,KACAA,KAEXA,IAAK,QAAQ,KAAK,KAAK,kBAAkBC,CAAG,GACrCD,MAAO,KAAKA,IAAK,UAExBA,IAAK,QAAQ,KAAK,KAAK,kBAAkBC,CAAG,GACxCD,MAAO,KACAA,KAEXA,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACtCD,MAAO,KAAKA,IAAK;AAGpC;AAEA,SAAS,kBAAkBD,GAAWxE,GAAQE,GAAQ;AAClD,MAAIjN,GAAGkO,GAAK5M;AAEZ,MAAI,KAAK;AACL,WAAO,kBAAkB,KAAK,MAAMiQ,GAAWxE,GAAQE,CAAM;AAYjE,OATK,KAAK,iBACN,KAAK,eAAe,IACpB,KAAK,mBAAmB,IACxB,KAAK,oBAAoB,KAMxBjN,IAAI,GAAGA,IAAI,IAAIA,KAAK;AAmBrB,QAjBAkO,IAAM,UAAU,CAAC,KAAMlO,CAAC,CAAC,GACrBiN,KAAU,CAAC,KAAK,iBAAiBjN,CAAC,MAClC,KAAK,iBAAiBA,CAAC,IAAI,IAAI;AAAA,MAC3B,MAAM,KAAK,OAAOkO,GAAK,EAAE,EAAE,QAAQ,KAAK,EAAE,IAAI;AAAA,MAC9C;AAAA,IAChB,GACY,KAAK,kBAAkBlO,CAAC,IAAI,IAAI;AAAA,MAC5B,MAAM,KAAK,YAAYkO,GAAK,EAAE,EAAE,QAAQ,KAAK,EAAE,IAAI;AAAA,MACnD;AAAA,IAChB,IAEY,CAACjB,KAAU,CAAC,KAAK,aAAajN,CAAC,MAC/BsB,IACI,MAAM,KAAK,OAAO4M,GAAK,EAAE,IAAI,OAAO,KAAK,YAAYA,GAAK,EAAE,GAChE,KAAK,aAAalO,CAAC,IAAI,IAAI,OAAOsB,EAAM,QAAQ,KAAK,EAAE,GAAG,GAAG,IAI7D2L,KACAF,MAAW,UACX,KAAK,iBAAiB/M,CAAC,EAAE,KAAKuR,CAAS;AAEvC,aAAOvR;AACJ,QACHiN,KACAF,MAAW,SACX,KAAK,kBAAkB/M,CAAC,EAAE,KAAKuR,CAAS;AAExC,aAAOvR;AACJ,QAAI,CAACiN,KAAU,KAAK,aAAajN,CAAC,EAAE,KAAKuR,CAAS;AACrD,aAAOvR;AAAA,EAEd;AACL;AAIA,SAAS,SAASkO,GAAKjJ,GAAO;AAC1B,MAAI,CAACiJ,EAAI;AAEL,WAAOA;AAGX,MAAI,OAAOjJ,KAAU;AACjB,QAAI,QAAQ,KAAKA,CAAK;AAClB,MAAAA,IAAQ,MAAMA,CAAK;AAAA,aAEnBA,IAAQiJ,EAAI,WAAY,EAAC,YAAYjJ,CAAK,GAEtC,CAAC0H,WAAS1H,CAAK;AACf,aAAOiJ;AAAA;AAKnB,MAAI6C,IAAQ9L,GACR+L,IAAO9C,EAAI;AAEf,SAAA8C,IAAOA,IAAO,KAAKA,IAAO,KAAK,IAAIA,GAAM,YAAY9C,EAAI,QAAQ6C,CAAK,CAAC,GACjE7C,EAAI,SACJA,EAAI,GAAG,YAAY6C,GAAOC,CAAI,IAC9B9C,EAAI,GAAG,SAAS6C,GAAOC,CAAI,GAC1B9C;AACX;AAEA,SAAS,YAAYjJ,GAAO;AACxB,SAAIA,KAAS,QACT,SAAS,MAAMA,CAAK,GACpB,MAAM,aAAa,MAAM,EAAI,GACtB,QAEA,IAAI,MAAM,OAAO;AAEhC;AAEA,SAAS,iBAAiB;AACtB,SAAO,YAAY,KAAK,KAAM,GAAE,KAAK,MAAK,CAAE;AAChD;AAEA,SAAS,iBAAiB8K,GAAU;AAChC,SAAI,KAAK,qBACA,WAAW,MAAM,cAAc,KAChC,mBAAmB,KAAK,IAAI,GAE5BA,IACO,KAAK,0BAEL,KAAK,sBAGX,WAAW,MAAM,mBAAmB,MACrC,KAAK,oBAAoB,0BAEtB,KAAK,2BAA2BA,IACjC,KAAK,0BACL,KAAK;AAEnB;AAEA,SAAS,YAAYA,GAAU;AAC3B,SAAI,KAAK,qBACA,WAAW,MAAM,cAAc,KAChC,mBAAmB,KAAK,IAAI,GAE5BA,IACO,KAAK,qBAEL,KAAK,iBAGX,WAAW,MAAM,cAAc,MAChC,KAAK,eAAe,qBAEjB,KAAK,sBAAsBA,IAC5B,KAAK,qBACL,KAAK;AAEnB;AAEA,SAAS,qBAAqB;AAC1B,WAAS2B,EAAUlF,GAAG5B,GAAG;AACrB,WAAOA,EAAE,SAAS4B,EAAE;AAAA,EACvB;AAED,MAAImF,IAAc,CAAE,GAChBC,IAAa,CAAE,GACfC,IAAc,CAAE,GAChB7R,GACAkO,GACA4D,GACAC;AACJ,OAAK/R,IAAI,GAAGA,IAAI,IAAIA;AAEhB,IAAAkO,IAAM,UAAU,CAAC,KAAMlO,CAAC,CAAC,GACzB8R,IAAS,YAAY,KAAK,YAAY5D,GAAK,EAAE,CAAC,GAC9C6D,IAAQ,YAAY,KAAK,OAAO7D,GAAK,EAAE,CAAC,GACxCyD,EAAY,KAAKG,CAAM,GACvBF,EAAW,KAAKG,CAAK,GACrBF,EAAY,KAAKE,CAAK,GACtBF,EAAY,KAAKC,CAAM;AAI3B,EAAAH,EAAY,KAAKD,CAAS,GAC1BE,EAAW,KAAKF,CAAS,GACzBG,EAAY,KAAKH,CAAS,GAE1B,KAAK,eAAe,IAAI,OAAO,OAAOG,EAAY,KAAK,GAAG,IAAI,KAAK,GAAG,GACtE,KAAK,oBAAoB,KAAK,cAC9B,KAAK,qBAAqB,IAAI;AAAA,IAC1B,OAAOD,EAAW,KAAK,GAAG,IAAI;AAAA,IAC9B;AAAA,EACR,GACI,KAAK,0BAA0B,IAAI;AAAA,IAC/B,OAAOD,EAAY,KAAK,GAAG,IAAI;AAAA,IAC/B;AAAA,EACR;AACA;AAEA,SAAS,WAAWhB,GAAGzD,GAAGrC,GAAGmH,GAAGC,GAAGhC,GAAGiC,GAAI;AAGtC,MAAIlB;AAEJ,SAAIL,IAAI,OAAOA,KAAK,KAEhBK,IAAO,IAAI,KAAKL,IAAI,KAAKzD,GAAGrC,GAAGmH,GAAGC,GAAGhC,GAAGiC,CAAE,GACtC,SAASlB,EAAK,YAAW,CAAE,KAC3BA,EAAK,YAAYL,CAAC,KAGtBK,IAAO,IAAI,KAAKL,GAAGzD,GAAGrC,GAAGmH,GAAGC,GAAGhC,GAAGiC,CAAE,GAGjClB;AACX;AAEA,SAAS,cAAcL,GAAG;AACtB,MAAIK,GAAMtJ;AAEV,SAAIiJ,IAAI,OAAOA,KAAK,KAChBjJ,IAAO,MAAM,UAAU,MAAM,KAAK,SAAS,GAE3CA,EAAK,CAAC,IAAIiJ,IAAI,KACdK,IAAO,IAAI,KAAK,KAAK,IAAI,MAAM,MAAMtJ,CAAI,CAAC,GACtC,SAASsJ,EAAK,eAAc,CAAE,KAC9BA,EAAK,eAAeL,CAAC,KAGzBK,IAAO,IAAI,KAAK,KAAK,IAAI,MAAM,MAAM,SAAS,CAAC,GAG5CA;AACX;AAGA,SAAS,gBAAgBN,GAAMyB,GAAKC,GAAK;AACrC,MACIC,IAAM,IAAIF,IAAMC,GAEhBE,KAAS,IAAI,cAAc5B,GAAM,GAAG2B,CAAG,EAAE,UAAS,IAAKF,KAAO;AAElE,SAAO,CAACG,IAAQD,IAAM;AAC1B;AAGA,SAAS,mBAAmB3B,GAAM6B,GAAMC,GAASL,GAAKC,GAAK;AACvD,MAAIK,KAAgB,IAAID,IAAUL,KAAO,GACrCO,IAAa,gBAAgBhC,GAAMyB,GAAKC,CAAG,GAC3CO,IAAY,IAAI,KAAKJ,IAAO,KAAKE,IAAeC,GAChDE,GACAC;AAEJ,SAAIF,KAAa,KACbC,IAAUlC,IAAO,GACjBmC,IAAe,WAAWD,CAAO,IAAID,KAC9BA,IAAY,WAAWjC,CAAI,KAClCkC,IAAUlC,IAAO,GACjBmC,IAAeF,IAAY,WAAWjC,CAAI,MAE1CkC,IAAUlC,GACVmC,IAAeF,IAGZ;AAAA,IACH,MAAMC;AAAA,IACN,WAAWC;AAAA,EACnB;AACA;AAEA,SAAS,WAAW3E,GAAKiE,GAAKC,GAAK;AAC/B,MAAIM,IAAa,gBAAgBxE,EAAI,KAAM,GAAEiE,GAAKC,CAAG,GACjDG,IAAO,KAAK,OAAOrE,EAAI,UAAW,IAAGwE,IAAa,KAAK,CAAC,IAAI,GAC5DI,GACAF;AAEJ,SAAIL,IAAO,KACPK,IAAU1E,EAAI,KAAM,IAAG,GACvB4E,IAAUP,IAAO,YAAYK,GAAST,GAAKC,CAAG,KACvCG,IAAO,YAAYrE,EAAI,QAAQiE,GAAKC,CAAG,KAC9CU,IAAUP,IAAO,YAAYrE,EAAI,QAAQiE,GAAKC,CAAG,GACjDQ,IAAU1E,EAAI,KAAM,IAAG,MAEvB0E,IAAU1E,EAAI,QACd4E,IAAUP,IAGP;AAAA,IACH,MAAMO;AAAA,IACN,MAAMF;AAAA,EACd;AACA;AAEA,SAAS,YAAYlC,GAAMyB,GAAKC,GAAK;AACjC,MAAIM,IAAa,gBAAgBhC,GAAMyB,GAAKC,CAAG,GAC3CW,IAAiB,gBAAgBrC,IAAO,GAAGyB,GAAKC,CAAG;AACvD,UAAQ,WAAW1B,CAAI,IAAIgC,IAAaK,KAAkB;AAC9D;AAIA,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,MAAM;AAC3C,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,SAAS;AAI9C,cAAc,KAAK,WAAW,sBAAsB;AACpD,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,KAAK,WAAW,sBAAsB;AACpD,cAAc,MAAM,WAAW,MAAM;AAErC;AAAA,EACI,CAAC,KAAK,MAAM,KAAK,IAAI;AAAA,EACrB,SAAUzG,GAAOiG,GAAMvJ,GAAQ2F,GAAO;AAClC,IAAA4D,EAAK5D,EAAM,OAAO,GAAG,CAAC,CAAC,IAAI,MAAMrC,CAAK;AAAA,EACzC;AACL;AAMA,SAAS,WAAW4B,GAAK;AACrB,SAAO,WAAWA,GAAK,KAAK,MAAM,KAAK,KAAK,MAAM,GAAG,EAAE;AAC3D;AAEA,IAAI,oBAAoB;AAAA,EACpB,KAAK;AAAA;AAAA,EACL,KAAK;AAAA;AACT;AAEA,SAAS,uBAAuB;AAC5B,SAAO,KAAK,MAAM;AACtB;AAEA,SAAS,uBAAuB;AAC5B,SAAO,KAAK,MAAM;AACtB;AAIA,SAAS,WAAW5B,GAAO;AACvB,MAAIiG,IAAO,KAAK,WAAY,EAAC,KAAK,IAAI;AACtC,SAAOjG,KAAS,OAAOiG,IAAO,KAAK,KAAKjG,IAAQiG,KAAQ,GAAG,GAAG;AAClE;AAEA,SAAS,cAAcjG,GAAO;AAC1B,MAAIiG,IAAO,WAAW,MAAM,GAAG,CAAC,EAAE;AAClC,SAAOjG,KAAS,OAAOiG,IAAO,KAAK,KAAKjG,IAAQiG,KAAQ,GAAG,GAAG;AAClE;AAIA,eAAe,KAAK,GAAG,MAAM,KAAK;AAElC,eAAe,MAAM,GAAG,GAAG,SAAUxF,GAAQ;AACzC,SAAO,KAAK,WAAY,EAAC,YAAY,MAAMA,CAAM;AACrD,CAAC;AAED,eAAe,OAAO,GAAG,GAAG,SAAUA,GAAQ;AAC1C,SAAO,KAAK,WAAY,EAAC,cAAc,MAAMA,CAAM;AACvD,CAAC;AAED,eAAe,QAAQ,GAAG,GAAG,SAAUA,GAAQ;AAC3C,SAAO,KAAK,WAAY,EAAC,SAAS,MAAMA,CAAM;AAClD,CAAC;AAED,eAAe,KAAK,GAAG,GAAG,SAAS;AACnC,eAAe,KAAK,GAAG,GAAG,YAAY;AAItC,cAAc,KAAK,SAAS;AAC5B,cAAc,KAAK,SAAS;AAC5B,cAAc,KAAK,SAAS;AAC5B,cAAc,MAAM,SAAUgD,GAAU/C,GAAQ;AAC5C,SAAOA,EAAO,iBAAiB+C,CAAQ;AAC3C,CAAC;AACD,cAAc,OAAO,SAAUA,GAAU/C,GAAQ;AAC7C,SAAOA,EAAO,mBAAmB+C,CAAQ;AAC7C,CAAC;AACD,cAAc,QAAQ,SAAUA,GAAU/C,GAAQ;AAC9C,SAAOA,EAAO,cAAc+C,CAAQ;AACxC,CAAC;AAED,kBAAkB,CAAC,MAAM,OAAO,MAAM,GAAG,SAAUzD,GAAOiG,GAAMvJ,GAAQ2F,GAAO;AAC3E,MAAI6D,IAAUxJ,EAAO,QAAQ,cAAcsD,GAAOqC,GAAO3F,EAAO,OAAO;AAEvE,EAAIwJ,KAAW,OACXD,EAAK,IAAIC,IAET,gBAAgBxJ,CAAM,EAAE,iBAAiBsD;AAEjD,CAAC;AAED,kBAAkB,CAAC,KAAK,KAAK,GAAG,GAAG,SAAUA,GAAOiG,GAAMvJ,GAAQ2F,GAAO;AACrE,EAAA4D,EAAK5D,CAAK,IAAI,MAAMrC,CAAK;AAC7B,CAAC;AAID,SAAS,aAAaA,GAAOU,GAAQ;AACjC,SAAI,OAAOV,KAAU,WACVA,IAGN,MAAMA,CAAK,KAIhBA,IAAQU,EAAO,cAAcV,CAAK,GAC9B,OAAOA,KAAU,WACVA,IAGJ,QARI,SAASA,GAAO,EAAE;AASjC;AAEA,SAAS,gBAAgBA,GAAOU,GAAQ;AACpC,SAAI,OAAOV,KAAU,WACVU,EAAO,cAAcV,CAAK,IAAI,KAAK,IAEvC,MAAMA,CAAK,IAAI,OAAOA;AACjC;AAGA,SAAS,cAAc0G,GAAI7B,GAAG;AAC1B,SAAO6B,EAAG,MAAM7B,GAAG,CAAC,EAAE,OAAO6B,EAAG,MAAM,GAAG7B,CAAC,CAAC;AAC/C;AAEA,IAAI,wBACI,2DAA2D,MAAM,GAAG,GACxE,6BAA6B,8BAA8B,MAAM,GAAG,GACpE,2BAA2B,uBAAuB,MAAM,GAAG,GAC3D,uBAAuB,WACvB,4BAA4B,WAC5B,0BAA0B;AAE9B,SAAS,eAAejE,GAAGH,GAAQ;AAC/B,MAAIkG,IAAW5G,UAAQ,KAAK,SAAS,IAC/B,KAAK,YACL,KAAK,UACDa,KAAKA,MAAM,MAAQ,KAAK,UAAU,SAAS,KAAKH,CAAM,IAChD,WACA,YACpB;AACI,SAAOG,MAAM,KACP,cAAc+F,GAAU,KAAK,MAAM,GAAG,IACtC/F,IACE+F,EAAS/F,EAAE,KAAK,IAChB+F;AACZ;AAEA,SAAS,oBAAoB/F,GAAG;AAC5B,SAAOA,MAAM,KACP,cAAc,KAAK,gBAAgB,KAAK,MAAM,GAAG,IACjDA,IACE,KAAK,eAAeA,EAAE,KAAK,IAC3B,KAAK;AACjB;AAEA,SAAS,kBAAkBA,GAAG;AAC1B,SAAOA,MAAM,KACP,cAAc,KAAK,cAAc,KAAK,MAAM,GAAG,IAC/CA,IACE,KAAK,aAAaA,EAAE,KAAK,IACzB,KAAK;AACjB;AAEA,SAAS,oBAAoBgG,GAAanG,GAAQE,GAAQ;AACtD,MAAIjN,GACAwR,GACAtD,GACAuD,IAAMyB,EAAY;AACtB,MAAI,CAAC,KAAK;AAKN,SAJA,KAAK,iBAAiB,IACtB,KAAK,sBAAsB,IAC3B,KAAK,oBAAoB,IAEpBlT,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACjB,MAAAkO,IAAM,UAAU,CAAC,KAAM,CAAC,CAAC,EAAE,IAAIlO,CAAC,GAChC,KAAK,kBAAkBA,CAAC,IAAI,KAAK;AAAA,QAC7BkO;AAAA,QACA;AAAA,MACH,EAAC,kBAAiB,GACnB,KAAK,oBAAoBlO,CAAC,IAAI,KAAK;AAAA,QAC/BkO;AAAA,QACA;AAAA,MACH,EAAC,kBAAiB,GACnB,KAAK,eAAelO,CAAC,IAAI,KAAK,SAASkO,GAAK,EAAE,EAAE;AAIxD,SAAIjB,IACIF,MAAW,UACXyE,IAAK,QAAQ,KAAK,KAAK,gBAAgBC,CAAG,GACnCD,MAAO,KAAKA,IAAK,QACjBzE,MAAW,SAClByE,IAAK,QAAQ,KAAK,KAAK,qBAAqBC,CAAG,GACxCD,MAAO,KAAKA,IAAK,SAExBA,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACtCD,MAAO,KAAKA,IAAK,QAGxBzE,MAAW,UACXyE,IAAK,QAAQ,KAAK,KAAK,gBAAgBC,CAAG,GACtCD,MAAO,OAGXA,IAAK,QAAQ,KAAK,KAAK,qBAAqBC,CAAG,GAC3CD,MAAO,MACAA,KAEXA,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACtCD,MAAO,KAAKA,IAAK,SACjBzE,MAAW,SAClByE,IAAK,QAAQ,KAAK,KAAK,qBAAqBC,CAAG,GAC3CD,MAAO,OAGXA,IAAK,QAAQ,KAAK,KAAK,gBAAgBC,CAAG,GACtCD,MAAO,MACAA,KAEXA,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACtCD,MAAO,KAAKA,IAAK,UAExBA,IAAK,QAAQ,KAAK,KAAK,mBAAmBC,CAAG,GACzCD,MAAO,OAGXA,IAAK,QAAQ,KAAK,KAAK,gBAAgBC,CAAG,GACtCD,MAAO,MACAA,KAEXA,IAAK,QAAQ,KAAK,KAAK,qBAAqBC,CAAG,GACxCD,MAAO,KAAKA,IAAK;AAGpC;AAEA,SAAS,oBAAoB0B,GAAanG,GAAQE,GAAQ;AACtD,MAAIjN,GAAGkO,GAAK5M;AAEZ,MAAI,KAAK;AACL,WAAO,oBAAoB,KAAK,MAAM4R,GAAanG,GAAQE,CAAM;AAUrE,OAPK,KAAK,mBACN,KAAK,iBAAiB,IACtB,KAAK,oBAAoB,IACzB,KAAK,sBAAsB,IAC3B,KAAK,qBAAqB,KAGzBjN,IAAI,GAAGA,IAAI,GAAGA,KAAK;AA6BpB,QA1BAkO,IAAM,UAAU,CAAC,KAAM,CAAC,CAAC,EAAE,IAAIlO,CAAC,GAC5BiN,KAAU,CAAC,KAAK,mBAAmBjN,CAAC,MACpC,KAAK,mBAAmBA,CAAC,IAAI,IAAI;AAAA,MAC7B,MAAM,KAAK,SAASkO,GAAK,EAAE,EAAE,QAAQ,KAAK,MAAM,IAAI;AAAA,MACpD;AAAA,IAChB,GACY,KAAK,oBAAoBlO,CAAC,IAAI,IAAI;AAAA,MAC9B,MAAM,KAAK,cAAckO,GAAK,EAAE,EAAE,QAAQ,KAAK,MAAM,IAAI;AAAA,MACzD;AAAA,IAChB,GACY,KAAK,kBAAkBlO,CAAC,IAAI,IAAI;AAAA,MAC5B,MAAM,KAAK,YAAYkO,GAAK,EAAE,EAAE,QAAQ,KAAK,MAAM,IAAI;AAAA,MACvD;AAAA,IAChB,IAEa,KAAK,eAAelO,CAAC,MACtBsB,IACI,MACA,KAAK,SAAS4M,GAAK,EAAE,IACrB,OACA,KAAK,cAAcA,GAAK,EAAE,IAC1B,OACA,KAAK,YAAYA,GAAK,EAAE,GAC5B,KAAK,eAAelO,CAAC,IAAI,IAAI,OAAOsB,EAAM,QAAQ,KAAK,EAAE,GAAG,GAAG,IAI/D2L,KACAF,MAAW,UACX,KAAK,mBAAmB/M,CAAC,EAAE,KAAKkT,CAAW;AAE3C,aAAOlT;AACJ,QACHiN,KACAF,MAAW,SACX,KAAK,oBAAoB/M,CAAC,EAAE,KAAKkT,CAAW;AAE5C,aAAOlT;AACJ,QACHiN,KACAF,MAAW,QACX,KAAK,kBAAkB/M,CAAC,EAAE,KAAKkT,CAAW;AAE1C,aAAOlT;AACJ,QAAI,CAACiN,KAAU,KAAK,eAAejN,CAAC,EAAE,KAAKkT,CAAW;AACzD,aAAOlT;AAAA,EAEd;AACL;AAIA,SAAS,gBAAgBsM,GAAO;AAC5B,MAAI,CAAC,KAAK;AACN,WAAOA,KAAS,OAAO,OAAO;AAGlC,MAAI6G,IAAM,IAAI,MAAM,KAAK;AACzB,SAAI7G,KAAS,QACTA,IAAQ,aAAaA,GAAO,KAAK,WAAY,CAAA,GACtC,KAAK,IAAIA,IAAQ6G,GAAK,GAAG,KAEzBA;AAEf;AAEA,SAAS,sBAAsB7G,GAAO;AAClC,MAAI,CAAC,KAAK;AACN,WAAOA,KAAS,OAAO,OAAO;AAElC,MAAIkG,KAAW,KAAK,QAAQ,IAAI,KAAK,WAAY,EAAC,MAAM,OAAO;AAC/D,SAAOlG,KAAS,OAAOkG,IAAU,KAAK,IAAIlG,IAAQkG,GAAS,GAAG;AAClE;AAEA,SAAS,mBAAmBlG,GAAO;AAC/B,MAAI,CAAC,KAAK;AACN,WAAOA,KAAS,OAAO,OAAO;AAOlC,MAAIA,KAAS,MAAM;AACf,QAAIkG,IAAU,gBAAgBlG,GAAO,KAAK,WAAY,CAAA;AACtD,WAAO,KAAK,IAAI,KAAK,IAAG,IAAK,IAAIkG,IAAUA,IAAU,CAAC;AAAA,EAC9D;AACQ,WAAO,KAAK,IAAK,KAAI;AAE7B;AAEA,SAAS,cAAczC,GAAU;AAC7B,SAAI,KAAK,uBACA,WAAW,MAAM,gBAAgB,KAClC,qBAAqB,KAAK,IAAI,GAE9BA,IACO,KAAK,uBAEL,KAAK,mBAGX,WAAW,MAAM,gBAAgB,MAClC,KAAK,iBAAiB,uBAEnB,KAAK,wBAAwBA,IAC9B,KAAK,uBACL,KAAK;AAEnB;AAEA,SAAS,mBAAmBA,GAAU;AAClC,SAAI,KAAK,uBACA,WAAW,MAAM,gBAAgB,KAClC,qBAAqB,KAAK,IAAI,GAE9BA,IACO,KAAK,4BAEL,KAAK,wBAGX,WAAW,MAAM,qBAAqB,MACvC,KAAK,sBAAsB,4BAExB,KAAK,6BAA6BA,IACnC,KAAK,4BACL,KAAK;AAEnB;AAEA,SAAS,iBAAiBA,GAAU;AAChC,SAAI,KAAK,uBACA,WAAW,MAAM,gBAAgB,KAClC,qBAAqB,KAAK,IAAI,GAE9BA,IACO,KAAK,0BAEL,KAAK,sBAGX,WAAW,MAAM,mBAAmB,MACrC,KAAK,oBAAoB,0BAEtB,KAAK,2BAA2BA,IACjC,KAAK,0BACL,KAAK;AAEnB;AAEA,SAAS,uBAAuB;AAC5B,WAAS2B,EAAUlF,GAAG5B,GAAG;AACrB,WAAOA,EAAE,SAAS4B,EAAE;AAAA,EACvB;AAED,MAAI4G,IAAY,CAAE,GACdzB,IAAc,CAAE,GAChBC,IAAa,CAAE,GACfC,IAAc,CAAE,GAChB7R,GACAkO,GACAmF,GACAC,GACAC;AACJ,OAAKvT,IAAI,GAAGA,IAAI,GAAGA;AAEf,IAAAkO,IAAM,UAAU,CAAC,KAAM,CAAC,CAAC,EAAE,IAAIlO,CAAC,GAChCqT,IAAO,YAAY,KAAK,YAAYnF,GAAK,EAAE,CAAC,GAC5CoF,IAAS,YAAY,KAAK,cAAcpF,GAAK,EAAE,CAAC,GAChDqF,IAAQ,YAAY,KAAK,SAASrF,GAAK,EAAE,CAAC,GAC1CkF,EAAU,KAAKC,CAAI,GACnB1B,EAAY,KAAK2B,CAAM,GACvB1B,EAAW,KAAK2B,CAAK,GACrB1B,EAAY,KAAKwB,CAAI,GACrBxB,EAAY,KAAKyB,CAAM,GACvBzB,EAAY,KAAK0B,CAAK;AAI1B,EAAAH,EAAU,KAAK1B,CAAS,GACxBC,EAAY,KAAKD,CAAS,GAC1BE,EAAW,KAAKF,CAAS,GACzBG,EAAY,KAAKH,CAAS,GAE1B,KAAK,iBAAiB,IAAI,OAAO,OAAOG,EAAY,KAAK,GAAG,IAAI,KAAK,GAAG,GACxE,KAAK,sBAAsB,KAAK,gBAChC,KAAK,oBAAoB,KAAK,gBAE9B,KAAK,uBAAuB,IAAI;AAAA,IAC5B,OAAOD,EAAW,KAAK,GAAG,IAAI;AAAA,IAC9B;AAAA,EACR,GACI,KAAK,4BAA4B,IAAI;AAAA,IACjC,OAAOD,EAAY,KAAK,GAAG,IAAI;AAAA,IAC/B;AAAA,EACR,GACI,KAAK,0BAA0B,IAAI;AAAA,IAC/B,OAAOyB,EAAU,KAAK,GAAG,IAAI;AAAA,IAC7B;AAAA,EACR;AACA;AAIA,SAAS,UAAU;AACf,SAAO,KAAK,UAAU,MAAM;AAChC;AAEA,SAAS,UAAU;AACf,SAAO,KAAK,MAAO,KAAI;AAC3B;AAEA,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM;AACxC,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO;AACzC,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO;AAEzC,eAAe,OAAO,GAAG,GAAG,WAAY;AACpC,SAAO,KAAK,QAAQ,MAAM,IAAI,IAAI,SAAS,KAAK,WAAW,CAAC;AAChE,CAAC;AAED,eAAe,SAAS,GAAG,GAAG,WAAY;AACtC,SACI,KACA,QAAQ,MAAM,IAAI,IAClB,SAAS,KAAK,QAAS,GAAE,CAAC,IAC1B,SAAS,KAAK,QAAS,GAAE,CAAC;AAElC,CAAC;AAED,eAAe,OAAO,GAAG,GAAG,WAAY;AACpC,SAAO,KAAK,KAAK,MAAO,IAAG,SAAS,KAAK,WAAW,CAAC;AACzD,CAAC;AAED,eAAe,SAAS,GAAG,GAAG,WAAY;AACtC,SACI,KACA,KAAK,MAAO,IACZ,SAAS,KAAK,QAAS,GAAE,CAAC,IAC1B,SAAS,KAAK,QAAS,GAAE,CAAC;AAElC,CAAC;AAED,SAAS,SAASzE,GAAO6E,GAAW;AAChC,iBAAe7E,GAAO,GAAG,GAAG,WAAY;AACpC,WAAO,KAAK,WAAU,EAAG;AAAA,MACrB,KAAK,MAAO;AAAA,MACZ,KAAK,QAAS;AAAA,MACd6E;AAAA,IACZ;AAAA,EACA,CAAK;AACL;AAEA,SAAS,KAAK,EAAI;AAClB,SAAS,KAAK,EAAK;AAInB,SAAS,cAAczD,GAAU/C,GAAQ;AACrC,SAAOA,EAAO;AAClB;AAEA,cAAc,KAAK,aAAa;AAChC,cAAc,KAAK,aAAa;AAChC,cAAc,KAAK,WAAW,gBAAgB;AAC9C,cAAc,KAAK,WAAW,sBAAsB;AACpD,cAAc,KAAK,WAAW,sBAAsB;AACpD,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,MAAM,WAAW,MAAM;AAErC,cAAc,OAAO,SAAS;AAC9B,cAAc,SAAS,SAAS;AAChC,cAAc,OAAO,SAAS;AAC9B,cAAc,SAAS,SAAS;AAEhC,cAAc,CAAC,KAAK,IAAI,GAAG,IAAI;AAC/B,cAAc,CAAC,KAAK,IAAI,GAAG,SAAUV,GAAOyC,GAAO/F,GAAQ;AACvD,MAAIyK,IAAS,MAAMnH,CAAK;AACxB,EAAAyC,EAAM,IAAI,IAAI0E,MAAW,KAAK,IAAIA;AACtC,CAAC;AACD,cAAc,CAAC,KAAK,GAAG,GAAG,SAAUnH,GAAOyC,GAAO/F,GAAQ;AACtD,EAAAA,EAAO,QAAQA,EAAO,QAAQ,KAAKsD,CAAK,GACxCtD,EAAO,YAAYsD;AACvB,CAAC;AACD,cAAc,CAAC,KAAK,IAAI,GAAG,SAAUA,GAAOyC,GAAO/F,GAAQ;AACvD,EAAA+F,EAAM,IAAI,IAAI,MAAMzC,CAAK,GACzB,gBAAgBtD,CAAM,EAAE,UAAU;AACtC,CAAC;AACD,cAAc,OAAO,SAAUsD,GAAOyC,GAAO/F,GAAQ;AACjD,MAAI0K,IAAMpH,EAAM,SAAS;AACzB,EAAAyC,EAAM,IAAI,IAAI,MAAMzC,EAAM,OAAO,GAAGoH,CAAG,CAAC,GACxC3E,EAAM,MAAM,IAAI,MAAMzC,EAAM,OAAOoH,CAAG,CAAC,GACvC,gBAAgB1K,CAAM,EAAE,UAAU;AACtC,CAAC;AACD,cAAc,SAAS,SAAUsD,GAAOyC,GAAO/F,GAAQ;AACnD,MAAI2K,IAAOrH,EAAM,SAAS,GACtBsH,IAAOtH,EAAM,SAAS;AAC1B,EAAAyC,EAAM,IAAI,IAAI,MAAMzC,EAAM,OAAO,GAAGqH,CAAI,CAAC,GACzC5E,EAAM,MAAM,IAAI,MAAMzC,EAAM,OAAOqH,GAAM,CAAC,CAAC,GAC3C5E,EAAM,MAAM,IAAI,MAAMzC,EAAM,OAAOsH,CAAI,CAAC,GACxC,gBAAgB5K,CAAM,EAAE,UAAU;AACtC,CAAC;AACD,cAAc,OAAO,SAAUsD,GAAOyC,GAAO/F,GAAQ;AACjD,MAAI0K,IAAMpH,EAAM,SAAS;AACzB,EAAAyC,EAAM,IAAI,IAAI,MAAMzC,EAAM,OAAO,GAAGoH,CAAG,CAAC,GACxC3E,EAAM,MAAM,IAAI,MAAMzC,EAAM,OAAOoH,CAAG,CAAC;AAC3C,CAAC;AACD,cAAc,SAAS,SAAUpH,GAAOyC,GAAO/F,GAAQ;AACnD,MAAI2K,IAAOrH,EAAM,SAAS,GACtBsH,IAAOtH,EAAM,SAAS;AAC1B,EAAAyC,EAAM,IAAI,IAAI,MAAMzC,EAAM,OAAO,GAAGqH,CAAI,CAAC,GACzC5E,EAAM,MAAM,IAAI,MAAMzC,EAAM,OAAOqH,GAAM,CAAC,CAAC,GAC3C5E,EAAM,MAAM,IAAI,MAAMzC,EAAM,OAAOsH,CAAI,CAAC;AAC5C,CAAC;AAID,SAAS,WAAWtH,GAAO;AAGvB,UAAQA,IAAQ,IAAI,YAAa,EAAC,OAAO,CAAC,MAAM;AACpD;AAEA,IAAI,6BAA6B,iBAK7B,aAAa,WAAW,SAAS,EAAI;AAEzC,SAAS,eAAeuH,GAAOC,GAASC,GAAS;AAC7C,SAAIF,IAAQ,KACDE,IAAU,OAAO,OAEjBA,IAAU,OAAO;AAEhC;AAEA,IAAI,aAAa;AAAA,EACb,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,wBAAwB;AAAA,EACxB,cAAc;AAAA,EAEd,QAAQ;AAAA,EACR,aAAa;AAAA,EAEb,MAAM;AAAA,EAEN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,eAAe;AAAA,EAEf,eAAe;AACnB,GAGI,UAAU,CAAE,GACZ,iBAAiB,CAAE,GACnB;AAEJ,SAAS,aAAaC,GAAMC,GAAM;AAC9B,MAAIjU,GACAkU,IAAO,KAAK,IAAIF,EAAK,QAAQC,EAAK,MAAM;AAC5C,OAAKjU,IAAI,GAAGA,IAAIkU,GAAMlU,KAAK;AACvB,QAAIgU,EAAKhU,CAAC,MAAMiU,EAAKjU,CAAC;AAClB,aAAOA;AAGf,SAAOkU;AACX;AAEA,SAAS,gBAAgBlP,GAAK;AAC1B,SAAOA,KAAMA,EAAI,YAAa,EAAC,QAAQ,KAAK,GAAG;AACnD;AAKA,SAAS,aAAaF,GAAO;AAOzB,WANI9E,IAAI,GACJgB,GACAmT,GACAnH,GACAoH,GAEGpU,IAAI8E,EAAM,UAAQ;AAKrB,SAJAsP,IAAQ,gBAAgBtP,EAAM9E,CAAC,CAAC,EAAE,MAAM,GAAG,GAC3CgB,IAAIoT,EAAM,QACVD,IAAO,gBAAgBrP,EAAM9E,IAAI,CAAC,CAAC,GACnCmU,IAAOA,IAAOA,EAAK,MAAM,GAAG,IAAI,MACzBnT,IAAI,KAAG;AAEV,UADAgM,IAAS,WAAWoH,EAAM,MAAM,GAAGpT,CAAC,EAAE,KAAK,GAAG,CAAC,GAC3CgM;AACA,eAAOA;AAEX,UACImH,KACAA,EAAK,UAAUnT,KACf,aAAaoT,GAAOD,CAAI,KAAKnT,IAAI;AAGjC;AAEJ,MAAAA;AAAA,IACH;AACD,IAAAhB;AAAA,EACH;AACD,SAAO;AACX;AAEA,SAAS,iBAAiB6E,GAAM;AAG5B,SAAO,CAAC,EAAEA,KAAQA,EAAK,MAAM,aAAa;AAC9C;AAEA,SAAS,WAAWA,GAAM;AACtB,MAAIwP,IAAY,MACZC;AAEJ,MACI,QAAQzP,CAAI,MAAM,UAClB,OAAO,SAAW,OAClB,UACA,OAAO,WACP,iBAAiBA,CAAI;AAErB,QAAI;AACA,MAAAwP,IAAY,aAAa,OACzBC,IAAiB,SACjBA,EAAe,cAAczP,CAAI,GACjC,mBAAmBwP,CAAS;AAAA,IAC/B,QAAW;AAGR,cAAQxP,CAAI,IAAI;AAAA,IACnB;AAEL,SAAO,QAAQA,CAAI;AACvB;AAKA,SAAS,mBAAmBG,GAAKuP,GAAQ;AACrC,MAAIpR;AACJ,SAAI6B,MACI0H,cAAY6H,CAAM,IAClBpR,IAAO,UAAU6B,CAAG,IAEpB7B,IAAO,aAAa6B,GAAKuP,CAAM,GAG/BpR,IAEA,eAAeA,IAEX,OAAO,UAAY,OAAe,QAAQ,QAE1C,QAAQ;AAAA,IACJ,YAAY6B,IAAM;AAAA,EACtC,IAKW,aAAa;AACxB;AAEA,SAAS,aAAaH,GAAMmE,GAAQ;AAChC,MAAIA,MAAW,MAAM;AACjB,QAAIgE,GACAgB,IAAe;AAEnB,QADAhF,EAAO,OAAOnE,GACV,QAAQA,CAAI,KAAK;AACjB;AAAA,QACI;AAAA,QACA;AAAA,MAIhB,GACYmJ,IAAe,QAAQnJ,CAAI,EAAE;AAAA,aACtBmE,EAAO,gBAAgB;AAC9B,UAAI,QAAQA,EAAO,YAAY,KAAK;AAChC,QAAAgF,IAAe,QAAQhF,EAAO,YAAY,EAAE;AAAA,eAE5CgE,IAAS,WAAWhE,EAAO,YAAY,GACnCgE,KAAU;AACV,QAAAgB,IAAehB,EAAO;AAAA;AAEtB,eAAK,eAAehE,EAAO,YAAY,MACnC,eAAeA,EAAO,YAAY,IAAI,KAE1C,eAAeA,EAAO,YAAY,EAAE,KAAK;AAAA,UACrC,MAAMnE;AAAA,UACN,QAAQmE;AAAA,QAChC,CAAqB,GACM;AAInB,mBAAQnE,CAAI,IAAI,IAAI,OAAO,aAAamJ,GAAchF,CAAM,CAAC,GAEzD,eAAenE,CAAI,KACnB,eAAeA,CAAI,EAAE,QAAQ,SAAUuM,GAAG;AACtC,mBAAaA,EAAE,MAAMA,EAAE,MAAM;AAAA,IAC7C,CAAa,GAML,mBAAmBvM,CAAI,GAEhB,QAAQA,CAAI;AAAA,EAC3B;AAEQ,kBAAO,QAAQA,CAAI,GACZ;AAEf;AAEA,SAAS,aAAaA,GAAMmE,GAAQ;AAChC,MAAIA,KAAU,MAAM;AAChB,QAAIgE,GACAwH,GACAxG,IAAe;AAEnB,IAAI,QAAQnJ,CAAI,KAAK,QAAQ,QAAQA,CAAI,EAAE,gBAAgB,OAEvD,QAAQA,CAAI,EAAE,IAAI,aAAa,QAAQA,CAAI,EAAE,SAASmE,CAAM,CAAC,KAG7DwL,IAAY,WAAW3P,CAAI,GACvB2P,KAAa,SACbxG,IAAewG,EAAU,UAE7BxL,IAAS,aAAagF,GAAchF,CAAM,GACtCwL,KAAa,SAIbxL,EAAO,OAAOnE,IAElBmI,IAAS,IAAI,OAAOhE,CAAM,GAC1BgE,EAAO,eAAe,QAAQnI,CAAI,GAClC,QAAQA,CAAI,IAAImI,IAIpB,mBAAmBnI,CAAI;AAAA,EAC/B;AAEQ,IAAI,QAAQA,CAAI,KAAK,SACb,QAAQA,CAAI,EAAE,gBAAgB,QAC9B,QAAQA,CAAI,IAAI,QAAQA,CAAI,EAAE,cAC1BA,MAAS,wBACT,mBAAmBA,CAAI,KAEpB,QAAQA,CAAI,KAAK,QACxB,OAAO,QAAQA,CAAI;AAI/B,SAAO,QAAQA,CAAI;AACvB;AAGA,SAAS,UAAUG,GAAK;AACpB,MAAIgI;AAMJ,MAJIhI,KAAOA,EAAI,WAAWA,EAAI,QAAQ,UAClCA,IAAMA,EAAI,QAAQ,QAGlB,CAACA;AACD,WAAO;AAGX,MAAI,CAACqH,UAAQrH,CAAG,GAAG;AAGf,QADAgI,IAAS,WAAWhI,CAAG,GACnBgI;AACA,aAAOA;AAEX,IAAAhI,IAAM,CAACA,CAAG;AAAA,EACb;AAED,SAAO,aAAaA,CAAG;AAC3B;AAEA,SAAS,cAAc;AACnB,SAAO,KAAK,OAAO;AACvB;AAEA,SAAS,cAAckI,GAAG;AACtB,MAAIuH,GACAjI,IAAIU,EAAE;AAEV,SAAIV,KAAK,gBAAgBU,CAAC,EAAE,aAAa,OACrCuH,IACIjI,EAAE,KAAK,IAAI,KAAKA,EAAE,KAAK,IAAI,KACrB,QACAA,EAAE,IAAI,IAAI,KAAKA,EAAE,IAAI,IAAI,YAAYA,EAAE,IAAI,GAAGA,EAAE,KAAK,CAAC,IACpD,OACAA,EAAE,IAAI,IAAI,KACRA,EAAE,IAAI,IAAI,MACTA,EAAE,IAAI,MAAM,OACRA,EAAE,MAAM,MAAM,KACXA,EAAE,MAAM,MAAM,KACdA,EAAE,WAAW,MAAM,KAC3B,OACAA,EAAE,MAAM,IAAI,KAAKA,EAAE,MAAM,IAAI,KAC3B,SACAA,EAAE,MAAM,IAAI,KAAKA,EAAE,MAAM,IAAI,KAC3B,SACAA,EAAE,WAAW,IAAI,KAAKA,EAAE,WAAW,IAAI,MACrC,cACA,IAGhB,gBAAgBU,CAAC,EAAE,uBAClBuH,IAAW,QAAQA,IAAW,UAE/BA,IAAW,OAEX,gBAAgBvH,CAAC,EAAE,kBAAkBuH,MAAa,OAClDA,IAAW,OAEX,gBAAgBvH,CAAC,EAAE,oBAAoBuH,MAAa,OACpDA,IAAW,UAGf,gBAAgBvH,CAAC,EAAE,WAAWuH,IAG3BvH;AACX;AAIA,IAAI,mBACI,kJACJ,gBACI,8IACJ,UAAU,yBACV,WAAW;AAAA,EACP,CAAC,gBAAgB,qBAAqB;AAAA,EACtC,CAAC,cAAc,iBAAiB;AAAA,EAChC,CAAC,gBAAgB,gBAAgB;AAAA,EACjC,CAAC,cAAc,eAAe,EAAK;AAAA,EACnC,CAAC,YAAY,aAAa;AAAA,EAC1B,CAAC,WAAW,cAAc,EAAK;AAAA,EAC/B,CAAC,cAAc,YAAY;AAAA,EAC3B,CAAC,YAAY,OAAO;AAAA,EACpB,CAAC,cAAc,aAAa;AAAA,EAC5B,CAAC,aAAa,eAAe,EAAK;AAAA,EAClC,CAAC,WAAW,OAAO;AAAA,EACnB,CAAC,UAAU,SAAS,EAAK;AAAA,EACzB,CAAC,QAAQ,SAAS,EAAK;AAC1B,GAED,WAAW;AAAA,EACP,CAAC,iBAAiB,qBAAqB;AAAA,EACvC,CAAC,iBAAiB,oBAAoB;AAAA,EACtC,CAAC,YAAY,gBAAgB;AAAA,EAC7B,CAAC,SAAS,WAAW;AAAA,EACrB,CAAC,eAAe,mBAAmB;AAAA,EACnC,CAAC,eAAe,kBAAkB;AAAA,EAClC,CAAC,UAAU,cAAc;AAAA,EACzB,CAAC,QAAQ,UAAU;AAAA,EACnB,CAAC,MAAM,MAAM;AAChB,GACD,kBAAkB,sBAElB,UACI,2LACJ,aAAa;AAAA,EACT,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAAA,EACV,KAAK,KAAK;AAClB;AAGA,SAAS,cAAclE,GAAQ;AAC3B,MAAIhJ,GACA0U,GACArF,IAASrG,EAAO,IAChB3H,IAAQ,iBAAiB,KAAKgO,CAAM,KAAK,cAAc,KAAKA,CAAM,GAClEsF,GACAC,GACAC,GACAC,GACAC,IAAc,SAAS,QACvBC,IAAc,SAAS;AAE3B,MAAI3T,GAAO;AAEP,SADA,gBAAgB2H,CAAM,EAAE,MAAM,IACzBhJ,IAAI,GAAG0U,IAAIK,GAAa/U,IAAI0U,GAAG1U;AAChC,UAAI,SAASA,CAAC,EAAE,CAAC,EAAE,KAAKqB,EAAM,CAAC,CAAC,GAAG;AAC/B,QAAAuT,IAAa,SAAS5U,CAAC,EAAE,CAAC,GAC1B2U,IAAY,SAAS3U,CAAC,EAAE,CAAC,MAAM;AAC/B;AAAA,MACH;AAEL,QAAI4U,KAAc,MAAM;AACpB,MAAA5L,EAAO,WAAW;AAClB;AAAA,IACH;AACD,QAAI3H,EAAM,CAAC,GAAG;AACV,WAAKrB,IAAI,GAAG0U,IAAIM,GAAahV,IAAI0U,GAAG1U;AAChC,YAAI,SAASA,CAAC,EAAE,CAAC,EAAE,KAAKqB,EAAM,CAAC,CAAC,GAAG;AAE/B,UAAAwT,KAAcxT,EAAM,CAAC,KAAK,OAAO,SAASrB,CAAC,EAAE,CAAC;AAC9C;AAAA,QACH;AAEL,UAAI6U,KAAc,MAAM;AACpB,QAAA7L,EAAO,WAAW;AAClB;AAAA,MACH;AAAA,IACJ;AACD,QAAI,CAAC2L,KAAaE,KAAc,MAAM;AAClC,MAAA7L,EAAO,WAAW;AAClB;AAAA,IACH;AACD,QAAI3H,EAAM,CAAC;AACP,UAAI,QAAQ,KAAKA,EAAM,CAAC,CAAC;AACrB,QAAAyT,IAAW;AAAA,WACR;AACH,QAAA9L,EAAO,WAAW;AAClB;AAAA,MACH;AAEL,IAAAA,EAAO,KAAK4L,KAAcC,KAAc,OAAOC,KAAY,KAC3D,0BAA0B9L,CAAM;AAAA,EACxC;AACQ,IAAAA,EAAO,WAAW;AAE1B;AAEA,SAAS,0BACLiM,GACAC,GACAC,GACAC,GACAC,GACAC,GACF;AACE,MAAI3S,IAAS;AAAA,IACT,eAAesS,CAAO;AAAA,IACtB,yBAAyB,QAAQC,CAAQ;AAAA,IACzC,SAASC,GAAQ,EAAE;AAAA,IACnB,SAASC,GAAS,EAAE;AAAA,IACpB,SAASC,GAAW,EAAE;AAAA,EAC9B;AAEI,SAAIC,KACA3S,EAAO,KAAK,SAAS2S,GAAW,EAAE,CAAC,GAGhC3S;AACX;AAEA,SAAS,eAAesS,GAAS;AAC7B,MAAIvE,IAAO,SAASuE,GAAS,EAAE;AAC/B,SAAIvE,KAAQ,KACD,MAAOA,IACPA,KAAQ,MACR,OAAOA,IAEXA;AACX;AAEA,SAAS,kBAAkBT,GAAG;AAE1B,SAAOA,EACF,QAAQ,sBAAsB,GAAG,EACjC,QAAQ,YAAY,GAAG,EACvB,QAAQ,UAAU,EAAE,EACpB,QAAQ,UAAU,EAAE;AAC7B;AAEA,SAAS,aAAasF,GAAYC,GAAaxM,GAAQ;AACnD,MAAIuM,GAAY;AAEZ,QAAIE,IAAkB,2BAA2B,QAAQF,CAAU,GAC/DG,IAAgB,IAAI;AAAA,MAChBF,EAAY,CAAC;AAAA,MACbA,EAAY,CAAC;AAAA,MACbA,EAAY,CAAC;AAAA,IAChB,EAAC,OAAM;AACZ,QAAIC,MAAoBC;AACpB,6BAAgB1M,CAAM,EAAE,kBAAkB,IAC1CA,EAAO,WAAW,IACX;AAAA,EAEd;AACD,SAAO;AACX;AAEA,SAAS,gBAAgB2M,GAAWC,GAAgBC,GAAW;AAC3D,MAAIF;AACA,WAAO,WAAWA,CAAS;AACxB,MAAIC;AAEP,WAAO;AAEP,MAAIE,IAAK,SAASD,GAAW,EAAE,GAC3B3I,IAAI4I,IAAK,KACT9D,KAAK8D,IAAK5I,KAAK;AACnB,SAAO8E,IAAI,KAAK9E;AAExB;AAGA,SAAS,kBAAkBlE,GAAQ;AAC/B,MAAI3H,IAAQ,QAAQ,KAAK,kBAAkB2H,EAAO,EAAE,CAAC,GACjD+M;AACJ,MAAI1U,GAAO;AASP,QARA0U,IAAc;AAAA,MACV1U,EAAM,CAAC;AAAA,MACPA,EAAM,CAAC;AAAA,MACPA,EAAM,CAAC;AAAA,MACPA,EAAM,CAAC;AAAA,MACPA,EAAM,CAAC;AAAA,MACPA,EAAM,CAAC;AAAA,IACnB,GACY,CAAC,aAAaA,EAAM,CAAC,GAAG0U,GAAa/M,CAAM;AAC3C;AAGJ,IAAAA,EAAO,KAAK+M,GACZ/M,EAAO,OAAO,gBAAgB3H,EAAM,CAAC,GAAGA,EAAM,CAAC,GAAGA,EAAM,EAAE,CAAC,GAE3D2H,EAAO,KAAK,cAAc,MAAM,MAAMA,EAAO,EAAE,GAC/CA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,IAAGA,EAAO,IAAI,GAE/D,gBAAgBA,CAAM,EAAE,UAAU;AAAA,EAC1C;AACQ,IAAAA,EAAO,WAAW;AAE1B;AAGA,SAAS,iBAAiBA,GAAQ;AAC9B,MAAIkH,IAAU,gBAAgB,KAAKlH,EAAO,EAAE;AAC5C,MAAIkH,MAAY,MAAM;AAClB,IAAAlH,EAAO,KAAK,oBAAI,KAAK,CAACkH,EAAQ,CAAC,CAAC;AAChC;AAAA,EACH;AAGD,MADA,cAAclH,CAAM,GAChBA,EAAO,aAAa;AACpB,WAAOA,EAAO;AAAA;AAEd;AAIJ,MADA,kBAAkBA,CAAM,GACpBA,EAAO,aAAa;AACpB,WAAOA,EAAO;AAAA;AAEd;AAGJ,EAAIA,EAAO,UACPA,EAAO,WAAW,KAGlB,MAAM,wBAAwBA,CAAM;AAE5C;AAEA,MAAM,0BAA0B;AAAA,EAC5B;AAAA,EAGA,SAAUA,GAAQ;AACd,IAAAA,EAAO,KAAK,oBAAI,KAAKA,EAAO,MAAMA,EAAO,UAAU,SAAS,GAAG;AAAA,EAClE;AACL;AAGA,SAASgN,WAASxJ,GAAG5B,GAAGtE,GAAG;AACvB,SAAIkG,KAGA5B,KAGGtE;AACX;AAEA,SAAS,iBAAiB0C,GAAQ;AAE9B,MAAIiN,IAAW,IAAI,KAAK,MAAM,IAAK,CAAA;AACnC,SAAIjN,EAAO,UACA;AAAA,IACHiN,EAAS,eAAgB;AAAA,IACzBA,EAAS,YAAa;AAAA,IACtBA,EAAS,WAAY;AAAA,EACjC,IAEW,CAACA,EAAS,eAAeA,EAAS,YAAYA,EAAS,QAAO,CAAE;AAC3E;AAMA,SAAS,gBAAgBjN,GAAQ;AAC7B,MAAIhJ,GACAgR,GACA1E,IAAQ,CAAE,GACV4J,GACAC,GACAC;AAEJ,MAAI,CAAApN,EAAO,IAgCX;AAAA,SA5BAkN,IAAc,iBAAiBlN,CAAM,GAGjCA,EAAO,MAAMA,EAAO,GAAG,IAAI,KAAK,QAAQA,EAAO,GAAG,KAAK,KAAK,QAC5D,sBAAsBA,CAAM,GAI5BA,EAAO,cAAc,SACrBoN,IAAYJ,WAAShN,EAAO,GAAG,IAAI,GAAGkN,EAAY,IAAI,CAAC,IAGnDlN,EAAO,aAAa,WAAWoN,CAAS,KACxCpN,EAAO,eAAe,OAEtB,gBAAgBA,CAAM,EAAE,qBAAqB,KAGjDgI,IAAO,cAAcoF,GAAW,GAAGpN,EAAO,UAAU,GACpDA,EAAO,GAAG,KAAK,IAAIgI,EAAK,YAAW,GACnChI,EAAO,GAAG,IAAI,IAAIgI,EAAK,WAAU,IAQhChR,IAAI,GAAGA,IAAI,KAAKgJ,EAAO,GAAGhJ,CAAC,KAAK,MAAM,EAAEA;AACzC,MAAAgJ,EAAO,GAAGhJ,CAAC,IAAIsM,EAAMtM,CAAC,IAAIkW,EAAYlW,CAAC;AAI3C,WAAOA,IAAI,GAAGA;AACV,MAAAgJ,EAAO,GAAGhJ,CAAC,IAAIsM,EAAMtM,CAAC,IAClBgJ,EAAO,GAAGhJ,CAAC,KAAK,OAAQA,MAAM,IAAI,IAAI,IAAKgJ,EAAO,GAAGhJ,CAAC;AAI9D,IACIgJ,EAAO,GAAG,IAAI,MAAM,MACpBA,EAAO,GAAG,MAAM,MAAM,KACtBA,EAAO,GAAG,MAAM,MAAM,KACtBA,EAAO,GAAG,WAAW,MAAM,MAE3BA,EAAO,WAAW,IAClBA,EAAO,GAAG,IAAI,IAAI,IAGtBA,EAAO,MAAMA,EAAO,UAAU,gBAAgB,YAAY;AAAA,MACtD;AAAA,MACAsD;AAAA,IACR,GACI6J,IAAkBnN,EAAO,UACnBA,EAAO,GAAG,UAAW,IACrBA,EAAO,GAAG,UAIZA,EAAO,QAAQ,QACfA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,IAAGA,EAAO,IAAI,GAG/DA,EAAO,aACPA,EAAO,GAAG,IAAI,IAAI,KAKlBA,EAAO,MACP,OAAOA,EAAO,GAAG,IAAM,OACvBA,EAAO,GAAG,MAAMmN,MAEhB,gBAAgBnN,CAAM,EAAE,kBAAkB;AAAA;AAElD;AAEA,SAAS,sBAAsBA,GAAQ;AACnC,MAAIqN,GAAGC,GAAU/D,GAAMC,GAASL,GAAKC,GAAKmE,GAAMC,GAAiBC;AAEjE,EAAAJ,IAAIrN,EAAO,IACPqN,EAAE,MAAM,QAAQA,EAAE,KAAK,QAAQA,EAAE,KAAK,QACtClE,IAAM,GACNC,IAAM,GAMNkE,IAAWN;AAAAA,IACPK,EAAE;AAAA,IACFrN,EAAO,GAAG,IAAI;AAAA,IACd,WAAW,YAAa,GAAE,GAAG,CAAC,EAAE;AAAA,EAC5C,GACQuJ,IAAOyD,WAASK,EAAE,GAAG,CAAC,GACtB7D,IAAUwD,WAASK,EAAE,GAAG,CAAC,IACrB7D,IAAU,KAAKA,IAAU,OACzBgE,IAAkB,QAGtBrE,IAAMnJ,EAAO,QAAQ,MAAM,KAC3BoJ,IAAMpJ,EAAO,QAAQ,MAAM,KAE3ByN,IAAU,WAAW,YAAa,GAAEtE,GAAKC,CAAG,GAE5CkE,IAAWN,WAASK,EAAE,IAAIrN,EAAO,GAAG,IAAI,GAAGyN,EAAQ,IAAI,GAGvDlE,IAAOyD,WAASK,EAAE,GAAGI,EAAQ,IAAI,GAE7BJ,EAAE,KAAK,QAEP7D,IAAU6D,EAAE,IACR7D,IAAU,KAAKA,IAAU,OACzBgE,IAAkB,OAEfH,EAAE,KAAK,QAEd7D,IAAU6D,EAAE,IAAIlE,IACZkE,EAAE,IAAI,KAAKA,EAAE,IAAI,OACjBG,IAAkB,OAItBhE,IAAUL,IAGdI,IAAO,KAAKA,IAAO,YAAY+D,GAAUnE,GAAKC,CAAG,IACjD,gBAAgBpJ,CAAM,EAAE,iBAAiB,KAClCwN,KAAmB,OAC1B,gBAAgBxN,CAAM,EAAE,mBAAmB,MAE3CuN,IAAO,mBAAmBD,GAAU/D,GAAMC,GAASL,GAAKC,CAAG,GAC3DpJ,EAAO,GAAG,IAAI,IAAIuN,EAAK,MACvBvN,EAAO,aAAauN,EAAK;AAEjC;AAGA,MAAM,WAAW,WAAY;;AAG7B,MAAM,WAAW,WAAY;;AAG7B,SAAS,0BAA0BvN,GAAQ;AAEvC,MAAIA,EAAO,OAAO,MAAM,UAAU;AAC9B,kBAAcA,CAAM;AACpB;AAAA,EACH;AACD,MAAIA,EAAO,OAAO,MAAM,UAAU;AAC9B,sBAAkBA,CAAM;AACxB;AAAA,EACH;AACD,EAAAA,EAAO,KAAK,IACZ,gBAAgBA,CAAM,EAAE,QAAQ;AAGhC,MAAIqG,IAAS,KAAKrG,EAAO,IACrBhJ,GACAwV,GACAkB,GACA/H,GACAgI,GACAC,IAAevH,EAAO,QACtBwH,IAAyB,GACzBC,GACArG;AAKJ,OAHAiG,IACI,aAAa1N,EAAO,IAAIA,EAAO,OAAO,EAAE,MAAM,gBAAgB,KAAK,IACvEyH,IAAWiG,EAAO,QACb1W,IAAI,GAAGA,IAAIyQ,GAAUzQ;AACtB,IAAA2O,IAAQ+H,EAAO1W,CAAC,GAChBwV,KAAenG,EAAO,MAAM,sBAAsBV,GAAO3F,CAAM,CAAC,KAC5D,CAAE,GAAE,CAAC,GACLwM,MACAmB,IAAUtH,EAAO,OAAO,GAAGA,EAAO,QAAQmG,CAAW,CAAC,GAClDmB,EAAQ,SAAS,KACjB,gBAAgB3N,CAAM,EAAE,YAAY,KAAK2N,CAAO,GAEpDtH,IAASA,EAAO;AAAA,MACZA,EAAO,QAAQmG,CAAW,IAAIA,EAAY;AAAA,IAC1D,GACYqB,KAA0BrB,EAAY,SAGtC,qBAAqB7G,CAAK,KACtB6G,IACA,gBAAgBxM,CAAM,EAAE,QAAQ,KAEhC,gBAAgBA,CAAM,EAAE,aAAa,KAAK2F,CAAK,GAEnD,wBAAwBA,GAAO6G,GAAaxM,CAAM,KAC3CA,EAAO,WAAW,CAACwM,KAC1B,gBAAgBxM,CAAM,EAAE,aAAa,KAAK2F,CAAK;AAKvD,kBAAgB3F,CAAM,EAAE,gBACpB4N,IAAeC,GACfxH,EAAO,SAAS,KAChB,gBAAgBrG,CAAM,EAAE,YAAY,KAAKqG,CAAM,GAK/CrG,EAAO,GAAG,IAAI,KAAK,MACnB,gBAAgBA,CAAM,EAAE,YAAY,MACpCA,EAAO,GAAG,IAAI,IAAI,MAElB,gBAAgBA,CAAM,EAAE,UAAU,SAGtC,gBAAgBA,CAAM,EAAE,kBAAkBA,EAAO,GAAG,MAAM,CAAC,GAC3D,gBAAgBA,CAAM,EAAE,WAAWA,EAAO,WAE1CA,EAAO,GAAG,IAAI,IAAI;AAAA,IACdA,EAAO;AAAA,IACPA,EAAO,GAAG,IAAI;AAAA,IACdA,EAAO;AAAA,EACf,GAGI8N,IAAM,gBAAgB9N,CAAM,EAAE,KAC1B8N,MAAQ,SACR9N,EAAO,GAAG,IAAI,IAAIA,EAAO,QAAQ,gBAAgB8N,GAAK9N,EAAO,GAAG,IAAI,CAAC,IAGzE,gBAAgBA,CAAM,GACtB,cAAcA,CAAM;AACxB;AAEA,SAAS,gBAAgBgE,GAAQ+J,GAAMC,GAAU;AAC7C,MAAIC;AAEJ,SAAID,KAAY,OAELD,IAEP/J,EAAO,gBAAgB,OAChBA,EAAO,aAAa+J,GAAMC,CAAQ,KAClChK,EAAO,QAAQ,SAEtBiK,IAAOjK,EAAO,KAAKgK,CAAQ,GACvBC,KAAQF,IAAO,OACfA,KAAQ,KAER,CAACE,KAAQF,MAAS,OAClBA,IAAO,KAEJA;AAKf;AAGA,SAAS,yBAAyB/N,GAAQ;AACtC,MAAIkO,GACAC,GACAC,GACApX,GACAqX,GACAC,GACAC,IAAoB,IACpBC,IAAaxO,EAAO,GAAG;AAE3B,MAAIwO,MAAe,GAAG;AAClB,oBAAgBxO,CAAM,EAAE,gBAAgB,IACxCA,EAAO,KAAK,oBAAI,KAAK,GAAG;AACxB;AAAA,EACH;AAED,OAAKhJ,IAAI,GAAGA,IAAIwX,GAAYxX;AACxB,IAAAqX,IAAe,GACfC,IAAmB,IACnBJ,IAAa,WAAW,IAAIlO,CAAM,GAC9BA,EAAO,WAAW,SAClBkO,EAAW,UAAUlO,EAAO,UAEhCkO,EAAW,KAAKlO,EAAO,GAAGhJ,CAAC,GAC3B,0BAA0BkX,CAAU,GAEhC,QAAQA,CAAU,MAClBI,IAAmB,KAIvBD,KAAgB,gBAAgBH,CAAU,EAAE,eAG5CG,KAAgB,gBAAgBH,CAAU,EAAE,aAAa,SAAS,IAElE,gBAAgBA,CAAU,EAAE,QAAQG,GAE/BE,IAaGF,IAAeD,MACfA,IAAcC,GACdF,IAAaD,MAbbE,KAAe,QACfC,IAAeD,KACfE,OAEAF,IAAcC,GACdF,IAAaD,GACTI,MACAC,IAAoB;AAWpC3X,WAAOoJ,GAAQmO,KAAcD,CAAU;AAC3C;AAEA,SAAS,iBAAiBlO,GAAQ;AAC9B,MAAI,CAAAA,EAAO,IAIX;AAAA,QAAIhJ,IAAI,qBAAqBgJ,EAAO,EAAE,GAClCyO,IAAYzX,EAAE,QAAQ,SAAYA,EAAE,OAAOA,EAAE;AACjD,IAAAgJ,EAAO,KAAK;AAAA,MACR,CAAChJ,EAAE,MAAMA,EAAE,OAAOyX,GAAWzX,EAAE,MAAMA,EAAE,QAAQA,EAAE,QAAQA,EAAE,WAAW;AAAA,MACtE,SAAUyM,GAAK;AACX,eAAOA,KAAO,SAASA,GAAK,EAAE;AAAA,MACjC;AAAA,IACT,GAEI,gBAAgBzD,CAAM;AAAA;AAC1B;AAEA,SAAS,iBAAiBA,GAAQ;AAC9B,MAAI6D,IAAM,IAAI,OAAO,cAAc,cAAc7D,CAAM,CAAC,CAAC;AACzD,SAAI6D,EAAI,aAEJA,EAAI,IAAI,GAAG,GAAG,GACdA,EAAI,WAAW,SAGZA;AACX;AAEA,SAAS,cAAc7D,GAAQ;AAC3B,MAAIsD,IAAQtD,EAAO,IACf+D,IAAS/D,EAAO;AAIpB,SAFAA,EAAO,UAAUA,EAAO,WAAW,UAAUA,EAAO,EAAE,GAElDsD,MAAU,QAASS,MAAW,UAAaT,MAAU,KAC9C,cAAc,EAAE,WAAW,GAAM,CAAA,KAGxC,OAAOA,KAAU,aACjBtD,EAAO,KAAKsD,IAAQtD,EAAO,QAAQ,SAASsD,CAAK,IAGjD,SAASA,CAAK,IACP,IAAI,OAAO,cAAcA,CAAK,CAAC,KAC/BM,SAAON,CAAK,IACnBtD,EAAO,KAAKsD,IACLD,UAAQU,CAAM,IACrB,yBAAyB/D,CAAM,IACxB+D,IACP,0BAA0B/D,CAAM,IAEhC,gBAAgBA,CAAM,GAGrB,QAAQA,CAAM,MACfA,EAAO,KAAK,OAGTA;AACX;AAEA,SAAS,gBAAgBA,GAAQ;AAC7B,MAAIsD,IAAQtD,EAAO;AACnB,EAAI0D,cAAYJ,CAAK,IACjBtD,EAAO,KAAK,IAAI,KAAK,MAAM,IAAK,CAAA,IACzB4D,SAAON,CAAK,IACnBtD,EAAO,KAAK,IAAI,KAAKsD,EAAM,QAAS,CAAA,IAC7B,OAAOA,KAAU,WACxB,iBAAiBtD,CAAM,IAChBqD,UAAQC,CAAK,KACpBtD,EAAO,KAAK,IAAIsD,EAAM,MAAM,CAAC,GAAG,SAAUG,GAAK;AAC3C,WAAO,SAASA,GAAK,EAAE;AAAA,EACnC,CAAS,GACD,gBAAgBzD,CAAM,KACfuD,WAASD,CAAK,IACrB,iBAAiBtD,CAAM,IAChB2D,WAASL,CAAK,IAErBtD,EAAO,KAAK,IAAI,KAAKsD,CAAK,IAE1B,MAAM,wBAAwBtD,CAAM;AAE5C;AAEA,SAAS,iBAAiBsD,GAAOS,GAAQC,GAAQC,GAAQ6D,GAAO;AAC5D,MAAIxK,IAAI,CAAA;AAER,UAAIyG,MAAW,MAAQA,MAAW,QAC9BE,IAASF,GACTA,IAAS,UAGTC,MAAW,MAAQA,MAAW,QAC9BC,IAASD,GACTA,IAAS,UAIRT,WAASD,CAAK,KAAK,cAAcA,CAAK,KACtCD,UAAQC,CAAK,KAAKA,EAAM,WAAW,OAEpCA,IAAQ,SAIZhG,EAAE,mBAAmB,IACrBA,EAAE,UAAUA,EAAE,SAASwK,GACvBxK,EAAE,KAAK0G,GACP1G,EAAE,KAAKgG,GACPhG,EAAE,KAAKyG,GACPzG,EAAE,UAAU2G,GAEL,iBAAiB3G,CAAC;AAC7B;AAEA,SAAS,YAAYgG,GAAOS,GAAQC,GAAQC,GAAQ;AAChD,SAAO,iBAAiBX,GAAOS,GAAQC,GAAQC,GAAQ,EAAK;AAChE;AAEA,IAAI,eAAe;AAAA,EACX;AAAA,EACA,WAAY;AACR,QAAIyK,IAAQ,YAAY,MAAM,MAAM,SAAS;AAC7C,WAAI,KAAK,QAAO,KAAMA,EAAM,QAAO,IACxBA,IAAQ,OAAO,OAAOA,IAEtB,cAAa;AAAA,EAE3B;AACJ,GACD,eAAe;AAAA,EACX;AAAA,EACA,WAAY;AACR,QAAIA,IAAQ,YAAY,MAAM,MAAM,SAAS;AAC7C,WAAI,KAAK,QAAO,KAAMA,EAAM,QAAO,IACxBA,IAAQ,OAAO,OAAOA,IAEtB,cAAa;AAAA,EAE3B;AACT;AAOA,SAAS,OAAOhS,GAAIiS,GAAS;AACzB,MAAI9K,GAAK7M;AAIT,MAHI2X,EAAQ,WAAW,KAAKtL,UAAQsL,EAAQ,CAAC,CAAC,MAC1CA,IAAUA,EAAQ,CAAC,IAEnB,CAACA,EAAQ;AACT,WAAO,YAAW;AAGtB,OADA9K,IAAM8K,EAAQ,CAAC,GACV3X,IAAI,GAAGA,IAAI2X,EAAQ,QAAQ,EAAE3X;AAC9B,KAAI,CAAC2X,EAAQ3X,CAAC,EAAE,QAAS,KAAI2X,EAAQ3X,CAAC,EAAE0F,CAAE,EAAEmH,CAAG,OAC3CA,IAAM8K,EAAQ3X,CAAC;AAGvB,SAAO6M;AACX;AAGA,SAAS,MAAM;AACX,MAAInF,IAAO,CAAA,EAAG,MAAM,KAAK,WAAW,CAAC;AAErC,SAAO,OAAO,YAAYA,CAAI;AAClC;AAEA,SAAS,MAAM;AACX,MAAIA,IAAO,CAAA,EAAG,MAAM,KAAK,WAAW,CAAC;AAErC,SAAO,OAAO,WAAWA,CAAI;AACjC;AAEA,IAAI,MAAM,WAAY;AAClB,SAAO,KAAK,MAAM,KAAK,IAAG,IAAK,CAAC,oBAAI;AACxC,GAEI,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,SAAS,gBAAgBwF,GAAG;AACxB,MAAIlI,GACA4S,IAAiB,IACjB5X,GACA6X,IAAW,SAAS;AACxB,OAAK7S,KAAOkI;AACR,QACI,WAAWA,GAAGlI,CAAG,KACjB,EACI,QAAQ,KAAK,UAAUA,CAAG,MAAM,OAC/BkI,EAAElI,CAAG,KAAK,QAAQ,CAAC,MAAMkI,EAAElI,CAAG,CAAC;AAGpC,aAAO;AAIf,OAAKhF,IAAI,GAAGA,IAAI6X,GAAU,EAAE7X;AACxB,QAAIkN,EAAE,SAASlN,CAAC,CAAC,GAAG;AAChB,UAAI4X;AACA,eAAO;AAEX,MAAI,WAAW1K,EAAE,SAASlN,CAAC,CAAC,CAAC,MAAM,MAAMkN,EAAE,SAASlN,CAAC,CAAC,CAAC,MACnD4X,IAAiB;AAAA,IAExB;AAGL,SAAO;AACX;AAEA,SAAS,YAAY;AACjB,SAAO,KAAK;AAChB;AAEA,SAAS,kBAAkB;AACvB,SAAO,eAAe,GAAG;AAC7B;AAEA,SAAS,SAASE,GAAU;AACxB,MAAIpI,IAAkB,qBAAqBoI,CAAQ,GAC/CC,IAAQrI,EAAgB,QAAQ,GAChCsI,IAAWtI,EAAgB,WAAW,GACtCuI,IAASvI,EAAgB,SAAS,GAClCwI,IAAQxI,EAAgB,QAAQA,EAAgB,WAAW,GAC3DyI,IAAOzI,EAAgB,OAAO,GAC9BmE,IAAQnE,EAAgB,QAAQ,GAChCoE,IAAUpE,EAAgB,UAAU,GACpC0I,IAAU1I,EAAgB,UAAU,GACpC2I,IAAe3I,EAAgB,eAAe;AAElD,OAAK,WAAW,gBAAgBA,CAAe,GAG/C,KAAK,gBACD,CAAC2I,IACDD,IAAU;AAAA,EACVtE,IAAU;AAAA,EACVD,IAAQ,MAAO,KAAK,IAGxB,KAAK,QAAQ,CAACsE,IAAOD,IAAQ,GAI7B,KAAK,UAAU,CAACD,IAASD,IAAW,IAAID,IAAQ,IAEhD,KAAK,QAAQ,IAEb,KAAK,UAAU,aAEf,KAAK,QAAO;AAChB;AAEA,SAAS,WAAWtL,GAAK;AACrB,SAAOA,aAAe;AAC1B;AAEA,SAAS,SAAS4B,GAAQ;AACtB,SAAIA,IAAS,IACF,KAAK,MAAM,KAAKA,CAAM,IAAI,KAE1B,KAAK,MAAMA,CAAM;AAEhC;AAGA,SAAS,cAAciK,GAAQC,GAAQC,GAAa;AAChD,MAAI5X,IAAM,KAAK,IAAI0X,EAAO,QAAQC,EAAO,MAAM,GAC3CE,IAAa,KAAK,IAAIH,EAAO,SAASC,EAAO,MAAM,GACnDG,IAAQ,GACR1Y;AACJ,OAAKA,IAAI,GAAGA,IAAIY,GAAKZ;AACjB,KACKwY,KAAeF,EAAOtY,CAAC,MAAMuY,EAAOvY,CAAC,KACrC,CAACwY,KAAe,MAAMF,EAAOtY,CAAC,CAAC,MAAM,MAAMuY,EAAOvY,CAAC,CAAC,MAErD0Y;AAGR,SAAOA,IAAQD;AACnB;AAIA,SAAS,OAAO9J,GAAOgK,GAAW;AAC9B,iBAAehK,GAAO,GAAG,GAAG,WAAY;AACpC,QAAI7L,IAAS,KAAK,UAAW,GACzB4L,IAAO;AACX,WAAI5L,IAAS,MACTA,IAAS,CAACA,GACV4L,IAAO,MAGPA,IACA,SAAS,CAAC,EAAE5L,IAAS,KAAK,CAAC,IAC3B6V,IACA,SAAS,CAAC,CAAC7V,IAAS,IAAI,CAAC;AAAA,EAErC,CAAK;AACL;AAEA,OAAO,KAAK,GAAG;AACf,OAAO,MAAM,EAAE;AAIf,cAAc,KAAK,gBAAgB;AACnC,cAAc,MAAM,gBAAgB;AACpC,cAAc,CAAC,KAAK,IAAI,GAAG,SAAUwJ,GAAOyC,GAAO/F,GAAQ;AACvD,EAAAA,EAAO,UAAU,IACjBA,EAAO,OAAO,iBAAiB,kBAAkBsD,CAAK;AAC1D,CAAC;AAOD,IAAI,cAAc;AAElB,SAAS,iBAAiBsM,GAASvJ,GAAQ;AACvC,MAAIjO,KAAWiO,KAAU,IAAI,MAAMuJ,CAAO,GACtCC,GACAC,GACAhF;AAEJ,SAAI1S,MAAY,OACL,QAGXyX,IAAQzX,EAAQA,EAAQ,SAAS,CAAC,KAAK,CAAA,GACvC0X,KAASD,IAAQ,IAAI,MAAM,WAAW,KAAK,CAAC,KAAK,GAAG,CAAC,GACrD/E,IAAU,EAAEgF,EAAM,CAAC,IAAI,MAAM,MAAMA,EAAM,CAAC,CAAC,GAEpChF,MAAY,IAAI,IAAIgF,EAAM,CAAC,MAAM,MAAMhF,IAAU,CAACA;AAC7D;AAGA,SAAS,gBAAgBxH,GAAOyM,GAAO;AACnC,MAAIlM,GAAK0C;AACT,SAAIwJ,EAAM,UACNlM,IAAMkM,EAAM,SACZxJ,KACK,SAASjD,CAAK,KAAKM,SAAON,CAAK,IAC1BA,EAAM,QAAS,IACf,YAAYA,CAAK,EAAE,QAAS,KAAIO,EAAI,QAAO,GAErDA,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,IAAK0C,CAAI,GACtC,MAAM,aAAa1C,GAAK,EAAK,GACtBA,KAEA,YAAYP,CAAK,EAAE;AAElC;AAEA,SAAS,cAAcY,GAAG;AAGtB,SAAO,CAAC,KAAK,MAAMA,EAAE,GAAG,kBAAiB,CAAE;AAC/C;AAMA,MAAM,eAAe,WAAY;;AAcjC,SAAS,aAAaZ,GAAO0M,GAAeC,GAAa;AACrD,MAAInW,IAAS,KAAK,WAAW,GACzBoW;AACJ,MAAI,CAAC,KAAK;AACN,WAAO5M,KAAS,OAAO,OAAO;AAElC,MAAIA,KAAS,MAAM;AACf,QAAI,OAAOA,KAAU;AAEjB,UADAA,IAAQ,iBAAiB,kBAAkBA,CAAK,GAC5CA,MAAU;AACV,eAAO;AAAA;AAER,MAAI,KAAK,IAAIA,CAAK,IAAI,MAAM,CAAC2M,MAChC3M,IAAQA,IAAQ;AAEpB,WAAI,CAAC,KAAK,UAAU0M,MAChBE,IAAc,cAAc,IAAI,IAEpC,KAAK,UAAU5M,GACf,KAAK,SAAS,IACV4M,KAAe,QACf,KAAK,IAAIA,GAAa,GAAG,GAEzBpW,MAAWwJ,MACP,CAAC0M,KAAiB,KAAK,oBACvB;AAAA,MACI;AAAA,MACA,eAAe1M,IAAQxJ,GAAQ,GAAG;AAAA,MAClC;AAAA,MACA;AAAA,IACpB,IACwB,KAAK,sBACb,KAAK,oBAAoB,IACzB,MAAM,aAAa,MAAM,EAAI,GAC7B,KAAK,oBAAoB,QAG1B;AAAA,EACf;AACQ,WAAO,KAAK,SAASA,IAAS,cAAc,IAAI;AAExD;AAEA,SAAS,WAAWwJ,GAAO0M,GAAe;AACtC,SAAI1M,KAAS,QACL,OAAOA,KAAU,aACjBA,IAAQ,CAACA,IAGb,KAAK,UAAUA,GAAO0M,CAAa,GAE5B,QAEA,CAAC,KAAK;AAErB;AAEA,SAAS,eAAeA,GAAe;AACnC,SAAO,KAAK,UAAU,GAAGA,CAAa;AAC1C;AAEA,SAAS,iBAAiBA,GAAe;AACrC,SAAI,KAAK,WACL,KAAK,UAAU,GAAGA,CAAa,GAC/B,KAAK,SAAS,IAEVA,KACA,KAAK,SAAS,cAAc,IAAI,GAAG,GAAG,IAGvC;AACX;AAEA,SAAS,0BAA0B;AAC/B,MAAI,KAAK,QAAQ;AACb,SAAK,UAAU,KAAK,MAAM,IAAO,EAAI;AAAA,WAC9B,OAAO,KAAK,MAAO,UAAU;AACpC,QAAIG,IAAQ,iBAAiB,aAAa,KAAK,EAAE;AACjD,IAAIA,KAAS,OACT,KAAK,UAAUA,CAAK,IAEpB,KAAK,UAAU,GAAG,EAAI;AAAA,EAE7B;AACD,SAAO;AACX;AAEA,SAAS,qBAAqB7M,GAAO;AACjC,SAAK,KAAK,aAGVA,IAAQA,IAAQ,YAAYA,CAAK,EAAE,UAAW,IAAG,IAEzC,KAAK,UAAS,IAAKA,KAAS,OAAO,KAJhC;AAKf;AAEA,SAAS,uBAAuB;AAC5B,SACI,KAAK,UAAW,IAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,KACpD,KAAK,UAAW,IAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW;AAE5D;AAEA,SAAS,8BAA8B;AACnC,MAAI,CAACI,cAAY,KAAK,aAAa;AAC/B,WAAO,KAAK;AAGhB,MAAIpG,IAAI,CAAE,GACNoR;AAEJ,oBAAWpR,GAAG,IAAI,GAClBA,IAAI,cAAcA,CAAC,GAEfA,EAAE,MACFoR,IAAQpR,EAAE,SAAS,UAAUA,EAAE,EAAE,IAAI,YAAYA,EAAE,EAAE,GACrD,KAAK,gBACD,KAAK,aAAa,cAAcA,EAAE,IAAIoR,EAAM,SAAS,IAAI,KAE7D,KAAK,gBAAgB,IAGlB,KAAK;AAChB;AAEA,SAAS,UAAU;AACf,SAAO,KAAK,QAAS,IAAG,CAAC,KAAK,SAAS;AAC3C;AAEA,SAAS,cAAc;AACnB,SAAO,KAAK,QAAO,IAAK,KAAK,SAAS;AAC1C;AAEA,SAAS,QAAQ;AACb,SAAO,KAAK,QAAO,IAAK,KAAK,UAAU,KAAK,YAAY,IAAI;AAChE;AAGA,IAAI,cAAc,yDAId,WACI;AAER,SAAS,eAAepL,GAAOtH,GAAK;AAChC,MAAI8S,IAAWxL,GAEXjL,IAAQ,MACRqN,GACA0K,GACAC;AAEJ,SAAI,WAAW/M,CAAK,IAChBwL,IAAW;AAAA,IACP,IAAIxL,EAAM;AAAA,IACV,GAAGA,EAAM;AAAA,IACT,GAAGA,EAAM;AAAA,EACrB,IACeK,WAASL,CAAK,KAAK,CAAC,MAAM,CAACA,CAAK,KACvCwL,IAAW,CAAA,GACP9S,IACA8S,EAAS9S,CAAG,IAAI,CAACsH,IAEjBwL,EAAS,eAAe,CAACxL,MAErBjL,IAAQ,YAAY,KAAKiL,CAAK,MACtCoC,IAAOrN,EAAM,CAAC,MAAM,MAAM,KAAK,GAC/ByW,IAAW;AAAA,IACP,GAAG;AAAA,IACH,GAAG,MAAMzW,EAAM,IAAI,CAAC,IAAIqN;AAAA,IACxB,GAAG,MAAMrN,EAAM,IAAI,CAAC,IAAIqN;AAAA,IACxB,GAAG,MAAMrN,EAAM,MAAM,CAAC,IAAIqN;AAAA,IAC1B,GAAG,MAAMrN,EAAM,MAAM,CAAC,IAAIqN;AAAA,IAC1B,IAAI,MAAM,SAASrN,EAAM,WAAW,IAAI,GAAI,CAAC,IAAIqN;AAAA;AAAA,EAC7D,MACgBrN,IAAQ,SAAS,KAAKiL,CAAK,MACnCoC,IAAOrN,EAAM,CAAC,MAAM,MAAM,KAAK,GAC/ByW,IAAW;AAAA,IACP,GAAG,SAASzW,EAAM,CAAC,GAAGqN,CAAI;AAAA,IAC1B,GAAG,SAASrN,EAAM,CAAC,GAAGqN,CAAI;AAAA,IAC1B,GAAG,SAASrN,EAAM,CAAC,GAAGqN,CAAI;AAAA,IAC1B,GAAG,SAASrN,EAAM,CAAC,GAAGqN,CAAI;AAAA,IAC1B,GAAG,SAASrN,EAAM,CAAC,GAAGqN,CAAI;AAAA,IAC1B,GAAG,SAASrN,EAAM,CAAC,GAAGqN,CAAI;AAAA,IAC1B,GAAG,SAASrN,EAAM,CAAC,GAAGqN,CAAI;AAAA,EACtC,KACeoJ,KAAY,OAEnBA,IAAW,CAAA,IAEX,OAAOA,KAAa,aACnB,UAAUA,KAAY,QAAQA,OAE/BuB,IAAU;AAAA,IACN,YAAYvB,EAAS,IAAI;AAAA,IACzB,YAAYA,EAAS,EAAE;AAAA,EACnC,GAEQA,IAAW,CAAA,GACXA,EAAS,KAAKuB,EAAQ,cACtBvB,EAAS,IAAIuB,EAAQ,SAGzBD,IAAM,IAAI,SAAStB,CAAQ,GAEvB,WAAWxL,CAAK,KAAK,WAAWA,GAAO,SAAS,MAChD8M,EAAI,UAAU9M,EAAM,UAGpB,WAAWA,CAAK,KAAK,WAAWA,GAAO,UAAU,MACjD8M,EAAI,WAAW9M,EAAM,WAGlB8M;AACX;AAEA,eAAe,KAAK,SAAS;AAC7B,eAAe,UAAU;AAEzB,SAAS,SAASE,GAAK5K,GAAM;AAIzB,MAAI7B,IAAMyM,KAAO,WAAWA,EAAI,QAAQ,KAAK,GAAG,CAAC;AAEjD,UAAQ,MAAMzM,CAAG,IAAI,IAAIA,KAAO6B;AACpC;AAEA,SAAS,0BAA0B6K,GAAM7B,GAAO;AAC5C,MAAI7K,IAAM,CAAA;AAEV,SAAAA,EAAI,SACA6K,EAAM,MAAK,IAAK6B,EAAK,MAAK,KAAM7B,EAAM,SAAS6B,EAAK,KAAI,KAAM,IAC9DA,EAAK,MAAO,EAAC,IAAI1M,EAAI,QAAQ,GAAG,EAAE,QAAQ6K,CAAK,KAC/C,EAAE7K,EAAI,QAGVA,EAAI,eAAe,CAAC6K,IAAQ,CAAC6B,EAAK,MAAO,EAAC,IAAI1M,EAAI,QAAQ,GAAG,GAEtDA;AACX;AAEA,SAAS,kBAAkB0M,GAAM7B,GAAO;AACpC,MAAI7K;AACJ,SAAM0M,EAAK,QAAO,KAAM7B,EAAM,QAAS,KAIvCA,IAAQ,gBAAgBA,GAAO6B,CAAI,GAC/BA,EAAK,SAAS7B,CAAK,IACnB7K,IAAM,0BAA0B0M,GAAM7B,CAAK,KAE3C7K,IAAM,0BAA0B6K,GAAO6B,CAAI,GAC3C1M,EAAI,eAAe,CAACA,EAAI,cACxBA,EAAI,SAAS,CAACA,EAAI,SAGfA,KAZI,EAAE,cAAc,GAAG,QAAQ,EAAC;AAa3C;AAGA,SAAS,YAAY2M,GAAW3U,GAAM;AAClC,SAAO,SAAUoC,GAAKwS,GAAQ;AAC1B,QAAIC,GAAKC;AAET,WAAIF,MAAW,QAAQ,CAAC,MAAM,CAACA,CAAM,MACjC;AAAA,MACI5U;AAAA,MACA,cACIA,IACA,yDACAA,IACA;AAAA,IAEpB,GACY8U,IAAM1S,GACNA,IAAMwS,GACNA,IAASE,IAGbD,IAAM,eAAezS,GAAKwS,CAAM,GAChC,YAAY,MAAMC,GAAKF,CAAS,GACzB;AAAA,EACf;AACA;AAEA,SAAS,YAAYtL,GAAK4J,GAAU8B,GAAUC,GAAc;AACxD,MAAIxB,IAAeP,EAAS,eACxBK,IAAO,SAASL,EAAS,KAAK,GAC9BG,IAAS,SAASH,EAAS,OAAO;AAEtC,EAAK5J,EAAI,cAKT2L,IAAeA,KAAuB,IAElC5B,KACA,SAAS/J,GAAK,IAAIA,GAAK,OAAO,IAAI+J,IAAS2B,CAAQ,GAEnDzB,KACA,MAAMjK,GAAK,QAAQ,IAAIA,GAAK,MAAM,IAAIiK,IAAOyB,CAAQ,GAErDvB,KACAnK,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAS,IAAGmK,IAAeuB,CAAQ,GAEzDC,KACA,MAAM,aAAa3L,GAAKiK,KAAQF,CAAM;AAE9C;AAEA,IAAI,MAAM,YAAY,GAAG,KAAK,GAC1B,WAAW,YAAY,IAAI,UAAU;AAEzC,SAAS6B,WAASxN,GAAO;AACrB,SAAO,OAAOA,KAAU,YAAYA,aAAiB;AACzD;AAGA,SAAS,cAAcA,GAAO;AAC1B,SACI,SAASA,CAAK,KACdM,SAAON,CAAK,KACZwN,WAASxN,CAAK,KACdK,WAASL,CAAK,KACd,sBAAsBA,CAAK,KAC3B,oBAAoBA,CAAK,KACzBA,MAAU,QACVA,MAAU;AAElB;AAEA,SAAS,oBAAoBA,GAAO;AAChC,MAAIyN,IAAaxN,WAASD,CAAK,KAAK,CAAC,cAAcA,CAAK,GACpD0N,IAAe,IACfC,IAAa;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH,GACDja,GACAka,GACAC,IAAcF,EAAW;AAE7B,OAAKja,IAAI,GAAGA,IAAIma,GAAana,KAAK;AAC9B,IAAAka,IAAWD,EAAWja,CAAC,GACvBga,IAAeA,KAAgB,WAAW1N,GAAO4N,CAAQ;AAG7D,SAAOH,KAAcC;AACzB;AAEA,SAAS,sBAAsB1N,GAAO;AAClC,MAAI8N,IAAY/N,UAAQC,CAAK,GACzB+N,IAAe;AACnB,SAAID,MACAC,IACI/N,EAAM,OAAO,SAAUgO,GAAM;AACzB,WAAO,CAAC3N,WAAS2N,CAAI,KAAKR,WAASxN,CAAK;AAAA,EACxD,CAAa,EAAE,WAAW,IAEf8N,KAAaC;AACxB;AAEA,SAAS,eAAe/N,GAAO;AAC3B,MAAIyN,IAAaxN,WAASD,CAAK,KAAK,CAAC,cAAcA,CAAK,GACpD0N,IAAe,IACfC,IAAa;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH,GACDja,GACAka;AAEJ,OAAKla,IAAI,GAAGA,IAAIia,EAAW,QAAQja,KAAK;AACpC,IAAAka,IAAWD,EAAWja,CAAC,GACvBga,IAAeA,KAAgB,WAAW1N,GAAO4N,CAAQ;AAG7D,SAAOH,KAAcC;AACzB;AAEA,SAAS,kBAAkBO,GAAUpM,GAAK;AACtC,MAAIoB,IAAOgL,EAAS,KAAKpM,GAAK,QAAQ,EAAI;AAC1C,SAAOoB,IAAO,KACR,aACAA,IAAO,KACL,aACAA,IAAO,IACL,YACAA,IAAO,IACL,YACAA,IAAO,IACL,YACAA,IAAO,IACL,aACA;AACpB;AAEA,SAAS,WAAWiL,GAAMC,GAAS;AAE/B,EAAI,UAAU,WAAW,MAChB,UAAU,CAAC,IAGL,cAAc,UAAU,CAAC,CAAC,KACjCD,IAAO,UAAU,CAAC,GAClBC,IAAU,UACH,eAAe,UAAU,CAAC,CAAC,MAClCA,IAAU,UAAU,CAAC,GACrBD,IAAO,WAPPA,IAAO,QACPC,IAAU;AAWlB,MAAItM,IAAMqM,KAAQ,YAAa,GAC3BE,IAAM,gBAAgBvM,GAAK,IAAI,EAAE,QAAQ,KAAK,GAC9CpB,IAAS,MAAM,eAAe,MAAM2N,CAAG,KAAK,YAC5CtM,IACIqM,MACC1M,aAAW0M,EAAQ1N,CAAM,CAAC,IACrB0N,EAAQ1N,CAAM,EAAE,KAAK,MAAMoB,CAAG,IAC9BsM,EAAQ1N,CAAM;AAE5B,SAAO,KAAK;AAAA,IACRqB,KAAU,KAAK,aAAa,SAASrB,GAAQ,MAAM,YAAYoB,CAAG,CAAC;AAAA,EAC3E;AACA;AAEA,SAAS,QAAQ;AACb,SAAO,IAAI,OAAO,IAAI;AAC1B;AAEA,SAAS,QAAQ7B,GAAOkD,GAAO;AAC3B,MAAImL,IAAa,SAASrO,CAAK,IAAIA,IAAQ,YAAYA,CAAK;AAC5D,SAAM,KAAK,QAAO,KAAMqO,EAAW,QAAS,KAG5CnL,IAAQ,eAAeA,CAAK,KAAK,eAC7BA,MAAU,gBACH,KAAK,QAAO,IAAKmL,EAAW,QAAO,IAEnCA,EAAW,QAAS,IAAG,KAAK,MAAO,EAAC,QAAQnL,CAAK,EAAE,aANnD;AAQf;AAEA,SAAS,SAASlD,GAAOkD,GAAO;AAC5B,MAAImL,IAAa,SAASrO,CAAK,IAAIA,IAAQ,YAAYA,CAAK;AAC5D,SAAM,KAAK,QAAO,KAAMqO,EAAW,QAAS,KAG5CnL,IAAQ,eAAeA,CAAK,KAAK,eAC7BA,MAAU,gBACH,KAAK,QAAO,IAAKmL,EAAW,QAAO,IAEnC,KAAK,MAAO,EAAC,MAAMnL,CAAK,EAAE,QAAS,IAAGmL,EAAW,aANjD;AAQf;AAEA,SAAS,UAAUlN,GAAMD,GAAIgC,GAAOoL,GAAa;AAC7C,MAAIC,IAAY,SAASpN,CAAI,IAAIA,IAAO,YAAYA,CAAI,GACpDqN,IAAU,SAAStN,CAAE,IAAIA,IAAK,YAAYA,CAAE;AAChD,SAAM,KAAK,aAAaqN,EAAU,aAAaC,EAAQ,QAAO,KAG9DF,IAAcA,KAAe,OAExBA,EAAY,CAAC,MAAM,MACd,KAAK,QAAQC,GAAWrL,CAAK,IAC7B,CAAC,KAAK,SAASqL,GAAWrL,CAAK,OACpCoL,EAAY,CAAC,MAAM,MACd,KAAK,SAASE,GAAStL,CAAK,IAC5B,CAAC,KAAK,QAAQsL,GAAStL,CAAK,MAT3B;AAWf;AAEA,SAAS,OAAOlD,GAAOkD,GAAO;AAC1B,MAAImL,IAAa,SAASrO,CAAK,IAAIA,IAAQ,YAAYA,CAAK,GACxDyO;AACJ,SAAM,KAAK,QAAO,KAAMJ,EAAW,QAAS,KAG5CnL,IAAQ,eAAeA,CAAK,KAAK,eAC7BA,MAAU,gBACH,KAAK,QAAO,MAAOmL,EAAW,QAAO,KAE5CI,IAAUJ,EAAW,WAEjB,KAAK,MAAK,EAAG,QAAQnL,CAAK,EAAE,QAAO,KAAMuL,KACzCA,KAAW,KAAK,MAAK,EAAG,MAAMvL,CAAK,EAAE,QAAS,MAT3C;AAYf;AAEA,SAAS,cAAclD,GAAOkD,GAAO;AACjC,SAAO,KAAK,OAAOlD,GAAOkD,CAAK,KAAK,KAAK,QAAQlD,GAAOkD,CAAK;AACjE;AAEA,SAAS,eAAelD,GAAOkD,GAAO;AAClC,SAAO,KAAK,OAAOlD,GAAOkD,CAAK,KAAK,KAAK,SAASlD,GAAOkD,CAAK;AAClE;AAEA,SAAS,KAAKlD,GAAOkD,GAAOwL,GAAS;AACjC,MAAIC,GAAMC,GAAW9M;AAErB,MAAI,CAAC,KAAK;AACN,WAAO;AAKX,MAFA6M,IAAO,gBAAgB3O,GAAO,IAAI,GAE9B,CAAC2O,EAAK;AACN,WAAO;AAOX,UAJAC,KAAaD,EAAK,UAAS,IAAK,KAAK,UAAW,KAAI,KAEpDzL,IAAQ,eAAeA,CAAK,GAEpBA,GAAK;AAAA,IACT,KAAK;AACD,MAAApB,IAAS,UAAU,MAAM6M,CAAI,IAAI;AACjC;AAAA,IACJ,KAAK;AACD,MAAA7M,IAAS,UAAU,MAAM6M,CAAI;AAC7B;AAAA,IACJ,KAAK;AACD,MAAA7M,IAAS,UAAU,MAAM6M,CAAI,IAAI;AACjC;AAAA,IACJ,KAAK;AACD,MAAA7M,KAAU,OAAO6M,KAAQ;AACzB;AAAA,IACJ,KAAK;AACD,MAAA7M,KAAU,OAAO6M,KAAQ;AACzB;AAAA,IACJ,KAAK;AACD,MAAA7M,KAAU,OAAO6M,KAAQ;AACzB;AAAA,IACJ,KAAK;AACD,MAAA7M,KAAU,OAAO6M,IAAOC,KAAa;AACrC;AAAA,IACJ,KAAK;AACD,MAAA9M,KAAU,OAAO6M,IAAOC,KAAa;AACrC;AAAA,IACJ;AACI,MAAA9M,IAAS,OAAO6M;AAAA,EACvB;AAED,SAAOD,IAAU5M,IAAS,SAASA,CAAM;AAC7C;AAEA,SAAS,UAAU5B,GAAG5B,GAAG;AACrB,MAAI4B,EAAE,KAAI,IAAK5B,EAAE,KAAI;AAGjB,WAAO,CAAC,UAAUA,GAAG4B,CAAC;AAG1B,MAAI2O,KAAkBvQ,EAAE,KAAI,IAAK4B,EAAE,UAAU,MAAM5B,EAAE,MAAO,IAAG4B,EAAE,MAAK,IAElE4O,IAAS5O,EAAE,MAAK,EAAG,IAAI2O,GAAgB,QAAQ,GAC/CE,GACAC;AAEJ,SAAI1Q,IAAIwQ,IAAS,KACbC,IAAU7O,EAAE,MAAO,EAAC,IAAI2O,IAAiB,GAAG,QAAQ,GAEpDG,KAAU1Q,IAAIwQ,MAAWA,IAASC,OAElCA,IAAU7O,EAAE,MAAO,EAAC,IAAI2O,IAAiB,GAAG,QAAQ,GAEpDG,KAAU1Q,IAAIwQ,MAAWC,IAAUD,KAIhC,EAAED,IAAiBG,MAAW;AACzC;AAEA,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AAEzB,SAASC,aAAW;AAChB,SAAO,KAAK,QAAQ,OAAO,IAAI,EAAE,OAAO,kCAAkC;AAC9E;AAEA,SAAS,YAAYC,GAAY;AAC7B,MAAI,CAAC,KAAK;AACN,WAAO;AAEX,MAAIC,IAAMD,MAAe,IACrBtO,IAAIuO,IAAM,KAAK,MAAK,EAAG,IAAK,IAAG;AACnC,SAAIvO,EAAE,SAAS,KAAKA,EAAE,KAAM,IAAG,OACpB;AAAA,IACHA;AAAA,IACAuO,IACM,mCACA;AAAA,EAClB,IAEQ1N,aAAW,KAAK,UAAU,WAAW,IAEjC0N,IACO,KAAK,SAAS,gBAEd,IAAI,KAAK,KAAK,QAAO,IAAK,KAAK,UAAS,IAAK,KAAK,GAAI,EACxD,YAAa,EACb,QAAQ,KAAK,aAAavO,GAAG,GAAG,CAAC,IAGvC;AAAA,IACHA;AAAA,IACAuO,IAAM,iCAAiC;AAAA,EAC/C;AACA;AAQA,SAAS,UAAU;AACf,MAAI,CAAC,KAAK;AACN,WAAO,uBAAuB,KAAK,KAAK;AAE5C,MAAI3M,IAAO,UACP4M,IAAO,IACPpX,GACAoM,GACAiL,GACAC;AACJ,SAAK,KAAK,cACN9M,IAAO,KAAK,UAAS,MAAO,IAAI,eAAe,oBAC/C4M,IAAO,MAEXpX,IAAS,MAAMwK,IAAO,OACtB4B,IAAO,KAAK,KAAK,KAAM,KAAI,KAAK,UAAU,OAAO,SAAS,UAC1DiL,IAAW,yBACXC,IAASF,IAAO,QAET,KAAK,OAAOpX,IAASoM,IAAOiL,IAAWC,CAAM;AACxD;AAEA,SAAS,OAAOC,GAAa;AACzB,EAAKA,MACDA,IAAc,KAAK,MAAO,IACpB,MAAM,mBACN,MAAM;AAEhB,MAAIzN,IAAS,aAAa,MAAMyN,CAAW;AAC3C,SAAO,KAAK,WAAU,EAAG,WAAWzN,CAAM;AAC9C;AAEA,SAAS,KAAKoM,GAAMpL,GAAe;AAC/B,SACI,KAAK,QAAS,MACZ,SAASoL,CAAI,KAAKA,EAAK,QAAS,KAAK,YAAYA,CAAI,EAAE,aAElD,eAAe,EAAE,IAAI,MAAM,MAAMA,EAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAACpL,CAAa,IAErB,KAAK,aAAa;AAEjC;AAEA,SAAS,QAAQA,GAAe;AAC5B,SAAO,KAAK,KAAK,YAAa,GAAEA,CAAa;AACjD;AAEA,SAAS,GAAGoL,GAAMpL,GAAe;AAC7B,SACI,KAAK,QAAS,MACZ,SAASoL,CAAI,KAAKA,EAAK,QAAS,KAAK,YAAYA,CAAI,EAAE,aAElD,eAAe,EAAE,MAAM,MAAM,IAAIA,EAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAACpL,CAAa,IAErB,KAAK,aAAa;AAEjC;AAEA,SAAS,MAAMA,GAAe;AAC1B,SAAO,KAAK,GAAG,YAAa,GAAEA,CAAa;AAC/C;AAKA,SAAS,OAAOpK,GAAK;AACjB,MAAI8W;AAEJ,SAAI9W,MAAQ,SACD,KAAK,QAAQ,SAEpB8W,IAAgB,UAAU9W,CAAG,GACzB8W,KAAiB,SACjB,KAAK,UAAUA,IAEZ;AAEf;AAEA,IAAI,OAAO;AAAA,EACP;AAAA,EACA,SAAU9W,GAAK;AACX,WAAIA,MAAQ,SACD,KAAK,eAEL,KAAK,OAAOA,CAAG;AAAA,EAE7B;AACL;AAEA,SAAS,aAAa;AAClB,SAAO,KAAK;AAChB;AAEA,IAAI,gBAAgB,KAChB,gBAAgB,KAAK,eACrB,cAAc,KAAK,eACnB,oBAAoB,MAAM,MAAM,MAAM,KAAK;AAG/C,SAAS,MAAM+W,GAAUC,GAAS;AAC9B,UAASD,IAAWC,IAAWA,KAAWA;AAC9C;AAEA,SAAS,iBAAiBrL,GAAGzD,GAAGrC,GAAG;AAE/B,SAAI8F,IAAI,OAAOA,KAAK,IAET,IAAI,KAAKA,IAAI,KAAKzD,GAAGrC,CAAC,IAAI,mBAE1B,IAAI,KAAK8F,GAAGzD,GAAGrC,CAAC,EAAE;AAEjC;AAEA,SAAS,eAAe8F,GAAGzD,GAAGrC,GAAG;AAE7B,SAAI8F,IAAI,OAAOA,KAAK,IAET,KAAK,IAAIA,IAAI,KAAKzD,GAAGrC,CAAC,IAAI,mBAE1B,KAAK,IAAI8F,GAAGzD,GAAGrC,CAAC;AAE/B;AAEA,SAAS,QAAQ2E,GAAO;AACpB,MAAIgL,GAAMyB;AAEV,MADAzM,IAAQ,eAAeA,CAAK,GACxBA,MAAU,UAAaA,MAAU,iBAAiB,CAAC,KAAK;AACxD,WAAO;AAKX,UAFAyM,IAAc,KAAK,SAAS,iBAAiB,kBAErCzM,GAAK;AAAA,IACT,KAAK;AACD,MAAAgL,IAAOyB,EAAY,KAAK,KAAI,GAAI,GAAG,CAAC;AACpC;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAOyB;AAAA,QACH,KAAK,KAAM;AAAA,QACX,KAAK,MAAO,IAAI,KAAK,MAAK,IAAK;AAAA,QAC/B;AAAA,MAChB;AACY;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAOyB,EAAY,KAAK,KAAI,GAAI,KAAK,MAAK,GAAI,CAAC;AAC/C;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAOyB;AAAA,QACH,KAAK,KAAM;AAAA,QACX,KAAK,MAAO;AAAA,QACZ,KAAK,KAAI,IAAK,KAAK,QAAS;AAAA,MAC5C;AACY;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAOyB;AAAA,QACH,KAAK,KAAM;AAAA,QACX,KAAK,MAAO;AAAA,QACZ,KAAK,KAAM,KAAI,KAAK,WAAU,IAAK;AAAA,MACnD;AACY;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AACD,MAAAzB,IAAOyB,EAAY,KAAK,KAAM,GAAE,KAAK,SAAS,KAAK,KAAI,CAAE;AACzD;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAO,KAAK,GAAG,WACfA,KAAQ;AAAA,QACJA,KAAQ,KAAK,SAAS,IAAI,KAAK,UAAW,IAAG;AAAA,QAC7C;AAAA,MAChB;AACY;AAAA,IACJ,KAAK;AACD,MAAAA,IAAO,KAAK,GAAG,WACfA,KAAQ,MAAMA,GAAM,aAAa;AACjC;AAAA,IACJ,KAAK;AACD,MAAAA,IAAO,KAAK,GAAG,WACfA,KAAQ,MAAMA,GAAM,aAAa;AACjC;AAAA,EACP;AAED,cAAK,GAAG,QAAQA,CAAI,GACpB,MAAM,aAAa,MAAM,EAAI,GACtB;AACX;AAEA,SAAS,MAAMhL,GAAO;AAClB,MAAIgL,GAAMyB;AAEV,MADAzM,IAAQ,eAAeA,CAAK,GACxBA,MAAU,UAAaA,MAAU,iBAAiB,CAAC,KAAK;AACxD,WAAO;AAKX,UAFAyM,IAAc,KAAK,SAAS,iBAAiB,kBAErCzM,GAAK;AAAA,IACT,KAAK;AACD,MAAAgL,IAAOyB,EAAY,KAAK,KAAI,IAAK,GAAG,GAAG,CAAC,IAAI;AAC5C;AAAA,IACJ,KAAK;AACD,MAAAzB,IACIyB;AAAA,QACI,KAAK,KAAM;AAAA,QACX,KAAK,MAAK,IAAM,KAAK,MAAO,IAAG,IAAK;AAAA,QACpC;AAAA,MACH,IAAG;AACR;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAOyB,EAAY,KAAK,QAAQ,KAAK,MAAK,IAAK,GAAG,CAAC,IAAI;AACvD;AAAA,IACJ,KAAK;AACD,MAAAzB,IACIyB;AAAA,QACI,KAAK,KAAM;AAAA,QACX,KAAK,MAAO;AAAA,QACZ,KAAK,KAAM,IAAG,KAAK,QAAS,IAAG;AAAA,MAClC,IAAG;AACR;AAAA,IACJ,KAAK;AACD,MAAAzB,IACIyB;AAAA,QACI,KAAK,KAAM;AAAA,QACX,KAAK,MAAO;AAAA,QACZ,KAAK,KAAI,KAAM,KAAK,WAAY,IAAG,KAAK;AAAA,MAC3C,IAAG;AACR;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AACD,MAAAzB,IAAOyB,EAAY,KAAK,KAAM,GAAE,KAAK,MAAO,GAAE,KAAK,KAAI,IAAK,CAAC,IAAI;AACjE;AAAA,IACJ,KAAK;AACD,MAAAzB,IAAO,KAAK,GAAG,WACfA,KACI,cACA;AAAA,QACIA,KAAQ,KAAK,SAAS,IAAI,KAAK,UAAW,IAAG;AAAA,QAC7C;AAAA,MACH,IACD;AACJ;AAAA,IACJ,KAAK;AACD,MAAAA,IAAO,KAAK,GAAG,WACfA,KAAQ,gBAAgB,MAAMA,GAAM,aAAa,IAAI;AACrD;AAAA,IACJ,KAAK;AACD,MAAAA,IAAO,KAAK,GAAG,WACfA,KAAQ,gBAAgB,MAAMA,GAAM,aAAa,IAAI;AACrD;AAAA,EACP;AAED,cAAK,GAAG,QAAQA,CAAI,GACpB,MAAM,aAAa,MAAM,EAAI,GACtB;AACX;AAEA,SAAS,UAAU;AACf,SAAO,KAAK,GAAG,QAAS,KAAI,KAAK,WAAW,KAAK;AACrD;AAEA,SAAS,OAAO;AACZ,SAAO,KAAK,MAAM,KAAK,QAAS,IAAG,GAAI;AAC3C;AAEA,SAAS,SAAS;AACd,SAAO,IAAI,KAAK,KAAK,QAAS,CAAA;AAClC;AAEA,SAAS0B,YAAU;AACf,MAAIhP,IAAI;AACR,SAAO;AAAA,IACHA,EAAE,KAAM;AAAA,IACRA,EAAE,MAAO;AAAA,IACTA,EAAE,KAAM;AAAA,IACRA,EAAE,KAAM;AAAA,IACRA,EAAE,OAAQ;AAAA,IACVA,EAAE,OAAQ;AAAA,IACVA,EAAE,YAAa;AAAA,EACvB;AACA;AAEA,SAAS,WAAW;AAChB,MAAIA,IAAI;AACR,SAAO;AAAA,IACH,OAAOA,EAAE,KAAM;AAAA,IACf,QAAQA,EAAE,MAAO;AAAA,IACjB,MAAMA,EAAE,KAAM;AAAA,IACd,OAAOA,EAAE,MAAO;AAAA,IAChB,SAASA,EAAE,QAAS;AAAA,IACpB,SAASA,EAAE,QAAS;AAAA,IACpB,cAAcA,EAAE,aAAc;AAAA,EACtC;AACA;AAEA,SAAS,SAAS;AAEd,SAAO,KAAK,QAAS,IAAG,KAAK,YAAW,IAAK;AACjD;AAEA,SAAS,YAAY;AACjB,SAAO,QAAQ,IAAI;AACvB;AAEA,SAAS,eAAe;AACpB,SAAOtN,SAAO,CAAE,GAAE,gBAAgB,IAAI,CAAC;AAC3C;AAEA,SAAS,YAAY;AACjB,SAAO,gBAAgB,IAAI,EAAE;AACjC;AAEA,SAAS,eAAe;AACpB,SAAO;AAAA,IACH,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,IACb,QAAQ,KAAK;AAAA,IACb,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,EACrB;AACA;AAEA,eAAe,KAAK,GAAG,GAAG,SAAS;AACnC,eAAe,MAAM,GAAG,GAAG,SAAS;AACpC,eAAe,OAAO,GAAG,GAAG,SAAS;AACrC,eAAe,QAAQ,GAAG,GAAG,SAAS;AACtC,eAAe,SAAS,GAAG,GAAG,WAAW;AAEzC,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,SAAS;AAC7C,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS;AAC3C,eAAe,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS;AAC5C,eAAe,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS;AAE7C,cAAc,KAAK,YAAY;AAC/B,cAAc,MAAM,YAAY;AAChC,cAAc,OAAO,YAAY;AACjC,cAAc,QAAQ,YAAY;AAClC,cAAc,SAAS,cAAc;AAErC;AAAA,EACI,CAAC,KAAK,MAAM,OAAO,QAAQ,OAAO;AAAA,EAClC,SAAU0M,GAAOyC,GAAO/F,GAAQ2F,GAAO;AACnC,QAAImI,IAAM9N,EAAO,QAAQ,UAAUsD,GAAOqC,GAAO3F,EAAO,OAAO;AAC/D,IAAI8N,IACA,gBAAgB9N,CAAM,EAAE,MAAM8N,IAE9B,gBAAgB9N,CAAM,EAAE,aAAasD;AAAA,EAE5C;AACL;AAEA,cAAc,KAAK,aAAa;AAChC,cAAc,MAAM,aAAa;AACjC,cAAc,OAAO,aAAa;AAClC,cAAc,QAAQ,aAAa;AACnC,cAAc,MAAM,mBAAmB;AAEvC,cAAc,CAAC,KAAK,MAAM,OAAO,MAAM,GAAG,IAAI;AAC9C,cAAc,CAAC,IAAI,GAAG,SAAUA,GAAOyC,GAAO/F,GAAQ2F,GAAO;AACzD,MAAItN;AACJ,EAAI2H,EAAO,QAAQ,yBACf3H,IAAQiL,EAAM,MAAMtD,EAAO,QAAQ,oBAAoB,IAGvDA,EAAO,QAAQ,sBACf+F,EAAM,IAAI,IAAI/F,EAAO,QAAQ,oBAAoBsD,GAAOjL,CAAK,IAE7D0N,EAAM,IAAI,IAAI,SAASzC,GAAO,EAAE;AAExC,CAAC;AAED,SAAS,WAAWY,GAAGH,GAAQ;AAC3B,MAAI/M,GACA0U,GACA1D,GACAmL,IAAO,KAAK,SAAS,UAAU,IAAI,EAAE;AACzC,OAAKnc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U,GAAG;AACrC,YAAQ,OAAOmc,EAAKnc,CAAC,EAAE,OAAK;AAAA,MACxB,KAAK;AAED,QAAAgR,IAAO,MAAMmL,EAAKnc,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,GACzCmc,EAAKnc,CAAC,EAAE,QAAQgR,EAAK,QAAO;AAC5B;AAAA,IACP;AAED,YAAQ,OAAOmL,EAAKnc,CAAC,EAAE,OAAK;AAAA,MACxB,KAAK;AACD,QAAAmc,EAAKnc,CAAC,EAAE,QAAQ;AAChB;AAAA,MACJ,KAAK;AAED,QAAAgR,IAAO,MAAMmL,EAAKnc,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE,WAC3Cmc,EAAKnc,CAAC,EAAE,QAAQgR,EAAK,QAAO;AAC5B;AAAA,IACP;AAAA,EACJ;AACD,SAAOmL;AACX;AAEA,SAAS,gBAAgBC,GAASrP,GAAQE,GAAQ;AAC9C,MAAIjN,GACA0U,GACAyH,IAAO,KAAK,KAAM,GAClBtX,GACAwX,GACAC;AAGJ,OAFAF,IAAUA,EAAQ,eAEbpc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U;AAKlC,QAJA6E,IAAOsX,EAAKnc,CAAC,EAAE,KAAK,YAAW,GAC/Bqc,IAAOF,EAAKnc,CAAC,EAAE,KAAK,YAAW,GAC/Bsc,IAASH,EAAKnc,CAAC,EAAE,OAAO,YAAW,GAE/BiN;AACA,cAAQF,GAAM;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,cAAIsP,MAASD;AACT,mBAAOD,EAAKnc,CAAC;AAEjB;AAAA,QAEJ,KAAK;AACD,cAAI6E,MAASuX;AACT,mBAAOD,EAAKnc,CAAC;AAEjB;AAAA,QAEJ,KAAK;AACD,cAAIsc,MAAWF;AACX,mBAAOD,EAAKnc,CAAC;AAEjB;AAAA,MACP;AAAA,aACM,CAAC6E,GAAMwX,GAAMC,CAAM,EAAE,QAAQF,CAAO,KAAK;AAChD,aAAOD,EAAKnc,CAAC;AAGzB;AAEA,SAAS,sBAAsB8W,GAAKpG,GAAM;AACtC,MAAI6L,IAAMzF,EAAI,SAASA,EAAI,QAAQ,IAAK;AACxC,SAAIpG,MAAS,SACF,MAAMoG,EAAI,KAAK,EAAE,KAAI,IAErB,MAAMA,EAAI,KAAK,EAAE,UAAUpG,IAAOoG,EAAI,UAAUyF;AAE/D;AAEA,SAAS,aAAa;AAClB,MAAIvc,GACA0U,GACAzN,GACAkV,IAAO,KAAK,WAAY,EAAC,KAAI;AACjC,OAAKnc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U;AAOlC,QALAiH,IAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,WAE9BkV,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE,SAGvCmc,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE;AACvC,aAAOmc,EAAKnc,CAAC,EAAE;AAIvB,SAAO;AACX;AAEA,SAAS,eAAe;AACpB,MAAIA,GACA0U,GACAzN,GACAkV,IAAO,KAAK,WAAY,EAAC,KAAI;AACjC,OAAKnc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U;AAOlC,QALAiH,IAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,WAE9BkV,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE,SAGvCmc,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE;AACvC,aAAOmc,EAAKnc,CAAC,EAAE;AAIvB,SAAO;AACX;AAEA,SAAS,aAAa;AAClB,MAAIA,GACA0U,GACAzN,GACAkV,IAAO,KAAK,WAAY,EAAC,KAAI;AACjC,OAAKnc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U;AAOlC,QALAiH,IAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,WAE9BkV,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE,SAGvCmc,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE;AACvC,aAAOmc,EAAKnc,CAAC,EAAE;AAIvB,SAAO;AACX;AAEA,SAAS,aAAa;AAClB,MAAIA,GACA0U,GACA6H,GACAtV,GACAkV,IAAO,KAAK,WAAY,EAAC,KAAI;AACjC,OAAKnc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U;AAMlC,QALAuc,IAAMJ,EAAKnc,CAAC,EAAE,SAASmc,EAAKnc,CAAC,EAAE,QAAQ,IAAK,IAG5CiH,IAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,WAG7BkV,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE,SACvCmc,EAAKnc,CAAC,EAAE,SAASiH,KAAOA,KAAOkV,EAAKnc,CAAC,EAAE;AAExC,cACK,KAAK,KAAM,IAAG,MAAMmc,EAAKnc,CAAC,EAAE,KAAK,EAAE,KAAI,KAAMuc,IAC9CJ,EAAKnc,CAAC,EAAE;AAKpB,SAAO,KAAK;AAChB;AAEA,SAAS,cAAc+P,GAAU;AAC7B,SAAK,WAAW,MAAM,gBAAgB,KAClC,iBAAiB,KAAK,IAAI,GAEvBA,IAAW,KAAK,iBAAiB,KAAK;AACjD;AAEA,SAAS,cAAcA,GAAU;AAC7B,SAAK,WAAW,MAAM,gBAAgB,KAClC,iBAAiB,KAAK,IAAI,GAEvBA,IAAW,KAAK,iBAAiB,KAAK;AACjD;AAEA,SAAS,gBAAgBA,GAAU;AAC/B,SAAK,WAAW,MAAM,kBAAkB,KACpC,iBAAiB,KAAK,IAAI,GAEvBA,IAAW,KAAK,mBAAmB,KAAK;AACnD;AAEA,SAAS,aAAaA,GAAU/C,GAAQ;AACpC,SAAOA,EAAO,cAAc+C,CAAQ;AACxC;AAEA,SAAS,aAAaA,GAAU/C,GAAQ;AACpC,SAAOA,EAAO,cAAc+C,CAAQ;AACxC;AAEA,SAAS,eAAeA,GAAU/C,GAAQ;AACtC,SAAOA,EAAO,gBAAgB+C,CAAQ;AAC1C;AAEA,SAAS,oBAAoBA,GAAU/C,GAAQ;AAC3C,SAAOA,EAAO,wBAAwB;AAC1C;AAEA,SAAS,mBAAmB;AACxB,MAAIwP,IAAa,CAAE,GACfC,IAAa,CAAE,GACfC,IAAe,CAAE,GACjB7K,IAAc,CAAE,GAChB7R,GACA0U,GACAiI,GACAC,GACAC,GACAV,IAAO,KAAK;AAEhB,OAAKnc,IAAI,GAAG0U,IAAIyH,EAAK,QAAQnc,IAAI0U,GAAG,EAAE1U;AAClC,IAAA2c,IAAW,YAAYR,EAAKnc,CAAC,EAAE,IAAI,GACnC4c,IAAW,YAAYT,EAAKnc,CAAC,EAAE,IAAI,GACnC6c,IAAa,YAAYV,EAAKnc,CAAC,EAAE,MAAM,GAEvCyc,EAAW,KAAKE,CAAQ,GACxBH,EAAW,KAAKI,CAAQ,GACxBF,EAAa,KAAKG,CAAU,GAC5BhL,EAAY,KAAK8K,CAAQ,GACzB9K,EAAY,KAAK+K,CAAQ,GACzB/K,EAAY,KAAKgL,CAAU;AAG/B,OAAK,aAAa,IAAI,OAAO,OAAOhL,EAAY,KAAK,GAAG,IAAI,KAAK,GAAG,GACpE,KAAK,iBAAiB,IAAI,OAAO,OAAO4K,EAAW,KAAK,GAAG,IAAI,KAAK,GAAG,GACvE,KAAK,iBAAiB,IAAI,OAAO,OAAOD,EAAW,KAAK,GAAG,IAAI,KAAK,GAAG,GACvE,KAAK,mBAAmB,IAAI;AAAA,IACxB,OAAOE,EAAa,KAAK,GAAG,IAAI;AAAA,IAChC;AAAA,EACR;AACA;AAIA,eAAe,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,WAAY;AACxC,SAAO,KAAK,SAAU,IAAG;AAC7B,CAAC;AAED,eAAe,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,WAAY;AACxC,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AAED,SAAS,uBAAuB/N,GAAOmO,GAAQ;AAC3C,iBAAe,GAAG,CAACnO,GAAOA,EAAM,MAAM,GAAG,GAAGmO,CAAM;AACtD;AAEA,uBAAuB,QAAQ,UAAU;AACzC,uBAAuB,SAAS,UAAU;AAC1C,uBAAuB,QAAQ,aAAa;AAC5C,uBAAuB,SAAS,aAAa;AAM7C,cAAc,KAAK,WAAW;AAC9B,cAAc,KAAK,WAAW;AAC9B,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,QAAQ,WAAW,MAAM;AACvC,cAAc,QAAQ,WAAW,MAAM;AACvC,cAAc,SAAS,WAAW,MAAM;AACxC,cAAc,SAAS,WAAW,MAAM;AAExC;AAAA,EACI,CAAC,QAAQ,SAAS,QAAQ,OAAO;AAAA,EACjC,SAAUxQ,GAAOiG,GAAMvJ,GAAQ2F,GAAO;AAClC,IAAA4D,EAAK5D,EAAM,OAAO,GAAG,CAAC,CAAC,IAAI,MAAMrC,CAAK;AAAA,EACzC;AACL;AAEA,kBAAkB,CAAC,MAAM,IAAI,GAAG,SAAUA,GAAOiG,GAAMvJ,GAAQ2F,GAAO;AAClE,EAAA4D,EAAK5D,CAAK,IAAI,MAAM,kBAAkBrC,CAAK;AAC/C,CAAC;AAID,SAAS,eAAeA,GAAO;AAC3B,SAAO,qBAAqB;AAAA,IACxB;AAAA,IACAA;AAAA,IACA,KAAK,KAAM;AAAA,IACX,KAAK,QAAO,IAAK,KAAK,WAAY,EAAC,MAAM;AAAA,IACzC,KAAK,aAAa,MAAM;AAAA,IACxB,KAAK,aAAa,MAAM;AAAA,EAChC;AACA;AAEA,SAAS,kBAAkBA,GAAO;AAC9B,SAAO,qBAAqB;AAAA,IACxB;AAAA,IACAA;AAAA,IACA,KAAK,QAAS;AAAA,IACd,KAAK,WAAY;AAAA,IACjB;AAAA,IACA;AAAA,EACR;AACA;AAEA,SAAS,oBAAoB;AACzB,SAAO,YAAY,KAAK,KAAM,GAAE,GAAG,CAAC;AACxC;AAEA,SAAS,2BAA2B;AAChC,SAAO,YAAY,KAAK,YAAa,GAAE,GAAG,CAAC;AAC/C;AAEA,SAAS,iBAAiB;AACtB,MAAIyQ,IAAW,KAAK,WAAU,EAAG;AACjC,SAAO,YAAY,KAAK,KAAM,GAAEA,EAAS,KAAKA,EAAS,GAAG;AAC9D;AAEA,SAAS,qBAAqB;AAC1B,MAAIA,IAAW,KAAK,WAAU,EAAG;AACjC,SAAO,YAAY,KAAK,SAAU,GAAEA,EAAS,KAAKA,EAAS,GAAG;AAClE;AAEA,SAAS,qBAAqBzQ,GAAOiG,GAAMC,GAASL,GAAKC,GAAK;AAC1D,MAAI4K;AACJ,SAAI1Q,KAAS,OACF,WAAW,MAAM6F,GAAKC,CAAG,EAAE,QAElC4K,IAAc,YAAY1Q,GAAO6F,GAAKC,CAAG,GACrCG,IAAOyK,MACPzK,IAAOyK,IAEJ,WAAW,KAAK,MAAM1Q,GAAOiG,GAAMC,GAASL,GAAKC,CAAG;AAEnE;AAEA,SAAS,WAAWkE,GAAU/D,GAAMC,GAASL,GAAKC,GAAK;AACnD,MAAI6K,IAAgB,mBAAmB3G,GAAU/D,GAAMC,GAASL,GAAKC,CAAG,GACpEpB,IAAO,cAAciM,EAAc,MAAM,GAAGA,EAAc,SAAS;AAEvE,cAAK,KAAKjM,EAAK,eAAgB,CAAA,GAC/B,KAAK,MAAMA,EAAK,YAAa,CAAA,GAC7B,KAAK,KAAKA,EAAK,WAAY,CAAA,GACpB;AACX;AAIA,eAAe,KAAK,GAAG,MAAM,SAAS;AAItC,cAAc,KAAK,MAAM;AACzB,cAAc,KAAK,SAAU1E,GAAOyC,GAAO;AACvC,EAAAA,EAAM,KAAK,KAAK,MAAMzC,CAAK,IAAI,KAAK;AACxC,CAAC;AAID,SAAS,cAAcA,GAAO;AAC1B,SAAOA,KAAS,OACV,KAAK,MAAM,KAAK,MAAO,IAAG,KAAK,CAAC,IAChC,KAAK,OAAOA,IAAQ,KAAK,IAAK,KAAK,MAAK,IAAK,CAAE;AACzD;AAIA,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,MAAM;AAI3C,cAAc,KAAK,WAAW,sBAAsB;AACpD,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,MAAM,SAAUyD,GAAU/C,GAAQ;AAE5C,SAAO+C,IACD/C,EAAO,2BAA2BA,EAAO,gBACzCA,EAAO;AACjB,CAAC;AAED,cAAc,CAAC,KAAK,IAAI,GAAG,IAAI;AAC/B,cAAc,MAAM,SAAUV,GAAOyC,GAAO;AACxC,EAAAA,EAAM,IAAI,IAAI,MAAMzC,EAAM,MAAM,SAAS,EAAE,CAAC,CAAC;AACjD,CAAC;AAID,IAAI,mBAAmB,WAAW,QAAQ,EAAI;AAI9C,eAAe,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,WAAW;AAItD,cAAc,OAAO,SAAS;AAC9B,cAAc,QAAQ,MAAM;AAC5B,cAAc,CAAC,OAAO,MAAM,GAAG,SAAUA,GAAOyC,GAAO/F,GAAQ;AAC3D,EAAAA,EAAO,aAAa,MAAMsD,CAAK;AACnC,CAAC;AAMD,SAAS,gBAAgBA,GAAO;AAC5B,MAAIqG,IACA,KAAK;AAAA,KACA,KAAK,QAAQ,QAAQ,KAAK,IAAI,KAAK,MAAO,EAAC,QAAQ,MAAM,KAAK;AAAA,EAClE,IAAG;AACR,SAAOrG,KAAS,OAAOqG,IAAY,KAAK,IAAIrG,IAAQqG,GAAW,GAAG;AACtE;AAIA,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,QAAQ;AAI1C,cAAc,KAAK,WAAW,gBAAgB;AAC9C,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,CAAC,KAAK,IAAI,GAAG,MAAM;AAIjC,IAAI,eAAe,WAAW,WAAW,EAAK;AAI9C,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,QAAQ;AAI1C,cAAc,KAAK,WAAW,gBAAgB;AAC9C,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,CAAC,KAAK,IAAI,GAAG,MAAM;AAIjC,IAAI,eAAe,WAAW,WAAW,EAAK;AAI9C,eAAe,KAAK,GAAG,GAAG,WAAY;AAClC,SAAO,CAAC,EAAE,KAAK,YAAa,IAAG;AACnC,CAAC;AAED,eAAe,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,WAAY;AACxC,SAAO,CAAC,EAAE,KAAK,YAAa,IAAG;AACnC,CAAC;AAED,eAAe,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,aAAa;AAC9C,eAAe,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,WAAY;AAC1C,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AACD,eAAe,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,WAAY;AAC3C,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AACD,eAAe,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,WAAY;AAC5C,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AACD,eAAe,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,WAAY;AAC7C,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AACD,eAAe,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,WAAY;AAC9C,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AACD,eAAe,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,WAAY;AAC/C,SAAO,KAAK,YAAa,IAAG;AAChC,CAAC;AAID,cAAc,KAAK,WAAW,MAAM;AACpC,cAAc,MAAM,WAAW,MAAM;AACrC,cAAc,OAAO,WAAW,MAAM;AAEtC,IAAI,OAAO;AACX,KAAK,QAAQ,QAAQ,MAAM,UAAU,GAAG,SAAS;AAC7C,gBAAc,OAAO,aAAa;AAGtC,SAAS,QAAQrG,GAAOyC,GAAO;AAC3B,EAAAA,EAAM,WAAW,IAAI,OAAO,OAAOzC,KAAS,GAAI;AACpD;AAEA,KAAK,QAAQ,KAAK,MAAM,UAAU,GAAG,SAAS;AAC1C,gBAAc,OAAO,OAAO;AAGhC,oBAAoB,WAAW,gBAAgB,EAAK;AAIpD,eAAe,KAAK,GAAG,GAAG,UAAU;AACpC,eAAe,MAAM,GAAG,GAAG,UAAU;AAIrC,SAAS,cAAc;AACnB,SAAO,KAAK,SAAS,QAAQ;AACjC;AAEA,SAAS,cAAc;AACnB,SAAO,KAAK,SAAS,+BAA+B;AACxD;AAEA,IAAI,QAAQ,OAAO;AAEnB,MAAM,MAAM;AACZ,MAAM,WAAW;AACjB,MAAM,QAAQ;AACd,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,KAAK;AACX,MAAM,QAAQ;AACd,MAAM,MAAM;AACZ,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,YAAY;AAClB,MAAM,SAAS;AACf,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,UAAU;AAChB,MAAM,OAAO;AACb,MAAM,SAAS;AACf,MAAM,aAAa;AACnB,MAAM,MAAM;AACZ,MAAM,MAAM;AACZ,MAAM,eAAe;AACrB,MAAM,MAAM;AACZ,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,UAAU4P;AAChB,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,cAAc;AACpB,MAAM,UAAU;AACZ,OAAO,SAAW,OAAe,OAAO,OAAO,SAC/C,MAAM,OAAO,IAAI,4BAA4B,CAAC,IAAI,WAAY;AAC1D,SAAO,YAAY,KAAK,OAAM,IAAK;AAC3C;AAEA,MAAM,SAAS;AACf,MAAM,WAAWX;AACjB,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,eAAe;AACrB,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,MAAM,OAAO;AACb,MAAM,aAAa;AACnB,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,UAAU,MAAM,WAAW;AACjC,MAAM,QAAQ;AACd,MAAM,cAAc;AACpB,MAAM,OAAO,MAAM,QAAQ;AAC3B,MAAM,UAAU,MAAM,WAAW;AACjC,MAAM,cAAc;AACpB,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AACvB,MAAM,wBAAwB;AAC9B,MAAM,OAAO;AACb,MAAM,MAAM,MAAM,OAAO;AACzB,MAAM,UAAU;AAChB,MAAM,aAAa;AACnB,MAAM,YAAY;AAClB,MAAM,OAAO,MAAM,QAAQ;AAC3B,MAAM,SAAS,MAAM,UAAU;AAC/B,MAAM,SAAS,MAAM,UAAU;AAC/B,MAAM,cAAc,MAAM,eAAe;AACzC,MAAM,YAAY;AAClB,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,MAAM,YAAY;AAClB,MAAM,uBAAuB;AAC7B,MAAM,QAAQ;AACd,MAAM,UAAU;AAChB,MAAM,cAAc;AACpB,MAAM,QAAQ;AACd,MAAM,QAAQ;AACd,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,QAAQ;AAAA,EACV;AAAA,EACA;AACJ;AACA,MAAM,SAAS;AAAA,EACX;AAAA,EACA;AACJ;AACA,MAAM,QAAQ;AAAA,EACV;AAAA,EACA;AACJ;AACA,MAAM,OAAO;AAAA,EACT;AAAA,EACA;AACJ;AACA,MAAM,eAAe;AAAA,EACjB;AAAA,EACA;AACJ;AAEA,SAAS,WAAWjP,GAAO;AACvB,SAAO,YAAYA,IAAQ,GAAI;AACnC;AAEA,SAAS,eAAe;AACpB,SAAO,YAAY,MAAM,MAAM,SAAS,EAAE,UAAS;AACvD;AAEA,SAAS,mBAAmB+C,GAAQ;AAChC,SAAOA;AACX;AAEA,IAAI,UAAU,OAAO;AAErB,QAAQ,WAAW;AACnB,QAAQ,iBAAiB;AACzB,QAAQ,cAAc;AACtB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,eAAe;AACvB,QAAQ,aAAa;AACrB,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,YAAY;AACpB,QAAQ,kBAAkB;AAC1B,QAAQ,gBAAgB;AACxB,QAAQ,gBAAgB;AACxB,QAAQ,kBAAkB;AAE1B,QAAQ,SAAS;AACjB,QAAQ,cAAc;AACtB,QAAQ,cAAc;AACtB,QAAQ,cAAc;AACtB,QAAQ,mBAAmB;AAC3B,QAAQ,OAAO;AACf,QAAQ,iBAAiB;AACzB,QAAQ,iBAAiB;AAEzB,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,QAAQ,gBAAgB;AACxB,QAAQ,gBAAgB;AAExB,QAAQ,gBAAgB;AACxB,QAAQ,qBAAqB;AAC7B,QAAQ,mBAAmB;AAE3B,QAAQ,OAAO;AACf,QAAQ,WAAW;AAEnB,SAAS,MAAMtC,GAAQhB,GAAOmR,GAAOC,GAAQ;AACzC,MAAInQ,IAAS,UAAW,GACpByO,IAAM,UAAW,EAAC,IAAI0B,GAAQpR,CAAK;AACvC,SAAOiB,EAAOkQ,CAAK,EAAEzB,GAAK1O,CAAM;AACpC;AAEA,SAAS,eAAeA,GAAQhB,GAAOmR,GAAO;AAQ1C,MAPIvQ,WAASI,CAAM,MACfhB,IAAQgB,GACRA,IAAS,SAGbA,IAASA,KAAU,IAEfhB,KAAS;AACT,WAAO,MAAMgB,GAAQhB,GAAOmR,GAAO,OAAO;AAG9C,MAAIld,GACAod,IAAM,CAAA;AACV,OAAKpd,IAAI,GAAGA,IAAI,IAAIA;AAChB,IAAAod,EAAIpd,CAAC,IAAI,MAAM+M,GAAQ/M,GAAGkd,GAAO,OAAO;AAE5C,SAAOE;AACX;AAUA,SAAS,iBAAiBC,GAActQ,GAAQhB,GAAOmR,GAAO;AAC1D,EAAI,OAAOG,KAAiB,aACpB1Q,WAASI,CAAM,MACfhB,IAAQgB,GACRA,IAAS,SAGbA,IAASA,KAAU,OAEnBA,IAASsQ,GACTtR,IAAQgB,GACRsQ,IAAe,IAEX1Q,WAASI,CAAM,MACfhB,IAAQgB,GACRA,IAAS,SAGbA,IAASA,KAAU;AAGvB,MAAIC,IAAS,UAAW,GACpBsQ,IAAQD,IAAerQ,EAAO,MAAM,MAAM,GAC1ChN,GACAod,IAAM,CAAA;AAEV,MAAIrR,KAAS;AACT,WAAO,MAAMgB,IAAShB,IAAQuR,KAAS,GAAGJ,GAAO,KAAK;AAG1D,OAAKld,IAAI,GAAGA,IAAI,GAAGA;AACf,IAAAod,EAAIpd,CAAC,IAAI,MAAM+M,IAAS/M,IAAIsd,KAAS,GAAGJ,GAAO,KAAK;AAExD,SAAOE;AACX;AAEA,SAAS,WAAWrQ,GAAQhB,GAAO;AAC/B,SAAO,eAAegB,GAAQhB,GAAO,QAAQ;AACjD;AAEA,SAAS,gBAAgBgB,GAAQhB,GAAO;AACpC,SAAO,eAAegB,GAAQhB,GAAO,aAAa;AACtD;AAEA,SAAS,aAAasR,GAActQ,GAAQhB,GAAO;AAC/C,SAAO,iBAAiBsR,GAActQ,GAAQhB,GAAO,UAAU;AACnE;AAEA,SAAS,kBAAkBsR,GAActQ,GAAQhB,GAAO;AACpD,SAAO,iBAAiBsR,GAActQ,GAAQhB,GAAO,eAAe;AACxE;AAEA,SAAS,gBAAgBsR,GAActQ,GAAQhB,GAAO;AAClD,SAAO,iBAAiBsR,GAActQ,GAAQhB,GAAO,aAAa;AACtE;AAEA,mBAAmB,MAAM;AAAA,EACrB,MAAM;AAAA,IACF;AAAA,MACI,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,IACT;AAAA,IACD;AAAA,MACI,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,IACT;AAAA,EACJ;AAAA,EACD,wBAAwB;AAAA,EACxB,SAAS,SAAUsC,GAAQ;AACvB,QAAIzD,IAAIyD,IAAS,IACbD,IACI,MAAOC,IAAS,MAAO,EAAE,MAAM,IACzB,OACAzD,MAAM,IACJ,OACAA,MAAM,IACJ,OACAA,MAAM,IACJ,OACA;AACpB,WAAOyD,IAASD;AAAA,EACnB;AACL,CAAC;AAID,MAAM,OAAO;AAAA,EACT;AAAA,EACA;AACJ;AACA,MAAM,WAAW;AAAA,EACb;AAAA,EACA;AACJ;AAEA,IAAI,UAAU,KAAK;AAEnB,SAAS,MAAM;AACX,MAAIjL,IAAO,KAAK;AAEhB,cAAK,gBAAgB,QAAQ,KAAK,aAAa,GAC/C,KAAK,QAAQ,QAAQ,KAAK,KAAK,GAC/B,KAAK,UAAU,QAAQ,KAAK,OAAO,GAEnCA,EAAK,eAAe,QAAQA,EAAK,YAAY,GAC7CA,EAAK,UAAU,QAAQA,EAAK,OAAO,GACnCA,EAAK,UAAU,QAAQA,EAAK,OAAO,GACnCA,EAAK,QAAQ,QAAQA,EAAK,KAAK,GAC/BA,EAAK,SAAS,QAAQA,EAAK,MAAM,GACjCA,EAAK,QAAQ,QAAQA,EAAK,KAAK,GAExB;AACX;AAEA,SAAS,cAAc2U,GAAUxL,GAAOrH,GAAOuU,GAAW;AACtD,MAAI9B,IAAQ,eAAepL,GAAOrH,CAAK;AAEvC,SAAA6S,EAAS,iBAAiB0B,IAAY9B,EAAM,eAC5CI,EAAS,SAAS0B,IAAY9B,EAAM,OACpCI,EAAS,WAAW0B,IAAY9B,EAAM,SAE/BI,EAAS;AACpB;AAGA,SAAS,MAAMxL,GAAOrH,GAAO;AACzB,SAAO,cAAc,MAAMqH,GAAOrH,GAAO,CAAC;AAC9C;AAGA,SAAS,WAAWqH,GAAOrH,GAAO;AAC9B,SAAO,cAAc,MAAMqH,GAAOrH,GAAO,EAAE;AAC/C;AAEA,SAAS,QAAQoJ,GAAQ;AACrB,SAAIA,IAAS,IACF,KAAK,MAAMA,CAAM,IAEjB,KAAK,KAAKA,CAAM;AAE/B;AAEA,SAAS,SAAS;AACd,MAAIgK,IAAe,KAAK,eACpBF,IAAO,KAAK,OACZF,IAAS,KAAK,SACd9U,IAAO,KAAK,OACZiV,GACAtE,GACAD,GACAkE,GACAwF;AAIJ,SAESlF,KAAgB,KAAKF,KAAQ,KAAKF,KAAU,KAC5CI,KAAgB,KAAKF,KAAQ,KAAKF,KAAU,MAGjDI,KAAgB,QAAQ,aAAaJ,CAAM,IAAIE,CAAI,IAAI,OACvDA,IAAO,GACPF,IAAS,IAKb9U,EAAK,eAAekV,IAAe,KAEnCD,IAAU,SAASC,IAAe,GAAI,GACtClV,EAAK,UAAUiV,IAAU,IAEzBtE,IAAU,SAASsE,IAAU,EAAE,GAC/BjV,EAAK,UAAU2Q,IAAU,IAEzBD,IAAQ,SAASC,IAAU,EAAE,GAC7B3Q,EAAK,QAAQ0Q,IAAQ,IAErBsE,KAAQ,SAAStE,IAAQ,EAAE,GAG3B0J,IAAiB,SAAS,aAAapF,CAAI,CAAC,GAC5CF,KAAUsF,GACVpF,KAAQ,QAAQ,aAAaoF,CAAc,CAAC,GAG5CxF,IAAQ,SAASE,IAAS,EAAE,GAC5BA,KAAU,IAEV9U,EAAK,OAAOgV,GACZhV,EAAK,SAAS8U,GACd9U,EAAK,QAAQ4U,GAEN;AACX;AAEA,SAAS,aAAaI,GAAM;AAGxB,SAAQA,IAAO,OAAQ;AAC3B;AAEA,SAAS,aAAaF,GAAQ;AAE1B,SAAQA,IAAS,SAAU;AAC/B;AAEA,SAAS,GAAGzI,GAAO;AACf,MAAI,CAAC,KAAK;AACN,WAAO;AAEX,MAAI2I,GACAF,GACAI,IAAe,KAAK;AAIxB,MAFA7I,IAAQ,eAAeA,CAAK,GAExBA,MAAU,WAAWA,MAAU,aAAaA,MAAU;AAGtD,YAFA2I,IAAO,KAAK,QAAQE,IAAe,OACnCJ,IAAS,KAAK,UAAU,aAAaE,CAAI,GACjC3I,GAAK;AAAA,MACT,KAAK;AACD,eAAOyI;AAAA,MACX,KAAK;AACD,eAAOA,IAAS;AAAA,MACpB,KAAK;AACD,eAAOA,IAAS;AAAA,IACvB;AAAA;AAID,YADAE,IAAO,KAAK,QAAQ,KAAK,MAAM,aAAa,KAAK,OAAO,CAAC,GACjD3I,GAAK;AAAA,MACT,KAAK;AACD,eAAO2I,IAAO,IAAIE,IAAe;AAAA,MACrC,KAAK;AACD,eAAOF,IAAOE,IAAe;AAAA,MACjC,KAAK;AACD,eAAOF,IAAO,KAAKE,IAAe;AAAA,MACtC,KAAK;AACD,eAAOF,IAAO,OAAOE,IAAe;AAAA,MACxC,KAAK;AACD,eAAOF,IAAO,QAAQE,IAAe;AAAA,MAEzC,KAAK;AACD,eAAO,KAAK,MAAMF,IAAO,KAAK,IAAIE;AAAA,MACtC;AACI,cAAM,IAAI,MAAM,kBAAkB7I,CAAK;AAAA,IAC9C;AAET;AAEA,SAAS,OAAOgO,GAAO;AACnB,SAAO,WAAY;AACf,WAAO,KAAK,GAAGA,CAAK;AAAA,EAC5B;AACA;AAEA,IAAI,iBAAiB,OAAO,IAAI,GAC5B,YAAY,OAAO,GAAG,GACtB,YAAY,OAAO,GAAG,GACtB,UAAU,OAAO,GAAG,GACpB,SAAS,OAAO,GAAG,GACnB,UAAU,OAAO,GAAG,GACpB,WAAW,OAAO,GAAG,GACrB,aAAa,OAAO,GAAG,GACvB,UAAU,OAAO,GAAG,GACpB,YAAY;AAEhB,SAAS,UAAU;AACf,SAAO,eAAe,IAAI;AAC9B;AAEA,SAAS,MAAMhO,GAAO;AAClB,SAAAA,IAAQ,eAAeA,CAAK,GACrB,KAAK,YAAY,KAAKA,IAAQ,GAAG,EAAG,IAAG;AAClD;AAEA,SAAS,WAAW3K,GAAM;AACtB,SAAO,WAAY;AACf,WAAO,KAAK,YAAY,KAAK,MAAMA,CAAI,IAAI;AAAA,EACnD;AACA;AAEA,IAAI,eAAe,WAAW,cAAc,GACxC,UAAU,WAAW,SAAS,GAC9B,UAAU,WAAW,SAAS,GAC9B,QAAQ,WAAW,OAAO,GAC1B,OAAO,WAAW,MAAM,GACxB,SAAS,WAAW,QAAQ,GAC5B,QAAQ,WAAW,OAAO;AAE9B,SAAS,QAAQ;AACb,SAAO,SAAS,KAAK,KAAM,IAAG,CAAC;AACnC;AAEA,IAAI,QAAQ,KAAK,OACb,aAAa;AAAA,EACT,IAAI;AAAA;AAAA,EACJ,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AAAA,EACH,GAAG;AAAA;AACX;AAGA,SAAS,kBAAkBwK,GAAQhB,GAAQe,GAAeE,GAAUtC,GAAQ;AACxE,SAAOA,EAAO,aAAaqB,KAAU,GAAG,CAAC,CAACe,GAAeC,GAAQC,CAAQ;AAC7E;AAEA,SAAS,eAAemO,GAAgBrO,GAAesO,GAAY1Q,GAAQ;AACvE,MAAI8K,IAAW,eAAe2F,CAAc,EAAE,IAAK,GAC/CrF,IAAU,MAAMN,EAAS,GAAG,GAAG,CAAC,GAChChE,IAAU,MAAMgE,EAAS,GAAG,GAAG,CAAC,GAChCjE,IAAQ,MAAMiE,EAAS,GAAG,GAAG,CAAC,GAC9BK,IAAO,MAAML,EAAS,GAAG,GAAG,CAAC,GAC7BG,IAAS,MAAMH,EAAS,GAAG,GAAG,CAAC,GAC/BI,IAAQ,MAAMJ,EAAS,GAAG,GAAG,CAAC,GAC9BC,IAAQ,MAAMD,EAAS,GAAG,GAAG,CAAC,GAC9BtL,IACK4L,KAAWsF,EAAW,MAAM,CAAC,KAAKtF,CAAO,KACzCA,IAAUsF,EAAW,KAAK,CAAC,MAAMtF,CAAO,KACxCtE,KAAW,KAAK,CAAC,GAAG,KACpBA,IAAU4J,EAAW,KAAK,CAAC,MAAM5J,CAAO,KACxCD,KAAS,KAAK,CAAC,GAAG,KAClBA,IAAQ6J,EAAW,KAAK,CAAC,MAAM7J,CAAK,KACpCsE,KAAQ,KAAK,CAAC,GAAG,KACjBA,IAAOuF,EAAW,KAAK,CAAC,MAAMvF,CAAI;AAE3C,SAAIuF,EAAW,KAAK,SAChBlR,IACIA,KACC0L,KAAS,KAAK,CAAC,GAAG,KAClBA,IAAQwF,EAAW,KAAK,CAAC,MAAMxF,CAAK,IAE7C1L,IAAIA,KACCyL,KAAU,KAAK,CAAC,GAAG,KACnBA,IAASyF,EAAW,KAAK,CAAC,MAAMzF,CAAM,KACtCF,KAAS,KAAK,CAAC,GAAG,KAAM,CAAC,MAAMA,CAAK,GAEzCvL,EAAE,CAAC,IAAI4C,GACP5C,EAAE,CAAC,IAAI,CAACiR,IAAiB,GACzBjR,EAAE,CAAC,IAAIQ,GACA,kBAAkB,MAAM,MAAMR,CAAC;AAC1C;AAGA,SAAS,2BAA2BmR,GAAkB;AAClD,SAAIA,MAAqB,SACd,QAEP,OAAOA,KAAqB,cAC5B,QAAQA,GACD,MAEJ;AACX;AAGA,SAAS,4BAA4BC,GAAWC,GAAO;AACnD,SAAI,WAAWD,CAAS,MAAM,SACnB,KAEPC,MAAU,SACH,WAAWD,CAAS,KAE/B,WAAWA,CAAS,IAAIC,GACpBD,MAAc,QACd,WAAW,KAAKC,IAAQ,IAErB;AACX;AAEA,SAAS,SAASC,GAAeC,GAAe;AAC5C,MAAI,CAAC,KAAK;AACN,WAAO,KAAK,aAAa;AAG7B,MAAIC,IAAa,IACbC,IAAK,YACLjR,GACAoB;AAEJ,SAAI,OAAO0P,KAAkB,aACzBC,IAAgBD,GAChBA,IAAgB,KAEhB,OAAOA,KAAkB,cACzBE,IAAaF,IAEb,OAAOC,KAAkB,aACzBE,IAAK,OAAO,OAAO,CAAE,GAAE,YAAYF,CAAa,GAC5CA,EAAc,KAAK,QAAQA,EAAc,MAAM,SAC/CE,EAAG,KAAKF,EAAc,IAAI,KAIlC/Q,IAAS,KAAK,cACdoB,IAAS,eAAe,MAAM,CAAC4P,GAAYC,GAAIjR,CAAM,GAEjDgR,MACA5P,IAASpB,EAAO,WAAW,CAAC,MAAMoB,CAAM,IAGrCpB,EAAO,WAAWoB,CAAM;AACnC;AAEA,IAAI,QAAQ,KAAK;AAEjB,SAAS,KAAKgD,GAAG;AACb,UAAQA,IAAI,MAAMA,IAAI,MAAM,CAACA;AACjC;AAEA,SAAS,gBAAgB;AAQrB,MAAI,CAAC,KAAK;AACN,WAAO,KAAK,aAAa;AAG7B,MAAIgH,IAAU,MAAM,KAAK,aAAa,IAAI,KACtCD,IAAO,MAAM,KAAK,KAAK,GACvBF,IAAS,MAAM,KAAK,OAAO,GAC3BnE,GACAD,GACAkE,GACA9H,GACAiO,IAAQ,KAAK,UAAW,GACxBC,GACAC,GACAC,GACAC;AAEJ,SAAKJ,KAOLpK,IAAU,SAASsE,IAAU,EAAE,GAC/BvE,IAAQ,SAASC,IAAU,EAAE,GAC7BsE,KAAW,IACXtE,KAAW,IAGXiE,IAAQ,SAASE,IAAS,EAAE,GAC5BA,KAAU,IAGVhI,IAAImI,IAAUA,EAAQ,QAAQ,CAAC,EAAE,QAAQ,UAAU,EAAE,IAAI,IAEzD+F,IAAYD,IAAQ,IAAI,MAAM,IAC9BE,IAAS,KAAK,KAAK,OAAO,MAAM,KAAKF,CAAK,IAAI,MAAM,IACpDG,IAAW,KAAK,KAAK,KAAK,MAAM,KAAKH,CAAK,IAAI,MAAM,IACpDI,IAAU,KAAK,KAAK,aAAa,MAAM,KAAKJ,CAAK,IAAI,MAAM,IAGvDC,IACA,OACCpG,IAAQqG,IAASrG,IAAQ,MAAM,OAC/BE,IAASmG,IAASnG,IAAS,MAAM,OACjCE,IAAOkG,IAAWlG,IAAO,MAAM,OAC/BtE,KAASC,KAAWsE,IAAU,MAAM,OACpCvE,IAAQyK,IAAUzK,IAAQ,MAAM,OAChCC,IAAUwK,IAAUxK,IAAU,MAAM,OACpCsE,IAAUkG,IAAUrO,IAAI,MAAM,OA9BxB;AAgCf;AAEA,IAAI,UAAU,SAAS;AAEvB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,KAAK;AACb,QAAQ,iBAAiB;AACzB,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,eAAe;AACvB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,QAAQ,WAAW;AACnB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,aAAa;AAErB,QAAQ,cAAc;AAAA,EAClB;AAAA,EACA;AACJ;AACA,QAAQ,OAAO;AAIf,eAAe,KAAK,GAAG,GAAG,MAAM;AAChC,eAAe,KAAK,GAAG,GAAG,SAAS;AAInC,cAAc,KAAK,WAAW;AAC9B,cAAc,KAAK,cAAc;AACjC,cAAc,KAAK,SAAU3D,GAAOyC,GAAO/F,GAAQ;AAC/C,EAAAA,EAAO,KAAK,IAAI,KAAK,WAAWsD,CAAK,IAAI,GAAI;AACjD,CAAC;AACD,cAAc,KAAK,SAAUA,GAAOyC,GAAO/F,GAAQ;AAC/C,EAAAA,EAAO,KAAK,IAAI,KAAK,MAAMsD,CAAK,CAAC;AACrC,CAAC;AAED;AAEA,MAAM,UAAU;AAEhB,gBAAgB,WAAW;AAE3B,MAAM,KAAK;AACX,MAAM,MAAM;AACZ,MAAM,MAAM;AACZ,MAAM,MAAM;AACZ,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,SAAS;AACf,MAAM,SAASM;AACf,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,UAAU;AAChB,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,uBAAuB;AAC7B,MAAM,wBAAwB;AAC9B,MAAM,iBAAiB;AACvB,MAAM,YAAY;AAGlB,MAAM,YAAY;AAAA,EACd,gBAAgB;AAAA;AAAA,EAChB,wBAAwB;AAAA;AAAA,EACxB,mBAAmB;AAAA;AAAA,EACnB,MAAM;AAAA;AAAA,EACN,MAAM;AAAA;AAAA,EACN,cAAc;AAAA;AAAA,EACd,SAAS;AAAA;AAAA,EACT,MAAM;AAAA;AAAA,EACN,OAAO;AAAA;AACX;AC7iLA;AAEA,SAAS,OAAQ2R,GAAQ;AACvB,WAASve,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AACzC,QAAIwe,IAAS,UAAUxe,CAAC;AACxB,aAASgF,KAAOwZ;AACd,MAAAD,EAAOvZ,CAAG,IAAIwZ,EAAOxZ,CAAG;AAAA,EAE3B;AACD,SAAOuZ;AACT;AAIA,IAAI,mBAAmB;AAAA,EACrB,MAAM,SAAUtZ,GAAO;AACrB,WAAIA,EAAM,CAAC,MAAM,QACfA,IAAQA,EAAM,MAAM,GAAG,EAAE,IAEpBA,EAAM,QAAQ,oBAAoB,kBAAkB;AAAA,EAC5D;AAAA,EACD,OAAO,SAAUA,GAAO;AACtB,WAAO,mBAAmBA,CAAK,EAAE;AAAA,MAC/B;AAAA,MACA;AAAA,IACD;AAAA,EACF;AACH;AAKA,SAAS,KAAMwZ,GAAWC,GAAmB;AAC3C,WAASC,EAAK9Z,GAAMI,GAAO2Z,GAAY;AACrC,QAAI,SAAO,WAAa,MAIxB;AAAA,MAAAA,IAAa,OAAO,CAAA,GAAIF,GAAmBE,CAAU,GAEjD,OAAOA,EAAW,WAAY,aAChCA,EAAW,UAAU,IAAI,KAAK,KAAK,IAAG,IAAKA,EAAW,UAAU,KAAK,IAEnEA,EAAW,YACbA,EAAW,UAAUA,EAAW,QAAQ,YAAW,IAGrD/Z,IAAO,mBAAmBA,CAAI,EAC3B,QAAQ,wBAAwB,kBAAkB,EAClD,QAAQ,SAAS,MAAM;AAE1B,UAAIga,IAAwB;AAC5B,eAASC,KAAiBF;AACxB,QAAKA,EAAWE,CAAa,MAI7BD,KAAyB,OAAOC,GAE5BF,EAAWE,CAAa,MAAM,OAWlCD,KAAyB,MAAMD,EAAWE,CAAa,EAAE,MAAM,GAAG,EAAE,CAAC;AAGvE,aAAQ,SAAS,SACfja,IAAO,MAAM4Z,EAAU,MAAMxZ,GAAOJ,CAAI,IAAIga;AAAA;AAAA,EAC/C;AAED,WAASE,EAAKla,GAAM;AAClB,QAAI,SAAO,WAAa,OAAgB,UAAU,UAAU,CAACA,IAQ7D;AAAA,eAFIY,IAAU,SAAS,SAAS,SAAS,OAAO,MAAM,IAAI,IAAI,IAC1DuZ,IAAM,CAAA,GACDhf,IAAI,GAAGA,IAAIyF,EAAQ,QAAQzF,KAAK;AACvC,YAAI8Y,IAAQrT,EAAQzF,CAAC,EAAE,MAAM,GAAG,GAC5BiF,IAAQ6T,EAAM,MAAM,CAAC,EAAE,KAAK,GAAG;AAEnC,YAAI;AACF,cAAImG,IAAQ,mBAAmBnG,EAAM,CAAC,CAAC;AAGvC,cAFAkG,EAAIC,CAAK,IAAIR,EAAU,KAAKxZ,GAAOga,CAAK,GAEpCpa,MAASoa;AACX;AAAA,QAEV,QAAkB;AAAA,QAAE;AAAA,MACf;AAED,aAAOpa,IAAOma,EAAIna,CAAI,IAAIma;AAAA;AAAA,EAC3B;AAED,SAAO,OAAO;AAAA,IACZ;AAAA,MACE,KAAAL;AAAA,MACA,KAAAI;AAAA,MACA,QAAQ,SAAUla,GAAM+Z,GAAY;AAClC,QAAAD;AAAA,UACE9Z;AAAA,UACA;AAAA,UACA,OAAO,CAAE,GAAE+Z,GAAY;AAAA,YACrB,SAAS;AAAA,UACrB,CAAW;AAAA,QACX;AAAA,MACO;AAAA,MACD,gBAAgB,SAAUA,GAAY;AACpC,eAAO,KAAK,KAAK,WAAW,OAAO,CAAA,GAAI,KAAK,YAAYA,CAAU,CAAC;AAAA,MACpE;AAAA,MACD,eAAe,SAAUH,GAAW;AAClC,eAAO,KAAK,OAAO,IAAI,KAAK,WAAWA,CAAS,GAAG,KAAK,UAAU;AAAA,MACnE;AAAA,IACF;AAAA,IACD;AAAA,MACE,YAAY,EAAE,OAAO,OAAO,OAAOC,CAAiB,EAAG;AAAA,MACvD,WAAW,EAAE,OAAO,OAAO,OAAOD,CAAS,EAAG;AAAA,IAC/C;AAAA,EACF;AACH;AAEA,IAAI,MAAM,KAAK,kBAAkB,EAAE,MAAM,IAAG,CAAE,GChI7B;AAAA,CAAV,CAAUS,MAAV;AAAA,EAEE,MAAMC,EAAa;AAAA,IACxB,YAAY7U,GAAczF,GAAcmB,GAAa;AACnD,WAAK,OAAOsE,GACZ,KAAK,MAAMtE,GACX,KAAK,OAAOnB;AAAA,IACd;AAAA,EAKF;AAVOqa,EAAAA,EAAM,eAAAC;AAYN,QAAMC,IAAN,MAAMA,EAAS;AAAA,EA4OtB;AA3OE,EAAAA,EAAgB,MAAM,IAAID,EAAa,OAAO,+BAA+B,GAAG,GAChFC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,CAAC,GAC/DC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,EAAE,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iCAAiC,GAAG,GAClFC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,EAAE,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,EAAE,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,EAAE,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,EAAE,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,EAAE,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,EAAE,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,EAAE,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,aAAa,EAAE,GAC7DC,EAAgB,MAAM,IAAID,EAAa,OAAO,+BAA+B,GAAG,GAChFC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,EAAE,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,EAAE,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,EAAE,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,EAAE,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,kCAAkC,GAAG,GACnFC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,YAAY,GAAG,GAC7DC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,cAAc,GAAG,GAC/DC,EAAgB,MAAM,IAAID,EAAa,OAAO,uBAAuB,GAAG,GACxEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,EAAE,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,QAAQ,GAAG,GACzDC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID,EAAa,OAAO,0BAA0B,GAAG,GAC3EC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,yBAAyB,GAAG,GAC1EC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,WAAW,GAAG,GAC5DC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,uBAAuB,GAAG,GACxEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,cAAc,GAAG,GAC/DC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,0BAA0B,GAAG,GAC3EC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,iBAAiB,GAAG,GAClEC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID,EAAa,OAAO,0BAA0B,EAAE,GAC1EC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kCAAkC,GAAG,GACnFC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,wBAAwB,GAAG,GACzEC,EAAgB,MAAM,IAAID,EAAa,OAAO,+BAA+B,GAAG,GAChFC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,aAAa,GAAG,GAC9DC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,8BAA8B,GAAG,GAC/EC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,qBAAqB,GAAG,GACtEC,EAAgB,MAAM,IAAID,EAAa,OAAO,oBAAoB,GAAG,GACrEC,EAAgB,MAAM,IAAID,EAAa,OAAO,wBAAwB,GAAG,GACzEC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,8BAA8B,GAAG,GAC/EC,EAAgB,MAAM,IAAID,EAAa,OAAO,gCAAgC,GAAG,GACjFC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,gBAAgB,GAAG,GACjEC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,2BAA2B,GAAG,GAC5EC,EAAgB,MAAM,IAAID,EAAa,OAAO,yBAAyB,GAAG,GAC1EC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEJC,EAAgB,MAAM,IAAID,EAAa,OAAO,yBAAyB,GAAG,GAC1EC,EAAgB,MAAM,IAAID,EAAa,OAAO,0BAA0B,GAAG,GAC3EC,EAAgB,MAAM,IAAID,EAAa,OAAO,mBAAmB,GAAG,GACpEC,EAAgB,MAAM,IAAID,EAAa,OAAO,8BAA8B,GAAG,GAC/EC,EAAgB,MAAM,IAAID,EAAa,OAAO,+BAA+B,GAAG,GAChFC,EAAgB,MAAM,IAAID,EAAa,OAAO,6BAA6B,GAAG,GAC9EC,EAAgB,MAAM,IAAID,EAAa,OAAO,SAAS,GAAG,GAC1DC,EAAgB,MAAM,IAAID,EAAa,OAAO,6BAA6B,GAAG,GAC9EC,EAAgB,MAAM,IAAID,EAAa,OAAO,uBAAuB,GAAG,GACxEC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID,EAAa,OAAO,eAAe,GAAG,GAChEC,EAAgB,MAAM,IAAID,EAAa,OAAO,sBAAsB,GAAG,GACvEC,EAAgB,MAAM,IAAID,EAAa,OAAO,kBAAkB,GAAG,GACnEC,EAAgB,MAAM,IAAID,EAAa,OAAO,6BAA6B,GAAG;AA3OzE,MAAME,IAAND;AAAAF,EAAAA,EAAM,WAAAG;AAAA,GAdE,iBAAA,eAAA,CAAA,EAAA;ACFjB,MAAMC,WAAS,cAAc,UAAU;ACExB,SAAS,KAAK5Z,GAAI6Z,GAAS;AACxC,SAAO,WAAgB;AACrB,WAAO7Z,EAAG,MAAM6Z,GAAS,SAAS;AAAA,EACtC;AACA;ACAA,MAAM,EAAC,SAAQ,IAAI,OAAO,WACpB,EAAC,eAAc,IAAI,QAEnB,SAAU,kBAAAC,MAAS,CAAAC,MAAS;AAC9B,QAAMjf,IAAM,SAAS,KAAKif,CAAK;AAC/B,SAAOD,EAAMhf,CAAG,MAAMgf,EAAMhf,CAAG,IAAIA,EAAI,MAAM,GAAG,EAAE,EAAE,YAAa;AACrE,GAAG,uBAAO,OAAO,IAAI,CAAC,GAEhB,aAAa,CAACuD,OAClBA,IAAOA,EAAK,eACL,CAAC0b,MAAU,OAAOA,CAAK,MAAM1b,IAGhC,aAAa,CAAAA,MAAQ,CAAA0b,MAAS,OAAOA,MAAU1b,GAS/C,EAAC,QAAO,IAAI,OASZ,cAAc,WAAW,WAAW;AAS1C,SAAS,SAASkD,GAAK;AACrB,SAAOA,MAAQ,QAAQ,CAAC,YAAYA,CAAG,KAAKA,EAAI,gBAAgB,QAAQ,CAAC,YAAYA,EAAI,WAAW,KAC/F,WAAWA,EAAI,YAAY,QAAQ,KAAKA,EAAI,YAAY,SAASA,CAAG;AAC3E;AASA,MAAM,gBAAgB,WAAW,aAAa;AAU9C,SAAS,kBAAkBA,GAAK;AAC9B,MAAItE;AACJ,SAAK,OAAO,cAAgB,OAAiB,YAAY,SACvDA,IAAS,YAAY,OAAOsE,CAAG,IAE/BtE,IAAUsE,KAASA,EAAI,UAAY,cAAcA,EAAI,MAAM,GAEtDtE;AACT;AASA,MAAM,WAAW,WAAW,QAAQ,GAQ9B,aAAa,WAAW,UAAU,GASlC,WAAW,WAAW,QAAQ,GAS9B,WAAW,CAAC8c,MAAUA,MAAU,QAAQ,OAAOA,KAAU,UAQzD,YAAY,CAAAA,MAASA,MAAU,MAAQA,MAAU,IASjD,gBAAgB,CAACxY,MAAQ;AAC7B,MAAI,OAAOA,CAAG,MAAM;AAClB,WAAO;AAGT,QAAMyY,IAAY,eAAezY,CAAG;AACpC,UAAQyY,MAAc,QAAQA,MAAc,OAAO,aAAa,OAAO,eAAeA,CAAS,MAAM,SAAS,EAAE,OAAO,eAAezY,MAAQ,EAAE,OAAO,YAAYA;AACrK,GASM,SAAS,WAAW,MAAM,GAS1B,SAAS,WAAW,MAAM,GAS1B,SAAS,WAAW,MAAM,GAS1B,aAAa,WAAW,UAAU,GASlC,WAAW,CAACA,MAAQ,SAASA,CAAG,KAAK,WAAWA,EAAI,IAAI,GASxD,aAAa,CAACwY,MAAU;AAC5B,MAAIE;AACJ,SAAOF,MACJ,OAAO,YAAa,cAAcA,aAAiB,YAClD,WAAWA,EAAM,MAAM,OACpBE,IAAO,OAAOF,CAAK,OAAO;AAAA,EAE1BE,MAAS,YAAY,WAAWF,EAAM,QAAQ,KAAKA,EAAM,SAAU,MAAK;AAIjF,GASM,oBAAoB,WAAW,iBAAiB,GAShD,OAAO,CAACjf,MAAQA,EAAI,OACxBA,EAAI,KAAI,IAAKA,EAAI,QAAQ,sCAAsC,EAAE;AAiBnE,SAAS,QAAQiM,GAAK/G,GAAI,EAAC,YAAAka,IAAa,GAAK,IAAI,IAAI;AAEnD,MAAInT,MAAQ,QAAQ,OAAOA,IAAQ;AACjC;AAGF,MAAIzM,GACA0U;AAQJ,MALI,OAAOjI,KAAQ,aAEjBA,IAAM,CAACA,CAAG,IAGR,QAAQA,CAAG;AAEb,SAAKzM,IAAI,GAAG0U,IAAIjI,EAAI,QAAQzM,IAAI0U,GAAG1U;AACjC,MAAA0F,EAAG,KAAK,MAAM+G,EAAIzM,CAAC,GAAGA,GAAGyM,CAAG;AAAA,OAEzB;AAEL,UAAMoT,IAAOD,IAAa,OAAO,oBAAoBnT,CAAG,IAAI,OAAO,KAAKA,CAAG,GACrE7L,IAAMif,EAAK;AACjB,QAAI7a;AAEJ,SAAKhF,IAAI,GAAGA,IAAIY,GAAKZ;AACnB,MAAAgF,IAAM6a,EAAK7f,CAAC,GACZ0F,EAAG,KAAK,MAAM+G,EAAIzH,CAAG,GAAGA,GAAKyH,CAAG;AAAA,EAEnC;AACH;AAEA,SAAS,QAAQA,GAAKzH,GAAK;AACzB,EAAAA,IAAMA,EAAI;AACV,QAAM6a,IAAO,OAAO,KAAKpT,CAAG;AAC5B,MAAIzM,IAAI6f,EAAK,QACTC;AACJ,SAAO9f,MAAM;AAEX,QADA8f,IAAOD,EAAK7f,CAAC,GACTgF,MAAQ8a,EAAK;AACf,aAAOA;AAGX,SAAO;AACT;AAEA,MAAM,UAEA,OAAO,aAAe,MAAoB,aACvC,OAAO,OAAS,MAAc,OAAQ,OAAO,SAAW,MAAc,SAASR,UAGlF,mBAAmB,CAACS,MAAY,CAAC,YAAYA,CAAO,KAAKA,MAAY;AAoB3E,SAAS,QAAmC;AAC1C,QAAM,EAAC,UAAAC,EAAQ,IAAI,iBAAiB,IAAI,KAAK,QAAQ,IAC/Crd,IAAS,CAAA,GACTsd,IAAc,CAAChZ,GAAKjC,MAAQ;AAChC,UAAMkb,IAAYF,KAAY,QAAQrd,GAAQqC,CAAG,KAAKA;AACtD,IAAI,cAAcrC,EAAOud,CAAS,CAAC,KAAK,cAAcjZ,CAAG,IACvDtE,EAAOud,CAAS,IAAI,MAAMvd,EAAOud,CAAS,GAAGjZ,CAAG,IACvC,cAAcA,CAAG,IAC1BtE,EAAOud,CAAS,IAAI,MAAM,CAAE,GAAEjZ,CAAG,IACxB,QAAQA,CAAG,IACpBtE,EAAOud,CAAS,IAAIjZ,EAAI,MAAK,IAE7BtE,EAAOud,CAAS,IAAIjZ;AAAA,EAEvB;AAED,WAASjH,IAAI,GAAG0U,IAAI,UAAU,QAAQ1U,IAAI0U,GAAG1U;AAC3C,cAAUA,CAAC,KAAK,QAAQ,UAAUA,CAAC,GAAGigB,CAAW;AAEnD,SAAOtd;AACT;AAYA,MAAM,SAAS,CAAC6J,GAAG5B,GAAG2U,GAAS,EAAC,YAAAK,EAAU,IAAG,QAC3C,QAAQhV,GAAG,CAAC3D,GAAKjC,MAAQ;AACvB,EAAIua,KAAW,WAAWtY,CAAG,IAC3BuF,EAAExH,CAAG,IAAI,KAAKiC,GAAKsY,CAAO,IAE1B/S,EAAExH,CAAG,IAAIiC;AAEf,GAAK,EAAC,YAAA2Y,EAAU,CAAC,GACRpT,IAUH,WAAW,CAAC2T,OACZA,EAAQ,WAAW,CAAC,MAAM,UAC5BA,IAAUA,EAAQ,MAAM,CAAC,IAEpBA,IAYH,WAAW,CAACC,GAAaC,GAAkB9e,GAAO+e,MAAgB;AACtE,EAAAF,EAAY,YAAY,OAAO,OAAOC,EAAiB,WAAWC,CAAW,GAC7EF,EAAY,UAAU,cAAcA,GACpC,OAAO,eAAeA,GAAa,SAAS;AAAA,IAC1C,OAAOC,EAAiB;AAAA,EAC5B,CAAG,GACD9e,KAAS,OAAO,OAAO6e,EAAY,WAAW7e,CAAK;AACrD,GAWM,eAAe,CAACgf,GAAWC,GAASC,GAAQC,MAAe;AAC/D,MAAInf,GACAvB,GACA4C;AACJ,QAAM+d,IAAS,CAAA;AAIf,MAFAH,IAAUA,KAAW,IAEjBD,KAAa;AAAM,WAAOC;AAE9B,KAAG;AAGD,SAFAjf,IAAQ,OAAO,oBAAoBgf,CAAS,GAC5CvgB,IAAIuB,EAAM,QACHvB,MAAM;AACX,MAAA4C,IAAOrB,EAAMvB,CAAC,IACT,CAAC0gB,KAAcA,EAAW9d,GAAM2d,GAAWC,CAAO,MAAM,CAACG,EAAO/d,CAAI,MACvE4d,EAAQ5d,CAAI,IAAI2d,EAAU3d,CAAI,GAC9B+d,EAAO/d,CAAI,IAAI;AAGnB,IAAA2d,IAAYE,MAAW,MAAS,eAAeF,CAAS;AAAA,EAC5D,SAAWA,MAAc,CAACE,KAAUA,EAAOF,GAAWC,CAAO,MAAMD,MAAc,OAAO;AAEtF,SAAOC;AACT,GAWM,WAAW,CAAChgB,GAAKogB,GAAcC,MAAa;AAChD,EAAArgB,IAAM,OAAOA,CAAG,IACZqgB,MAAa,UAAaA,IAAWrgB,EAAI,YAC3CqgB,IAAWrgB,EAAI,SAEjBqgB,KAAYD,EAAa;AACzB,QAAME,IAAYtgB,EAAI,QAAQogB,GAAcC,CAAQ;AACpD,SAAOC,MAAc,MAAMA,MAAcD;AAC3C,GAUM,UAAU,CAACpB,MAAU;AACzB,MAAI,CAACA;AAAO,WAAO;AACnB,MAAI,QAAQA,CAAK;AAAG,WAAOA;AAC3B,MAAIzf,IAAIyf,EAAM;AACd,MAAI,CAAC,SAASzf,CAAC;AAAG,WAAO;AACzB,QAAME,IAAM,IAAI,MAAMF,CAAC;AACvB,SAAOA,MAAM;AACX,IAAAE,EAAIF,CAAC,IAAIyf,EAAMzf,CAAC;AAElB,SAAOE;AACT,GAWM,eAAgB,kBAAA6gB,MAEb,CAAAtB,MACEsB,KAActB,aAAiBsB,GAEvC,OAAO,aAAe,OAAe,eAAe,UAAU,CAAC,GAU5D,eAAe,CAACtU,GAAK/G,MAAO;AAGhC,QAAMsb,KAFYvU,KAAOA,EAAI,OAAO,QAAQ,GAEjB,KAAKA,CAAG;AAEnC,MAAI9J;AAEJ,UAAQA,IAASqe,EAAS,KAAI,MAAO,CAACre,EAAO,QAAM;AACjD,UAAMse,IAAOte,EAAO;AACpB,IAAA+C,EAAG,KAAK+G,GAAKwU,EAAK,CAAC,GAAGA,EAAK,CAAC,CAAC;AAAA,EAC9B;AACH,GAUM,WAAW,CAACC,GAAQ1gB,MAAQ;AAChC,MAAIY;AACJ,QAAMlB,IAAM,CAAA;AAEZ,UAAQkB,IAAU8f,EAAO,KAAK1gB,CAAG,OAAO;AACtC,IAAAN,EAAI,KAAKkB,CAAO;AAGlB,SAAOlB;AACT,GAGM,aAAa,WAAW,iBAAiB,GAEzC,cAAc,CAAAM,MACXA,EAAI,cAAc;AAAA,EAAQ;AAAA,EAC/B,SAAkB0M,GAAGiD,GAAIC,GAAI;AAC3B,WAAOD,EAAG,YAAa,IAAGC;AAAA,EAC3B;AACL,GAIM,kBAAkB,CAAC,EAAC,gBAAA+Q,EAAc,MAAM,CAAC1U,GAAK7J,MAASue,EAAe,KAAK1U,GAAK7J,CAAI,GAAG,OAAO,SAAS,GASvG,WAAW,WAAW,QAAQ,GAE9B,oBAAoB,CAAC6J,GAAK2U,MAAY;AAC1C,QAAMd,IAAc,OAAO,0BAA0B7T,CAAG,GAClD4U,IAAqB,CAAA;AAE3B,UAAQf,GAAa,CAACgB,GAAYzc,MAAS;AACzC,QAAIuU;AACJ,KAAKA,IAAMgI,EAAQE,GAAYzc,GAAM4H,CAAG,OAAO,OAC7C4U,EAAmBxc,CAAI,IAAIuU,KAAOkI;AAAA,EAExC,CAAG,GAED,OAAO,iBAAiB7U,GAAK4U,CAAkB;AACjD,GAOM,gBAAgB,CAAC5U,MAAQ;AAC7B,oBAAkBA,GAAK,CAAC6U,GAAYzc,MAAS;AAE3C,QAAI,WAAW4H,CAAG,KAAK,CAAC,aAAa,UAAU,QAAQ,EAAE,QAAQ5H,CAAI,MAAM;AACzE,aAAO;AAGT,UAAMI,IAAQwH,EAAI5H,CAAI;AAEtB,QAAK,WAAWI,CAAK,GAIrB;AAAA,UAFAqc,EAAW,aAAa,IAEpB,cAAcA,GAAY;AAC5B,QAAAA,EAAW,WAAW;AACtB;AAAA,MACD;AAED,MAAKA,EAAW,QACdA,EAAW,MAAM,MAAM;AACrB,cAAM,MAAM,uCAAwCzc,IAAO,GAAI;AAAA,MACvE;AAAA;AAAA,EAEA,CAAG;AACH,GAEM,cAAc,CAAC0c,GAAeC,MAAc;AAChD,QAAM/U,IAAM,CAAA,GAENgV,IAAS,CAACvhB,MAAQ;AACtB,IAAAA,EAAI,QAAQ,CAAA+E,MAAS;AACnB,MAAAwH,EAAIxH,CAAK,IAAI;AAAA,IACnB,CAAK;AAAA,EACF;AAED,iBAAQsc,CAAa,IAAIE,EAAOF,CAAa,IAAIE,EAAO,OAAOF,CAAa,EAAE,MAAMC,CAAS,CAAC,GAEvF/U;AACT,GAEMiV,SAAO,MAAM;AAAE,GAEf,iBAAiB,CAACzc,GAAO0c,OAC7B1c,IAAQ,CAACA,GACF,OAAO,SAASA,CAAK,IAAIA,IAAQ0c,IAGpC,QAAQ,8BAER,QAAQ,cAER,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA,aAAa,QAAQ,MAAM,YAAa,IAAG;AAC7C,GAEM,iBAAiB,CAACjX,IAAO,IAAIkX,IAAW,SAAS,gBAAgB;AACrE,MAAIphB,IAAM;AACV,QAAM,EAAC,QAAAwO,EAAM,IAAI4S;AACjB,SAAOlX;AACL,IAAAlK,KAAOohB,EAAS,KAAK,OAAM,IAAK5S,IAAO,CAAC;AAG1C,SAAOxO;AACT;AASA,SAAS,oBAAoBif,GAAO;AAClC,SAAO,CAAC,EAAEA,KAAS,WAAWA,EAAM,MAAM,KAAKA,EAAM,OAAO,WAAW,MAAM,cAAcA,EAAM,OAAO,QAAQ;AAClH;AAEA,MAAM,eAAe,CAAChT,MAAQ;AAC5B,QAAMoV,IAAQ,IAAI,MAAM,EAAE,GAEpBC,IAAQ,CAACtD,GAAQxe,MAAM;AAE3B,QAAI,SAASwe,CAAM,GAAG;AACpB,UAAIqD,EAAM,QAAQrD,CAAM,KAAK;AAC3B;AAGF,UAAG,EAAE,YAAYA,IAAS;AACxB,QAAAqD,EAAM7hB,CAAC,IAAIwe;AACX,cAAMD,IAAS,QAAQC,CAAM,IAAI,CAAA,IAAK,CAAA;AAEtC,uBAAQA,GAAQ,CAACvZ,GAAOD,MAAQ;AAC9B,gBAAM+c,IAAeD,EAAM7c,GAAOjF,IAAI,CAAC;AACvC,WAAC,YAAY+hB,CAAY,MAAMxD,EAAOvZ,CAAG,IAAI+c;AAAA,QACvD,CAAS,GAEDF,EAAM7hB,CAAC,IAAI,QAEJue;AAAA,MACR;AAAA,IACF;AAED,WAAOC;AAAA,EACR;AAED,SAAOsD,EAAMrV,GAAK,CAAC;AACrB,GAEM,YAAY,WAAW,eAAe,GAEtC,aAAa,CAACgT,MAClBA,MAAU,SAASA,CAAK,KAAK,WAAWA,CAAK,MAAM,WAAWA,EAAM,IAAI,KAAK,WAAWA,EAAM,KAAK,GAEtF,UAAA;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACF,MAAEiC;AAAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;ACltBA,IAAI,SAAS,CAAA,GAET,WAAW,CAAA;AAEf,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAEzB,IAAI,SAAS,CAAA,GACT,YAAY,CAAA,GACZ,MAAM,OAAO,aAAe,MAAc,aAAa,OAEvD,OAAO;AACX,SAAS,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,EAAE;AAC5C,SAAO,CAAC,IAAI,KAAK,CAAC,GAClB,UAAU,KAAK,WAAW,CAAC,CAAC,IAAI;AAKlC,UAAU,EAAiB,IAAI;AAC/B,UAAU,EAAiB,IAAI;AAE/B,SAAS,QAASM,GAAK;AACrB,MAAIphB,IAAMohB,EAAI;AAEd,MAAIphB,IAAM,IAAI;AACZ,UAAM,IAAI,MAAM,gDAAgD;AAKlE,MAAIqhB,IAAWD,EAAI,QAAQ,GAAG;AAC9B,EAAIC,MAAa,OAAIA,IAAWrhB;AAEhC,MAAIshB,IAAkBD,MAAarhB,IAC/B,IACA,IAAKqhB,IAAW;AAEpB,SAAO,CAACA,GAAUC,CAAe;AACnC;AAGA,SAAS,WAAYF,GAAK;AACxB,MAAIG,IAAO,QAAQH,CAAG,GAClBC,IAAWE,EAAK,CAAC,GACjBD,IAAkBC,EAAK,CAAC;AAC5B,UAASF,IAAWC,KAAmB,IAAI,IAAKA;AAClD;AAEA,SAAS,YAAaF,GAAKC,GAAUC,GAAiB;AACpD,UAASD,IAAWC,KAAmB,IAAI,IAAKA;AAClD;AAEA,SAAS,YAAaF,GAAK;AACzB,MAAIrI,GACAwI,IAAO,QAAQH,CAAG,GAClBC,IAAWE,EAAK,CAAC,GACjBD,IAAkBC,EAAK,CAAC,GAExBjiB,IAAM,IAAI,IAAI,YAAY8hB,GAAKC,GAAUC,CAAe,CAAC,GAEzDE,IAAU,GAGVxhB,IAAMshB,IAAkB,IACxBD,IAAW,IACXA,GAEAjiB;AACJ,OAAKA,IAAI,GAAGA,IAAIY,GAAKZ,KAAK;AACxB,IAAA2Z,IACG,UAAUqI,EAAI,WAAWhiB,CAAC,CAAC,KAAK,KAChC,UAAUgiB,EAAI,WAAWhiB,IAAI,CAAC,CAAC,KAAK,KACpC,UAAUgiB,EAAI,WAAWhiB,IAAI,CAAC,CAAC,KAAK,IACrC,UAAUgiB,EAAI,WAAWhiB,IAAI,CAAC,CAAC,GACjCE,EAAIkiB,GAAS,IAAKzI,KAAO,KAAM,KAC/BzZ,EAAIkiB,GAAS,IAAKzI,KAAO,IAAK,KAC9BzZ,EAAIkiB,GAAS,IAAIzI,IAAM;AAGzB,SAAIuI,MAAoB,MACtBvI,IACG,UAAUqI,EAAI,WAAWhiB,CAAC,CAAC,KAAK,IAChC,UAAUgiB,EAAI,WAAWhiB,IAAI,CAAC,CAAC,KAAK,GACvCE,EAAIkiB,GAAS,IAAIzI,IAAM,MAGrBuI,MAAoB,MACtBvI,IACG,UAAUqI,EAAI,WAAWhiB,CAAC,CAAC,KAAK,KAChC,UAAUgiB,EAAI,WAAWhiB,IAAI,CAAC,CAAC,KAAK,IACpC,UAAUgiB,EAAI,WAAWhiB,IAAI,CAAC,CAAC,KAAK,GACvCE,EAAIkiB,GAAS,IAAKzI,KAAO,IAAK,KAC9BzZ,EAAIkiB,GAAS,IAAIzI,IAAM,MAGlBzZ;AACT;AAEA,SAAS,gBAAiB8F,GAAK;AAC7B,SAAO,OAAOA,KAAO,KAAK,EAAI,IAC5B,OAAOA,KAAO,KAAK,EAAI,IACvB,OAAOA,KAAO,IAAI,EAAI,IACtB,OAAOA,IAAM,EAAI;AACrB;AAEA,SAAS,YAAaqc,GAAOC,GAAOC,GAAK;AAGvC,WAFI5I,GACAvL,IAAS,CAAA,GACJpO,IAAIsiB,GAAOtiB,IAAIuiB,GAAKviB,KAAK;AAChC,IAAA2Z,KACI0I,EAAMriB,CAAC,KAAK,KAAM,aAClBqiB,EAAMriB,IAAI,CAAC,KAAK,IAAK,UACtBqiB,EAAMriB,IAAI,CAAC,IAAI,MAClBoO,EAAO,KAAK,gBAAgBuL,CAAG,CAAC;AAElC,SAAOvL,EAAO,KAAK,EAAE;AACvB;AAEA,SAAS,cAAeiU,GAAO;AAQ7B,WAPI1I,GACA/Y,IAAMyhB,EAAM,QACZG,IAAa5hB,IAAM,GACnBkY,IAAQ,CAAA,GACR2J,IAAiB,OAGZziB,IAAI,GAAG0iB,IAAO9hB,IAAM4hB,GAAYxiB,IAAI0iB,GAAM1iB,KAAKyiB;AACtD,IAAA3J,EAAM,KAAK,YAAYuJ,GAAOriB,GAAIA,IAAIyiB,IAAkBC,IAAOA,IAAQ1iB,IAAIyiB,CAAe,CAAC;AAI7F,SAAID,MAAe,KACjB7I,IAAM0I,EAAMzhB,IAAM,CAAC,GACnBkY,EAAM;AAAA,IACJ,OAAOa,KAAO,CAAC,IACf,OAAQA,KAAO,IAAK,EAAI,IACxB;AAAA,EACN,KACa6I,MAAe,MACxB7I,KAAO0I,EAAMzhB,IAAM,CAAC,KAAK,KAAKyhB,EAAMzhB,IAAM,CAAC,GAC3CkY,EAAM;AAAA,IACJ,OAAOa,KAAO,EAAE,IAChB,OAAQA,KAAO,IAAK,EAAI,IACxB,OAAQA,KAAO,IAAK,EAAI,IACxB;AAAA,EACN,IAGSb,EAAM,KAAK,EAAE;AACtB;AAEA,IAAI,UAAU,CAAA;AAEd;AAEA,QAAQ,OAAO,SAAU6J,GAAQ7f,GAAQ8f,GAAMC,GAAMC,GAAQ;AAC3D,MAAI1c,GAAG8G,GACH6V,IAAQD,IAAS,IAAKD,IAAO,GAC7BG,KAAQ,KAAKD,KAAQ,GACrBE,IAAQD,KAAQ,GAChBE,IAAQ,IACRljB,IAAI4iB,IAAQE,IAAS,IAAK,GAC1BjY,IAAI+X,IAAO,KAAK,GAChB3S,IAAI0S,EAAO7f,IAAS9C,CAAC;AAOzB,OALAA,KAAK6K,GAELzE,IAAI6J,KAAM,KAAM,CAACiT,KAAU,GAC3BjT,MAAO,CAACiT,GACRA,KAASH,GACFG,IAAQ,GAAG9c,IAAKA,IAAI,MAAOuc,EAAO7f,IAAS9C,CAAC,GAAGA,KAAK6K,GAAGqY,KAAS;AAAG;AAK1E,OAHAhW,IAAI9G,KAAM,KAAM,CAAC8c,KAAU,GAC3B9c,MAAO,CAAC8c,GACRA,KAASL,GACFK,IAAQ,GAAGhW,IAAKA,IAAI,MAAOyV,EAAO7f,IAAS9C,CAAC,GAAGA,KAAK6K,GAAGqY,KAAS;AAAG;AAE1E,MAAI9c,MAAM;AACR,IAAAA,IAAI,IAAI6c;AAAA,OACH;AAAA,QAAI7c,MAAM4c;AACf,aAAO9V,IAAI,OAAQ+C,IAAI,KAAK,KAAK;AAEjC,IAAA/C,IAAIA,IAAI,KAAK,IAAI,GAAG2V,CAAI,GACxBzc,IAAIA,IAAI6c;AAAA;AAEV,UAAQhT,IAAI,KAAK,KAAK/C,IAAI,KAAK,IAAI,GAAG9G,IAAIyc,CAAI;AAChD;AAEA,QAAQ,QAAQ,SAAUF,GAAQ1d,GAAOnC,GAAQ8f,GAAMC,GAAMC,GAAQ;AACnE,MAAI1c,GAAG8G,GAAG5G,GACNyc,IAAQD,IAAS,IAAKD,IAAO,GAC7BG,KAAQ,KAAKD,KAAQ,GACrBE,IAAQD,KAAQ,GAChBG,IAAMN,MAAS,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI,GAC1D7iB,IAAI4iB,IAAO,IAAKE,IAAS,GACzBjY,IAAI+X,IAAO,IAAI,IACf3S,IAAIhL,IAAQ,KAAMA,MAAU,KAAK,IAAIA,IAAQ,IAAK,IAAI;AAmC1D,OAjCAA,IAAQ,KAAK,IAAIA,CAAK,GAElB,MAAMA,CAAK,KAAKA,MAAU,SAC5BiI,IAAI,MAAMjI,CAAK,IAAI,IAAI,GACvBmB,IAAI4c,MAEJ5c,IAAI,KAAK,MAAM,KAAK,IAAInB,CAAK,IAAI,KAAK,GAAG,GACrCA,KAASqB,IAAI,KAAK,IAAI,GAAG,CAACF,CAAC,KAAK,MAClCA,KACAE,KAAK,IAEHF,IAAI6c,KAAS,IACfhe,KAASke,IAAK7c,IAEdrB,KAASke,IAAK,KAAK,IAAI,GAAG,IAAIF,CAAK,GAEjChe,IAAQqB,KAAK,MACfF,KACAE,KAAK,IAGHF,IAAI6c,KAASD,KACf9V,IAAI,GACJ9G,IAAI4c,KACK5c,IAAI6c,KAAS,KACtB/V,KAAMjI,IAAQqB,IAAK,KAAK,KAAK,IAAI,GAAGuc,CAAI,GACxCzc,IAAIA,IAAI6c,MAER/V,IAAIjI,IAAQ,KAAK,IAAI,GAAGge,IAAQ,CAAC,IAAI,KAAK,IAAI,GAAGJ,CAAI,GACrDzc,IAAI,KAIDyc,KAAQ,GAAGF,EAAO7f,IAAS9C,CAAC,IAAIkN,IAAI,KAAMlN,KAAK6K,GAAGqC,KAAK,KAAK2V,KAAQ;AAAG;AAI9E,OAFAzc,IAAKA,KAAKyc,IAAQ3V,GAClB6V,KAAQF,GACDE,IAAO,GAAGJ,EAAO7f,IAAS9C,CAAC,IAAIoG,IAAI,KAAMpG,KAAK6K,GAAGzE,KAAK,KAAK2c,KAAQ;AAAG;AAE7E,EAAAJ,EAAO7f,IAAS9C,IAAI6K,CAAC,KAAKoF,IAAI;AAChC;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOC,SAAUzN,GAAS;AAEnB,QAAM4gB,IAAS,UACTC,IAAY,SACZC,IACH,OAAO,UAAW,cAAc,OAAO,OAAO,OAAW,aACtD,OAAO,IAAO,4BAA4B,IAC1C;AAEN,EAAA9gB,EAAQ,SAAS+gB,GACjB/gB,EAAQ,aAAaghB,GACrBhhB,EAAQ,oBAAoB;AAE5B,QAAMihB,IAAe;AACrB,EAAAjhB,EAAQ,aAAaihB;AACrB,QAAM,EAAE,YAAYC,GAAkB,aAAaC,GAAmB,mBAAmBC,EAAyB,IAAG;AAgBrH,EAAAL,EAAO,sBAAsBM,KAEzB,CAACN,EAAO,uBAAuB,OAAO,UAAY,OAClD,OAAO,QAAQ,SAAU,cAC3B,QAAQ;AAAA,IACN;AAAA,EAEL;AAGC,WAASM,IAAqB;AAE5B,QAAI;AACF,YAAM3jB,IAAM,IAAIwjB,EAAiB,CAAC,GAC5BI,IAAQ,EAAE,KAAK,WAAY;AAAE,eAAO;AAAA,MAAI,EAAA;AAC9C,oBAAO,eAAeA,GAAOJ,EAAiB,SAAS,GACvD,OAAO,eAAexjB,GAAK4jB,CAAK,GACzB5jB,EAAI,IAAG,MAAO;AAAA,IACtB,QAAW;AACV,aAAO;AAAA,IACR;AAAA,EACF;AAED,SAAO,eAAeqjB,EAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAKA,EAAO,SAAS,IAAI;AACzB,eAAO,KAAK;AAAA,IACb;AAAA,EACJ,CAAE,GAED,OAAO,eAAeA,EAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAKA,EAAO,SAAS,IAAI;AACzB,eAAO,KAAK;AAAA,IACb;AAAA,EACJ,CAAE;AAED,WAASQ,EAAc/U,GAAQ;AAC7B,QAAIA,IAASyU;AACX,YAAM,IAAI,WAAW,gBAAgBzU,IAAS,gCAAgC;AAGhF,UAAMhM,IAAM,IAAI0gB,EAAiB1U,CAAM;AACvC,kBAAO,eAAehM,GAAKugB,EAAO,SAAS,GACpCvgB;AAAA,EACR;AAYD,WAASugB,EAAQ1V,GAAKmW,GAAkBhV,GAAQ;AAE9C,QAAI,OAAOnB,KAAQ,UAAU;AAC3B,UAAI,OAAOmW,KAAqB;AAC9B,cAAM,IAAI;AAAA,UACR;AAAA,QACD;AAEH,aAAOC,EAAYpW,CAAG;AAAA,IACvB;AACD,WAAOJ,EAAKI,GAAKmW,GAAkBhV,CAAM;AAAA,EAC1C;AAED,EAAAuU,EAAO,WAAW;AAElB,WAAS9V,EAAMxI,GAAO+e,GAAkBhV,GAAQ;AAC9C,QAAI,OAAO/J,KAAU;AACnB,aAAOif,EAAWjf,GAAO+e,CAAgB;AAG3C,QAAIL,EAAkB,OAAO1e,CAAK;AAChC,aAAOkf,EAAclf,CAAK;AAG5B,QAAIA,KAAS;AACX,YAAM,IAAI;AAAA,QACR,oHAC0C,OAAOA;AAAA,MAClD;AAQH,QALImf,EAAWnf,GAAO0e,CAAiB,KAClC1e,KAASmf,EAAWnf,EAAM,QAAQ0e,CAAiB,KAIpD,OAAOC,IAA4B,QAClCQ,EAAWnf,GAAO2e,CAAuB,KACzC3e,KAASmf,EAAWnf,EAAM,QAAQ2e,CAAuB;AAC5D,aAAOS,EAAgBpf,GAAO+e,GAAkBhV,CAAM;AAGxD,QAAI,OAAO/J,KAAU;AACnB,YAAM,IAAI;AAAA,QACR;AAAA,MACD;AAGH,UAAMqf,IAAUrf,EAAM,WAAWA,EAAM,QAAO;AAC9C,QAAIqf,KAAW,QAAQA,MAAYrf;AACjC,aAAOse,EAAO,KAAKe,GAASN,GAAkBhV,CAAM;AAGtD,UAAMpE,IAAI2Z,EAAWtf,CAAK;AAC1B,QAAI2F;AAAG,aAAOA;AAEd,QAAI,OAAO,SAAW,OAAe,OAAO,eAAe,QACvD,OAAO3F,EAAM,OAAO,WAAW,KAAM;AACvC,aAAOse,EAAO,KAAKte,EAAM,OAAO,WAAW,EAAE,QAAQ,GAAG+e,GAAkBhV,CAAM;AAGlF,UAAM,IAAI;AAAA,MACR,oHAC0C,OAAO/J;AAAA,IAClD;AAAA,EACF;AAUD,EAAAse,EAAO,OAAO,SAAUte,GAAO+e,GAAkBhV,GAAQ;AACvD,WAAOvB,EAAKxI,GAAO+e,GAAkBhV,CAAM;AAAA,EAC9C,GAIC,OAAO,eAAeuU,EAAO,WAAWG,EAAiB,SAAS,GAClE,OAAO,eAAeH,GAAQG,CAAgB;AAE9C,WAASc,EAAY9Z,GAAM;AACzB,QAAI,OAAOA,KAAS;AAClB,YAAM,IAAI,UAAU,wCAAwC;AACvD,QAAIA,IAAO;AAChB,YAAM,IAAI,WAAW,gBAAgBA,IAAO,gCAAgC;AAAA,EAE/E;AAED,WAAS+Z,EAAO/Z,GAAMga,GAAMC,GAAU;AAEpC,WADAH,EAAW9Z,CAAI,GACXA,KAAQ,IACHqZ,EAAarZ,CAAI,IAEtBga,MAAS,SAIJ,OAAOC,KAAa,WACvBZ,EAAarZ,CAAI,EAAE,KAAKga,GAAMC,CAAQ,IACtCZ,EAAarZ,CAAI,EAAE,KAAKga,CAAI,IAE3BX,EAAarZ,CAAI;AAAA,EACzB;AAMD,EAAA6Y,EAAO,QAAQ,SAAU7Y,GAAMga,GAAMC,GAAU;AAC7C,WAAOF,EAAM/Z,GAAMga,GAAMC,CAAQ;AAAA,EACpC;AAEC,WAASV,EAAavZ,GAAM;AAC1B,WAAA8Z,EAAW9Z,CAAI,GACRqZ,EAAarZ,IAAO,IAAI,IAAIka,EAAQla,CAAI,IAAI,CAAC;AAAA,EACrD;AAKD,EAAA6Y,EAAO,cAAc,SAAU7Y,GAAM;AACnC,WAAOuZ,EAAYvZ,CAAI;AAAA,EAC1B,GAIC6Y,EAAO,kBAAkB,SAAU7Y,GAAM;AACvC,WAAOuZ,EAAYvZ,CAAI;AAAA,EAC1B;AAEC,WAASwZ,EAAY7U,GAAQsV,GAAU;AAKrC,SAJI,OAAOA,KAAa,YAAYA,MAAa,QAC/CA,IAAW,SAGT,CAACpB,EAAO,WAAWoB,CAAQ;AAC7B,YAAM,IAAI,UAAU,uBAAuBA,CAAQ;AAGrD,UAAM3V,IAAS6V,EAAWxV,GAAQsV,CAAQ,IAAI;AAC9C,QAAI3hB,IAAM+gB,EAAa/U,CAAM;AAE7B,UAAM8V,IAAS9hB,EAAI,MAAMqM,GAAQsV,CAAQ;AAEzC,WAAIG,MAAW9V,MAIbhM,IAAMA,EAAI,MAAM,GAAG8hB,CAAM,IAGpB9hB;AAAA,EACR;AAED,WAAS+hB,EAAehW,GAAO;AAC7B,UAAMC,IAASD,EAAM,SAAS,IAAI,IAAI6V,EAAQ7V,EAAM,MAAM,IAAI,GACxD/L,IAAM+gB,EAAa/U,CAAM;AAC/B,aAAShP,IAAI,GAAGA,IAAIgP,GAAQhP,KAAK;AAC/B,MAAAgD,EAAIhD,CAAC,IAAI+O,EAAM/O,CAAC,IAAI;AAEtB,WAAOgD;AAAA,EACR;AAED,WAASmhB,EAAea,GAAW;AACjC,QAAIZ,EAAWY,GAAWtB,CAAgB,GAAG;AAC3C,YAAMuB,IAAO,IAAIvB,EAAiBsB,CAAS;AAC3C,aAAOX,EAAgBY,EAAK,QAAQA,EAAK,YAAYA,EAAK,UAAU;AAAA,IACrE;AACD,WAAOF,EAAcC,CAAS;AAAA,EAC/B;AAED,WAASX,EAAiBtV,GAAOmW,GAAYlW,GAAQ;AACnD,QAAIkW,IAAa,KAAKnW,EAAM,aAAamW;AACvC,YAAM,IAAI,WAAW,sCAAsC;AAG7D,QAAInW,EAAM,aAAamW,KAAclW,KAAU;AAC7C,YAAM,IAAI,WAAW,sCAAsC;AAG7D,QAAIhM;AACJ,WAAIkiB,MAAe,UAAalW,MAAW,SACzChM,IAAM,IAAI0gB,EAAiB3U,CAAK,IACvBC,MAAW,SACpBhM,IAAM,IAAI0gB,EAAiB3U,GAAOmW,CAAU,IAE5CliB,IAAM,IAAI0gB,EAAiB3U,GAAOmW,GAAYlW,CAAM,GAItD,OAAO,eAAehM,GAAKugB,EAAO,SAAS,GAEpCvgB;AAAA,EACR;AAED,WAASuhB,EAAY9X,GAAK;AACxB,QAAI8W,EAAO,SAAS9W,CAAG,GAAG;AACxB,YAAM7L,IAAMgkB,EAAQnY,EAAI,MAAM,IAAI,GAC5BzJ,IAAM+gB,EAAanjB,CAAG;AAE5B,aAAIoC,EAAI,WAAW,KAInByJ,EAAI,KAAKzJ,GAAK,GAAG,GAAGpC,CAAG,GAChBoC;AAAA,IACR;AAED,QAAIyJ,EAAI,WAAW;AACjB,aAAI,OAAOA,EAAI,UAAW,YAAY0Y,EAAY1Y,EAAI,MAAM,IACnDsX,EAAa,CAAC,IAEhBgB,EAActY,CAAG;AAG1B,QAAIA,EAAI,SAAS,YAAY,MAAM,QAAQA,EAAI,IAAI;AACjD,aAAOsY,EAActY,EAAI,IAAI;AAAA,EAEhC;AAED,WAASmY,EAAS5V,GAAQ;AAGxB,QAAIA,KAAUyU;AACZ,YAAM,IAAI,WAAW,4DACaA,EAAa,SAAS,EAAE,IAAI,QAAQ;AAExE,WAAOzU,IAAS;AAAA,EACjB;AAED,WAASwU,EAAYxU,GAAQ;AAC3B,WAAI,CAACA,KAAUA,MACbA,IAAS,IAEJuU,EAAO,MAAM,CAACvU,CAAM;AAAA,EAC5B;AAED,EAAAuU,EAAO,WAAW,SAAmB3Y,GAAG;AACtC,WAAOA,KAAK,QAAQA,EAAE,cAAc,MAClCA,MAAM2Y,EAAO;AAAA,EAClB,GAECA,EAAO,UAAU,SAAkB,GAAG3Y,GAAG;AAGvC,QAFIwZ,EAAW,GAAGV,CAAgB,MAAG,IAAIH,EAAO,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU,IAC1Ea,EAAWxZ,GAAG8Y,CAAgB,MAAG9Y,IAAI2Y,EAAO,KAAK3Y,GAAGA,EAAE,QAAQA,EAAE,UAAU,IAC1E,CAAC2Y,EAAO,SAAS,CAAC,KAAK,CAACA,EAAO,SAAS3Y,CAAC;AAC3C,YAAM,IAAI;AAAA,QACR;AAAA,MACD;AAGH,QAAI,MAAMA;AAAG,aAAO;AAEpB,QAAIwG,IAAI,EAAE,QACNT,IAAI/F,EAAE;AAEV,aAAS5K,IAAI,GAAGY,IAAM,KAAK,IAAIwQ,GAAGT,CAAC,GAAG3Q,IAAIY,GAAK,EAAEZ;AAC/C,UAAI,EAAEA,CAAC,MAAM4K,EAAE5K,CAAC,GAAG;AACjB,QAAAoR,IAAI,EAAEpR,CAAC,GACP2Q,IAAI/F,EAAE5K,CAAC;AACP;AAAA,MACD;AAGH,WAAIoR,IAAIT,IAAU,KACdA,IAAIS,IAAU,IACX;AAAA,EACV,GAECmS,EAAO,aAAa,SAAqBoB,GAAU;AACjD,YAAQ,OAAOA,CAAQ,EAAE,YAAa,GAAA;AAAA,MACpC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACV;AAAA,EACJ,GAECpB,EAAO,SAAS,SAAiB6B,GAAMpW,GAAQ;AAC7C,QAAI,CAAC,MAAM,QAAQoW,CAAI;AACrB,YAAM,IAAI,UAAU,6CAA6C;AAGnE,QAAIA,EAAK,WAAW;AAClB,aAAO7B,EAAO,MAAM,CAAC;AAGvB,QAAIvjB;AACJ,QAAIgP,MAAW;AAEb,WADAA,IAAS,GACJhP,IAAI,GAAGA,IAAIolB,EAAK,QAAQ,EAAEplB;AAC7B,QAAAgP,KAAUoW,EAAKplB,CAAC,EAAE;AAItB,UAAM2iB,IAASY,EAAO,YAAYvU,CAAM;AACxC,QAAI0E,IAAM;AACV,SAAK1T,IAAI,GAAGA,IAAIolB,EAAK,QAAQ,EAAEplB,GAAG;AAChC,UAAIgD,IAAMoiB,EAAKplB,CAAC;AAChB,UAAIokB,EAAWphB,GAAK0gB,CAAgB;AAClC,QAAIhQ,IAAM1Q,EAAI,SAAS2f,EAAO,UACvBY,EAAO,SAASvgB,CAAG,MAAGA,IAAMugB,EAAO,KAAKvgB,CAAG,IAChDA,EAAI,KAAK2f,GAAQjP,CAAG,KAEpBgQ,EAAiB,UAAU,IAAI;AAAA,UAC7Bf;AAAA,UACA3f;AAAA,UACA0Q;AAAA,QACX;AAAA,eAEiB6P,EAAO,SAASvgB,CAAG;AAG7B,QAAAA,EAAI,KAAK2f,GAAQjP,CAAG;AAAA;AAFpB,cAAM,IAAI,UAAU,6CAA6C;AAInE,MAAAA,KAAO1Q,EAAI;AAAA,IACZ;AACD,WAAO2f;AAAA,EACV;AAEC,WAASkC,EAAYxV,GAAQsV,GAAU;AACrC,QAAIpB,EAAO,SAASlU,CAAM;AACxB,aAAOA,EAAO;AAEhB,QAAIsU,EAAkB,OAAOtU,CAAM,KAAK+U,EAAW/U,GAAQsU,CAAiB;AAC1E,aAAOtU,EAAO;AAEhB,QAAI,OAAOA,KAAW;AACpB,YAAM,IAAI;AAAA,QACR,6FACmB,OAAOA;AAAA,MAC3B;AAGH,UAAMzO,IAAMyO,EAAO,QACbgW,IAAa,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM;AAC5D,QAAI,CAACA,KAAazkB,MAAQ;AAAG,aAAO;AAGpC,QAAI0kB,IAAc;AAClB;AACE,cAAQX,GAAQ;AAAA,QACd,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO/jB;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AACH,iBAAO2kB,GAAYlW,CAAM,EAAE;AAAA,QAC7B,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAOzO,IAAM;AAAA,QACf,KAAK;AACH,iBAAOA,MAAQ;AAAA,QACjB,KAAK;AACH,iBAAO4kB,EAAcnW,CAAM,EAAE;AAAA,QAC/B;AACE,cAAIiW;AACF,mBAAOD,IAAY,KAAKE,GAAYlW,CAAM,EAAE;AAE9C,UAAAsV,KAAY,KAAKA,GAAU,YAAW,GACtCW,IAAc;AAAA,MACjB;AAAA,EAEJ;AACD,EAAA/B,EAAO,aAAasB;AAEpB,WAASY,GAAcd,GAAUrC,GAAOC,GAAK;AAC3C,QAAI+C,IAAc;AA8BlB,SArBIhD,MAAU,UAAaA,IAAQ,OACjCA,IAAQ,IAINA,IAAQ,KAAK,YAIbC,MAAQ,UAAaA,IAAM,KAAK,YAClCA,IAAM,KAAK,SAGTA,KAAO,OAKXA,OAAS,GACTD,OAAW,GAEPC,KAAOD;AACT,aAAO;AAKT,SAFKqC,MAAUA,IAAW;AAGxB,cAAQA,GAAQ;AAAA,QACd,KAAK;AACH,iBAAOe,GAAS,MAAMpD,GAAOC,CAAG;AAAA,QAElC,KAAK;AAAA,QACL,KAAK;AACH,iBAAOoD,GAAU,MAAMrD,GAAOC,CAAG;AAAA,QAEnC,KAAK;AACH,iBAAOqD,GAAW,MAAMtD,GAAOC,CAAG;AAAA,QAEpC,KAAK;AAAA,QACL,KAAK;AACH,iBAAOsD,GAAY,MAAMvD,GAAOC,CAAG;AAAA,QAErC,KAAK;AACH,iBAAOuD,GAAY,MAAMxD,GAAOC,CAAG;AAAA,QAErC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAOwD,GAAa,MAAMzD,GAAOC,CAAG;AAAA,QAEtC;AACE,cAAI+C;AAAa,kBAAM,IAAI,UAAU,uBAAuBX,CAAQ;AACpE,UAAAA,KAAYA,IAAW,IAAI,YAAW,GACtCW,IAAc;AAAA,MACjB;AAAA,EAEJ;AAQD,EAAA/B,EAAO,UAAU,YAAY;AAE7B,WAASyC,EAAMpb,GAAGuG,GAAGjE,GAAG;AACtB,UAAMlN,IAAI4K,EAAEuG,CAAC;AACb,IAAAvG,EAAEuG,CAAC,IAAIvG,EAAEsC,CAAC,GACVtC,EAAEsC,CAAC,IAAIlN;AAAA,EACR;AAED,EAAAujB,EAAO,UAAU,SAAS,WAAmB;AAC3C,UAAM3iB,IAAM,KAAK;AACjB,QAAIA,IAAM,MAAM;AACd,YAAM,IAAI,WAAW,2CAA2C;AAElE,aAASZ,IAAI,GAAGA,IAAIY,GAAKZ,KAAK;AAC5B,MAAAgmB,EAAK,MAAMhmB,GAAGA,IAAI,CAAC;AAErB,WAAO;AAAA,EACV,GAECujB,EAAO,UAAU,SAAS,WAAmB;AAC3C,UAAM3iB,IAAM,KAAK;AACjB,QAAIA,IAAM,MAAM;AACd,YAAM,IAAI,WAAW,2CAA2C;AAElE,aAASZ,IAAI,GAAGA,IAAIY,GAAKZ,KAAK;AAC5B,MAAAgmB,EAAK,MAAMhmB,GAAGA,IAAI,CAAC,GACnBgmB,EAAK,MAAMhmB,IAAI,GAAGA,IAAI,CAAC;AAEzB,WAAO;AAAA,EACV,GAECujB,EAAO,UAAU,SAAS,WAAmB;AAC3C,UAAM3iB,IAAM,KAAK;AACjB,QAAIA,IAAM,MAAM;AACd,YAAM,IAAI,WAAW,2CAA2C;AAElE,aAASZ,IAAI,GAAGA,IAAIY,GAAKZ,KAAK;AAC5B,MAAAgmB,EAAK,MAAMhmB,GAAGA,IAAI,CAAC,GACnBgmB,EAAK,MAAMhmB,IAAI,GAAGA,IAAI,CAAC,GACvBgmB,EAAK,MAAMhmB,IAAI,GAAGA,IAAI,CAAC,GACvBgmB,EAAK,MAAMhmB,IAAI,GAAGA,IAAI,CAAC;AAEzB,WAAO;AAAA,EACV,GAECujB,EAAO,UAAU,WAAW,WAAqB;AAC/C,UAAMvU,IAAS,KAAK;AACpB,WAAIA,MAAW,IAAU,KACrB,UAAU,WAAW,IAAU2W,GAAU,MAAM,GAAG3W,CAAM,IACrDyW,GAAa,MAAM,MAAM,SAAS;AAAA,EAC5C,GAEClC,EAAO,UAAU,iBAAiBA,EAAO,UAAU,UAEnDA,EAAO,UAAU,SAAS,SAAiB3Y,GAAG;AAC5C,QAAI,CAAC2Y,EAAO,SAAS3Y,CAAC;AAAG,YAAM,IAAI,UAAU,2BAA2B;AACxE,WAAI,SAASA,IAAU,KAChB2Y,EAAO,QAAQ,MAAM3Y,CAAC,MAAM;AAAA,EACtC,GAEC2Y,EAAO,UAAU,UAAU,WAAoB;AAC7C,QAAI/iB,IAAM;AACV,UAAMylB,IAAMzjB,EAAQ;AACpB,WAAAhC,IAAM,KAAK,SAAS,OAAO,GAAGylB,CAAG,EAAE,QAAQ,WAAW,KAAK,EAAE,KAAI,GAC7D,KAAK,SAASA,MAAKzlB,KAAO,UACvB,aAAaA,IAAM;AAAA,EAC7B,GACK8iB,MACFC,EAAO,UAAUD,CAAmB,IAAIC,EAAO,UAAU,UAG3DA,EAAO,UAAU,UAAU,SAAkBhF,GAAQ+D,GAAOC,GAAK2D,GAAWC,GAAS;AAInF,QAHI/B,EAAW7F,GAAQmF,CAAgB,MACrCnF,IAASgF,EAAO,KAAKhF,GAAQA,EAAO,QAAQA,EAAO,UAAU,IAE3D,CAACgF,EAAO,SAAShF,CAAM;AACzB,YAAM,IAAI;AAAA,QACR,mFACoB,OAAOA;AAAA,MAC5B;AAgBH,QAbI+D,MAAU,WACZA,IAAQ,IAENC,MAAQ,WACVA,IAAMhE,IAASA,EAAO,SAAS,IAE7B2H,MAAc,WAChBA,IAAY,IAEVC,MAAY,WACdA,IAAU,KAAK,SAGb7D,IAAQ,KAAKC,IAAMhE,EAAO,UAAU2H,IAAY,KAAKC,IAAU,KAAK;AACtE,YAAM,IAAI,WAAW,oBAAoB;AAG3C,QAAID,KAAaC,KAAW7D,KAASC;AACnC,aAAO;AAET,QAAI2D,KAAaC;AACf,aAAO;AAET,QAAI7D,KAASC;AACX,aAAO;AAQT,QALAD,OAAW,GACXC,OAAS,GACT2D,OAAe,GACfC,OAAa,GAET,SAAS5H;AAAQ,aAAO;AAE5B,QAAInN,IAAI+U,IAAUD,GACdvV,IAAI4R,IAAMD;AACd,UAAM1hB,IAAM,KAAK,IAAIwQ,GAAGT,CAAC,GAEnByV,IAAW,KAAK,MAAMF,GAAWC,CAAO,GACxCE,IAAa9H,EAAO,MAAM+D,GAAOC,CAAG;AAE1C,aAASviB,IAAI,GAAGA,IAAIY,GAAK,EAAEZ;AACzB,UAAIomB,EAASpmB,CAAC,MAAMqmB,EAAWrmB,CAAC,GAAG;AACjC,QAAAoR,IAAIgV,EAASpmB,CAAC,GACd2Q,IAAI0V,EAAWrmB,CAAC;AAChB;AAAA,MACD;AAGH,WAAIoR,IAAIT,IAAU,KACdA,IAAIS,IAAU,IACX;AAAA,EACV;AAWC,WAASkV,GAAsB3D,GAAQ1b,GAAKie,GAAYP,GAAUpI,GAAK;AAErE,QAAIoG,EAAO,WAAW;AAAG,aAAO;AAmBhC,QAhBI,OAAOuC,KAAe,YACxBP,IAAWO,GACXA,IAAa,KACJA,IAAa,aACtBA,IAAa,aACJA,IAAa,gBACtBA,IAAa,cAEfA,IAAa,CAACA,GACVC,EAAYD,CAAU,MAExBA,IAAa3I,IAAM,IAAKoG,EAAO,SAAS,IAItCuC,IAAa,MAAGA,IAAavC,EAAO,SAASuC,IAC7CA,KAAcvC,EAAO,QAAQ;AAC/B,UAAIpG;AAAK,eAAO;AACX,MAAA2I,IAAavC,EAAO,SAAS;AAAA,IACvC,WAAcuC,IAAa;AACtB,UAAI3I;AAAK,QAAA2I,IAAa;AAAA;AACjB,eAAO;AASd,QALI,OAAOje,KAAQ,aACjBA,IAAMsc,EAAO,KAAKtc,GAAK0d,CAAQ,IAI7BpB,EAAO,SAAStc,CAAG;AAErB,aAAIA,EAAI,WAAW,IACV,KAEFsf,EAAa5D,GAAQ1b,GAAKie,GAAYP,GAAUpI,CAAG;AACrD,QAAI,OAAOtV,KAAQ;AAExB,aADAA,IAAMA,IAAM,KACR,OAAOyc,EAAiB,UAAU,WAAY,aAC5CnH,IACKmH,EAAiB,UAAU,QAAQ,KAAKf,GAAQ1b,GAAKie,CAAU,IAE/DxB,EAAiB,UAAU,YAAY,KAAKf,GAAQ1b,GAAKie,CAAU,IAGvEqB,EAAa5D,GAAQ,CAAC1b,CAAG,GAAGie,GAAYP,GAAUpI,CAAG;AAG9D,UAAM,IAAI,UAAU,sCAAsC;AAAA,EAC3D;AAED,WAASgK,EAAcrmB,GAAK+G,GAAKie,GAAYP,GAAUpI,GAAK;AAC1D,QAAIiK,IAAY,GACZC,IAAYvmB,EAAI,QAChBwmB,IAAYzf,EAAI;AAEpB,QAAI0d,MAAa,WACfA,IAAW,OAAOA,CAAQ,EAAE,YAAW,GACnCA,MAAa,UAAUA,MAAa,WACpCA,MAAa,aAAaA,MAAa,aAAY;AACrD,UAAIzkB,EAAI,SAAS,KAAK+G,EAAI,SAAS;AACjC,eAAO;AAET,MAAAuf,IAAY,GACZC,KAAa,GACbC,KAAa,GACbxB,KAAc;AAAA,IACf;AAGH,aAASyB,EAAM3jB,GAAKhD,GAAG;AACrB,aAAIwmB,MAAc,IACTxjB,EAAIhD,CAAC,IAELgD,EAAI,aAAahD,IAAIwmB,CAAS;AAAA,IAExC;AAED,QAAIxmB;AACJ,QAAIuc,GAAK;AACP,UAAIqK,IAAa;AACjB,WAAK5mB,IAAIklB,GAAYllB,IAAIymB,GAAWzmB;AAClC,YAAI2mB,EAAKzmB,GAAKF,CAAC,MAAM2mB,EAAK1f,GAAK2f,MAAe,KAAK,IAAI5mB,IAAI4mB,CAAU;AAEnE,cADIA,MAAe,OAAIA,IAAa5mB,IAChCA,IAAI4mB,IAAa,MAAMF;AAAW,mBAAOE,IAAaJ;AAAA;AAE1D,UAAII,MAAe,OAAI5mB,KAAKA,IAAI4mB,IAChCA,IAAa;AAAA,IAGtB;AAEK,WADI1B,IAAawB,IAAYD,MAAWvB,IAAauB,IAAYC,IAC5D1mB,IAAIklB,GAAYllB,KAAK,GAAGA,KAAK;AAChC,YAAIif,IAAQ;AACZ,iBAASje,IAAI,GAAGA,IAAI0lB,GAAW1lB;AAC7B,cAAI2lB,EAAKzmB,GAAKF,IAAIgB,CAAC,MAAM2lB,EAAK1f,GAAKjG,CAAC,GAAG;AACrC,YAAAie,IAAQ;AACR;AAAA,UACD;AAEH,YAAIA;AAAO,iBAAOjf;AAAA,MACnB;AAGH,WAAO;AAAA,EACR;AAED,EAAAujB,EAAO,UAAU,WAAW,SAAmBtc,GAAKie,GAAYP,GAAU;AACxE,WAAO,KAAK,QAAQ1d,GAAKie,GAAYP,CAAQ,MAAM;AAAA,EACtD,GAECpB,EAAO,UAAU,UAAU,SAAkBtc,GAAKie,GAAYP,GAAU;AACtE,WAAO2B,GAAqB,MAAMrf,GAAKie,GAAYP,GAAU,EAAI;AAAA,EACpE,GAECpB,EAAO,UAAU,cAAc,SAAsBtc,GAAKie,GAAYP,GAAU;AAC9E,WAAO2B,GAAqB,MAAMrf,GAAKie,GAAYP,GAAU,EAAK;AAAA,EACrE;AAEC,WAASkC,GAAU7jB,GAAKqM,GAAQvM,GAAQkM,GAAQ;AAC9C,IAAAlM,IAAS,OAAOA,CAAM,KAAK;AAC3B,UAAMgkB,IAAY9jB,EAAI,SAASF;AAC/B,IAAKkM,KAGHA,IAAS,OAAOA,CAAM,GAClBA,IAAS8X,MACX9X,IAAS8X,MAJX9X,IAAS8X;AAQX,UAAMC,IAAS1X,EAAO;AAEtB,IAAIL,IAAS+X,IAAS,MACpB/X,IAAS+X,IAAS;AAEpB,QAAI/mB;AACJ,SAAKA,IAAI,GAAGA,IAAIgP,GAAQ,EAAEhP,GAAG;AAC3B,YAAMgnB,IAAS,SAAS3X,EAAO,OAAOrP,IAAI,GAAG,CAAC,GAAG,EAAE;AACnD,UAAImlB,EAAY6B,CAAM;AAAG,eAAOhnB;AAChC,MAAAgD,EAAIF,IAAS9C,CAAC,IAAIgnB;AAAA,IACnB;AACD,WAAOhnB;AAAA,EACR;AAED,WAASinB,GAAWjkB,GAAKqM,GAAQvM,GAAQkM,GAAQ;AAC/C,WAAOkY,EAAW3B,GAAYlW,GAAQrM,EAAI,SAASF,CAAM,GAAGE,GAAKF,GAAQkM,CAAM;AAAA,EAChF;AAED,WAASmY,EAAYnkB,GAAKqM,GAAQvM,GAAQkM,GAAQ;AAChD,WAAOkY,EAAWE,GAAa/X,CAAM,GAAGrM,GAAKF,GAAQkM,CAAM;AAAA,EAC5D;AAED,WAASqY,GAAarkB,GAAKqM,GAAQvM,GAAQkM,GAAQ;AACjD,WAAOkY,EAAW1B,EAAcnW,CAAM,GAAGrM,GAAKF,GAAQkM,CAAM;AAAA,EAC7D;AAED,WAASsY,GAAWtkB,GAAKqM,GAAQvM,GAAQkM,GAAQ;AAC/C,WAAOkY,EAAWK,EAAelY,GAAQrM,EAAI,SAASF,CAAM,GAAGE,GAAKF,GAAQkM,CAAM;AAAA,EACnF;AAED,EAAAuU,EAAO,UAAU,QAAQ,SAAgBlU,GAAQvM,GAAQkM,GAAQ2V,GAAU;AAEzE,QAAI7hB,MAAW;AACb,MAAA6hB,IAAW,QACX3V,IAAS,KAAK,QACdlM,IAAS;AAAA,aAEAkM,MAAW,UAAa,OAAOlM,KAAW;AACnD,MAAA6hB,IAAW7hB,GACXkM,IAAS,KAAK,QACdlM,IAAS;AAAA,aAEA,SAASA,CAAM;AACxB,MAAAA,IAASA,MAAW,GAChB,SAASkM,CAAM,KACjBA,IAASA,MAAW,GAChB2V,MAAa,WAAWA,IAAW,YAEvCA,IAAW3V,GACXA,IAAS;AAAA;AAGX,YAAM,IAAI;AAAA,QACR;AAAA,MACD;AAGH,UAAM8X,IAAY,KAAK,SAAShkB;AAGhC,SAFIkM,MAAW,UAAaA,IAAS8X,OAAW9X,IAAS8X,IAEpDzX,EAAO,SAAS,MAAML,IAAS,KAAKlM,IAAS,MAAOA,IAAS,KAAK;AACrE,YAAM,IAAI,WAAW,wCAAwC;AAG/D,IAAK6hB,MAAUA,IAAW;AAE1B,QAAIW,IAAc;AAClB;AACE,cAAQX,GAAQ;AAAA,QACd,KAAK;AACH,iBAAOkC,GAAS,MAAMxX,GAAQvM,GAAQkM,CAAM;AAAA,QAE9C,KAAK;AAAA,QACL,KAAK;AACH,iBAAOiY,GAAU,MAAM5X,GAAQvM,GAAQkM,CAAM;AAAA,QAE/C,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAOmY,EAAW,MAAM9X,GAAQvM,GAAQkM,CAAM;AAAA,QAEhD,KAAK;AAEH,iBAAOqY,GAAY,MAAMhY,GAAQvM,GAAQkM,CAAM;AAAA,QAEjD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAOsY,GAAU,MAAMjY,GAAQvM,GAAQkM,CAAM;AAAA,QAE/C;AACE,cAAIsW;AAAa,kBAAM,IAAI,UAAU,uBAAuBX,CAAQ;AACpE,UAAAA,KAAY,KAAKA,GAAU,YAAW,GACtCW,IAAc;AAAA,MACjB;AAAA,EAEN,GAEC/B,EAAO,UAAU,SAAS,WAAmB;AAC3C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,MAAM,UAAU,MAAM,KAAK,KAAK,QAAQ,MAAM,CAAC;AAAA,IACtD;AAAA,EACJ;AAEC,WAASuC,GAAa9iB,GAAKsf,GAAOC,GAAK;AACrC,WAAID,MAAU,KAAKC,MAAQvf,EAAI,SACtBogB,EAAO,cAAcpgB,CAAG,IAExBogB,EAAO,cAAcpgB,EAAI,MAAMsf,GAAOC,CAAG,CAAC;AAAA,EAEpD;AAED,WAASoD,GAAW3iB,GAAKsf,GAAOC,GAAK;AACnC,IAAAA,IAAM,KAAK,IAAIvf,EAAI,QAAQuf,CAAG;AAC9B,UAAM1V,IAAM,CAAA;AAEZ,QAAI7M,IAAIsiB;AACR,WAAOtiB,IAAIuiB,KAAK;AACd,YAAMiF,IAAYxkB,EAAIhD,CAAC;AACvB,UAAIynB,IAAY,MACZC,IAAoBF,IAAY,MAChC,IACCA,IAAY,MACT,IACCA,IAAY,MACT,IACA;AAEZ,UAAIxnB,IAAI0nB,KAAoBnF,GAAK;AAC/B,YAAIoF,GAAYC,GAAWC,GAAYC;AAEvC,gBAAQJ,GAAgB;AAAA,UACtB,KAAK;AACH,YAAIF,IAAY,QACdC,IAAYD;AAEd;AAAA,UACF,KAAK;AACH,YAAAG,IAAa3kB,EAAIhD,IAAI,CAAC,IACjB2nB,IAAa,SAAU,QAC1BG,KAAiBN,IAAY,OAAS,IAAOG,IAAa,IACtDG,IAAgB,QAClBL,IAAYK;AAGhB;AAAA,UACF,KAAK;AACH,YAAAH,IAAa3kB,EAAIhD,IAAI,CAAC,GACtB4nB,IAAY5kB,EAAIhD,IAAI,CAAC,IAChB2nB,IAAa,SAAU,QAASC,IAAY,SAAU,QACzDE,KAAiBN,IAAY,OAAQ,MAAOG,IAAa,OAAS,IAAOC,IAAY,IACjFE,IAAgB,SAAUA,IAAgB,SAAUA,IAAgB,WACtEL,IAAYK;AAGhB;AAAA,UACF,KAAK;AACH,YAAAH,IAAa3kB,EAAIhD,IAAI,CAAC,GACtB4nB,IAAY5kB,EAAIhD,IAAI,CAAC,GACrB6nB,IAAa7kB,EAAIhD,IAAI,CAAC,IACjB2nB,IAAa,SAAU,QAASC,IAAY,SAAU,QAASC,IAAa,SAAU,QACzFC,KAAiBN,IAAY,OAAQ,MAAQG,IAAa,OAAS,MAAOC,IAAY,OAAS,IAAOC,IAAa,IAC/GC,IAAgB,SAAUA,IAAgB,YAC5CL,IAAYK;AAAA,QAGnB;AAAA,MACF;AAED,MAAIL,MAAc,QAGhBA,IAAY,OACZC,IAAmB,KACVD,IAAY,UAErBA,KAAa,OACb5a,EAAI,KAAK4a,MAAc,KAAK,OAAQ,KAAM,GAC1CA,IAAY,QAASA,IAAY,OAGnC5a,EAAI,KAAK4a,CAAS,GAClBznB,KAAK0nB;AAAA,IACN;AAED,WAAOK,GAAsBlb,CAAG;AAAA,EACjC;AAKD,QAAMmb,KAAuB;AAE7B,WAASD,GAAuBE,GAAY;AAC1C,UAAMrnB,IAAMqnB,EAAW;AACvB,QAAIrnB,KAAOonB;AACT,aAAO,OAAO,aAAa,MAAM,QAAQC,CAAU;AAIrD,QAAIpb,IAAM,IACN7M,IAAI;AACR,WAAOA,IAAIY;AACT,MAAAiM,KAAO,OAAO,aAAa;AAAA,QACzB;AAAA,QACAob,EAAW,MAAMjoB,GAAGA,KAAKgoB,EAAoB;AAAA,MACpD;AAEG,WAAOnb;AAAA,EACR;AAED,WAAS+Y,GAAY5iB,GAAKsf,GAAOC,GAAK;AACpC,QAAInJ,IAAM;AACV,IAAAmJ,IAAM,KAAK,IAAIvf,EAAI,QAAQuf,CAAG;AAE9B,aAASviB,IAAIsiB,GAAOtiB,IAAIuiB,GAAK,EAAEviB;AAC7B,MAAAoZ,KAAO,OAAO,aAAapW,EAAIhD,CAAC,IAAI,GAAI;AAE1C,WAAOoZ;AAAA,EACR;AAED,WAASyM,GAAa7iB,GAAKsf,GAAOC,GAAK;AACrC,QAAInJ,IAAM;AACV,IAAAmJ,IAAM,KAAK,IAAIvf,EAAI,QAAQuf,CAAG;AAE9B,aAASviB,IAAIsiB,GAAOtiB,IAAIuiB,GAAK,EAAEviB;AAC7B,MAAAoZ,KAAO,OAAO,aAAapW,EAAIhD,CAAC,CAAC;AAEnC,WAAOoZ;AAAA,EACR;AAED,WAASsM,GAAU1iB,GAAKsf,GAAOC,GAAK;AAClC,UAAM3hB,IAAMoC,EAAI;AAEhB,KAAI,CAACsf,KAASA,IAAQ,OAAGA,IAAQ,KAC7B,CAACC,KAAOA,IAAM,KAAKA,IAAM3hB,OAAK2hB,IAAM3hB;AAExC,QAAIwc,IAAM;AACV,aAASpd,IAAIsiB,GAAOtiB,IAAIuiB,GAAK,EAAEviB;AAC7B,MAAAod,KAAO8K,EAAoBllB,EAAIhD,CAAC,CAAC;AAEnC,WAAOod;AAAA,EACR;AAED,WAAS2I,GAAc/iB,GAAKsf,GAAOC,GAAK;AACtC,UAAM4F,IAAQnlB,EAAI,MAAMsf,GAAOC,CAAG;AAClC,QAAI1V,IAAM;AAEV,aAAS7M,IAAI,GAAGA,IAAImoB,EAAM,SAAS,GAAGnoB,KAAK;AACzC,MAAA6M,KAAO,OAAO,aAAasb,EAAMnoB,CAAC,IAAKmoB,EAAMnoB,IAAI,CAAC,IAAI,GAAI;AAE5D,WAAO6M;AAAA,EACR;AAED,EAAA0W,EAAO,UAAU,QAAQ,SAAgBjB,GAAOC,GAAK;AACnD,UAAM3hB,IAAM,KAAK;AACjB,IAAA0hB,IAAQ,CAAC,CAACA,GACVC,IAAMA,MAAQ,SAAY3hB,IAAM,CAAC,CAAC2hB,GAE9BD,IAAQ,KACVA,KAAS1hB,GACL0hB,IAAQ,MAAGA,IAAQ,MACdA,IAAQ1hB,MACjB0hB,IAAQ1hB,IAGN2hB,IAAM,KACRA,KAAO3hB,GACH2hB,IAAM,MAAGA,IAAM,MACVA,IAAM3hB,MACf2hB,IAAM3hB,IAGJ2hB,IAAMD,MAAOC,IAAMD;AAEvB,UAAM8F,IAAS,KAAK,SAAS9F,GAAOC,CAAG;AAEvC,kBAAO,eAAe6F,GAAQ7E,EAAO,SAAS,GAEvC6E;AAAA,EACV;AAKC,WAASC,EAAavlB,GAAQwlB,GAAKtZ,GAAQ;AACzC,QAAKlM,IAAS,MAAO,KAAKA,IAAS;AAAG,YAAM,IAAI,WAAW,oBAAoB;AAC/E,QAAIA,IAASwlB,IAAMtZ;AAAQ,YAAM,IAAI,WAAW,uCAAuC;AAAA,EACxF;AAED,EAAAuU,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAa,SAAqBzgB,GAAQ+hB,GAAY0D,GAAU;AAC/E,IAAAzlB,IAASA,MAAW,GACpB+hB,IAAaA,MAAe,GACvB0D,KAAUF,EAAYvlB,GAAQ+hB,GAAY,KAAK,MAAM;AAE1D,QAAI5d,IAAM,KAAKnE,CAAM,GACjB0lB,IAAM,GACNxoB,IAAI;AACR,WAAO,EAAEA,IAAI6kB,MAAe2D,KAAO;AACjC,MAAAvhB,KAAO,KAAKnE,IAAS9C,CAAC,IAAIwoB;AAG5B,WAAOvhB;AAAA,EACV,GAECsc,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAa,SAAqBzgB,GAAQ+hB,GAAY0D,GAAU;AAC/E,IAAAzlB,IAASA,MAAW,GACpB+hB,IAAaA,MAAe,GACvB0D,KACHF,EAAYvlB,GAAQ+hB,GAAY,KAAK,MAAM;AAG7C,QAAI5d,IAAM,KAAKnE,IAAS,EAAE+hB,CAAU,GAChC2D,IAAM;AACV,WAAO3D,IAAa,MAAM2D,KAAO;AAC/B,MAAAvhB,KAAO,KAAKnE,IAAS,EAAE+hB,CAAU,IAAI2D;AAGvC,WAAOvhB;AAAA,EACV,GAECsc,EAAO,UAAU,YACjBA,EAAO,UAAU,YAAY,SAAoBzgB,GAAQylB,GAAU;AACjE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC1C,KAAKA,CAAM;AAAA,EACrB,GAECygB,EAAO,UAAU,eACjBA,EAAO,UAAU,eAAe,SAAuBzgB,GAAQylB,GAAU;AACvE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC1C,KAAKA,CAAM,IAAK,KAAKA,IAAS,CAAC,KAAK;AAAA,EAC9C,GAECygB,EAAO,UAAU,eACjBA,EAAO,UAAU,eAAe,SAAuBzgB,GAAQylB,GAAU;AACvE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GACzC,KAAKA,CAAM,KAAK,IAAK,KAAKA,IAAS,CAAC;AAAA,EAC/C,GAECygB,EAAO,UAAU,eACjBA,EAAO,UAAU,eAAe,SAAuBzgB,GAAQylB,GAAU;AACvE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,IAExC,KAAKA,CAAM,IACf,KAAKA,IAAS,CAAC,KAAK,IACpB,KAAKA,IAAS,CAAC,KAAK,MACpB,KAAKA,IAAS,CAAC,IAAI;AAAA,EAC3B,GAECygB,EAAO,UAAU,eACjBA,EAAO,UAAU,eAAe,SAAuBzgB,GAAQylB,GAAU;AACvE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAEzC,KAAKA,CAAM,IAAI,YACnB,KAAKA,IAAS,CAAC,KAAK,KACrB,KAAKA,IAAS,CAAC,KAAK,IACrB,KAAKA,IAAS,CAAC;AAAA,EACpB,GAECygB,EAAO,UAAU,kBAAkBkF,EAAmB,SAA0B3lB,GAAQ;AACtF,IAAAA,IAASA,MAAW,GACpB4lB,EAAe5lB,GAAQ,QAAQ;AAC/B,UAAM6lB,IAAQ,KAAK7lB,CAAM,GACnB8lB,IAAO,KAAK9lB,IAAS,CAAC;AAC5B,KAAI6lB,MAAU,UAAaC,MAAS,WAClCC,EAAY/lB,GAAQ,KAAK,SAAS,CAAC;AAGrC,UAAMgmB,IAAKH,IACT,KAAK,EAAE7lB,CAAM,IAAI,KAAK,IACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,KACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,IAElBimB,IAAK,KAAK,EAAEjmB,CAAM,IACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,IACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,KACtB8lB,IAAO,KAAK;AAEd,WAAO,OAAOE,CAAE,KAAK,OAAOC,CAAE,KAAK,OAAO,EAAE;AAAA,EAC/C,CAAE,GAEDxF,EAAO,UAAU,kBAAkBkF,EAAmB,SAA0B3lB,GAAQ;AACtF,IAAAA,IAASA,MAAW,GACpB4lB,EAAe5lB,GAAQ,QAAQ;AAC/B,UAAM6lB,IAAQ,KAAK7lB,CAAM,GACnB8lB,IAAO,KAAK9lB,IAAS,CAAC;AAC5B,KAAI6lB,MAAU,UAAaC,MAAS,WAClCC,EAAY/lB,GAAQ,KAAK,SAAS,CAAC;AAGrC,UAAMimB,IAAKJ,IAAQ,KAAK,KACtB,KAAK,EAAE7lB,CAAM,IAAI,KAAK,KACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,IACtB,KAAK,EAAEA,CAAM,GAETgmB,IAAK,KAAK,EAAEhmB,CAAM,IAAI,KAAK,KAC/B,KAAK,EAAEA,CAAM,IAAI,KAAK,KACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,IACtB8lB;AAEF,YAAQ,OAAOG,CAAE,KAAK,OAAO,EAAE,KAAK,OAAOD,CAAE;AAAA,EAChD,CAAE,GAEDvF,EAAO,UAAU,YAAY,SAAoBzgB,GAAQ+hB,GAAY0D,GAAU;AAC7E,IAAAzlB,IAASA,MAAW,GACpB+hB,IAAaA,MAAe,GACvB0D,KAAUF,EAAYvlB,GAAQ+hB,GAAY,KAAK,MAAM;AAE1D,QAAI5d,IAAM,KAAKnE,CAAM,GACjB0lB,IAAM,GACNxoB,IAAI;AACR,WAAO,EAAEA,IAAI6kB,MAAe2D,KAAO;AACjC,MAAAvhB,KAAO,KAAKnE,IAAS9C,CAAC,IAAIwoB;AAE5B,WAAAA,KAAO,KAEHvhB,KAAOuhB,MAAKvhB,KAAO,KAAK,IAAI,GAAG,IAAI4d,CAAU,IAE1C5d;AAAA,EACV,GAECsc,EAAO,UAAU,YAAY,SAAoBzgB,GAAQ+hB,GAAY0D,GAAU;AAC7E,IAAAzlB,IAASA,MAAW,GACpB+hB,IAAaA,MAAe,GACvB0D,KAAUF,EAAYvlB,GAAQ+hB,GAAY,KAAK,MAAM;AAE1D,QAAI7kB,IAAI6kB,GACJ2D,IAAM,GACNvhB,IAAM,KAAKnE,IAAS,EAAE9C,CAAC;AAC3B,WAAOA,IAAI,MAAMwoB,KAAO;AACtB,MAAAvhB,KAAO,KAAKnE,IAAS,EAAE9C,CAAC,IAAIwoB;AAE9B,WAAAA,KAAO,KAEHvhB,KAAOuhB,MAAKvhB,KAAO,KAAK,IAAI,GAAG,IAAI4d,CAAU,IAE1C5d;AAAA,EACV,GAECsc,EAAO,UAAU,WAAW,SAAmBzgB,GAAQylB,GAAU;AAG/D,WAFAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC3C,KAAKA,CAAM,IAAI,OACZ,MAAO,KAAKA,CAAM,IAAI,KAAK,KADA,KAAKA,CAAM;AAAA,EAElD,GAECygB,EAAO,UAAU,cAAc,SAAsBzgB,GAAQylB,GAAU;AACrE,IAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM;AACjD,UAAMmE,IAAM,KAAKnE,CAAM,IAAK,KAAKA,IAAS,CAAC,KAAK;AAChD,WAAQmE,IAAM,QAAUA,IAAM,aAAaA;AAAA,EAC9C,GAECsc,EAAO,UAAU,cAAc,SAAsBzgB,GAAQylB,GAAU;AACrE,IAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM;AACjD,UAAMmE,IAAM,KAAKnE,IAAS,CAAC,IAAK,KAAKA,CAAM,KAAK;AAChD,WAAQmE,IAAM,QAAUA,IAAM,aAAaA;AAAA,EAC9C,GAECsc,EAAO,UAAU,cAAc,SAAsBzgB,GAAQylB,GAAU;AACrE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAEzC,KAAKA,CAAM,IAChB,KAAKA,IAAS,CAAC,KAAK,IACpB,KAAKA,IAAS,CAAC,KAAK,KACpB,KAAKA,IAAS,CAAC,KAAK;AAAA,EAC1B,GAECygB,EAAO,UAAU,cAAc,SAAsBzgB,GAAQylB,GAAU;AACrE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAEzC,KAAKA,CAAM,KAAK,KACrB,KAAKA,IAAS,CAAC,KAAK,KACpB,KAAKA,IAAS,CAAC,KAAK,IACpB,KAAKA,IAAS,CAAC;AAAA,EACrB,GAECygB,EAAO,UAAU,iBAAiBkF,EAAmB,SAAyB3lB,GAAQ;AACpF,IAAAA,IAASA,MAAW,GACpB4lB,EAAe5lB,GAAQ,QAAQ;AAC/B,UAAM6lB,IAAQ,KAAK7lB,CAAM,GACnB8lB,IAAO,KAAK9lB,IAAS,CAAC;AAC5B,KAAI6lB,MAAU,UAAaC,MAAS,WAClCC,EAAY/lB,GAAQ,KAAK,SAAS,CAAC;AAGrC,UAAMmE,IAAM,KAAKnE,IAAS,CAAC,IACzB,KAAKA,IAAS,CAAC,IAAI,KAAK,IACxB,KAAKA,IAAS,CAAC,IAAI,KAAK,MACvB8lB,KAAQ;AAEX,YAAQ,OAAO3hB,CAAG,KAAK,OAAO,EAAE,KAC9B,OAAO0hB,IACP,KAAK,EAAE7lB,CAAM,IAAI,KAAK,IACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,KACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,EAAE;AAAA,EAC7B,CAAE,GAEDygB,EAAO,UAAU,iBAAiBkF,EAAmB,SAAyB3lB,GAAQ;AACpF,IAAAA,IAASA,MAAW,GACpB4lB,EAAe5lB,GAAQ,QAAQ;AAC/B,UAAM6lB,IAAQ,KAAK7lB,CAAM,GACnB8lB,IAAO,KAAK9lB,IAAS,CAAC;AAC5B,KAAI6lB,MAAU,UAAaC,MAAS,WAClCC,EAAY/lB,GAAQ,KAAK,SAAS,CAAC;AAGrC,UAAMmE,KAAO0hB,KAAS;AAAA,IACpB,KAAK,EAAE7lB,CAAM,IAAI,KAAK,KACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,IACtB,KAAK,EAAEA,CAAM;AAEf,YAAQ,OAAOmE,CAAG,KAAK,OAAO,EAAE,KAC9B,OAAO,KAAK,EAAEnE,CAAM,IAAI,KAAK,KAC7B,KAAK,EAAEA,CAAM,IAAI,KAAK,KACtB,KAAK,EAAEA,CAAM,IAAI,KAAK,IACtB8lB,CAAI;AAAA,EACT,CAAE,GAEDrF,EAAO,UAAU,cAAc,SAAsBzgB,GAAQylB,GAAU;AACrE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC1CugB,EAAU,KAAK,MAAMvgB,GAAQ,IAAM,IAAI,CAAC;AAAA,EAClD,GAECygB,EAAO,UAAU,cAAc,SAAsBzgB,GAAQylB,GAAU;AACrE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC1CugB,EAAU,KAAK,MAAMvgB,GAAQ,IAAO,IAAI,CAAC;AAAA,EACnD,GAECygB,EAAO,UAAU,eAAe,SAAuBzgB,GAAQylB,GAAU;AACvE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC1CugB,EAAU,KAAK,MAAMvgB,GAAQ,IAAM,IAAI,CAAC;AAAA,EAClD,GAECygB,EAAO,UAAU,eAAe,SAAuBzgB,GAAQylB,GAAU;AACvE,WAAAzlB,IAASA,MAAW,GACfylB,KAAUF,EAAYvlB,GAAQ,GAAG,KAAK,MAAM,GAC1CugB,EAAU,KAAK,MAAMvgB,GAAQ,IAAO,IAAI,CAAC;AAAA,EACnD;AAEC,WAASkmB,EAAUhmB,GAAKiC,GAAOnC,GAAQwlB,GAAKrC,GAAKgD,GAAK;AACpD,QAAI,CAAC1F,EAAO,SAASvgB,CAAG;AAAG,YAAM,IAAI,UAAU,6CAA6C;AAC5F,QAAIiC,IAAQghB,KAAOhhB,IAAQgkB;AAAK,YAAM,IAAI,WAAW,mCAAmC;AACxF,QAAInmB,IAASwlB,IAAMtlB,EAAI;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AAAA,EACzE;AAED,EAAAugB,EAAO,UAAU,cACjBA,EAAO,UAAU,cAAc,SAAsBte,GAAOnC,GAAQ+hB,GAAY0D,GAAU;AAIxF,QAHAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACpB+hB,IAAaA,MAAe,GACxB,CAAC0D,GAAU;AACb,YAAMW,IAAW,KAAK,IAAI,GAAG,IAAIrE,CAAU,IAAI;AAC/C,MAAAmE,EAAS,MAAM/jB,GAAOnC,GAAQ+hB,GAAYqE,GAAU,CAAC;AAAA,IACtD;AAED,QAAIV,IAAM,GACNxoB,IAAI;AAER,SADA,KAAK8C,CAAM,IAAImC,IAAQ,KAChB,EAAEjF,IAAI6kB,MAAe2D,KAAO;AACjC,WAAK1lB,IAAS9C,CAAC,IAAKiF,IAAQujB,IAAO;AAGrC,WAAO1lB,IAAS+hB;AAAA,EACnB,GAECtB,EAAO,UAAU,cACjBA,EAAO,UAAU,cAAc,SAAsBte,GAAOnC,GAAQ+hB,GAAY0D,GAAU;AAIxF,QAHAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACpB+hB,IAAaA,MAAe,GACxB,CAAC0D,GAAU;AACb,YAAMW,IAAW,KAAK,IAAI,GAAG,IAAIrE,CAAU,IAAI;AAC/C,MAAAmE,EAAS,MAAM/jB,GAAOnC,GAAQ+hB,GAAYqE,GAAU,CAAC;AAAA,IACtD;AAED,QAAIlpB,IAAI6kB,IAAa,GACjB2D,IAAM;AAEV,SADA,KAAK1lB,IAAS9C,CAAC,IAAIiF,IAAQ,KACpB,EAAEjF,KAAK,MAAMwoB,KAAO;AACzB,WAAK1lB,IAAS9C,CAAC,IAAKiF,IAAQujB,IAAO;AAGrC,WAAO1lB,IAAS+hB;AAAA,EACnB,GAECtB,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAa,SAAqBte,GAAOnC,GAAQylB,GAAU;AAC1E,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,KAAM,CAAC,GACvD,KAAKA,CAAM,IAAKmC,IAAQ,KACjBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,gBACjBA,EAAO,UAAU,gBAAgB,SAAwBte,GAAOnC,GAAQylB,GAAU;AAChF,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,OAAQ,CAAC,GACzD,KAAKA,CAAM,IAAKmC,IAAQ,KACxB,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,GACvBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,gBACjBA,EAAO,UAAU,gBAAgB,SAAwBte,GAAOnC,GAAQylB,GAAU;AAChF,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,OAAQ,CAAC,GACzD,KAAKA,CAAM,IAAKmC,MAAU,GAC1B,KAAKnC,IAAS,CAAC,IAAKmC,IAAQ,KACrBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,gBACjBA,EAAO,UAAU,gBAAgB,SAAwBte,GAAOnC,GAAQylB,GAAU;AAChF,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,YAAY,CAAC,GAC7D,KAAKA,IAAS,CAAC,IAAKmC,MAAU,IAC9B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,IAC9B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,GAC9B,KAAKnC,CAAM,IAAKmC,IAAQ,KACjBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,gBACjBA,EAAO,UAAU,gBAAgB,SAAwBte,GAAOnC,GAAQylB,GAAU;AAChF,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,YAAY,CAAC,GAC7D,KAAKA,CAAM,IAAKmC,MAAU,IAC1B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,IAC9B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,GAC9B,KAAKnC,IAAS,CAAC,IAAKmC,IAAQ,KACrBnC,IAAS;AAAA,EACnB;AAEC,WAASqmB,GAAgBnmB,GAAKiC,GAAOnC,GAAQmmB,GAAKhD,GAAK;AACrD,IAAAmD,GAAWnkB,GAAOgkB,GAAKhD,GAAKjjB,GAAKF,GAAQ,CAAC;AAE1C,QAAIgmB,IAAK,OAAO7jB,IAAQ,OAAO,UAAU,CAAC;AAC1C,IAAAjC,EAAIF,GAAQ,IAAIgmB,GAChBA,IAAKA,KAAM,GACX9lB,EAAIF,GAAQ,IAAIgmB,GAChBA,IAAKA,KAAM,GACX9lB,EAAIF,GAAQ,IAAIgmB,GAChBA,IAAKA,KAAM,GACX9lB,EAAIF,GAAQ,IAAIgmB;AAChB,QAAIC,IAAK,OAAO9jB,KAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,WAAAjC,EAAIF,GAAQ,IAAIimB,GAChBA,IAAKA,KAAM,GACX/lB,EAAIF,GAAQ,IAAIimB,GAChBA,IAAKA,KAAM,GACX/lB,EAAIF,GAAQ,IAAIimB,GAChBA,IAAKA,KAAM,GACX/lB,EAAIF,GAAQ,IAAIimB,GACTjmB;AAAA,EACR;AAED,WAASumB,GAAgBrmB,GAAKiC,GAAOnC,GAAQmmB,GAAKhD,GAAK;AACrD,IAAAmD,GAAWnkB,GAAOgkB,GAAKhD,GAAKjjB,GAAKF,GAAQ,CAAC;AAE1C,QAAIgmB,IAAK,OAAO7jB,IAAQ,OAAO,UAAU,CAAC;AAC1C,IAAAjC,EAAIF,IAAS,CAAC,IAAIgmB,GAClBA,IAAKA,KAAM,GACX9lB,EAAIF,IAAS,CAAC,IAAIgmB,GAClBA,IAAKA,KAAM,GACX9lB,EAAIF,IAAS,CAAC,IAAIgmB,GAClBA,IAAKA,KAAM,GACX9lB,EAAIF,IAAS,CAAC,IAAIgmB;AAClB,QAAIC,IAAK,OAAO9jB,KAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,WAAAjC,EAAIF,IAAS,CAAC,IAAIimB,GAClBA,IAAKA,KAAM,GACX/lB,EAAIF,IAAS,CAAC,IAAIimB,GAClBA,IAAKA,KAAM,GACX/lB,EAAIF,IAAS,CAAC,IAAIimB,GAClBA,IAAKA,KAAM,GACX/lB,EAAIF,CAAM,IAAIimB,GACPjmB,IAAS;AAAA,EACjB;AAED,EAAAygB,EAAO,UAAU,mBAAmBkF,EAAmB,SAA2BxjB,GAAOnC,IAAS,GAAG;AACnG,WAAOqmB,GAAe,MAAMlkB,GAAOnC,GAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACrF,CAAE,GAEDygB,EAAO,UAAU,mBAAmBkF,EAAmB,SAA2BxjB,GAAOnC,IAAS,GAAG;AACnG,WAAOumB,GAAe,MAAMpkB,GAAOnC,GAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACrF,CAAE,GAEDygB,EAAO,UAAU,aAAa,SAAqBte,GAAOnC,GAAQ+hB,GAAY0D,GAAU;AAGtF,QAFAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GAChB,CAACylB,GAAU;AACb,YAAM1K,IAAQ,KAAK,IAAI,GAAI,IAAIgH,IAAc,CAAC;AAE9C,MAAAmE,EAAS,MAAM/jB,GAAOnC,GAAQ+hB,GAAYhH,IAAQ,GAAG,CAACA,CAAK;AAAA,IAC5D;AAED,QAAI7d,IAAI,GACJwoB,IAAM,GACNc,IAAM;AAEV,SADA,KAAKxmB,CAAM,IAAImC,IAAQ,KAChB,EAAEjF,IAAI6kB,MAAe2D,KAAO;AACjC,MAAIvjB,IAAQ,KAAKqkB,MAAQ,KAAK,KAAKxmB,IAAS9C,IAAI,CAAC,MAAM,MACrDspB,IAAM,IAER,KAAKxmB,IAAS9C,CAAC,KAAMiF,IAAQujB,KAAQ,KAAKc,IAAM;AAGlD,WAAOxmB,IAAS+hB;AAAA,EACnB,GAECtB,EAAO,UAAU,aAAa,SAAqBte,GAAOnC,GAAQ+hB,GAAY0D,GAAU;AAGtF,QAFAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GAChB,CAACylB,GAAU;AACb,YAAM1K,IAAQ,KAAK,IAAI,GAAI,IAAIgH,IAAc,CAAC;AAE9C,MAAAmE,EAAS,MAAM/jB,GAAOnC,GAAQ+hB,GAAYhH,IAAQ,GAAG,CAACA,CAAK;AAAA,IAC5D;AAED,QAAI7d,IAAI6kB,IAAa,GACjB2D,IAAM,GACNc,IAAM;AAEV,SADA,KAAKxmB,IAAS9C,CAAC,IAAIiF,IAAQ,KACpB,EAAEjF,KAAK,MAAMwoB,KAAO;AACzB,MAAIvjB,IAAQ,KAAKqkB,MAAQ,KAAK,KAAKxmB,IAAS9C,IAAI,CAAC,MAAM,MACrDspB,IAAM,IAER,KAAKxmB,IAAS9C,CAAC,KAAMiF,IAAQujB,KAAQ,KAAKc,IAAM;AAGlD,WAAOxmB,IAAS+hB;AAAA,EACnB,GAECtB,EAAO,UAAU,YAAY,SAAoBte,GAAOnC,GAAQylB,GAAU;AACxE,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,KAAM,IAAK,GACvDmC,IAAQ,MAAGA,IAAQ,MAAOA,IAAQ,IACtC,KAAKnC,CAAM,IAAKmC,IAAQ,KACjBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,eAAe,SAAuBte,GAAOnC,GAAQylB,GAAU;AAC9E,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,OAAQ,MAAO,GAC/D,KAAKA,CAAM,IAAKmC,IAAQ,KACxB,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,GACvBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,eAAe,SAAuBte,GAAOnC,GAAQylB,GAAU;AAC9E,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,OAAQ,MAAO,GAC/D,KAAKA,CAAM,IAAKmC,MAAU,GAC1B,KAAKnC,IAAS,CAAC,IAAKmC,IAAQ,KACrBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,eAAe,SAAuBte,GAAOnC,GAAQylB,GAAU;AAC9E,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,YAAY,WAAW,GACvE,KAAKA,CAAM,IAAKmC,IAAQ,KACxB,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,GAC9B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,IAC9B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,IACvBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,eAAe,SAAuBte,GAAOnC,GAAQylB,GAAU;AAC9E,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KAAUS,EAAS,MAAM/jB,GAAOnC,GAAQ,GAAG,YAAY,WAAW,GACnEmC,IAAQ,MAAGA,IAAQ,aAAaA,IAAQ,IAC5C,KAAKnC,CAAM,IAAKmC,MAAU,IAC1B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,IAC9B,KAAKnC,IAAS,CAAC,IAAKmC,MAAU,GAC9B,KAAKnC,IAAS,CAAC,IAAKmC,IAAQ,KACrBnC,IAAS;AAAA,EACnB,GAECygB,EAAO,UAAU,kBAAkBkF,EAAmB,SAA0BxjB,GAAOnC,IAAS,GAAG;AACjG,WAAOqmB,GAAe,MAAMlkB,GAAOnC,GAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACzG,CAAE,GAEDygB,EAAO,UAAU,kBAAkBkF,EAAmB,SAA0BxjB,GAAOnC,IAAS,GAAG;AACjG,WAAOumB,GAAe,MAAMpkB,GAAOnC,GAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACzG,CAAE;AAED,WAASymB,GAAcvmB,GAAKiC,GAAOnC,GAAQwlB,GAAKrC,GAAKgD,GAAK;AACxD,QAAInmB,IAASwlB,IAAMtlB,EAAI;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AACxE,QAAIF,IAAS;AAAG,YAAM,IAAI,WAAW,oBAAoB;AAAA,EAC1D;AAED,WAAS0mB,GAAYxmB,GAAKiC,GAAOnC,GAAQ2mB,GAAclB,GAAU;AAC/D,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KACHgB,GAAavmB,GAAKiC,GAAOnC,GAAQ,CAAC,GAEpCugB,EAAU,MAAMrgB,GAAKiC,GAAOnC,GAAQ2mB,GAAc,IAAI,CAAC,GAChD3mB,IAAS;AAAA,EACjB;AAED,EAAAygB,EAAO,UAAU,eAAe,SAAuBte,GAAOnC,GAAQylB,GAAU;AAC9E,WAAOiB,GAAW,MAAMvkB,GAAOnC,GAAQ,IAAMylB,CAAQ;AAAA,EACxD,GAEChF,EAAO,UAAU,eAAe,SAAuBte,GAAOnC,GAAQylB,GAAU;AAC9E,WAAOiB,GAAW,MAAMvkB,GAAOnC,GAAQ,IAAOylB,CAAQ;AAAA,EACzD;AAEC,WAASmB,GAAa1mB,GAAKiC,GAAOnC,GAAQ2mB,GAAclB,GAAU;AAChE,WAAAtjB,IAAQ,CAACA,GACTnC,IAASA,MAAW,GACfylB,KACHgB,GAAavmB,GAAKiC,GAAOnC,GAAQ,CAAC,GAEpCugB,EAAU,MAAMrgB,GAAKiC,GAAOnC,GAAQ2mB,GAAc,IAAI,CAAC,GAChD3mB,IAAS;AAAA,EACjB;AAED,EAAAygB,EAAO,UAAU,gBAAgB,SAAwBte,GAAOnC,GAAQylB,GAAU;AAChF,WAAOmB,GAAY,MAAMzkB,GAAOnC,GAAQ,IAAMylB,CAAQ;AAAA,EACzD,GAEChF,EAAO,UAAU,gBAAgB,SAAwBte,GAAOnC,GAAQylB,GAAU;AAChF,WAAOmB,GAAY,MAAMzkB,GAAOnC,GAAQ,IAAOylB,CAAQ;AAAA,EAC1D,GAGChF,EAAO,UAAU,OAAO,SAAehF,GAAQoL,GAAarH,GAAOC,GAAK;AACtE,QAAI,CAACgB,EAAO,SAAShF,CAAM;AAAG,YAAM,IAAI,UAAU,6BAA6B;AAS/E,QARK+D,MAAOA,IAAQ,IAChB,CAACC,KAAOA,MAAQ,MAAGA,IAAM,KAAK,SAC9BoH,KAAepL,EAAO,WAAQoL,IAAcpL,EAAO,SAClDoL,MAAaA,IAAc,IAC5BpH,IAAM,KAAKA,IAAMD,MAAOC,IAAMD,IAG9BC,MAAQD,KACR/D,EAAO,WAAW,KAAK,KAAK,WAAW;AAAG,aAAO;AAGrD,QAAIoL,IAAc;AAChB,YAAM,IAAI,WAAW,2BAA2B;AAElD,QAAIrH,IAAQ,KAAKA,KAAS,KAAK;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AAChF,QAAIC,IAAM;AAAG,YAAM,IAAI,WAAW,yBAAyB;AAG3D,IAAIA,IAAM,KAAK,WAAQA,IAAM,KAAK,SAC9BhE,EAAO,SAASoL,IAAcpH,IAAMD,MACtCC,IAAMhE,EAAO,SAASoL,IAAcrH;AAGtC,UAAM1hB,IAAM2hB,IAAMD;AAElB,WAAI,SAAS/D,KAAU,OAAOmF,EAAiB,UAAU,cAAe,aAEtE,KAAK,WAAWiG,GAAarH,GAAOC,CAAG,IAEvCmB,EAAiB,UAAU,IAAI;AAAA,MAC7BnF;AAAA,MACA,KAAK,SAAS+D,GAAOC,CAAG;AAAA,MACxBoH;AAAA,IACP,GAGU/oB;AAAA,EACV,GAMC2iB,EAAO,UAAU,OAAO,SAAetc,GAAKqb,GAAOC,GAAKoC,GAAU;AAEhE,QAAI,OAAO1d,KAAQ,UAAU;AAS3B,UARI,OAAOqb,KAAU,YACnBqC,IAAWrC,GACXA,IAAQ,GACRC,IAAM,KAAK,UACF,OAAOA,KAAQ,aACxBoC,IAAWpC,GACXA,IAAM,KAAK,SAEToC,MAAa,UAAa,OAAOA,KAAa;AAChD,cAAM,IAAI,UAAU,2BAA2B;AAEjD,UAAI,OAAOA,KAAa,YAAY,CAACpB,EAAO,WAAWoB,CAAQ;AAC7D,cAAM,IAAI,UAAU,uBAAuBA,CAAQ;AAErD,UAAI1d,EAAI,WAAW,GAAG;AACpB,cAAMqD,IAAOrD,EAAI,WAAW,CAAC;AAC7B,SAAK0d,MAAa,UAAUra,IAAO,OAC/Bqa,MAAa,cAEf1d,IAAMqD;AAAA,MAET;AAAA,IACN;AAAU,MAAI,OAAOrD,KAAQ,WACxBA,IAAMA,IAAM,MACH,OAAOA,KAAQ,cACxBA,IAAM,OAAOA,CAAG;AAIlB,QAAIqb,IAAQ,KAAK,KAAK,SAASA,KAAS,KAAK,SAASC;AACpD,YAAM,IAAI,WAAW,oBAAoB;AAG3C,QAAIA,KAAOD;AACT,aAAO;AAGT,IAAAA,IAAQA,MAAU,GAClBC,IAAMA,MAAQ,SAAY,KAAK,SAASA,MAAQ,GAE3Ctb,MAAKA,IAAM;AAEhB,QAAIjH;AACJ,QAAI,OAAOiH,KAAQ;AACjB,WAAKjH,IAAIsiB,GAAOtiB,IAAIuiB,GAAK,EAAEviB;AACzB,aAAKA,CAAC,IAAIiH;AAAA,SAEP;AACL,YAAMkhB,IAAQ5E,EAAO,SAAStc,CAAG,IAC7BA,IACAsc,EAAO,KAAKtc,GAAK0d,CAAQ,GACvB/jB,IAAMunB,EAAM;AAClB,UAAIvnB,MAAQ;AACV,cAAM,IAAI,UAAU,gBAAgBqG,IAClC,mCAAmC;AAEvC,WAAKjH,IAAI,GAAGA,IAAIuiB,IAAMD,GAAO,EAAEtiB;AAC7B,aAAKA,IAAIsiB,CAAK,IAAI6F,EAAMnoB,IAAIY,CAAG;AAAA,IAElC;AAED,WAAO;AAAA,EACV;AAMC,QAAMgpB,IAAS,CAAA;AACf,WAASC,GAAGC,GAAKC,GAAYC,GAAM;AACjC,IAAAJ,EAAOE,CAAG,IAAI,cAAwBE,EAAK;AAAA,MACzC,cAAe;AACb,iBAEA,OAAO,eAAe,MAAM,WAAW;AAAA,UACrC,OAAOD,EAAW,MAAM,MAAM,SAAS;AAAA,UACvC,UAAU;AAAA,UACV,cAAc;AAAA,QACvB,CAAQ,GAGD,KAAK,OAAO,GAAG,KAAK,IAAI,KAAKD,CAAG,KAGhC,KAAK,OAEL,OAAO,KAAK;AAAA,MACb;AAAA,MAED,IAAI,OAAQ;AACV,eAAOA;AAAA,MACR;AAAA,MAED,IAAI,KAAM7kB,GAAO;AACf,eAAO,eAAe,MAAM,QAAQ;AAAA,UAClC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,OAAAA;AAAA,UACA,UAAU;AAAA,QACnB,CAAQ;AAAA,MACF;AAAA,MAED,WAAY;AACV,eAAO,GAAG,KAAK,IAAI,KAAK6kB,CAAG,MAAM,KAAK,OAAO;AAAA,MAC9C;AAAA,IACN;AAAA,EACE;AAED,EAAAD;AAAA,IAAE;AAAA,IACA,SAAUhlB,GAAM;AACd,aAAIA,IACK,GAAGA,CAAI,iCAGT;AAAA,IACR;AAAA,IAAE;AAAA,EAAU,GACfglB;AAAA,IAAE;AAAA,IACA,SAAUhlB,GAAMigB,GAAQ;AACtB,aAAO,QAAQjgB,CAAI,oDAAoD,OAAOigB,CAAM;AAAA,IACrF;AAAA,IAAE;AAAA,EAAS,GACd+E;AAAA,IAAE;AAAA,IACA,SAAUrpB,GAAKypB,GAAO3d,GAAO;AAC3B,UAAIqB,IAAM,iBAAiBnN,CAAG,sBAC1B0pB,IAAW5d;AACf,aAAI,OAAO,UAAUA,CAAK,KAAK,KAAK,IAAIA,CAAK,IAAI,KAAK,KACpD4d,IAAWC,GAAsB,OAAO7d,CAAK,CAAC,IACrC,OAAOA,KAAU,aAC1B4d,IAAW,OAAO5d,CAAK,IACnBA,IAAQ,OAAO,CAAC,KAAK,OAAO,EAAE,KAAKA,IAAQ,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,QACrE4d,IAAWC,GAAsBD,CAAQ,IAE3CA,KAAY,MAEdvc,KAAO,eAAesc,CAAK,cAAcC,CAAQ,IAC1Cvc;AAAA,IACR;AAAA,IAAE;AAAA,EAAU;AAEf,WAASwc,GAAuBljB,GAAK;AACnC,QAAI4F,IAAM,IACN7M,IAAIiH,EAAI;AACZ,UAAMqb,IAAQrb,EAAI,CAAC,MAAM,MAAM,IAAI;AACnC,WAAOjH,KAAKsiB,IAAQ,GAAGtiB,KAAK;AAC1B,MAAA6M,IAAM,IAAI5F,EAAI,MAAMjH,IAAI,GAAGA,CAAC,CAAC,GAAG6M,CAAG;AAErC,WAAO,GAAG5F,EAAI,MAAM,GAAGjH,CAAC,CAAC,GAAG6M,CAAG;AAAA,EAChC;AAKD,WAASud,GAAapnB,GAAKF,GAAQ+hB,GAAY;AAC7C,IAAA6D,EAAe5lB,GAAQ,QAAQ,IAC3BE,EAAIF,CAAM,MAAM,UAAaE,EAAIF,IAAS+hB,CAAU,MAAM,WAC5DgE,EAAY/lB,GAAQE,EAAI,UAAU6hB,IAAa,EAAE;AAAA,EAEpD;AAED,WAASuE,GAAYnkB,GAAOgkB,GAAKhD,GAAKjjB,GAAKF,GAAQ+hB,GAAY;AAC7D,QAAI5f,IAAQghB,KAAOhhB,IAAQgkB,GAAK;AAC9B,YAAM9X,IAAI,OAAO8X,KAAQ,WAAW,MAAM;AAC1C,UAAIgB;AACJ,YAAIpF,IAAa,IACXoE,MAAQ,KAAKA,MAAQ,OAAO,CAAC,IAC/BgB,IAAQ,OAAO9Y,CAAC,WAAWA,CAAC,QAAQ0T,IAAa,KAAK,CAAC,GAAG1T,CAAC,KAE3D8Y,IAAQ,SAAS9Y,CAAC,QAAQ0T,IAAa,KAAK,IAAI,CAAC,GAAG1T,CAAC,iBACzC0T,IAAa,KAAK,IAAI,CAAC,GAAG1T,CAAC,KAGzC8Y,IAAQ,MAAMhB,CAAG,GAAG9X,CAAC,WAAW8U,CAAG,GAAG9U,CAAC,IAEnC,IAAIyY,EAAO,iBAAiB,SAASK,GAAOhlB,CAAK;AAAA,IACxD;AACD,IAAAmlB,GAAYpnB,GAAKF,GAAQ+hB,CAAU;AAAA,EACpC;AAED,WAAS6D,EAAgBzjB,GAAOJ,GAAM;AACpC,QAAI,OAAOI,KAAU;AACnB,YAAM,IAAI2kB,EAAO,qBAAqB/kB,GAAM,UAAUI,CAAK;AAAA,EAE9D;AAED,WAAS4jB,EAAa5jB,GAAO+J,GAAQjL,GAAM;AACzC,UAAI,KAAK,MAAMkB,CAAK,MAAMA,KACxByjB,EAAezjB,GAAOlB,CAAI,GACpB,IAAI6lB,EAAO,iBAAiB7lB,KAAQ,UAAU,cAAckB,CAAK,KAGrE+J,IAAS,IACL,IAAI4a,EAAO,yBAA0B,IAGvC,IAAIA,EAAO;AAAA,MAAiB7lB,KAAQ;AAAA,MACR,MAAMA,IAAO,IAAI,CAAC,WAAWiL,CAAM;AAAA,MACnC/J;AAAA,IAAK;AAAA,EACxC;AAKD,QAAMolB,KAAoB;AAE1B,WAASC,GAAa9pB,GAAK;AAMzB,QAJAA,IAAMA,EAAI,MAAM,GAAG,EAAE,CAAC,GAEtBA,IAAMA,EAAI,KAAI,EAAG,QAAQ6pB,IAAmB,EAAE,GAE1C7pB,EAAI,SAAS;AAAG,aAAO;AAE3B,WAAOA,EAAI,SAAS,MAAM;AACxB,MAAAA,IAAMA,IAAM;AAEd,WAAOA;AAAA,EACR;AAED,WAAS+kB,GAAalW,GAAQG,GAAO;AACnC,IAAAA,IAAQA,KAAS;AACjB,QAAIiY;AACJ,UAAMzY,IAASK,EAAO;AACtB,QAAIkb,IAAgB;AACpB,UAAMpC,IAAQ,CAAA;AAEd,aAASnoB,IAAI,GAAGA,IAAIgP,GAAQ,EAAEhP,GAAG;AAI/B,UAHAynB,IAAYpY,EAAO,WAAWrP,CAAC,GAG3BynB,IAAY,SAAUA,IAAY,OAAQ;AAE5C,YAAI,CAAC8C,GAAe;AAElB,cAAI9C,IAAY,OAAQ;AAEtB,aAAKjY,KAAS,KAAK,MAAI2Y,EAAM,KAAK,KAAM,KAAM,GAAI;AAClD;AAAA,UACX,WAAoBnoB,IAAI,MAAMgP,GAAQ;AAE3B,aAAKQ,KAAS,KAAK,MAAI2Y,EAAM,KAAK,KAAM,KAAM,GAAI;AAClD;AAAA,UACD;AAGD,UAAAoC,IAAgB9C;AAEhB;AAAA,QACD;AAGD,YAAIA,IAAY,OAAQ;AACtB,WAAKjY,KAAS,KAAK,MAAI2Y,EAAM,KAAK,KAAM,KAAM,GAAI,GAClDoC,IAAgB9C;AAChB;AAAA,QACD;AAGD,QAAAA,KAAa8C,IAAgB,SAAU,KAAK9C,IAAY,SAAU;AAAA,MACnE;AAAM,QAAI8C,MAEJ/a,KAAS,KAAK,MAAI2Y,EAAM,KAAK,KAAM,KAAM,GAAI;AAMpD,UAHAoC,IAAgB,MAGZ9C,IAAY,KAAM;AACpB,aAAKjY,KAAS,KAAK;AAAG;AACtB,QAAA2Y,EAAM,KAAKV,CAAS;AAAA,MAC3B,WAAgBA,IAAY,MAAO;AAC5B,aAAKjY,KAAS,KAAK;AAAG;AACtB,QAAA2Y,EAAM;AAAA,UACJV,KAAa,IAAM;AAAA,UACnBA,IAAY,KAAO;AAAA,QAC5B;AAAA,MACA,WAAgBA,IAAY,OAAS;AAC9B,aAAKjY,KAAS,KAAK;AAAG;AACtB,QAAA2Y,EAAM;AAAA,UACJV,KAAa,KAAM;AAAA,UACnBA,KAAa,IAAM,KAAO;AAAA,UAC1BA,IAAY,KAAO;AAAA,QAC5B;AAAA,MACA,WAAgBA,IAAY,SAAU;AAC/B,aAAKjY,KAAS,KAAK;AAAG;AACtB,QAAA2Y,EAAM;AAAA,UACJV,KAAa,KAAO;AAAA,UACpBA,KAAa,KAAM,KAAO;AAAA,UAC1BA,KAAa,IAAM,KAAO;AAAA,UAC1BA,IAAY,KAAO;AAAA,QAC5B;AAAA,MACA;AACO,cAAM,IAAI,MAAM,oBAAoB;AAAA,IAEvC;AAED,WAAOU;AAAA,EACR;AAED,WAASf,GAAc5mB,GAAK;AAC1B,UAAMgqB,IAAY,CAAA;AAClB,aAASxqB,IAAI,GAAGA,IAAIQ,EAAI,QAAQ,EAAER;AAEhC,MAAAwqB,EAAU,KAAKhqB,EAAI,WAAWR,CAAC,IAAI,GAAI;AAEzC,WAAOwqB;AAAA,EACR;AAED,WAASjD,EAAgB/mB,GAAKgP,GAAO;AACnC,QAAIlJ,GAAGyiB,GAAID;AACX,UAAM0B,IAAY,CAAA;AAClB,aAASxqB,IAAI,GAAGA,IAAIQ,EAAI,UACjB,GAAAgP,KAAS,KAAK,IADW,EAAExP;AAGhC,MAAAsG,IAAI9F,EAAI,WAAWR,CAAC,GACpB+oB,IAAKziB,KAAK,GACVwiB,IAAKxiB,IAAI,KACTkkB,EAAU,KAAK1B,CAAE,GACjB0B,EAAU,KAAKzB,CAAE;AAGnB,WAAOyB;AAAA,EACR;AAED,WAAShF,EAAehlB,GAAK;AAC3B,WAAO4iB,EAAO,YAAYkH,GAAY9pB,CAAG,CAAC;AAAA,EAC3C;AAED,WAAS0mB,EAAYuD,GAAKC,GAAK5nB,GAAQkM,GAAQ;AAC7C,QAAIhP;AACJ,SAAKA,IAAI,GAAGA,IAAIgP,KACT,EAAAhP,IAAI8C,KAAU4nB,EAAI,UAAY1qB,KAAKyqB,EAAI,SADtB,EAAEzqB;AAExB,MAAA0qB,EAAI1qB,IAAI8C,CAAM,IAAI2nB,EAAIzqB,CAAC;AAEzB,WAAOA;AAAA,EACR;AAKD,WAASokB,EAAY3X,GAAK1I,GAAM;AAC9B,WAAO0I,aAAe1I,KACnB0I,KAAO,QAAQA,EAAI,eAAe,QAAQA,EAAI,YAAY,QAAQ,QACjEA,EAAI,YAAY,SAAS1I,EAAK;AAAA,EACnC;AACD,WAASohB,EAAa1Y,GAAK;AAEzB,WAAOA,MAAQA;AAAA,EAChB;AAID,QAAMyb,IAAuB,WAAY;AACvC,UAAMtG,IAAW,oBACX+I,IAAQ,IAAI,MAAM,GAAG;AAC3B,aAAS3qB,IAAI,GAAGA,IAAI,IAAI,EAAEA,GAAG;AAC3B,YAAM4qB,IAAM5qB,IAAI;AAChB,eAASgB,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,QAAA2pB,EAAMC,IAAM5pB,CAAC,IAAI4gB,EAAS5hB,CAAC,IAAI4hB,EAAS5gB,CAAC;AAAA,IAE5C;AACD,WAAO2pB;AAAA,EACV;AAGC,WAASlC,EAAoB/iB,GAAI;AAC/B,WAAO,OAAO,SAAW,MAAcmlB,IAAyBnlB;AAAA,EACjE;AAED,WAASmlB,IAA0B;AACjC,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACvC;AACF,GAAG,MAAM;AAET,MAAM,SAAS,OAAO;AC/xEtB,SAAS,WAAWtmB,GAAS+F,GAAMtB,GAAQ8hB,GAASC,GAAU;AAC5D,QAAM,KAAK,IAAI,GAEX,MAAM,oBACR,MAAM,kBAAkB,MAAM,KAAK,WAAW,IAE9C,KAAK,QAAS,IAAI,MAAK,EAAI,OAG7B,KAAK,UAAUxmB,GACf,KAAK,OAAO,cACZ+F,MAAS,KAAK,OAAOA,IACrBtB,MAAW,KAAK,SAASA,IACzB8hB,MAAY,KAAK,UAAUA,IAC3BC,MAAa,KAAK,WAAWA;AAC/B;AAEAC,QAAM,SAAS,YAAY,OAAO;AAAA,EAChC,QAAQ,WAAkB;AACxB,WAAO;AAAA;AAAA,MAEL,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA;AAAA,MAEX,aAAa,KAAK;AAAA,MAClB,QAAQ,KAAK;AAAA;AAAA,MAEb,UAAU,KAAK;AAAA,MACf,YAAY,KAAK;AAAA,MACjB,cAAc,KAAK;AAAA,MACnB,OAAO,KAAK;AAAA;AAAA,MAEZ,QAAQA,QAAM,aAAa,KAAK,MAAM;AAAA,MACtC,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK,YAAY,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS;AAAA,IAC7E;AAAA,EACG;AACH,CAAC;AAED,MAAMtL,cAAY,WAAW,WACvB,cAAc,CAAA;AAEpB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,EAAE,QAAQ,CAAApV,MAAQ;AAChB,cAAYA,CAAI,IAAI,EAAC,OAAOA,EAAI;AAClC,CAAC;AAED,OAAO,iBAAiB,YAAY,WAAW;AAC/C,OAAO,eAAeoV,aAAW,gBAAgB,EAAC,OAAO,GAAI,CAAC;AAG9D,WAAW,OAAO,CAACtV,GAAOE,GAAMtB,GAAQ8hB,GAASC,GAAUE,MAAgB;AACzE,QAAMC,IAAa,OAAO,OAAOxL,WAAS;AAE1CsL,iBAAM,aAAa5gB,GAAO8gB,GAAY,SAAgBze,GAAK;AACzD,WAAOA,MAAQ,MAAM;AAAA,EACtB,GAAE,CAAA7J,MACMA,MAAS,cACjB,GAED,WAAW,KAAKsoB,GAAY9gB,EAAM,SAASE,GAAMtB,GAAQ8hB,GAASC,CAAQ,GAE1EG,EAAW,QAAQ9gB,GAEnB8gB,EAAW,OAAO9gB,EAAM,MAExB6gB,KAAe,OAAO,OAAOC,GAAYD,CAAW,GAE7CC;AACT;AChGA,MAAA,cAAe;ACaf,SAAS,YAAYzL,GAAO;AAC1B,SAAOuL,QAAM,cAAcvL,CAAK,KAAKuL,QAAM,QAAQvL,CAAK;AAC1D;AASA,SAAS,eAAeza,GAAK;AAC3B,SAAOgmB,QAAM,SAAShmB,GAAK,IAAI,IAAIA,EAAI,MAAM,GAAG,EAAE,IAAIA;AACxD;AAWA,SAAS,UAAUmmB,GAAMnmB,GAAKomB,GAAM;AAClC,SAAKD,IACEA,EAAK,OAAOnmB,CAAG,EAAE,IAAI,SAAc2J,GAAO3O,GAAG;AAElD,WAAA2O,IAAQ,eAAeA,CAAK,GACrB,CAACyc,KAAQprB,IAAI,MAAM2O,IAAQ,MAAMA;AAAA,EACzC,CAAA,EAAE,KAAKyc,IAAO,MAAM,EAAE,IALLpmB;AAMpB;AASA,SAAS,YAAY9E,GAAK;AACxB,SAAO8qB,QAAM,QAAQ9qB,CAAG,KAAK,CAACA,EAAI,KAAK,WAAW;AACpD;AAEA,MAAM,aAAa8qB,QAAM,aAAaA,SAAO,CAAE,GAAE,MAAM,SAAgBpoB,GAAM;AAC3E,SAAO,WAAW,KAAKA,CAAI;AAC7B,CAAC;AAyBD,SAAS,WAAW6J,GAAK4e,GAAUtoB,GAAS;AAC1C,MAAI,CAACioB,QAAM,SAASve,CAAG;AACrB,UAAM,IAAI,UAAU,0BAA0B;AAIhD,EAAA4e,IAAWA,KAAY,IAAyB,YAGhDtoB,IAAUioB,QAAM,aAAajoB,GAAS;AAAA,IACpC,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,EACV,GAAE,IAAO,SAAiBuoB,GAAQ9M,GAAQ;AAEzC,WAAO,CAACwM,QAAM,YAAYxM,EAAO8M,CAAM,CAAC;AAAA,EAC5C,CAAG;AAED,QAAMC,IAAaxoB,EAAQ,YAErByoB,IAAUzoB,EAAQ,WAAW0oB,GAC7BL,IAAOroB,EAAQ,MACf2oB,IAAU3oB,EAAQ,SAElB4oB,KADQ5oB,EAAQ,QAAQ,OAAO,OAAS,OAAe,SACpCioB,QAAM,oBAAoBK,CAAQ;AAE3D,MAAI,CAACL,QAAM,WAAWQ,CAAO;AAC3B,UAAM,IAAI,UAAU,4BAA4B;AAGlD,WAASI,EAAa3mB,GAAO;AAC3B,QAAIA,MAAU;AAAM,aAAO;AAE3B,QAAI+lB,QAAM,OAAO/lB,CAAK;AACpB,aAAOA,EAAM;AAGf,QAAI,CAAC0mB,KAAWX,QAAM,OAAO/lB,CAAK;AAChC,YAAM,IAAI,WAAW,8CAA8C;AAGrE,WAAI+lB,QAAM,cAAc/lB,CAAK,KAAK+lB,QAAM,aAAa/lB,CAAK,IACjD0mB,KAAW,OAAO,QAAS,aAAa,IAAI,KAAK,CAAC1mB,CAAK,CAAC,IAAI,OAAO,KAAKA,CAAK,IAG/EA;AAAA,EACR;AAYD,WAASwmB,EAAexmB,GAAOD,GAAKmmB,GAAM;AACxC,QAAIjrB,IAAM+E;AAEV,QAAIA,KAAS,CAACkmB,KAAQ,OAAOlmB,KAAU;AACrC,UAAI+lB,QAAM,SAAShmB,GAAK,IAAI;AAE1B,QAAAA,IAAMumB,IAAavmB,IAAMA,EAAI,MAAM,GAAG,EAAE,GAExCC,IAAQ,KAAK,UAAUA,CAAK;AAAA,eAE3B+lB,QAAM,QAAQ/lB,CAAK,KAAK,YAAYA,CAAK,MACxC+lB,QAAM,WAAW/lB,CAAK,KAAK+lB,QAAM,SAAShmB,GAAK,IAAI,OAAO9E,IAAM8qB,QAAM,QAAQ/lB,CAAK;AAGrF,eAAAD,IAAM,eAAeA,CAAG,GAExB9E,EAAI,QAAQ,SAAc2rB,GAAI9f,GAAO;AACnC,YAAEif,QAAM,YAAYa,CAAE,KAAKA,MAAO,SAASR,EAAS;AAAA;AAAA,YAElDK,MAAY,KAAO,UAAU,CAAC1mB,CAAG,GAAG+G,GAAOqf,CAAI,IAAKM,MAAY,OAAO1mB,IAAMA,IAAM;AAAA,YACnF4mB,EAAaC,CAAE;AAAA,UAC3B;AAAA,QACA,CAAS,GACM;AAAA;AAIX,WAAI,YAAY5mB,CAAK,IACZ,MAGTomB,EAAS,OAAO,UAAUF,GAAMnmB,GAAKomB,CAAI,GAAGQ,EAAa3mB,CAAK,CAAC,GAExD;AAAA,EACR;AAED,QAAM4c,IAAQ,CAAA,GAERiK,IAAiB,OAAO,OAAO,YAAY;AAAA,IAC/C,gBAAAL;AAAA,IACA,cAAAG;AAAA,IACA;AAAA,EACJ,CAAG;AAED,WAASG,EAAM9mB,GAAOkmB,GAAM;AAC1B,QAAIH,SAAM,YAAY/lB,CAAK,GAE3B;AAAA,UAAI4c,EAAM,QAAQ5c,CAAK,MAAM;AAC3B,cAAM,MAAM,oCAAoCkmB,EAAK,KAAK,GAAG,CAAC;AAGhE,MAAAtJ,EAAM,KAAK5c,CAAK,GAEhB+lB,QAAM,QAAQ/lB,GAAO,SAAc4mB,GAAI7mB,GAAK;AAK1C,SAJe,EAAEgmB,QAAM,YAAYa,CAAE,KAAKA,MAAO,SAASL,EAAQ;AAAA,UAChEH;AAAA,UAAUQ;AAAA,UAAIb,QAAM,SAAShmB,CAAG,IAAIA,EAAI,KAAM,IAAGA;AAAA,UAAKmmB;AAAA,UAAMW;AAAA,QACpE,OAEqB,MACbC,EAAMF,GAAIV,IAAOA,EAAK,OAAOnmB,CAAG,IAAI,CAACA,CAAG,CAAC;AAAA,MAEjD,CAAK,GAED6c,EAAM,IAAG;AAAA;AAAA,EACV;AAED,MAAI,CAACmJ,QAAM,SAASve,CAAG;AACrB,UAAM,IAAI,UAAU,wBAAwB;AAG9C,SAAAsf,EAAMtf,CAAG,GAEF4e;AACT;AC5MA,SAASW,SAAOxrB,GAAK;AACnB,QAAMyrB,IAAU;AAAA,IACd,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,EACX;AACE,SAAO,mBAAmBzrB,CAAG,EAAE,QAAQ,oBAAoB,SAAkBa,GAAO;AAClF,WAAO4qB,EAAQ5qB,CAAK;AAAA,EACxB,CAAG;AACH;AAUA,SAAS,qBAAqB6qB,GAAQnpB,GAAS;AAC7C,OAAK,SAAS,IAEdmpB,KAAU,WAAWA,GAAQ,MAAMnpB,CAAO;AAC5C;AAEA,MAAM,YAAY,qBAAqB;AAEvC,UAAU,SAAS,SAAgB8B,GAAMI,GAAO;AAC9C,OAAK,OAAO,KAAK,CAACJ,GAAMI,CAAK,CAAC;AAChC;AAEA,UAAU,WAAW,SAAkBknB,GAAS;AAC9C,QAAMC,IAAUD,IAAU,SAASlnB,GAAO;AACxC,WAAOknB,EAAQ,KAAK,MAAMlnB,GAAO+mB,QAAM;AAAA,EACxC,IAAGA;AAEJ,SAAO,KAAK,OAAO,IAAI,SAAc/K,GAAM;AACzC,WAAOmL,EAAQnL,EAAK,CAAC,CAAC,IAAI,MAAMmL,EAAQnL,EAAK,CAAC,CAAC;AAAA,EAChD,GAAE,EAAE,EAAE,KAAK,GAAG;AACjB;AC1CA,SAAS,OAAOha,GAAK;AACnB,SAAO,mBAAmBA,CAAG,EAC3B,QAAQ,SAAS,GAAG,EACpB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,SAAS,GAAG,EACpB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,SAAS,GAAG,EACpB,QAAQ,SAAS,GAAG;AACxB;AAWe,SAAS,SAASolB,GAAKH,GAAQnpB,GAAS;AAErD,MAAI,CAACmpB;AACH,WAAOG;AAGT,QAAMD,IAAUrpB,KAAWA,EAAQ,UAAU,QAEvCupB,IAAcvpB,KAAWA,EAAQ;AAEvC,MAAIwpB;AAUJ,MARID,IACFC,IAAmBD,EAAYJ,GAAQnpB,CAAO,IAE9CwpB,IAAmBvB,QAAM,kBAAkBkB,CAAM,IAC/CA,EAAO,SAAU,IACjB,IAAI,qBAAqBA,GAAQnpB,CAAO,EAAE,SAASqpB,CAAO,GAG1DG,GAAkB;AACpB,UAAMC,IAAgBH,EAAI,QAAQ,GAAG;AAErC,IAAIG,MAAkB,OACpBH,IAAMA,EAAI,MAAM,GAAGG,CAAa,IAElCH,MAAQA,EAAI,QAAQ,GAAG,MAAM,KAAK,MAAM,OAAOE;AAAA,EAChD;AAED,SAAOF;AACT;AC1DA,MAAM,mBAAmB;AAAA,EACvB,cAAc;AACZ,SAAK,WAAW;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,IAAII,GAAWC,GAAU3pB,GAAS;AAChC,gBAAK,SAAS,KAAK;AAAA,MACjB,WAAA0pB;AAAA,MACA,UAAAC;AAAA,MACA,aAAa3pB,IAAUA,EAAQ,cAAc;AAAA,MAC7C,SAASA,IAAUA,EAAQ,UAAU;AAAA,IAC3C,CAAK,GACM,KAAK,SAAS,SAAS;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,MAAM4pB,GAAI;AACR,IAAI,KAAK,SAASA,CAAE,MAClB,KAAK,SAASA,CAAE,IAAI;AAAA,EAEvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ;AACN,IAAI,KAAK,aACP,KAAK,WAAW;EAEnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,QAAQjnB,GAAI;AACVslB,YAAM,QAAQ,KAAK,UAAU,SAAwBhZ,GAAG;AACtD,MAAIA,MAAM,QACRtM,EAAGsM,CAAC;AAAA,IAEZ,CAAK;AAAA,EACF;AACH;AAEA,MAAA,uBAAe,oBCpEA,uBAAA;AAAA,EACb,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AACvB,GCHA,oBAAe,OAAO,kBAAoB,MAAc,kBAAkB,sBCD1E,aAAe,OAAO,WAAa,MAAc,WAAW,MCA5D,SAAe,OAAO,OAAS,MAAc,OAAO,MCErC,aAAA;AAAA,EACb,WAAW;AAAA,EACX,SAAS;AAAA,IACX,iBAAI4a;AAAAA,IACJ,UAAIC;AAAAA,IACJ,MAAIC;AAAAA,EACD;AAAA,EACD,WAAW,CAAC,QAAQ,SAAS,QAAQ,QAAQ,OAAO,MAAM;AAC5D,GCZM,gBAAgB,OAAO,SAAW,OAAe,OAAO,WAAa,KAmBrE,yBACJ,CAACC,MACQ,iBAAiB,CAAC,eAAe,gBAAgB,IAAI,EAAE,QAAQA,CAAO,IAAI,GAChF,OAAO,YAAc,OAAe,UAAU,OAAO,GAWpD,iCAEF,OAAO,oBAAsB;AAE7B,gBAAgB,qBAChB,OAAO,KAAK,iBAAkB;;;;;8CCnCnB,WAAA;AAAA,EACb,GAAG;AAAA,EACH,GAAGC;AACL;ACAe,SAAS,iBAAiB7pB,GAAMJ,GAAS;AACtD,SAAO,WAAWI,GAAM,IAAI,SAAS,QAAQ,gBAAiB,GAAE,OAAO,OAAO;AAAA,IAC5E,SAAS,SAAS8B,GAAOD,GAAKmmB,GAAM8B,GAAS;AAC3C,aAAI,SAAS,UAAUjC,QAAM,SAAS/lB,CAAK,KACzC,KAAK,OAAOD,GAAKC,EAAM,SAAS,QAAQ,CAAC,GAClC,MAGFgoB,EAAQ,eAAe,MAAM,MAAM,SAAS;AAAA,IACpD;AAAA,EACL,GAAKlqB,CAAO,CAAC;AACb;ACNA,SAAS,cAAc8B,GAAM;AAK3B,SAAOmmB,QAAM,SAAS,iBAAiBnmB,CAAI,EAAE,IAAI,CAAAxD,MACxCA,EAAM,CAAC,MAAM,OAAO,KAAKA,EAAM,CAAC,KAAKA,EAAM,CAAC,CACpD;AACH;AASA,SAAS,cAAcnB,GAAK;AAC1B,QAAMuM,IAAM,CAAA,GACNoT,IAAO,OAAO,KAAK3f,CAAG;AAC5B,MAAIF;AACJ,QAAMY,IAAMif,EAAK;AACjB,MAAI7a;AACJ,OAAKhF,IAAI,GAAGA,IAAIY,GAAKZ;AACnB,IAAAgF,IAAM6a,EAAK7f,CAAC,GACZyM,EAAIzH,CAAG,IAAI9E,EAAI8E,CAAG;AAEpB,SAAOyH;AACT;AASA,SAAS,eAAe4e,GAAU;AAChC,WAAS6B,EAAU/B,GAAMlmB,GAAOsZ,GAAQxS,GAAO;AAC7C,QAAIlH,IAAOsmB,EAAKpf,GAAO;AAEvB,QAAIlH,MAAS;AAAa,aAAO;AAEjC,UAAMsoB,IAAe,OAAO,SAAS,CAACtoB,CAAI,GACpCuoB,IAASrhB,KAASof,EAAK;AAG7B,WAFAtmB,IAAO,CAACA,KAAQmmB,QAAM,QAAQzM,CAAM,IAAIA,EAAO,SAAS1Z,GAEpDuoB,KACEpC,QAAM,WAAWzM,GAAQ1Z,CAAI,IAC/B0Z,EAAO1Z,CAAI,IAAI,CAAC0Z,EAAO1Z,CAAI,GAAGI,CAAK,IAEnCsZ,EAAO1Z,CAAI,IAAII,GAGV,CAACkoB,OAGN,CAAC5O,EAAO1Z,CAAI,KAAK,CAACmmB,QAAM,SAASzM,EAAO1Z,CAAI,CAAC,OAC/C0Z,EAAO1Z,CAAI,IAAI,KAGFqoB,EAAU/B,GAAMlmB,GAAOsZ,EAAO1Z,CAAI,GAAGkH,CAAK,KAE3Cif,QAAM,QAAQzM,EAAO1Z,CAAI,CAAC,MACtC0Z,EAAO1Z,CAAI,IAAI,cAAc0Z,EAAO1Z,CAAI,CAAC,IAGpC,CAACsoB;AAAA,EACT;AAED,MAAInC,QAAM,WAAWK,CAAQ,KAAKL,QAAM,WAAWK,EAAS,OAAO,GAAG;AACpE,UAAM5e,IAAM,CAAA;AAEZue,mBAAM,aAAaK,GAAU,CAACxmB,GAAMI,MAAU;AAC5C,MAAAioB,EAAU,cAAcroB,CAAI,GAAGI,GAAOwH,GAAK,CAAC;AAAA,IAClD,CAAK,GAEMA;AAAA,EACR;AAED,SAAO;AACT;ACxEA,SAAS,gBAAgB4gB,GAAU3qB,GAAQypB,GAAS;AAClD,MAAInB,QAAM,SAASqC,CAAQ;AACzB,QAAI;AACF,cAAC3qB,KAAU,KAAK,OAAO2qB,CAAQ,GACxBrC,QAAM,KAAKqC,CAAQ;AAAA,IAC3B,SAAQjnB,GAAG;AACV,UAAIA,EAAE,SAAS;AACb,cAAMA;AAAA,IAET;AAGH,UAAQ+lB,KAAW,KAAK,WAAWkB,CAAQ;AAC7C;AAEA,MAAM,WAAW;AAAA,EAEf,cAAc;AAAA,EAEd,SAAS,CAAC,OAAO,MAAM;AAAA,EAEvB,kBAAkB,CAAC,SAA0BlqB,GAAMmqB,GAAS;AAC1D,UAAMC,IAAcD,EAAQ,eAAc,KAAM,IAC1CE,IAAqBD,EAAY,QAAQ,kBAAkB,IAAI,IAC/DE,IAAkBzC,QAAM,SAAS7nB,CAAI;AAQ3C,QANIsqB,KAAmBzC,QAAM,WAAW7nB,CAAI,MAC1CA,IAAO,IAAI,SAASA,CAAI,IAGP6nB,QAAM,WAAW7nB,CAAI;AAGtC,aAAKqqB,KAGEA,IAAqB,KAAK,UAAU,eAAerqB,CAAI,CAAC,IAFtDA;AAKX,QAAI6nB,QAAM,cAAc7nB,CAAI,KAC1B6nB,QAAM,SAAS7nB,CAAI,KACnB6nB,QAAM,SAAS7nB,CAAI,KACnB6nB,QAAM,OAAO7nB,CAAI,KACjB6nB,QAAM,OAAO7nB,CAAI;AAEjB,aAAOA;AAET,QAAI6nB,QAAM,kBAAkB7nB,CAAI;AAC9B,aAAOA,EAAK;AAEd,QAAI6nB,QAAM,kBAAkB7nB,CAAI;AAC9B,aAAAmqB,EAAQ,eAAe,mDAAmD,EAAK,GACxEnqB,EAAK;AAGd,QAAIuqB;AAEJ,QAAID,GAAiB;AACnB,UAAIF,EAAY,QAAQ,mCAAmC,IAAI;AAC7D,eAAO,iBAAiBpqB,GAAM,KAAK,cAAc,EAAE,SAAQ;AAG7D,WAAKuqB,IAAa1C,QAAM,WAAW7nB,CAAI,MAAMoqB,EAAY,QAAQ,qBAAqB,IAAI,IAAI;AAC5F,cAAMI,IAAY,KAAK,OAAO,KAAK,IAAI;AAEvC,eAAO;AAAA,UACLD,IAAa,EAAC,WAAWvqB,EAAI,IAAIA;AAAA,UACjCwqB,KAAa,IAAIA,EAAW;AAAA,UAC5B,KAAK;AAAA,QACf;AAAA,MACO;AAAA,IACF;AAED,WAAIF,KAAmBD,KACrBF,EAAQ,eAAe,oBAAoB,EAAK,GACzC,gBAAgBnqB,CAAI,KAGtBA;AAAA,EACX,CAAG;AAAA,EAED,mBAAmB,CAAC,SAA2BA,GAAM;AACnD,UAAMyqB,IAAe,KAAK,gBAAgB,SAAS,cAC7CC,IAAoBD,KAAgBA,EAAa,mBACjDE,IAAgB,KAAK,iBAAiB;AAE5C,QAAI3qB,KAAQ6nB,QAAM,SAAS7nB,CAAI,MAAO0qB,KAAqB,CAAC,KAAK,gBAAiBC,IAAgB;AAEhG,YAAMC,IAAoB,EADAH,KAAgBA,EAAa,sBACPE;AAEhD,UAAI;AACF,eAAO,KAAK,MAAM3qB,CAAI;AAAA,MACvB,SAAQiD,GAAG;AACV,YAAI2nB;AACF,gBAAI3nB,EAAE,SAAS,gBACP,WAAW,KAAKA,GAAG,WAAW,kBAAkB,MAAM,MAAM,KAAK,QAAQ,IAE3EA;AAAA,MAET;AAAA,IACF;AAED,WAAOjD;AAAA,EACX,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS;AAAA,EAET,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAEhB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EAEf,KAAK;AAAA,IACH,UAAU,SAAS,QAAQ;AAAA,IAC3B,MAAM,SAAS,QAAQ;AAAA,EACxB;AAAA,EAED,gBAAgB,SAAwB6qB,GAAQ;AAC9C,WAAOA,KAAU,OAAOA,IAAS;AAAA,EAClC;AAAA,EAED,SAAS;AAAA,IACP,QAAQ;AAAA,MACN,QAAU;AAAA,MACV,gBAAgB;AAAA,IACjB;AAAA,EACF;AACH;AAEAhD,QAAM,QAAQ,CAAC,UAAU,OAAO,QAAQ,QAAQ,OAAO,OAAO,GAAG,CAACiD,MAAW;AAC3E,WAAS,QAAQA,CAAM,IAAI;AAC7B,CAAC;AAED,MAAA,aAAe,UCxJT,oBAAoBjD,QAAM,YAAY;AAAA,EAC1C;AAAA,EAAO;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAC1D;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAqB;AAAA,EAChD;AAAA,EAAiB;AAAA,EAAY;AAAA,EAAgB;AAAA,EAC7C;AAAA,EAAW;AAAA,EAAe;AAC5B,CAAC,GAgBD,eAAe,CAAAkD,MAAc;AAC3B,QAAMlH,IAAS,CAAA;AACf,MAAIhiB,GACAiC,GACAjH;AAEJ,SAAAkuB,KAAcA,EAAW,MAAM;AAAA,CAAI,EAAE,QAAQ,SAAgBC,GAAM;AAKjE,IAJAnuB,IAAImuB,EAAK,QAAQ,GAAG,GACpBnpB,IAAMmpB,EAAK,UAAU,GAAGnuB,CAAC,EAAE,KAAI,EAAG,eAClCiH,IAAMknB,EAAK,UAAUnuB,IAAI,CAAC,EAAE,QAExB,GAACgF,KAAQgiB,EAAOhiB,CAAG,KAAK,kBAAkBA,CAAG,OAI7CA,MAAQ,eACNgiB,EAAOhiB,CAAG,IACZgiB,EAAOhiB,CAAG,EAAE,KAAKiC,CAAG,IAEpB+f,EAAOhiB,CAAG,IAAI,CAACiC,CAAG,IAGpB+f,EAAOhiB,CAAG,IAAIgiB,EAAOhiB,CAAG,IAAIgiB,EAAOhiB,CAAG,IAAI,OAAOiC,IAAMA;AAAA,EAE7D,CAAG,GAEM+f;AACT,GCjDM,aAAa,OAAO,WAAW;AAErC,SAAS,gBAAgBoH,GAAQ;AAC/B,SAAOA,KAAU,OAAOA,CAAM,EAAE,KAAI,EAAG;AACzC;AAEA,SAAS,eAAenpB,GAAO;AAC7B,SAAIA,MAAU,MAASA,KAAS,OACvBA,IAGF+lB,QAAM,QAAQ/lB,CAAK,IAAIA,EAAM,IAAI,cAAc,IAAI,OAAOA,CAAK;AACxE;AAEA,SAAS,YAAYzE,GAAK;AACxB,QAAMkW,IAAS,uBAAO,OAAO,IAAI,GAC3B2X,IAAW;AACjB,MAAIhtB;AAEJ,SAAQA,IAAQgtB,EAAS,KAAK7tB,CAAG;AAC/B,IAAAkW,EAAOrV,EAAM,CAAC,CAAC,IAAIA,EAAM,CAAC;AAG5B,SAAOqV;AACT;AAEA,MAAM,oBAAoB,CAAClW,MAAQ,iCAAiC,KAAKA,EAAI,KAAI,CAAE;AAEnF,SAAS,iBAAiBuf,GAAS9a,GAAOmpB,GAAQ3N,GAAQ6N,GAAoB;AAC5E,MAAItD,QAAM,WAAWvK,CAAM;AACzB,WAAOA,EAAO,KAAK,MAAMxb,GAAOmpB,CAAM;AAOxC,MAJIE,MACFrpB,IAAQmpB,IAGN,EAACpD,QAAM,SAAS/lB,CAAK,GAEzB;AAAA,QAAI+lB,QAAM,SAASvK,CAAM;AACvB,aAAOxb,EAAM,QAAQwb,CAAM,MAAM;AAGnC,QAAIuK,QAAM,SAASvK,CAAM;AACvB,aAAOA,EAAO,KAAKxb,CAAK;AAAA;AAE5B;AAEA,SAAS,aAAampB,GAAQ;AAC5B,SAAOA,EAAO,KAAM,EACjB,YAAW,EAAG,QAAQ,mBAAmB,CAAC/X,GAAGkY,GAAM/tB,MAC3C+tB,EAAK,YAAa,IAAG/tB,CAC7B;AACL;AAEA,SAAS,eAAeiM,GAAK2hB,GAAQ;AACnC,QAAMI,IAAexD,QAAM,YAAY,MAAMoD,CAAM;AAEnD,GAAC,OAAO,OAAO,KAAK,EAAE,QAAQ,CAAAK,MAAc;AAC1C,WAAO,eAAehiB,GAAKgiB,IAAaD,GAAc;AAAA,MACpD,OAAO,SAASE,GAAMC,GAAMC,GAAM;AAChC,eAAO,KAAKH,CAAU,EAAE,KAAK,MAAML,GAAQM,GAAMC,GAAMC,CAAI;AAAA,MAC5D;AAAA,MACD,cAAc;AAAA,IACpB,CAAK;AAAA,EACL,CAAG;AACH;AAEA,MAAM,aAAa;AAAA,EACjB,YAAYtB,GAAS;AACnB,IAAAA,KAAW,KAAK,IAAIA,CAAO;AAAA,EAC5B;AAAA,EAED,IAAIc,GAAQS,GAAgBC,GAAS;AACnC,UAAMC,IAAO;AAEb,aAASC,EAAUC,GAAQC,GAASC,GAAU;AAC5C,YAAMC,IAAU,gBAAgBF,CAAO;AAEvC,UAAI,CAACE;AACH,cAAM,IAAI,MAAM,wCAAwC;AAG1D,YAAMpqB,IAAMgmB,QAAM,QAAQ+D,GAAMK,CAAO;AAEvC,OAAG,CAACpqB,KAAO+pB,EAAK/pB,CAAG,MAAM,UAAamqB,MAAa,MAASA,MAAa,UAAaJ,EAAK/pB,CAAG,MAAM,QAClG+pB,EAAK/pB,KAAOkqB,CAAO,IAAI,eAAeD,CAAM;AAAA,IAE/C;AAED,UAAMI,IAAa,CAAC/B,GAAS6B,MAC3BnE,QAAM,QAAQsC,GAAS,CAAC2B,GAAQC,MAAYF,EAAUC,GAAQC,GAASC,CAAQ,CAAC;AAElF,WAAInE,QAAM,cAAcoD,CAAM,KAAKA,aAAkB,KAAK,cACxDiB,EAAWjB,GAAQS,CAAc,IACzB7D,QAAM,SAASoD,CAAM,MAAMA,IAASA,EAAO,WAAW,CAAC,kBAAkBA,CAAM,IACvFiB,EAAW,aAAajB,CAAM,GAAGS,CAAc,IAE/CT,KAAU,QAAQY,EAAUH,GAAgBT,GAAQU,CAAO,GAGtD;AAAA,EACR;AAAA,EAED,IAAIV,GAAQ1rB,GAAQ;AAGlB,QAFA0rB,IAAS,gBAAgBA,CAAM,GAE3BA,GAAQ;AACV,YAAMppB,IAAMgmB,QAAM,QAAQ,MAAMoD,CAAM;AAEtC,UAAIppB,GAAK;AACP,cAAMC,IAAQ,KAAKD,CAAG;AAEtB,YAAI,CAACtC;AACH,iBAAOuC;AAGT,YAAIvC,MAAW;AACb,iBAAO,YAAYuC,CAAK;AAG1B,YAAI+lB,QAAM,WAAWtoB,CAAM;AACzB,iBAAOA,EAAO,KAAK,MAAMuC,GAAOD,CAAG;AAGrC,YAAIgmB,QAAM,SAAStoB,CAAM;AACvB,iBAAOA,EAAO,KAAKuC,CAAK;AAG1B,cAAM,IAAI,UAAU,wCAAwC;AAAA,MAC7D;AAAA,IACF;AAAA,EACF;AAAA,EAED,IAAImpB,GAAQxV,GAAS;AAGnB,QAFAwV,IAAS,gBAAgBA,CAAM,GAE3BA,GAAQ;AACV,YAAMppB,IAAMgmB,QAAM,QAAQ,MAAMoD,CAAM;AAEtC,aAAO,CAAC,EAAEppB,KAAO,KAAKA,CAAG,MAAM,WAAc,CAAC4T,KAAW,iBAAiB,MAAM,KAAK5T,CAAG,GAAGA,GAAK4T,CAAO;AAAA,IACxG;AAED,WAAO;AAAA,EACR;AAAA,EAED,OAAOwV,GAAQxV,GAAS;AACtB,UAAMmW,IAAO;AACb,QAAIO,IAAU;AAEd,aAASC,EAAaL,GAAS;AAG7B,UAFAA,IAAU,gBAAgBA,CAAO,GAE7BA,GAAS;AACX,cAAMlqB,IAAMgmB,QAAM,QAAQ+D,GAAMG,CAAO;AAEvC,QAAIlqB,MAAQ,CAAC4T,KAAW,iBAAiBmW,GAAMA,EAAK/pB,CAAG,GAAGA,GAAK4T,CAAO,OACpE,OAAOmW,EAAK/pB,CAAG,GAEfsqB,IAAU;AAAA,MAEb;AAAA,IACF;AAED,WAAItE,QAAM,QAAQoD,CAAM,IACtBA,EAAO,QAAQmB,CAAY,IAE3BA,EAAanB,CAAM,GAGdkB;AAAA,EACR;AAAA,EAED,MAAM1W,GAAS;AACb,UAAMiH,IAAO,OAAO,KAAK,IAAI;AAC7B,QAAI7f,IAAI6f,EAAK,QACTyP,IAAU;AAEd,WAAOtvB,OAAK;AACV,YAAMgF,IAAM6a,EAAK7f,CAAC;AAClB,OAAG,CAAC4Y,KAAW,iBAAiB,MAAM,KAAK5T,CAAG,GAAGA,GAAK4T,GAAS,EAAI,OACjE,OAAO,KAAK5T,CAAG,GACfsqB,IAAU;AAAA,IAEb;AAED,WAAOA;AAAA,EACR;AAAA,EAED,UAAUviB,GAAQ;AAChB,UAAMgiB,IAAO,MACPzB,IAAU,CAAA;AAEhBtC,mBAAM,QAAQ,MAAM,CAAC/lB,GAAOmpB,MAAW;AACrC,YAAMppB,IAAMgmB,QAAM,QAAQsC,GAASc,CAAM;AAEzC,UAAIppB,GAAK;AACP,QAAA+pB,EAAK/pB,CAAG,IAAI,eAAeC,CAAK,GAChC,OAAO8pB,EAAKX,CAAM;AAClB;AAAA,MACD;AAED,YAAMoB,IAAaziB,IAAS,aAAaqhB,CAAM,IAAI,OAAOA,CAAM,EAAE;AAElE,MAAIoB,MAAepB,KACjB,OAAOW,EAAKX,CAAM,GAGpBW,EAAKS,CAAU,IAAI,eAAevqB,CAAK,GAEvCqoB,EAAQkC,CAAU,IAAI;AAAA,IAC5B,CAAK,GAEM;AAAA,EACR;AAAA,EAED,UAAUC,GAAS;AACjB,WAAO,KAAK,YAAY,OAAO,MAAM,GAAGA,CAAO;AAAA,EAChD;AAAA,EAED,OAAOC,GAAW;AAChB,UAAMjjB,IAAM,uBAAO,OAAO,IAAI;AAE9Bue,mBAAM,QAAQ,MAAM,CAAC/lB,GAAOmpB,MAAW;AACrC,MAAAnpB,KAAS,QAAQA,MAAU,OAAUwH,EAAI2hB,CAAM,IAAIsB,KAAa1E,QAAM,QAAQ/lB,CAAK,IAAIA,EAAM,KAAK,IAAI,IAAIA;AAAA,IAChH,CAAK,GAEMwH;AAAA,EACR;AAAA,EAED,CAAC,OAAO,QAAQ,IAAI;AAClB,WAAO,OAAO,QAAQ,KAAK,OAAQ,CAAA,EAAE,OAAO,QAAQ;EACrD;AAAA,EAED,WAAW;AACT,WAAO,OAAO,QAAQ,KAAK,OAAQ,CAAA,EAAE,IAAI,CAAC,CAAC2hB,GAAQnpB,CAAK,MAAMmpB,IAAS,OAAOnpB,CAAK,EAAE,KAAK;AAAA,CAAI;AAAA,EAC/F;AAAA,EAED,KAAK,OAAO,WAAW,IAAI;AACzB,WAAO;AAAA,EACR;AAAA,EAED,OAAO,KAAKwa,GAAO;AACjB,WAAOA,aAAiB,OAAOA,IAAQ,IAAI,KAAKA,CAAK;AAAA,EACtD;AAAA,EAED,OAAO,OAAOkJ,MAAU8G,GAAS;AAC/B,UAAME,IAAW,IAAI,KAAKhH,CAAK;AAE/B,WAAA8G,EAAQ,QAAQ,CAAClR,MAAWoR,EAAS,IAAIpR,CAAM,CAAC,GAEzCoR;AAAA,EACR;AAAA,EAED,OAAO,SAASvB,GAAQ;AAKtB,UAAMwB,KAJY,KAAK,UAAU,IAAK,KAAK,UAAU,IAAI;AAAA,MACvD,WAAW,CAAE;AAAA,IACnB,GAEgC,WACtBlQ,IAAY,KAAK;AAEvB,aAASmQ,EAAeX,GAAS;AAC/B,YAAME,IAAU,gBAAgBF,CAAO;AAEvC,MAAKU,EAAUR,CAAO,MACpB,eAAe1P,GAAWwP,CAAO,GACjCU,EAAUR,CAAO,IAAI;AAAA,IAExB;AAEDpE,mBAAM,QAAQoD,CAAM,IAAIA,EAAO,QAAQyB,CAAc,IAAIA,EAAezB,CAAM,GAEvE;AAAA,EACR;AACH;AAEA,aAAa,SAAS,CAAC,gBAAgB,kBAAkB,UAAU,mBAAmB,cAAc,eAAe,CAAC;AAGpHpD,QAAM,kBAAkB,aAAa,WAAW,CAAC,EAAC,OAAA/lB,EAAK,GAAGD,MAAQ;AAChE,MAAI8qB,IAAS9qB,EAAI,CAAC,EAAE,YAAW,IAAKA,EAAI,MAAM,CAAC;AAC/C,SAAO;AAAA,IACL,KAAK,MAAMC;AAAA,IACX,IAAI8qB,GAAa;AACf,WAAKD,CAAM,IAAIC;AAAA,IAChB;AAAA,EACF;AACH,CAAC;AAED/E,QAAM,cAAc,YAAY;AAEhC,MAAA,iBAAe;AC3RA,SAAS,cAAcgF,GAAKjF,GAAU;AACnD,QAAM/hB,IAAS,QAAQgN,YACjB+J,IAAUgL,KAAY/hB,GACtBskB,IAAU2C,eAAa,KAAKlQ,EAAQ,OAAO;AACjD,MAAI5c,IAAO4c,EAAQ;AAEnBiL,iBAAM,QAAQgF,GAAK,SAAmBtqB,GAAI;AACxC,IAAAvC,IAAOuC,EAAG,KAAKsD,GAAQ7F,GAAMmqB,EAAQ,UAAS,GAAIvC,IAAWA,EAAS,SAAS,MAAS;AAAA,EAC5F,CAAG,GAEDuC,EAAQ,UAAS,GAEVnqB;AACT;ACzBe,SAAS,SAAS8B,GAAO;AACtC,SAAO,CAAC,EAAEA,KAASA,EAAM;AAC3B;ACUA,SAAS,cAAcV,GAASyE,GAAQ8hB,GAAS;AAE/C,aAAW,KAAK,MAAMvmB,KAAkB,YAAsB,WAAW,cAAcyE,GAAQ8hB,CAAO,GACtG,KAAK,OAAO;AACd;AAEAE,QAAM,SAAS,eAAe,YAAY;AAAA,EACxC,YAAY;AACd,CAAC;ACTc,SAAS,OAAOkF,GAASC,GAAQpF,GAAU;AACxD,QAAMqF,IAAiBrF,EAAS,OAAO;AACvC,EAAI,CAACA,EAAS,UAAU,CAACqF,KAAkBA,EAAerF,EAAS,MAAM,IACvEmF,EAAQnF,CAAQ,IAEhBoF,EAAO,IAAI;AAAA,IACT,qCAAqCpF,EAAS;AAAA,IAC9C,CAAC,WAAW,iBAAiB,WAAW,gBAAgB,EAAE,KAAK,MAAMA,EAAS,SAAS,GAAG,IAAI,CAAC;AAAA,IAC/FA,EAAS;AAAA,IACTA,EAAS;AAAA,IACTA;AAAA,EACN,CAAK;AAEL;ACvBA,MAAe,UAAA,SAAS;AAAA;AAAA,EAGtB;AAAA,IACE,MAAMlmB,GAAMI,GAAOorB,GAASlF,GAAMmF,GAAQC,GAAQ;AAChD,YAAMC,IAAS,CAAC3rB,IAAO,MAAM,mBAAmBI,CAAK,CAAC;AAEtD+lB,cAAM,SAASqF,CAAO,KAAKG,EAAO,KAAK,aAAa,IAAI,KAAKH,CAAO,EAAE,YAAa,CAAA,GAEnFrF,QAAM,SAASG,CAAI,KAAKqF,EAAO,KAAK,UAAUrF,CAAI,GAElDH,QAAM,SAASsF,CAAM,KAAKE,EAAO,KAAK,YAAYF,CAAM,GAExDC,MAAW,MAAQC,EAAO,KAAK,QAAQ,GAEvC,SAAS,SAASA,EAAO,KAAK,IAAI;AAAA,IACnC;AAAA,IAED,KAAK3rB,GAAM;AACT,YAAMxD,IAAQ,SAAS,OAAO,MAAM,IAAI,OAAO,eAAewD,IAAO,WAAW,CAAC;AACjF,aAAQxD,IAAQ,mBAAmBA,EAAM,CAAC,CAAC,IAAI;AAAA,IAChD;AAAA,IAED,OAAOwD,GAAM;AACX,WAAK,MAAMA,GAAM,IAAI,KAAK,IAAG,IAAK,KAAQ;AAAA,IAC3C;AAAA,EACF;AAAA;AAAA;AAAA,EAKD;AAAA,IACE,QAAQ;AAAA,IAAE;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACR;AAAA,IACD,SAAS;AAAA,IAAE;AAAA,EACZ;AAAA;AC/BY,SAAS,cAAcwnB,GAAK;AAIzC,SAAO,8BAA8B,KAAKA,CAAG;AAC/C;ACJe,SAAS,YAAYoE,GAASC,GAAa;AACxD,SAAOA,IACHD,EAAQ,QAAQ,UAAU,EAAE,IAAI,MAAMC,EAAY,QAAQ,QAAQ,EAAE,IACpED;AACN;ACCe,SAAS,cAAcA,GAASE,GAAc;AAC3D,SAAIF,KAAW,CAAC,cAAcE,CAAY,IACjC,YAAYF,GAASE,CAAY,IAEnCA;AACT;ACfA,MAAe,kBAAA,SAAS;AAAA;AAAA;AAAA,EAIrB,WAA8B;AAC7B,UAAMC,IAAO,kBAAkB,KAAK,UAAU,SAAS,GACjDC,IAAiB,SAAS,cAAc,GAAG;AACjD,QAAIC;AAQJ,aAASC,EAAW1E,GAAK;AACvB,UAAI2E,IAAO3E;AAEX,aAAIuE,MAEFC,EAAe,aAAa,QAAQG,CAAI,GACxCA,IAAOH,EAAe,OAGxBA,EAAe,aAAa,QAAQG,CAAI,GAGjC;AAAA,QACL,MAAMH,EAAe;AAAA,QACrB,UAAUA,EAAe,WAAWA,EAAe,SAAS,QAAQ,MAAM,EAAE,IAAI;AAAA,QAChF,MAAMA,EAAe;AAAA,QACrB,QAAQA,EAAe,SAASA,EAAe,OAAO,QAAQ,OAAO,EAAE,IAAI;AAAA,QAC3E,MAAMA,EAAe,OAAOA,EAAe,KAAK,QAAQ,MAAM,EAAE,IAAI;AAAA,QACpE,UAAUA,EAAe;AAAA,QACzB,MAAMA,EAAe;AAAA,QACrB,UAAWA,EAAe,SAAS,OAAO,CAAC,MAAM,MAC/CA,EAAe,WACf,MAAMA,EAAe;AAAA,MAC/B;AAAA,IACK;AAED,WAAAC,IAAYC,EAAW,OAAO,SAAS,IAAI,GAQpC,SAAyBE,GAAY;AAC1C,YAAMjK,IAAUgE,QAAM,SAASiG,CAAU,IAAKF,EAAWE,CAAU,IAAIA;AACvE,aAAQjK,EAAO,aAAa8J,EAAU,YAClC9J,EAAO,SAAS8J,EAAU;AAAA,IACpC;AAAA,EACA,EAAM;AAAA;AAAA;AAAA,EAGH,2BAAiC;AAChC,WAAO,WAA2B;AAChC,aAAO;AAAA,IACb;AAAA,EACA,EAAM;AAAA;AChES,SAAS,cAAczE,GAAK;AACzC,QAAMhrB,IAAQ,4BAA4B,KAAKgrB,CAAG;AAClD,SAAOhrB,KAASA,EAAM,CAAC,KAAK;AAC9B;ACGA,SAAS,YAAY6vB,GAAcjI,GAAK;AACtC,EAAAiI,IAAeA,KAAgB;AAC/B,QAAM/I,IAAQ,IAAI,MAAM+I,CAAY,GAC9BC,IAAa,IAAI,MAAMD,CAAY;AACzC,MAAIE,IAAO,GACPC,IAAO,GACPC;AAEJ,SAAArI,IAAMA,MAAQ,SAAYA,IAAM,KAEzB,SAAcsI,GAAa;AAChC,UAAMpjB,IAAM,KAAK,OAEXqjB,IAAYL,EAAWE,CAAI;AAEjC,IAAKC,MACHA,IAAgBnjB,IAGlBga,EAAMiJ,CAAI,IAAIG,GACdJ,EAAWC,CAAI,IAAIjjB;AAEnB,QAAInO,IAAIqxB,GACJI,IAAa;AAEjB,WAAOzxB,MAAMoxB;AACX,MAAAK,KAActJ,EAAMnoB,GAAG,GACvBA,IAAIA,IAAIkxB;AASV,QANAE,KAAQA,IAAO,KAAKF,GAEhBE,MAASC,MACXA,KAAQA,IAAO,KAAKH,IAGlB/iB,IAAMmjB,IAAgBrI;AACxB;AAGF,UAAMyI,IAASF,KAAarjB,IAAMqjB;AAElC,WAAOE,IAAS,KAAK,MAAMD,IAAa,MAAOC,CAAM,IAAI;AAAA,EAC7D;AACA;ACpCA,SAAS,qBAAqBC,GAAUC,GAAkB;AACxD,MAAIC,IAAgB;AACpB,QAAMC,IAAe,YAAY,IAAI,GAAG;AAExC,SAAO,CAAA1rB,MAAK;AACV,UAAM2rB,IAAS3rB,EAAE,QACX8X,IAAQ9X,EAAE,mBAAmBA,EAAE,QAAQ,QACvC4rB,IAAgBD,IAASF,GACzBI,IAAOH,EAAaE,CAAa,GACjCE,IAAUH,KAAU7T;AAE1B,IAAA2T,IAAgBE;AAEhB,UAAM5uB,IAAO;AAAA,MACX,QAAA4uB;AAAA,MACA,OAAA7T;AAAA,MACA,UAAUA,IAAS6T,IAAS7T,IAAS;AAAA,MACrC,OAAO8T;AAAA,MACP,MAAMC,KAAc;AAAA,MACpB,WAAWA,KAAQ/T,KAASgU,KAAWhU,IAAQ6T,KAAUE,IAAO;AAAA,MAChE,OAAO7rB;AAAA,IACb;AAEI,IAAAjD,EAAKyuB,IAAmB,aAAa,QAAQ,IAAI,IAEjDD,EAASxuB,CAAI;AAAA,EACjB;AACA;AAEA,MAAM,wBAAwB,OAAO,iBAAmB,KAExD,aAAe,yBAAyB,SAAU6F,GAAQ;AACxD,SAAO,IAAI,QAAQ,SAA4BknB,GAASC,GAAQ;AAC9D,QAAIgC,IAAcnpB,EAAO;AACzB,UAAMopB,IAAiBnC,eAAa,KAAKjnB,EAAO,OAAO,EAAE;AACzD,QAAI,EAAC,cAAAqpB,GAAc,eAAAC,EAAa,IAAItpB,GAChCupB;AACJ,aAASC,IAAO;AACd,MAAIxpB,EAAO,eACTA,EAAO,YAAY,YAAYupB,CAAU,GAGvCvpB,EAAO,UACTA,EAAO,OAAO,oBAAoB,SAASupB,CAAU;AAAA,IAExD;AAED,QAAIhF;AAEJ,QAAIvC,QAAM,WAAWmH,CAAW;AAC9B,UAAI,SAAS,yBAAyB,SAAS;AAC7C,QAAAC,EAAe,eAAe,EAAK;AAAA,gBACzB7E,IAAc6E,EAAe,eAAc,OAAQ,IAAO;AAEpE,cAAM,CAACruB,GAAM,GAAG2S,CAAM,IAAI6W,IAAcA,EAAY,MAAM,GAAG,EAAE,IAAI,CAAA5e,MAASA,EAAM,KAAI,CAAE,EAAE,OAAO,OAAO,IAAI;AAC5G,QAAAyjB,EAAe,eAAe,CAACruB,KAAQ,uBAAuB,GAAG2S,CAAM,EAAE,KAAK,IAAI,CAAC;AAAA,MACpF;AAAA;AAGH,QAAIoU,IAAU,IAAI;AAGlB,QAAI9hB,EAAO,MAAM;AACf,YAAMypB,IAAWzpB,EAAO,KAAK,YAAY,IACnC0pB,IAAW1pB,EAAO,KAAK,WAAW,SAAS,mBAAmBA,EAAO,KAAK,QAAQ,CAAC,IAAI;AAC7F,MAAAopB,EAAe,IAAI,iBAAiB,WAAW,KAAKK,IAAW,MAAMC,CAAQ,CAAC;AAAA,IAC/E;AAED,UAAMC,IAAW,cAAc3pB,EAAO,SAASA,EAAO,GAAG;AAEzD,IAAA8hB,EAAQ,KAAK9hB,EAAO,OAAO,YAAa,GAAE,SAAS2pB,GAAU3pB,EAAO,QAAQA,EAAO,gBAAgB,GAAG,EAAI,GAG1G8hB,EAAQ,UAAU9hB,EAAO;AAEzB,aAAS4pB,IAAY;AACnB,UAAI,CAAC9H;AACH;AAGF,YAAM+H,IAAkB5C,eAAa;AAAA,QACnC,2BAA2BnF,KAAWA,EAAQ,sBAAuB;AAAA,MAC7E,GAGYC,IAAW;AAAA,QACf,MAHmB,CAACsH,KAAgBA,MAAiB,UAAUA,MAAiB,SAChFvH,EAAQ,eAAeA,EAAQ;AAAA,QAG/B,QAAQA,EAAQ;AAAA,QAChB,YAAYA,EAAQ;AAAA,QACpB,SAAS+H;AAAA,QACT,QAAA7pB;AAAA,QACA,SAAA8hB;AAAA,MACR;AAEM,aAAO,SAAkB7lB,GAAO;AAC9B,QAAAirB,EAAQjrB,CAAK,GACbutB;MACR,GAAS,SAAiBM,GAAK;AACvB,QAAA3C,EAAO2C,CAAG,GACVN;MACD,GAAEzH,CAAQ,GAGXD,IAAU;AAAA,IACX;AAmED,QAjEI,eAAeA,IAEjBA,EAAQ,YAAY8H,IAGpB9H,EAAQ,qBAAqB,WAAsB;AACjD,MAAI,CAACA,KAAWA,EAAQ,eAAe,KAQnCA,EAAQ,WAAW,KAAK,EAAEA,EAAQ,eAAeA,EAAQ,YAAY,QAAQ,OAAO,MAAM,MAK9F,WAAW8H,CAAS;AAAA,IAC5B,GAII9H,EAAQ,UAAU,WAAuB;AACvC,MAAKA,MAILqF,EAAO,IAAI,WAAW,mBAAmB,WAAW,cAAcnnB,GAAQ8hB,CAAO,CAAC,GAGlFA,IAAU;AAAA,IAChB,GAGIA,EAAQ,UAAU,WAAuB;AAGvC,MAAAqF,EAAO,IAAI,WAAW,iBAAiB,WAAW,aAAannB,GAAQ8hB,CAAO,CAAC,GAG/EA,IAAU;AAAA,IAChB,GAGIA,EAAQ,YAAY,WAAyB;AAC3C,UAAIiI,IAAsB/pB,EAAO,UAAU,gBAAgBA,EAAO,UAAU,gBAAgB;AAC5F,YAAM4kB,IAAe5kB,EAAO,gBAAgB;AAC5C,MAAIA,EAAO,wBACT+pB,IAAsB/pB,EAAO,sBAE/BmnB,EAAO,IAAI;AAAA,QACT4C;AAAA,QACAnF,EAAa,sBAAsB,WAAW,YAAY,WAAW;AAAA,QACrE5kB;AAAA,QACA8hB;AAAA,MAAO,CAAC,GAGVA,IAAU;AAAA,IAChB,GAKO,SAAS,0BACVwH,KAAiBtH,QAAM,WAAWsH,CAAa,MAAMA,IAAgBA,EAActpB,CAAM,IAErFspB,KAAkBA,MAAkB,MAAS,gBAAgBK,CAAQ,IAAI;AAE3E,YAAMK,IAAYhqB,EAAO,kBAAkBA,EAAO,kBAAkB,QAAQ,KAAKA,EAAO,cAAc;AAEtG,MAAIgqB,KACFZ,EAAe,IAAIppB,EAAO,gBAAgBgqB,CAAS;AAAA,IAEtD;AAIH,IAAAb,MAAgB,UAAaC,EAAe,eAAe,IAAI,GAG3D,sBAAsBtH,KACxBE,QAAM,QAAQoH,EAAe,OAAQ,GAAE,SAA0BnrB,GAAKjC,GAAK;AACzE,MAAA8lB,EAAQ,iBAAiB9lB,GAAKiC,CAAG;AAAA,IACzC,CAAO,GAIE+jB,QAAM,YAAYhiB,EAAO,eAAe,MAC3C8hB,EAAQ,kBAAkB,CAAC,CAAC9hB,EAAO,kBAIjCqpB,KAAgBA,MAAiB,WACnCvH,EAAQ,eAAe9hB,EAAO,eAI5B,OAAOA,EAAO,sBAAuB,cACvC8hB,EAAQ,iBAAiB,YAAY,qBAAqB9hB,EAAO,oBAAoB,EAAI,CAAC,GAIxF,OAAOA,EAAO,oBAAqB,cAAc8hB,EAAQ,UAC3DA,EAAQ,OAAO,iBAAiB,YAAY,qBAAqB9hB,EAAO,gBAAgB,CAAC,IAGvFA,EAAO,eAAeA,EAAO,YAG/BupB,IAAa,CAAAU,MAAU;AACrB,MAAKnI,MAGLqF,EAAO,CAAC8C,KAAUA,EAAO,OAAO,IAAI,cAAc,MAAMjqB,GAAQ8hB,CAAO,IAAImI,CAAM,GACjFnI,EAAQ,MAAK,GACbA,IAAU;AAAA,IAClB,GAEM9hB,EAAO,eAAeA,EAAO,YAAY,UAAUupB,CAAU,GACzDvpB,EAAO,WACTA,EAAO,OAAO,UAAUupB,EAAY,IAAGvpB,EAAO,OAAO,iBAAiB,SAASupB,CAAU;AAI7F,UAAMW,IAAW,cAAcP,CAAQ;AAEvC,QAAIO,KAAY,SAAS,UAAU,QAAQA,CAAQ,MAAM,IAAI;AAC3D,MAAA/C,EAAO,IAAI,WAAW,0BAA0B+C,IAAW,KAAK,WAAW,iBAAiBlqB,CAAM,CAAC;AACnG;AAAA,IACD;AAID,IAAA8hB,EAAQ,KAAKqH,KAAe,IAAI;AAAA,EACpC,CAAG;AACH,GC9PM,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,KAAK;AACP;AAEAnH,QAAM,QAAQ,eAAe,CAACtlB,GAAIT,MAAU;AAC1C,MAAIS,GAAI;AACN,QAAI;AACF,aAAO,eAAeA,GAAI,QAAQ,EAAC,OAAAT,EAAK,CAAC;AAAA,IAC1C,QAAW;AAAA,IAEX;AACD,WAAO,eAAeS,GAAI,eAAe,EAAC,OAAAT,EAAK,CAAC;AAAA,EACjD;AACH,CAAC;AAED,MAAM,eAAe,CAACkuB,MAAW,KAAKA,CAAM,IAEtC,mBAAmB,CAACC,MAAYpI,QAAM,WAAWoI,CAAO,KAAKA,MAAY,QAAQA,MAAY,IAEpF,WAAA;AAAA,EACb,YAAY,CAACC,MAAa;AACxB,IAAAA,IAAWrI,QAAM,QAAQqI,CAAQ,IAAIA,IAAW,CAACA,CAAQ;AAEzD,UAAM,EAAC,QAAArkB,EAAM,IAAIqkB;AACjB,QAAIC,GACAF;AAEJ,UAAMG,IAAkB,CAAA;AAExB,aAASvzB,IAAI,GAAGA,IAAIgP,GAAQhP,KAAK;AAC/B,MAAAszB,IAAgBD,EAASrzB,CAAC;AAC1B,UAAI2sB;AAIJ,UAFAyG,IAAUE,GAEN,CAAC,iBAAiBA,CAAa,MACjCF,IAAU,eAAezG,IAAK,OAAO2G,CAAa,GAAG,YAAW,CAAE,GAE9DF,MAAY;AACd,cAAM,IAAI,WAAW,oBAAoBzG,CAAE,GAAG;AAIlD,UAAIyG;AACF;AAGF,MAAAG,EAAgB5G,KAAM,MAAM3sB,CAAC,IAAIozB;AAAA,IAClC;AAED,QAAI,CAACA,GAAS;AAEZ,YAAMI,IAAU,OAAO,QAAQD,CAAe,EAC3C;AAAA,QAAI,CAAC,CAAC5G,GAAI8G,CAAK,MAAM,WAAW9G,CAAE,OAChC8G,MAAU,KAAQ,wCAAwC;AAAA,MACrE;AAEM,UAAIxjB,IAAIjB,IACLwkB,EAAQ,SAAS,IAAI;AAAA,IAAcA,EAAQ,IAAI,YAAY,EAAE,KAAK;AAAA,CAAI,IAAI,MAAM,aAAaA,EAAQ,CAAC,CAAC,IACxG;AAEF,YAAM,IAAI;AAAA,QACR,0DAA0DvjB;AAAA,QAC1D;AAAA,MACR;AAAA,IACK;AAED,WAAOmjB;AAAA,EACR;AAAA,EACD,UAAU;AACZ;AC5DA,SAAS,6BAA6BpqB,GAAQ;AAK5C,MAJIA,EAAO,eACTA,EAAO,YAAY,oBAGjBA,EAAO,UAAUA,EAAO,OAAO;AACjC,UAAM,IAAI,cAAc,MAAMA,CAAM;AAExC;AASe,SAAS,gBAAgBA,GAAQ;AAC9C,sCAA6BA,CAAM,GAEnCA,EAAO,UAAUinB,eAAa,KAAKjnB,EAAO,OAAO,GAGjDA,EAAO,OAAO,cAAc;AAAA,IAC1BA;AAAA,IACAA,EAAO;AAAA,EACX,GAEM,CAAC,QAAQ,OAAO,OAAO,EAAE,QAAQA,EAAO,MAAM,MAAM,MACtDA,EAAO,QAAQ,eAAe,qCAAqC,EAAK,GAG1D,SAAS,WAAWA,EAAO,WAAWgN,WAAS,OAAO,EAEvDhN,CAAM,EAAE,KAAK,SAA6B+hB,GAAU;AACjE,wCAA6B/hB,CAAM,GAGnC+hB,EAAS,OAAO,cAAc;AAAA,MAC5B/hB;AAAA,MACAA,EAAO;AAAA,MACP+hB;AAAA,IACN,GAEIA,EAAS,UAAUkF,eAAa,KAAKlF,EAAS,OAAO,GAE9CA;AAAA,EACX,GAAK,SAA4BoI,GAAQ;AACrC,WAAK,SAASA,CAAM,MAClB,6BAA6BnqB,CAAM,GAG/BmqB,KAAUA,EAAO,aACnBA,EAAO,SAAS,OAAO,cAAc;AAAA,MACnCnqB;AAAA,MACAA,EAAO;AAAA,MACPmqB,EAAO;AAAA,IACjB,GACQA,EAAO,SAAS,UAAUlD,eAAa,KAAKkD,EAAO,SAAS,OAAO,KAIhE,QAAQ,OAAOA,CAAM;AAAA,EAChC,CAAG;AACH;AC3EA,MAAM,kBAAkB,CAAC1T,MAAUA,aAAiBwQ,iBAAexQ,EAAM,OAAQ,IAAGA;AAWrE,SAAS,YAAYiU,GAASC,GAAS;AAEpD,EAAAA,IAAUA,KAAW;AACrB,QAAM3qB,IAAS,CAAA;AAEf,WAAS4qB,EAAerV,GAAQC,GAAQwB,GAAU;AAChD,WAAIgL,QAAM,cAAczM,CAAM,KAAKyM,QAAM,cAAcxM,CAAM,IACpDwM,QAAM,MAAM,KAAK,EAAC,UAAAhL,EAAQ,GAAGzB,GAAQC,CAAM,IACzCwM,QAAM,cAAcxM,CAAM,IAC5BwM,QAAM,MAAM,CAAE,GAAExM,CAAM,IACpBwM,QAAM,QAAQxM,CAAM,IACtBA,EAAO,UAETA;AAAA,EACR;AAGD,WAASqV,EAAoBrnB,GAAG5B,GAAGoV,GAAU;AAC3C,QAAKgL,QAAM,YAAYpgB,CAAC;AAEjB,UAAI,CAACogB,QAAM,YAAYxe,CAAC;AAC7B,eAAOonB,EAAe,QAAWpnB,GAAGwT,CAAQ;AAAA;AAF5C,aAAO4T,EAAepnB,GAAG5B,GAAGoV,CAAQ;AAAA,EAIvC;AAGD,WAAS8T,EAAiBtnB,GAAG5B,GAAG;AAC9B,QAAI,CAACogB,QAAM,YAAYpgB,CAAC;AACtB,aAAOgpB,EAAe,QAAWhpB,CAAC;AAAA,EAErC;AAGD,WAASmpB,EAAiBvnB,GAAG5B,GAAG;AAC9B,QAAKogB,QAAM,YAAYpgB,CAAC;AAEjB,UAAI,CAACogB,QAAM,YAAYxe,CAAC;AAC7B,eAAOonB,EAAe,QAAWpnB,CAAC;AAAA;AAFlC,aAAOonB,EAAe,QAAWhpB,CAAC;AAAA,EAIrC;AAGD,WAASopB,EAAgBxnB,GAAG5B,GAAGhI,GAAM;AACnC,QAAIA,KAAQ+wB;AACV,aAAOC,EAAepnB,GAAG5B,CAAC;AACrB,QAAIhI,KAAQ8wB;AACjB,aAAOE,EAAe,QAAWpnB,CAAC;AAAA,EAErC;AAED,QAAMynB,IAAW;AAAA,IACf,KAAKH;AAAA,IACL,QAAQA;AAAA,IACR,MAAMA;AAAA,IACN,SAASC;AAAA,IACT,kBAAkBA;AAAA,IAClB,mBAAmBA;AAAA,IACnB,kBAAkBA;AAAA,IAClB,SAASA;AAAA,IACT,gBAAgBA;AAAA,IAChB,iBAAiBA;AAAA,IACjB,eAAeA;AAAA,IACf,SAASA;AAAA,IACT,cAAcA;AAAA,IACd,gBAAgBA;AAAA,IAChB,gBAAgBA;AAAA,IAChB,kBAAkBA;AAAA,IAClB,oBAAoBA;AAAA,IACpB,YAAYA;AAAA,IACZ,kBAAkBA;AAAA,IAClB,eAAeA;AAAA,IACf,gBAAgBA;AAAA,IAChB,WAAWA;AAAA,IACX,WAAWA;AAAA,IACX,YAAYA;AAAA,IACZ,aAAaA;AAAA,IACb,YAAYA;AAAA,IACZ,kBAAkBA;AAAA,IAClB,gBAAgBC;AAAA,IAChB,SAAS,CAACxnB,GAAG5B,MAAMipB,EAAoB,gBAAgBrnB,CAAC,GAAG,gBAAgB5B,CAAC,GAAG,EAAI;AAAA,EACvF;AAEEogB,iBAAM,QAAQ,OAAO,KAAK,OAAO,OAAO,IAAI0I,GAASC,CAAO,CAAC,GAAG,SAA4B/wB,GAAM;AAChG,UAAMsxB,IAAQD,EAASrxB,CAAI,KAAKixB,GAC1BM,IAAcD,EAAMR,EAAQ9wB,CAAI,GAAG+wB,EAAQ/wB,CAAI,GAAGA,CAAI;AAC5D,IAACooB,QAAM,YAAYmJ,CAAW,KAAKD,MAAUF,MAAqBhrB,EAAOpG,CAAI,IAAIuxB;AAAA,EACrF,CAAG,GAEMnrB;AACT;ACzGO,MAAM,UAAU,SCKjBorB,eAAa,CAAA;AAGnB,CAAC,UAAU,WAAW,UAAU,YAAY,UAAU,QAAQ,EAAE,QAAQ,CAACrwB,GAAM/D,MAAM;AACnFo0B,eAAWrwB,CAAI,IAAI,SAAmB0b,GAAO;AAC3C,WAAO,OAAOA,MAAU1b,KAAQ,OAAO/D,IAAI,IAAI,OAAO,OAAO+D;AAAA,EACjE;AACA,CAAC;AAED,MAAM,qBAAqB,CAAA;AAW3BqwB,aAAW,eAAe,SAAsBC,GAAW3zB,GAAS6D,GAAS;AAC3E,WAAS+vB,EAAcC,GAAKC,GAAM;AAChC,WAAO,aAAa,UAAU,4BAA6BD,IAAM,MAAOC,KAAQjwB,IAAU,OAAOA,IAAU;AAAA,EAC5G;AAGD,SAAO,CAACU,GAAOsvB,GAAKE,MAAS;AAC3B,QAAIJ,MAAc;AAChB,YAAM,IAAI;AAAA,QACRC,EAAcC,GAAK,uBAAuB7zB,IAAU,SAASA,IAAU,GAAG;AAAA,QAC1E,WAAW;AAAA,MACnB;AAGI,WAAIA,KAAW,CAAC,mBAAmB6zB,CAAG,MACpC,mBAAmBA,CAAG,IAAI,IAE1B,QAAQ;AAAA,MACND;AAAA,QACEC;AAAA,QACA,iCAAiC7zB,IAAU;AAAA,MAC5C;AAAA,IACT,IAGW2zB,IAAYA,EAAUpvB,GAAOsvB,GAAKE,CAAI,IAAI;AAAA,EACrD;AACA;AAYA,SAAS,cAAc1xB,GAAS2xB,GAAQC,GAAc;AACpD,MAAI,OAAO5xB,KAAY;AACrB,UAAM,IAAI,WAAW,6BAA6B,WAAW,oBAAoB;AAEnF,QAAM8c,IAAO,OAAO,KAAK9c,CAAO;AAChC,MAAI/C,IAAI6f,EAAK;AACb,SAAO7f,MAAM,KAAG;AACd,UAAMu0B,IAAM1U,EAAK7f,CAAC,GACZq0B,IAAYK,EAAOH,CAAG;AAC5B,QAAIF,GAAW;AACb,YAAMpvB,IAAQlC,EAAQwxB,CAAG,GACnB5xB,IAASsC,MAAU,UAAaovB,EAAUpvB,GAAOsvB,GAAKxxB,CAAO;AACnE,UAAIJ,MAAW;AACb,cAAM,IAAI,WAAW,YAAY4xB,IAAM,cAAc5xB,GAAQ,WAAW,oBAAoB;AAE9F;AAAA,IACD;AACD,QAAIgyB,MAAiB;AACnB,YAAM,IAAI,WAAW,oBAAoBJ,GAAK,WAAW,cAAc;AAAA,EAE1E;AACH;AAEA,MAAe,YAAA;AAAA,EACb;AAAA,EACF,YAAEH;AACF,GC/EM,aAAa,UAAU;AAS7B,MAAM,MAAM;AAAA,EACV,YAAYQ,GAAgB;AAC1B,SAAK,WAAWA,GAChB,KAAK,eAAe;AAAA,MAClB,SAAS,IAAIC,qBAAoB;AAAA,MACjC,UAAU,IAAIA,qBAAoB;AAAA,IACxC;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,QAAQC,GAAa9rB,GAAQ;AAG3B,IAAI,OAAO8rB,KAAgB,YACzB9rB,IAASA,KAAU,IACnBA,EAAO,MAAM8rB,KAEb9rB,IAAS8rB,KAAe,IAG1B9rB,IAAS,YAAY,KAAK,UAAUA,CAAM;AAE1C,UAAM,EAAC,cAAA4kB,GAAc,kBAAAmH,GAAkB,SAAAzH,EAAO,IAAItkB;AAElD,IAAI4kB,MAAiB,UACnB,UAAU,cAAcA,GAAc;AAAA,MACpC,mBAAmB,WAAW,aAAa,WAAW,OAAO;AAAA,MAC7D,mBAAmB,WAAW,aAAa,WAAW,OAAO;AAAA,MAC7D,qBAAqB,WAAW,aAAa,WAAW,OAAO;AAAA,IAChE,GAAE,EAAK,GAGNmH,KAAoB,SAClB/J,QAAM,WAAW+J,CAAgB,IACnC/rB,EAAO,mBAAmB;AAAA,MACxB,WAAW+rB;AAAA,IACZ,IAED,UAAU,cAAcA,GAAkB;AAAA,MACxC,QAAQ,WAAW;AAAA,MACnB,WAAW,WAAW;AAAA,IACvB,GAAE,EAAI,IAKX/rB,EAAO,UAAUA,EAAO,UAAU,KAAK,SAAS,UAAU,OAAO;AAGjE,QAAIgsB,IAAiB1H,KAAWtC,QAAM;AAAA,MACpCsC,EAAQ;AAAA,MACRA,EAAQtkB,EAAO,MAAM;AAAA,IAC3B;AAEI,IAAAskB,KAAWtC,QAAM;AAAA,MACf,CAAC,UAAU,OAAO,QAAQ,QAAQ,OAAO,SAAS,QAAQ;AAAA,MAC1D,CAACiD,MAAW;AACV,eAAOX,EAAQW,CAAM;AAAA,MACtB;AAAA,IACP,GAEIjlB,EAAO,UAAUinB,eAAa,OAAO+E,GAAgB1H,CAAO;AAG5D,UAAM2H,IAA0B,CAAA;AAChC,QAAIC,IAAiC;AACrC,SAAK,aAAa,QAAQ,QAAQ,SAAoCC,GAAa;AACjF,MAAI,OAAOA,EAAY,WAAY,cAAcA,EAAY,QAAQnsB,CAAM,MAAM,OAIjFksB,IAAiCA,KAAkCC,EAAY,aAE/EF,EAAwB,QAAQE,EAAY,WAAWA,EAAY,QAAQ;AAAA,IACjF,CAAK;AAED,UAAMC,IAA2B,CAAA;AACjC,SAAK,aAAa,SAAS,QAAQ,SAAkCD,GAAa;AAChF,MAAAC,EAAyB,KAAKD,EAAY,WAAWA,EAAY,QAAQ;AAAA,IAC/E,CAAK;AAED,QAAIE,GACAr1B,IAAI,GACJY;AAEJ,QAAI,CAACs0B,GAAgC;AACnC,YAAMI,IAAQ,CAAC,gBAAgB,KAAK,IAAI,GAAG,MAAS;AAOpD,WANAA,EAAM,QAAQ,MAAMA,GAAOL,CAAuB,GAClDK,EAAM,KAAK,MAAMA,GAAOF,CAAwB,GAChDx0B,IAAM00B,EAAM,QAEZD,IAAU,QAAQ,QAAQrsB,CAAM,GAEzBhJ,IAAIY;AACT,QAAAy0B,IAAUA,EAAQ,KAAKC,EAAMt1B,GAAG,GAAGs1B,EAAMt1B,GAAG,CAAC;AAG/C,aAAOq1B;AAAA,IACR;AAED,IAAAz0B,IAAMq0B,EAAwB;AAE9B,QAAIM,IAAYvsB;AAIhB,SAFAhJ,IAAI,GAEGA,IAAIY,KAAK;AACd,YAAM40B,IAAcP,EAAwBj1B,GAAG,GACzCy1B,IAAaR,EAAwBj1B,GAAG;AAC9C,UAAI;AACF,QAAAu1B,IAAYC,EAAYD,CAAS;AAAA,MAClC,SAAQnrB,GAAO;AACd,QAAAqrB,EAAW,KAAK,MAAMrrB,CAAK;AAC3B;AAAA,MACD;AAAA,IACF;AAED,QAAI;AACF,MAAAirB,IAAU,gBAAgB,KAAK,MAAME,CAAS;AAAA,IAC/C,SAAQnrB,GAAO;AACd,aAAO,QAAQ,OAAOA,CAAK;AAAA,IAC5B;AAKD,SAHApK,IAAI,GACJY,IAAMw0B,EAAyB,QAExBp1B,IAAIY;AACT,MAAAy0B,IAAUA,EAAQ,KAAKD,EAAyBp1B,GAAG,GAAGo1B,EAAyBp1B,GAAG,CAAC;AAGrF,WAAOq1B;AAAA,EACR;AAAA,EAED,OAAOrsB,GAAQ;AACb,IAAAA,IAAS,YAAY,KAAK,UAAUA,CAAM;AAC1C,UAAM2pB,IAAW,cAAc3pB,EAAO,SAASA,EAAO,GAAG;AACzD,WAAO,SAAS2pB,GAAU3pB,EAAO,QAAQA,EAAO,gBAAgB;AAAA,EACjE;AACH;AAGAgiB,QAAM,QAAQ,CAAC,UAAU,OAAO,QAAQ,SAAS,GAAG,SAA6BiD,GAAQ;AAEvF,QAAM,UAAUA,CAAM,IAAI,SAAS5B,GAAKrjB,GAAQ;AAC9C,WAAO,KAAK,QAAQ,YAAYA,KAAU,CAAA,GAAI;AAAA,MAC5C,QAAAilB;AAAA,MACA,KAAA5B;AAAA,MACA,OAAOrjB,KAAU,CAAA,GAAI;AAAA,IACtB,CAAA,CAAC;AAAA,EACN;AACA,CAAC;AAEDgiB,QAAM,QAAQ,CAAC,QAAQ,OAAO,OAAO,GAAG,SAA+BiD,GAAQ;AAG7E,WAASyH,EAAmBC,GAAQ;AAClC,WAAO,SAAoBtJ,GAAKlpB,GAAM6F,GAAQ;AAC5C,aAAO,KAAK,QAAQ,YAAYA,KAAU,CAAA,GAAI;AAAA,QAC5C,QAAAilB;AAAA,QACA,SAAS0H,IAAS;AAAA,UAChB,gBAAgB;AAAA,QAC1B,IAAY,CAAE;AAAA,QACN,KAAAtJ;AAAA,QACA,MAAAlpB;AAAA,MACD,CAAA,CAAC;AAAA,IACR;AAAA,EACG;AAED,QAAM,UAAU8qB,CAAM,IAAIyH,EAAkB,GAE5C,MAAM,UAAUzH,IAAS,MAAM,IAAIyH,EAAmB,EAAI;AAC5D,CAAC;AAED,MAAA,UAAe;AC7Lf,MAAM,YAAY;AAAA,EAChB,YAAYE,GAAU;AACpB,QAAI,OAAOA,KAAa;AACtB,YAAM,IAAI,UAAU,8BAA8B;AAGpD,QAAIC;AAEJ,SAAK,UAAU,IAAI,QAAQ,SAAyB3F,GAAS;AAC3D,MAAA2F,IAAiB3F;AAAA,IACvB,CAAK;AAED,UAAMvhB,IAAQ;AAGd,SAAK,QAAQ,KAAK,CAAAskB,MAAU;AAC1B,UAAI,CAACtkB,EAAM;AAAY;AAEvB,UAAI3O,IAAI2O,EAAM,WAAW;AAEzB,aAAO3O,MAAM;AACX,QAAA2O,EAAM,WAAW3O,CAAC,EAAEizB,CAAM;AAE5B,MAAAtkB,EAAM,aAAa;AAAA,IACzB,CAAK,GAGD,KAAK,QAAQ,OAAO,CAAAmnB,MAAe;AACjC,UAAIC;AAEJ,YAAMV,IAAU,IAAI,QAAQ,CAAAnF,MAAW;AACrC,QAAAvhB,EAAM,UAAUuhB,CAAO,GACvB6F,IAAW7F;AAAA,MACnB,CAAO,EAAE,KAAK4F,CAAW;AAEnB,aAAAT,EAAQ,SAAS,WAAkB;AACjC,QAAA1mB,EAAM,YAAYonB,CAAQ;AAAA,MAClC,GAEaV;AAAA,IACb,GAEIO,EAAS,SAAgBrxB,GAASyE,GAAQ8hB,GAAS;AACjD,MAAInc,EAAM,WAKVA,EAAM,SAAS,IAAI,cAAcpK,GAASyE,GAAQ8hB,CAAO,GACzD+K,EAAelnB,EAAM,MAAM;AAAA,IACjC,CAAK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKD,mBAAmB;AACjB,QAAI,KAAK;AACP,YAAM,KAAK;AAAA,EAEd;AAAA;AAAA;AAAA;AAAA,EAMD,UAAUgjB,GAAU;AAClB,QAAI,KAAK,QAAQ;AACf,MAAAA,EAAS,KAAK,MAAM;AACpB;AAAA,IACD;AAED,IAAI,KAAK,aACP,KAAK,WAAW,KAAKA,CAAQ,IAE7B,KAAK,aAAa,CAACA,CAAQ;AAAA,EAE9B;AAAA;AAAA;AAAA;AAAA,EAMD,YAAYA,GAAU;AACpB,QAAI,CAAC,KAAK;AACR;AAEF,UAAM5lB,IAAQ,KAAK,WAAW,QAAQ4lB,CAAQ;AAC9C,IAAI5lB,MAAU,MACZ,KAAK,WAAW,OAAOA,GAAO,CAAC;AAAA,EAElC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,SAAS;AACd,QAAIknB;AAIJ,WAAO;AAAA,MACL,OAJY,IAAI,YAAY,SAAkB3sB,GAAG;AACjD,QAAA2sB,IAAS3sB;AAAA,MACf,CAAK;AAAA,MAGC,QAAA2sB;AAAA,IACN;AAAA,EACG;AACH;AAEA,MAAA,gBAAe;ACjGA,SAAS,OAAO7mB,GAAU;AACvC,SAAO,SAAclM,GAAK;AACxB,WAAOkM,EAAS,MAAM,MAAMlM,CAAG;AAAA,EACnC;AACA;AChBe,SAAS,aAAa81B,GAAS;AAC5C,SAAOhL,QAAM,SAASgL,CAAO,KAAMA,EAAQ,iBAAiB;AAC9D;ACbA,MAAM,iBAAiB;AAAA,EACrB,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,6BAA6B;AAAA,EAC7B,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,6BAA6B;AAAA,EAC7B,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,+BAA+B;AACjC;AAEA,OAAO,QAAQ,cAAc,EAAE,QAAQ,CAAC,CAAChxB,GAAKC,CAAK,MAAM;AACvD,iBAAeA,CAAK,IAAID;AAC1B,CAAC;AAED,MAAA,mBAAe;AC3Cf,SAAS,eAAeixB,GAAe;AACrC,QAAMlW,IAAU,IAAImW,QAAMD,CAAa,GACjCE,IAAW,KAAKD,QAAM,UAAU,SAASnW,CAAO;AAGtDiL,iBAAM,OAAOmL,GAAUD,QAAM,WAAWnW,GAAS,EAAC,YAAY,GAAI,CAAC,GAGnEiL,QAAM,OAAOmL,GAAUpW,GAAS,MAAM,EAAC,YAAY,GAAI,CAAC,GAGxDoW,EAAS,SAAS,SAAgBvB,GAAgB;AAChD,WAAO,eAAe,YAAYqB,GAAerB,CAAc,CAAC;AAAA,EACpE,GAESuB;AACT;AAGA,MAAM,QAAQ,eAAengB,UAAQ;AAGrC,MAAM,QAAQkgB;AAGd,MAAM,gBAAgB;AACtB,MAAM,cAAcE;AACpB,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,aAAa;AAGnB,MAAM,aAAa;AAGnB,MAAM,SAAS,MAAM;AAGrB,MAAM,MAAM,SAAaC,GAAU;AACjC,SAAO,QAAQ,IAAIA,CAAQ;AAC7B;AAEA,MAAM,SAAS;AAGf,MAAM,eAAe;AAGrB,MAAM,cAAc;AAEpB,MAAM,eAAepG;AAErB,MAAM,aAAa,CAAAxQ,MAAS,eAAeuL,QAAM,WAAWvL,CAAK,IAAI,IAAI,SAASA,CAAK,IAAIA,CAAK;AAEhG,MAAM,aAAa,SAAS;AAE5B,MAAM,iBAAiB6W;AAEvB,MAAM,UAAU;AAGhB,MAAe,UAAA;ACrFE,IAAA;AAAA,CAAV,CAAUC,MAAV;AAII,GAAA,CAAKC,MAAL;AACHA,IAAAA,EAAA,OAAO,oBACPA,EAAA,iBAAiB;AAAA,EAAA,GAFTD,EAAA,oBAAAA,EAAA,kBAAA,CAAA,EAAA;AAKI,WAAAE,EAAS,EAAE,KAAApK,GAAK,MAAAlpB,GAAM,aAAAoqB,IAAc,oBAAsB,kBAAAmJ,GAAkB,eAAAC,KAMzF;AACCC,YAAO,WAAW,wBAAwBvK,GAAKkB,GAAapqB,CAAI,GAC1D0zB,QAAA;AAAA,MAAKxK;AAAA,MAAKlpB;AAAA,MACZ,EAAE,SAAS,EAAE,gBAAgBoqB,IAAc;AAAA,IAAA,EAC7C,KAAK,CAACxC,MAAa;AACV6L,cAAA,WAAWzzB,GAAM,kBAAkB4nB,CAAQ,GAC9C2L,KACAA,EAAiB3L,CAAQ;AAAA,IAC7B,CACH,EAAE,MAAM,CAAS3gB,MAAA;AACdwsB,cAAO,WAAWxsB,CAAK,GACnBusB,KACAA,EAAcvsB,CAAK;AAAA,IACvB,CACH;AAAA,EAEL;AAtBOmsB,EAAAA,EAAS,WAAAE;AAwBT,WAASK,EAAgB;AAAA,IAAE,KAAAzK;AAAA,IAAK,MAAAlpB;AAAA,IAAM,aAAAoqB,IAAc;AAAA;AAAA,KAIxD;AACCqJ,mBAAO,WAAW,wBAAwBvK,GAAKkB,GAAapqB,CAAI,GACzD0zB,QAAM;AAAA,MAAKxK;AAAA,MAAKlpB;AAAA,MACnB,EAAE,SAAS,EAAE,gBAAgBoqB,IAAc;AAAA,IAAA;AAAA,EAEnD;AATOgJ,EAAAA,EAAS,kBAAAO;AAWA,WAAAC,EAAQ,EAAE,KAAA1K,GAAK,MAAAlpB,GAAM,aAAAoqB,IAAc,oBAAsB,kBAAAmJ,GAAkB,eAAAC,KAMxF;AACCC,YAAO,WAAW,wBAAwBvK,GAAKkB,GAAapqB,CAAI,GAC1D0zB,QAAA;AAAA,MAAIxK;AAAA,MACN,EAAE,SAAS,EAAE,gBAAgBkB,IAAc;AAAA,IAAA,EAC7C,KAAK,CAACxC,MAAa;AACV6L,cAAA,WAAWzzB,GAAM,kBAAkB4nB,CAAQ,GAC9C2L,KACAA,EAAiB3L,CAAQ;AAAA,IAC7B,CACH,EAAE,MAAM,CAAS3gB,MAAA;AACdwsB,cAAO,WAAWxsB,CAAK,GACnBusB,KACAA,EAAcvsB,CAAK;AAAA,IACvB,CACH;AAAA,EACL;AArBOmsB,EAAAA,EAAS,UAAAQ;AAAA,GA5CH,aAAA,WAAA,CAAA,EAAA;ACAA,IAAA;AAAA,CAAV,CAAUC,MAAV;AAAA,EAEA,MAAM7xB,EAAe;AAAA,IAGxB,cAAc;AACV,WAAK,cAAc8xB;IACvB;AAAA,IAEO,eAAc;AACV,cAAA,oBAAI,QAAO;IACtB;AAAA,IAIO,MAAM;AACT,kBAAK,cAAcA,SACZ;AAAA,IAEX;AAAA,IACO,YAAYzb,IAAmB,IAAK;AAChC,aAAA,KAAK,YAAY,YAAYA,CAAU;AAAA,IAClD;AAAA,IAEO,WAAW1H,GAAe;AACxB,kBAAA,YAAY,IAAIA,GAAS,SAAS,GAChC;AAAA,IACX;AAAA,IACO,SAASD,GAAa;AACpB,kBAAA,YAAY,IAAIA,GAAM,OAAO,GAC3B;AAAA,IACX;AAAA,IACO,QAAQsE,GAAY;AAClB,kBAAA,YAAY,IAAIA,GAAK,MAAM,GACzB;AAAA,IACX;AAAA,EACJ;AAlCO6e,EAAAA,EAAM,iBAAA7xB,GAoCA6xB,EAAA,WAAS,IAAI7xB;AAAe,GAtCxB,eAAA,aAAA,CAAA,EAAA;ACHjB,SAAS,wBAAyBiM,GAAG;AACpC,SAAOA,KAAKA,EAAE,cAAc,OAAO,UAAU,eAAe,KAAKA,GAAG,SAAS,IAAIA,EAAE,UAAaA;AACjG;AAEA,IAAI,UAAU,EAAC,SAAS,CAAA,EAAE,GAGtB,UAAU,QAAQ,UAAU,IAO5B,kBACA;AAEJ,SAAS,mBAAmB;AACxB,QAAM,IAAI,MAAM,iCAAiC;AACrD;AACA,SAAS,sBAAuB;AAC5B,QAAM,IAAI,MAAM,mCAAmC;AACvD;AAAA,CACC,WAAY;AACT,MAAI;AACA,IAAI,OAAO,cAAe,aACtB,mBAAmB,aAEnB,mBAAmB;AAAA,EAE1B,QAAW;AACR,uBAAmB;AAAA,EACtB;AACD,MAAI;AACA,IAAI,OAAO,gBAAiB,aACxB,qBAAqB,eAErB,qBAAqB;AAAA,EAE5B,QAAW;AACR,yBAAqB;AAAA,EACxB;AACL;AACA,SAAS,WAAWjE,GAAK;AACrB,MAAI,qBAAqB;AAErB,WAAO,WAAWA,GAAK,CAAC;AAG5B,OAAK,qBAAqB,oBAAoB,CAAC,qBAAqB;AAChE,8BAAmB,YACZ,WAAWA,GAAK,CAAC;AAE5B,MAAI;AAEA,WAAO,iBAAiBA,GAAK,CAAC;AAAA,EACjC,QAAS;AACN,QAAI;AAEA,aAAO,iBAAiB,KAAK,MAAMA,GAAK,CAAC;AAAA,IAC5C,QAAS;AAEN,aAAO,iBAAiB,KAAK,MAAMA,GAAK,CAAC;AAAA,IAC5C;AAAA,EACJ;AAGL;AACA,SAAS,gBAAgB+pB,GAAQ;AAC7B,MAAI,uBAAuB;AAEvB,WAAO,aAAaA,CAAM;AAG9B,OAAK,uBAAuB,uBAAuB,CAAC,uBAAuB;AACvE,gCAAqB,cACd,aAAaA,CAAM;AAE9B,MAAI;AAEA,WAAO,mBAAmBA,CAAM;AAAA,EACnC,QAAU;AACP,QAAI;AAEA,aAAO,mBAAmB,KAAK,MAAMA,CAAM;AAAA,IAC9C,QAAU;AAGP,aAAO,mBAAmB,KAAK,MAAMA,CAAM;AAAA,IAC9C;AAAA,EACJ;AAIL;AACA,IAAI,QAAQ,CAAA,GACR,WAAW,IACX,cACA,aAAa;AAEjB,SAAS,kBAAkB;AACvB,EAAI,CAAC,YAAY,CAAC,iBAGlB,WAAW,IACP,aAAa,SACb,QAAQ,aAAa,OAAO,KAAK,IAEjC,aAAa,IAEb,MAAM,UACN;AAER;AAEA,SAAS,aAAa;AAClB,MAAI,WAGJ;AAAA,QAAIC,IAAU,WAAW,eAAe;AACxC,eAAW;AAGX,aADIv2B,IAAM,MAAM,QACVA,KAAK;AAGP,WAFA,eAAe,OACf,QAAQ,CAAA,GACD,EAAE,aAAaA;AAClB,QAAI,gBACA,aAAa,UAAU,EAAE;AAGjC,mBAAa,IACbA,IAAM,MAAM;AAAA,IACf;AACD,mBAAe,MACf,WAAW,IACX,gBAAgBu2B,CAAO;AAAA;AAC3B;AAEA,QAAQ,WAAW,SAAUhqB,GAAK;AAC9B,MAAIzF,IAAO,IAAI,MAAM,UAAU,SAAS,CAAC;AACzC,MAAI,UAAU,SAAS;AACnB,aAAS1H,IAAI,GAAGA,IAAI,UAAU,QAAQA;AAClC,MAAA0H,EAAK1H,IAAI,CAAC,IAAI,UAAUA,CAAC;AAGjC,QAAM,KAAK,IAAI,KAAKmN,GAAKzF,CAAI,CAAC,GAC1B,MAAM,WAAW,KAAK,CAAC,YACvB,WAAW,UAAU;AAE7B;AAGA,SAAS,KAAKyF,GAAK4B,GAAO;AACtB,OAAK,MAAM5B,GACX,KAAK,QAAQ4B;AACjB;AACA,KAAK,UAAU,MAAM,WAAY;AAC7B,OAAK,IAAI,MAAM,MAAM,KAAK,KAAK;AACnC;AACA,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,MAAM,CAAA;AACd,QAAQ,OAAO,CAAA;AACf,QAAQ,UAAU;AAClB,QAAQ,WAAW,CAAA;AAEnB,SAAS,OAAO;AAAE;AAElB,QAAQ,KAAK;AACb,QAAQ,cAAc;AACtB,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,iBAAiB;AACzB,QAAQ,qBAAqB;AAC7B,QAAQ,OAAO;AACf,QAAQ,kBAAkB;AAC1B,QAAQ,sBAAsB;AAE9B,QAAQ,YAAY,SAAUlK,GAAM;AAAE,SAAO,CAAE;AAAA;AAE/C,QAAQ,UAAU,SAAUA,GAAM;AAC9B,QAAM,IAAI,MAAM,kCAAkC;AACtD;AAEA,QAAQ,MAAM,WAAY;AAAE,SAAO;;AACnC,QAAQ,QAAQ,SAAU0X,GAAK;AAC3B,QAAM,IAAI,MAAM,gCAAgC;AACpD;AACA,QAAQ,QAAQ,WAAW;AAAE,SAAO;AAAE;AAEtC,IAAI,iBAAiB,QAAQ;AAC7B,MAAM,YAAyB,wCAAwB,cAAc;;;ACvLrE,GAAC,WAAW;AAGV,QAAI,OAAO,OAAO,UAAW,WAAW,SAAS,CAAA,GAC7C,UAAU,CAAC,KAAK,sBAAsB,OAAO6a,aAAY,YAAYA,UAAQ,YAAYA,UAAQ,SAAS;AAC9G,IAAI,YACF,OAAO9X;AAET,QAAI,YAAY,CAAC,KAAK,wBAAwB,MAA8B,OAAO,SAE/E,YAAY,mBAAmB,MAAM,EAAE,GACvC,QAAQ,CAAC,aAAa,SAAS,OAAO,GAAG,GACzC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,GACrB,eAAe,CAAC,OAAO,SAAS,UAAU,aAAa,GAEvD,SAAS,CAAA,GAET,qBAAqB,SAAU+X,GAAY;AAC7C,aAAO,SAAU9yB,GAAS;AACxB,eAAO,IAAI,KAAK,EAAI,EAAE,OAAOA,CAAO,EAAE8yB,CAAU;MACtD;AAAA,IACA,GAEM,eAAe,WAAY;AAC7B,UAAIpJ,IAAS,mBAAmB,KAAK;AACrC,MAAI,YACFA,IAAS,SAASA,CAAM,IAE1BA,EAAO,SAAS,WAAY;AAC1B,eAAO,IAAI,KAAI;AAAA,MACrB,GACIA,EAAO,SAAS,SAAU1pB,GAAS;AACjC,eAAO0pB,EAAO,OAAM,EAAG,OAAO1pB,CAAO;AAAA,MAC3C;AACI,eAASvE,IAAI,GAAGA,IAAI,aAAa,QAAQ,EAAEA,GAAG;AAC5C,YAAI+D,IAAO,aAAa/D,CAAC;AACzB,QAAAiuB,EAAOlqB,CAAI,IAAI,mBAAmBA,CAAI;AAAA,MACvC;AACD,aAAOkqB;AAAA,IACX,GAEM,WAAW,SAAU,QAAQ;AAC/B,UAAI,SAAS,KAAK,mBAAmB,GACjC,SAAS,KAAK,0BAA0B,GACxC,aAAa,SAAU1pB,GAAS;AAClC,YAAI,OAAOA,KAAY;AACrB,iBAAO,OAAO,WAAW,MAAM,EAAE,OAAOA,GAAS,MAAM,EAAE,OAAO,KAAK;AAChE,YAAIA,EAAQ,gBAAgB;AACjC,UAAAA,IAAU,IAAI,WAAWA,CAAO;AAAA,iBACvBA,EAAQ,WAAW;AAC5B,iBAAO,OAAOA,CAAO;AAEvB,eAAO,OAAO,WAAW,MAAM,EAAE,OAAO,IAAI,OAAOA,CAAO,CAAC,EAAE,OAAO,KAAK;AAAA,MAC/E;AACI,aAAO;AAAA,IACX;AAEE,aAAS,KAAK+yB,GAAc;AAC1B,MAAIA,KACF,OAAO,CAAC,IAAI,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,IACzD,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,IAC5C,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,OAAO,EAAE,IAAI,OAAO,EAAE,IAC9C,OAAO,EAAE,IAAI,OAAO,EAAE,IAAI,OAAO,EAAE,IAAI,OAAO,EAAE,IAAI,GACpD,KAAK,SAAS,UAEd,KAAK,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAGlE,KAAK,KAAK,YACV,KAAK,KAAK,YACV,KAAK,KAAK,YACV,KAAK,KAAK,WACV,KAAK,KAAK,YAEV,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,GACrD,KAAK,YAAY,KAAK,SAAS,IAC/B,KAAK,QAAQ;AAAA,IACd;AAED,SAAK,UAAU,SAAS,SAAU/yB,GAAS;AACzC,UAAI,MAAK,WAGT;AAAA,YAAIgzB,IAAY,OAAOhzB,KAAa;AACpC,QAAIgzB,KAAahzB,EAAQ,gBAAgB,KAAK,gBAC5CA,IAAU,IAAI,WAAWA,CAAO;AAIlC,iBAFI+F,GAAMyB,IAAQ,GAAG/L,GAAGgP,IAASzK,EAAQ,UAAU,GAAGizB,IAAS,KAAK,QAE7DzrB,IAAQiD,KAAQ;AAUrB,cATI,KAAK,WACP,KAAK,SAAS,IACdwoB,EAAO,CAAC,IAAI,KAAK,OACjBA,EAAO,EAAE,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAC7CA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAC5CA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAC9CA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAAI,IAGnDD;AACD,iBAAKv3B,IAAI,KAAK,OAAO+L,IAAQiD,KAAUhP,IAAI,IAAI,EAAE+L;AAC/C,cAAAyrB,EAAOx3B,KAAK,CAAC,KAAKuE,EAAQwH,CAAK,KAAK,MAAM/L,MAAM,CAAC;AAAA;AAGnD,iBAAKA,IAAI,KAAK,OAAO+L,IAAQiD,KAAUhP,IAAI,IAAI,EAAE+L;AAC/C,cAAAzB,IAAO/F,EAAQ,WAAWwH,CAAK,GAC3BzB,IAAO,MACTktB,EAAOx3B,KAAK,CAAC,KAAKsK,KAAQ,MAAMtK,MAAM,CAAC,IAC9BsK,IAAO,QAChBktB,EAAOx3B,KAAK,CAAC,MAAM,MAAQsK,KAAQ,MAAO,MAAMtK,MAAM,CAAC,GACvDw3B,EAAOx3B,KAAK,CAAC,MAAM,MAAQsK,IAAO,OAAU,MAAMtK,MAAM,CAAC,KAChDsK,IAAO,SAAUA,KAAQ,SAClCktB,EAAOx3B,KAAK,CAAC,MAAM,MAAQsK,KAAQ,OAAQ,MAAMtK,MAAM,CAAC,GACxDw3B,EAAOx3B,KAAK,CAAC,MAAM,MAASsK,KAAQ,IAAK,OAAU,MAAMtK,MAAM,CAAC,GAChEw3B,EAAOx3B,KAAK,CAAC,MAAM,MAAQsK,IAAO,OAAU,MAAMtK,MAAM,CAAC,MAEzDsK,IAAO,UAAaA,IAAO,SAAU,KAAO/F,EAAQ,WAAW,EAAEwH,CAAK,IAAI,OAC1EyrB,EAAOx3B,KAAK,CAAC,MAAM,MAAQsK,KAAQ,OAAQ,MAAMtK,MAAM,CAAC,GACxDw3B,EAAOx3B,KAAK,CAAC,MAAM,MAASsK,KAAQ,KAAM,OAAU,MAAMtK,MAAM,CAAC,GACjEw3B,EAAOx3B,KAAK,CAAC,MAAM,MAASsK,KAAQ,IAAK,OAAU,MAAMtK,MAAM,CAAC,GAChEw3B,EAAOx3B,KAAK,CAAC,MAAM,MAAQsK,IAAO,OAAU,MAAMtK,MAAM,CAAC;AAK/D,eAAK,gBAAgBA,GACrB,KAAK,SAASA,IAAI,KAAK,OACnBA,KAAK,MACP,KAAK,QAAQw3B,EAAO,EAAE,GACtB,KAAK,QAAQx3B,IAAI,IACjB,KAAK,KAAI,GACT,KAAK,SAAS,MAEd,KAAK,QAAQA;AAAA,QAEhB;AACD,eAAI,KAAK,QAAQ,eACf,KAAK,UAAU,KAAK,QAAQ,cAAc,GAC1C,KAAK,QAAQ,KAAK,QAAQ,aAErB;AAAA;AAAA,IACX,GAEE,KAAK,UAAU,WAAW,WAAY;AACpC,UAAI,MAAK,WAGT;AAAA,aAAK,YAAY;AACjB,YAAIw3B,IAAS,KAAK,QAAQx3B,IAAI,KAAK;AACnC,QAAAw3B,EAAO,EAAE,IAAI,KAAK,OAClBA,EAAOx3B,KAAK,CAAC,KAAK,MAAMA,IAAI,CAAC,GAC7B,KAAK,QAAQw3B,EAAO,EAAE,GAClBx3B,KAAK,OACF,KAAK,UACR,KAAK,KAAI,GAEXw3B,EAAO,CAAC,IAAI,KAAK,OACjBA,EAAO,EAAE,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAC7CA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAC5CA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAC9CA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAAIA,EAAO,EAAE,IAAI,IAEtDA,EAAO,EAAE,IAAI,KAAK,UAAU,IAAI,KAAK,UAAU,IAC/CA,EAAO,EAAE,IAAI,KAAK,SAAS,GAC3B,KAAK,KAAI;AAAA;AAAA,IACb,GAEE,KAAK,UAAU,OAAO,WAAY;AAChC,UAAIhrB,IAAI,KAAK,IAAI5B,IAAI,KAAK,IAAItE,IAAI,KAAK,IAAIuE,IAAI,KAAK,IAAIzE,IAAI,KAAK,IAC7DL,GAAG/E,GAAGoM,GAAGoqB,IAAS,KAAK;AAE3B,WAAIx2B,IAAI,IAAIA,IAAI,IAAI,EAAEA;AACpB,QAAAoM,IAAIoqB,EAAOx2B,IAAI,CAAC,IAAIw2B,EAAOx2B,IAAI,CAAC,IAAIw2B,EAAOx2B,IAAI,EAAE,IAAIw2B,EAAOx2B,IAAI,EAAE,GAClEw2B,EAAOx2B,CAAC,IAAMoM,KAAK,IAAMA,MAAM;AAGjC,WAAIpM,IAAI,GAAGA,IAAI,IAAIA,KAAK;AACtB,QAAA+E,IAAK6E,IAAItE,IAAO,CAACsE,IAAKC,GACtBuC,IAAKZ,KAAK,IAAMA,MAAM,IACtBpG,IAAIgH,IAAIrH,IAAIK,IAAI,aAAaoxB,EAAOx2B,CAAC,KAAK,GAC1C4J,IAAKA,KAAK,KAAOA,MAAM,GAEvB7E,IAAKyG,IAAI5B,IAAO,CAAC4B,IAAKlG,GACtB8G,IAAKhH,KAAK,IAAMA,MAAM,IACtByE,IAAIuC,IAAIrH,IAAI8E,IAAI,aAAa2sB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CwL,IAAKA,KAAK,KAAOA,MAAM,GAEvBzG,IAAKK,IAAIoG,IAAO,CAACpG,IAAKwE,GACtBwC,IAAKvC,KAAK,IAAMA,MAAM,IACtBvE,IAAI8G,IAAIrH,IAAIO,IAAI,aAAakxB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CoF,IAAKA,KAAK,KAAOA,MAAM,GAEvBL,IAAK8E,IAAIzE,IAAO,CAACyE,IAAK2B,GACtBY,IAAK9G,KAAK,IAAMA,MAAM,IACtBsE,IAAIwC,IAAIrH,IAAI6E,IAAI,aAAa4sB,EAAOx2B,IAAI,CAAC,KAAK,GAC9C6J,IAAKA,KAAK,KAAOA,MAAM,GAEvB9E,IAAKO,IAAIuE,IAAO,CAACvE,IAAKF,GACtBgH,IAAKxC,KAAK,IAAMA,MAAM,IACtB4B,IAAIY,IAAIrH,IAAIyG,IAAI,aAAagrB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CsF,IAAKA,KAAK,KAAOA,MAAM;AAGzB,aAAMtF,IAAI,IAAIA,KAAK;AACjB,QAAA+E,IAAI6E,IAAItE,IAAIuE,GACZuC,IAAKZ,KAAK,IAAMA,MAAM,IACtBpG,IAAIgH,IAAIrH,IAAIK,IAAI,aAAaoxB,EAAOx2B,CAAC,KAAK,GAC1C4J,IAAKA,KAAK,KAAOA,MAAM,GAEvB7E,IAAIyG,IAAI5B,IAAItE,GACZ8G,IAAKhH,KAAK,IAAMA,MAAM,IACtByE,IAAIuC,IAAIrH,IAAI8E,IAAI,aAAa2sB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CwL,IAAKA,KAAK,KAAOA,MAAM,GAEvBzG,IAAIK,IAAIoG,IAAI5B,GACZwC,IAAKvC,KAAK,IAAMA,MAAM,IACtBvE,IAAI8G,IAAIrH,IAAIO,IAAI,aAAakxB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CoF,IAAKA,KAAK,KAAOA,MAAM,GAEvBL,IAAI8E,IAAIzE,IAAIoG,GACZY,IAAK9G,KAAK,IAAMA,MAAM,IACtBsE,IAAIwC,IAAIrH,IAAI6E,IAAI,aAAa4sB,EAAOx2B,IAAI,CAAC,KAAK,GAC9C6J,IAAKA,KAAK,KAAOA,MAAM,GAEvB9E,IAAIO,IAAIuE,IAAIzE,GACZgH,IAAKxC,KAAK,IAAMA,MAAM,IACtB4B,IAAIY,IAAIrH,IAAIyG,IAAI,aAAagrB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CsF,IAAKA,KAAK,KAAOA,MAAM;AAGzB,aAAMtF,IAAI,IAAIA,KAAK;AACjB,QAAA+E,IAAK6E,IAAItE,IAAMsE,IAAIC,IAAMvE,IAAIuE,GAC7BuC,IAAKZ,KAAK,IAAMA,MAAM,IACtBpG,IAAIgH,IAAIrH,IAAIK,IAAI,aAAaoxB,EAAOx2B,CAAC,KAAK,GAC1C4J,IAAKA,KAAK,KAAOA,MAAM,GAEvB7E,IAAKyG,IAAI5B,IAAM4B,IAAIlG,IAAMsE,IAAItE,GAC7B8G,IAAKhH,KAAK,IAAMA,MAAM,IACtByE,IAAIuC,IAAIrH,IAAI8E,IAAI,aAAa2sB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CwL,IAAKA,KAAK,KAAOA,MAAM,GAEvBzG,IAAKK,IAAIoG,IAAMpG,IAAIwE,IAAM4B,IAAI5B,GAC7BwC,IAAKvC,KAAK,IAAMA,MAAM,IACtBvE,IAAI8G,IAAIrH,IAAIO,IAAI,aAAakxB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CoF,IAAKA,KAAK,KAAOA,MAAM,GAEvBL,IAAK8E,IAAIzE,IAAMyE,IAAI2B,IAAMpG,IAAIoG,GAC7BY,IAAK9G,KAAK,IAAMA,MAAM,IACtBsE,IAAIwC,IAAIrH,IAAI6E,IAAI,aAAa4sB,EAAOx2B,IAAI,CAAC,KAAK,GAC9C6J,IAAKA,KAAK,KAAOA,MAAM,GAEvB9E,IAAKO,IAAIuE,IAAMvE,IAAIF,IAAMyE,IAAIzE,GAC7BgH,IAAKxC,KAAK,IAAMA,MAAM,IACtB4B,IAAIY,IAAIrH,IAAIyG,IAAI,aAAagrB,EAAOx2B,IAAI,CAAC,KAAK,GAC9CsF,IAAKA,KAAK,KAAOA,MAAM;AAGzB,aAAMtF,IAAI,IAAIA,KAAK;AACjB,QAAA+E,IAAI6E,IAAItE,IAAIuE,GACZuC,IAAKZ,KAAK,IAAMA,MAAM,IACtBpG,IAAIgH,IAAIrH,IAAIK,IAAI,YAAYoxB,EAAOx2B,CAAC,KAAK,GACzC4J,IAAKA,KAAK,KAAOA,MAAM,GAEvB7E,IAAIyG,IAAI5B,IAAItE,GACZ8G,IAAKhH,KAAK,IAAMA,MAAM,IACtByE,IAAIuC,IAAIrH,IAAI8E,IAAI,YAAY2sB,EAAOx2B,IAAI,CAAC,KAAK,GAC7CwL,IAAKA,KAAK,KAAOA,MAAM,GAEvBzG,IAAIK,IAAIoG,IAAI5B,GACZwC,IAAKvC,KAAK,IAAMA,MAAM,IACtBvE,IAAI8G,IAAIrH,IAAIO,IAAI,YAAYkxB,EAAOx2B,IAAI,CAAC,KAAK,GAC7CoF,IAAKA,KAAK,KAAOA,MAAM,GAEvBL,IAAI8E,IAAIzE,IAAIoG,GACZY,IAAK9G,KAAK,IAAMA,MAAM,IACtBsE,IAAIwC,IAAIrH,IAAI6E,IAAI,YAAY4sB,EAAOx2B,IAAI,CAAC,KAAK,GAC7C6J,IAAKA,KAAK,KAAOA,MAAM,GAEvB9E,IAAIO,IAAIuE,IAAIzE,GACZgH,IAAKxC,KAAK,IAAMA,MAAM,IACtB4B,IAAIY,IAAIrH,IAAIyG,IAAI,YAAYgrB,EAAOx2B,IAAI,CAAC,KAAK,GAC7CsF,IAAKA,KAAK,KAAOA,MAAM;AAGzB,WAAK,KAAK,KAAK,KAAKkG,KAAK,GACzB,KAAK,KAAK,KAAK,KAAK5B,KAAK,GACzB,KAAK,KAAK,KAAK,KAAKtE,KAAK,GACzB,KAAK,KAAK,KAAK,KAAKuE,KAAK,GACzB,KAAK,KAAK,KAAK,KAAKzE,KAAK;AAAA,IAC7B,GAEE,KAAK,UAAU,MAAM,WAAY;AAC/B,WAAK,SAAQ;AAEb,UAAIqxB,IAAK,KAAK,IAAIC,IAAK,KAAK,IAAIC,IAAK,KAAK,IAAIC,IAAK,KAAK,IAAIC,IAAK,KAAK;AAEtE,aAAO,UAAWJ,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,IAAK,EAAI,IACzD,UAAWA,KAAM,IAAK,EAAI,IAAI,UAAUA,IAAK,EAAI,IACjD,UAAWC,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,IAAK,EAAI,IACzD,UAAWA,KAAM,IAAK,EAAI,IAAI,UAAUA,IAAK,EAAI,IACjD,UAAWC,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,IAAK,EAAI,IACzD,UAAWA,KAAM,IAAK,EAAI,IAAI,UAAUA,IAAK,EAAI,IACjD,UAAWC,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,IAAK,EAAI,IACzD,UAAWA,KAAM,IAAK,EAAI,IAAI,UAAUA,IAAK,EAAI,IACjD,UAAWC,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,KAAM,EAAI,IAC1D,UAAWA,KAAM,KAAM,EAAI,IAAI,UAAWA,KAAM,IAAK,EAAI,IACzD,UAAWA,KAAM,IAAK,EAAI,IAAI,UAAUA,IAAK,EAAI;AAAA,IAC5D,GAEE,KAAK,UAAU,WAAW,KAAK,UAAU,KAEzC,KAAK,UAAU,SAAS,WAAY;AAClC,WAAK,SAAQ;AAEb,UAAIJ,IAAK,KAAK,IAAIC,IAAK,KAAK,IAAIC,IAAK,KAAK,IAAIC,IAAK,KAAK,IAAIC,IAAK,KAAK;AAEtE,aAAO;AAAA,QACJJ,KAAM,KAAM;AAAA,QAAOA,KAAM,KAAM;AAAA,QAAOA,KAAM,IAAK;AAAA,QAAMA,IAAK;AAAA,QAC5DC,KAAM,KAAM;AAAA,QAAOA,KAAM,KAAM;AAAA,QAAOA,KAAM,IAAK;AAAA,QAAMA,IAAK;AAAA,QAC5DC,KAAM,KAAM;AAAA,QAAOA,KAAM,KAAM;AAAA,QAAOA,KAAM,IAAK;AAAA,QAAMA,IAAK;AAAA,QAC5DC,KAAM,KAAM;AAAA,QAAOA,KAAM,KAAM;AAAA,QAAOA,KAAM,IAAK;AAAA,QAAMA,IAAK;AAAA,QAC5DC,KAAM,KAAM;AAAA,QAAOA,KAAM,KAAM;AAAA,QAAOA,KAAM,IAAK;AAAA,QAAMA,IAAK;AAAA,MACnE;AAAA,IACA,GAEE,KAAK,UAAU,QAAQ,KAAK,UAAU,QAEtC,KAAK,UAAU,cAAc,WAAY;AACvC,WAAK,SAAQ;AAEb,UAAIlV,IAAS,IAAI,YAAY,EAAE,GAC3BmV,IAAW,IAAI,SAASnV,CAAM;AAClC,aAAAmV,EAAS,UAAU,GAAG,KAAK,EAAE,GAC7BA,EAAS,UAAU,GAAG,KAAK,EAAE,GAC7BA,EAAS,UAAU,GAAG,KAAK,EAAE,GAC7BA,EAAS,UAAU,IAAI,KAAK,EAAE,GAC9BA,EAAS,UAAU,IAAI,KAAK,EAAE,GACvBnV;AAAA,IACX;AAEE,QAAI,UAAU;AAEd,IAAI,YACF,OAAA,UAAiB,UAEjB,KAAK,OAAO;AAAA,EAOhB;;;qEC9WM,gBAAc,QAAQ;AAGX,IAAA;AAAA,CAAV,CAAUoV,MAAV;AACI,WAASC,EAASC,GAAsC;AAC3D,QAAIC;AACJ,WAAI,cAAcD,CAAS,MAC3BC,IAAO,KAAKD,CAAS,IACdC;AAAA,EACX;AALOH,EAAAA,EAAS,WAAAC;AAAA,GADH,aAAA,WAAA,CAAA,EAAA;ACLV,MAAM,oBAAoB;AAAA,EAC7B,OAAc,oBAA2B;AAErC,UAAMG,IAAM;AACR,QAAA;AACa,0BAAA,QAAQA,GAAKA,CAAG,GAC7B,aAAa,WAAWA,CAAG,GACpB;AAAA,YACC;AACD,aAAA;AAAA,IACX;AAAA,EACJ;AAAA,EAEA,OAAc,KAAQnzB,GAAaozB,GAASC,IAAoB,IAAI;AAC1D,UAAAC,IAAY,EAAC,QAAQrB,QAAS,IAAIoB,GAAc,SAAS,GAAE,MAAKD,KAChEG,IAAa,KAAK,UAAUD,CAAS;AAC9B,iBAAA,QAAQtzB,GAAKuzB,CAAU;AAAA,EACxC;AAAA,EAEA,OAAc,KAAQvzB,GAA4B;AAC3C,QAAAA,KAAM;AAAgC;AACnC,UAAAuzB,IAAa,aAAa,QAAQvzB,CAAG;AAC3C,QAAIuzB,GAAY;AACN,YAAAC,IAA8B,KAAK,MAAMD,CAAU;AAGzD,UAAIC,KAAWA,EAAQ,QAAQA,EAAQ,UAAUvB,MAAOuB,EAAQ,MAAM,EAAE,QAAQvB,MAAQ,CAAA;AACpF,eAAOuB,EAAQ;AAAA,IAEvB;AAAA,EAEJ;AACJ;AChCO,MAAM,kBAAkB;AAAA,EAC3B,OAAc,oBAA6B;AAEvC,UAAML,IAAM;AACR,QAAA;AACAM,iBAAQ,IAAIN,GAAKA,GAAK,EAAC,SAAS,GAAE,GAClCM,IAAQ,OAAON,CAAG,GACX;AAAA,YACC;AACD,aAAA;AAAA,IACX;AAAA,EACJ;AAAA,EAEA,OAAc,KAAQnzB,GAAaozB,GAAWC,IAAuB,IAAI;AAC/D,UAAAE,IAAa,KAAK,UAAUH,CAAK,GACjCM,IAAU,IAAI,MAAS,oBAAA,KAAA,GAAO,QAAQ,IAAIL,IAAe,KAAK,GAAI;AACxEI,QAAQ,IAAIzzB,GAAKuzB,GAAY,EAAC,SAASG,GAAQ;AAAA,EACnD;AAAA,EAEA,OAAc,KAAQ1zB,GAA6B;AAC3C,QAAAA,KAAQ;AAAkC;AACxC,UAAAuzB,IAAaE,IAAQ,IAAIzzB,CAAG;AAClC,QAAIuzB;AAEO,aADY,KAAK,MAAMA,CAAU;AAAA,EAIhD;AACJ;AC1BO,MAAMI,KAAN,MAAMA,GAAe;AAAA,EAQ1B,OAAc,KAAQ3zB,GAAaozB,GAAWC,IAAuB,IAAI;AACvE,IAAI,KAAK,wBACa,oBAAA,KAAQrzB,GAAKozB,GAAOC,CAAY,IAElC,kBAAA,KAAQrzB,GAAKozB,GAAOC,CAAY;AAAA,EAEtD;AAAA,EAEA,OAAc,KAAQrzB,GAA6B;AACjD,WAAI2zB,GAAe,wBACV,oBAAoB,KAAQ3zB,CAAG,IAE/B,kBAAkB,KAAQA,CAAG;AAAA,EAExC;AAGF;AAxBgB2zB,GAAA,wBACZ,oBAAoB,qBACtBA,GAAc,yBACZA,GAAe,yBAAyB,KACpC,kBAAkB,kBAClB,IAAA;AAND,IAAM,iBAANA;ACWP,MAAM,kBAAkB,MAAO,KAAK,KAAK,IACnC,QAAQ,KAAK,IAAS,IAAA,iBAEtB,aAAa,8BACb,SAAS,GAA0B,UAAuB,6CAO1D,kBAAmC,CAAA,GACnC,mBAAmB,SACnB,4BAA4B,MAAM,KAAK,IACvC,iBAAiB,QACjB,0BAA0B,KAAK,KAAK;AAEnC,SAAS,oBAAoBhM,GAA6B;AACvD,QAAAiM,IAAe,eAAe,KAAqB,cAAc;AAElE,MADG,QAAA,WAAW,sBAAsBA,GAAcjM,CAAE,GACpDiM,KAAgBjM,MAAO,QAAUiM,MAAgBA,KAAA,gBAAAA,EAAc,QAAO,SAAQA,KAAA,gBAAAA,EAAc,QAAOjM;AAAY,WAAAiM;AAC9G,QAAAC,IAAc,EAAE,IAAI,QAAQ,qBAAqBlM,CAAE,IAAI,QAAQ,YAAYA;AAClE,wBAAA,KAAqB,gBAAgBkM,GAAa,uBAAuB,GAChF,QAAA,WAAWlM,GAAI,YAAYkM,CAAW,GAEvCA;AACX;AACO,SAAS,sBAAsBlM,GAA+B;AAC3D,QAAAiM,IAAe,eAAe,KAAuB,gBAAgB;AACtE,MAAAA,KAAgBjM,MAAO,QAAUiM,MAAgBA,KAAA,gBAAAA,EAAc,QAAO,SAAQA,KAAA,gBAAAA,EAAc,QAAOjM;AAAY,WAAAiM;AAC9G,QAAAC,IAAc,EAAE,IAAI,QAAQ,qBAAqBlM,CAAE,IAAI,QAAQ,YAAYA;AAClE,wBAAA,KAAuB,kBAAkBkM,GAAa,yBAAyB,GACtF,QAAA,WAAWlM,GAAI,cAAckM,CAAW,GACzCA;AACX;AACA,IAAI;AACJ,MAAM,aAAa;AACZ,SAAS,gBAAgB;AACb,8BAAA,eAAe,KAA+B,UAAU,IAClE,eACD,aAAa,IAAI;AAGzB;AACO,SAAS,qBAAqB;AACnB,mBACV,yBAAQ,UACwB,WAAY,OAAO,OAAQve,EAAK,WAAW,OAAO,MAAM,EAChE,QAAQ,CAAYwe,MAAA;AAKhC,IAJQ,SAAS;AAAA,MACrB,wBAAwBA,EAAS,MAAM,uBAAuBA,EAAS,WAAW;AAAA,IAAA,EAG9E,QAAQ,CAASC,MAAA;AACd,MAAAA,EAAA,UAAU,IAAI,SAAS;AAC9B,YAAMC,IAAQ,OAAOD,EAAO,QAAQ,iBAAiB;AACrD,UAAIC,IAAM,KAAK;AACX,YAAI9a,IAAQ8a,IAAO;AACZ,QAAAD,EAAA,QAAQ,gBAAgB,OAAO7a,CAAK,GACpC6a,EAAA,QAAQ,oBAAoB,OAAO7a,CAAK;AAAA,MACnD;AAAA,IAAA,CACF;AAAA,EAAA,CACL;AAET;AACO,SAAS,mBAAmB+a,GAA2B;AAE5C;AACd,QAAMC,IAAcD,EAAS,IAAI,CAAA3e,MAAQA,EAAK,MAAM;AAChD,MAAA6e,IAAgB,IAAI,IAAID,CAAW;AACvC,QAAME,IAAa,WAAY,OAAO,CAAA9e,MAAQ,EAAE6e,EAAc,IAAI7e,EAAK,MAAM,KAAM,QAAQA,EAAK,YAAa,GAAG;AACvG,EAAA2e,EAAA,QAAQ,CAAQ3e,MAAA;AACjB,IAAAA,EAAK,cAAc,KAEnB8e,EAAW,KAAK;AAAA,MACZ,QAAQ9e,EAAK;AAAA,MACb,aAAaA,EAAK;AAAA,MAClB,WAAW;AAAA,IAAA,CACd;AAAA,EACL,CACH,GACc,eAAA,KAA+B,YAAY8e,CAAU;AACxE;AACO,SAAS,6BAA6B;AAChC,WAAA,iBAAiB,SAAS,CAAChzB,MAAkB;AAIlD,UAAMmY,IAASnY,EAAE,QACX2yB,IAASxa,EAAO,QAAQ,gBAAgB,IACxCA,IACAA,EAAO,QAAQ,gBAAgB;AACrC,QAAIwa,GAAQ;AAEF,YAAAM,IAASN,EAAO,QAAQ,QACxBO,IAAYP,EAAO,QAAQ,WAC3BQ,IAAeR,EAAO,QAAQ,gBAAgB;AACpD,UAAIQ,GAAc;AACR,cAAAC,IAAkBD,EAAa,cAAc,wBAAwB;AAE3E,YAAIR,EAAO,UAAU,SAAS,SAAS;AAE5B,UAAAA,EAAA,UAAU,OAAO,SAAS,GACjC,yBAAyBA,GAAQ,EAAE,GAEnC,2BAA2B,EAAE,QAAAM,GAAgB,aAAaC,GAAW,WAAW,IAAI;AAAA,aACjF;AACC,cAAAE,KAAmBA,MAAoBT,GAAQ;AAEzC,kBAAAU,IAAoBD,EAAgB,QAAQ;AAClC,YAAAA,EAAA,UAAU,OAAO,SAAS,GAC1C,yBAAyBA,GAAiB,EAAE,GAE5C,2BAA2B,EAAE,QAAAH,GAAgB,aAAaI,GAAmB,WAAW,IAAI;AAAA,UAChG;AAEO,UAAAV,EAAA,UAAU,IAAI,SAAS,GAC9B,yBAAyBA,GAAQ,CAAC,GAClC,2BAA2B,EAAE,QAAAM,GAAgB,aAAaC,GAAW,WAAW,GAAG;AAAA,QACvF;AACA,kCAA0B,iBAAiB,CAAC;AAAA,MAChD;AAAA,IACJ;AAAA,EAAA,CACH;AACL;AAEO,SAAS,2BAA2BI,GAAwB;AAC/D,QAAMC,IAAsB,gBAAgB;AAAA,IACxC,OAAUC,EAAO,WAAWF,EAAQ,UAAUE,EAAO,gBAAgBF,EAAQ;AAAA,EAAA;AAEjF,EAAIC,MAAwB,KACR,gBAAAA,CAAmB,EAAE,YAAYD,EAAQ,YAEzC,gBAAA,KAAK,EAAE,QAAQA,EAAQ,QAAQ,aAAaA,EAAQ,aAAa,WAAWA,EAAQ,UAAW,CAAA;AAE7G,QAAAG,IAAW,gBAAgB,OAAO,OAAQvf,EAAK,WAAWof,EAAQ,MAAM;AAC9E,kBAAgB,SAAO,GACP,gBAAA,KAAK,GAAGG,CAAQ,GACxB,QAAA,IAAI,uBAAsB,eAAe;AAEjD,WAAS75B,IAAI,gBAAgB,SAAS,GAAGA,KAAK,GAAGA;AAC7C,IAAI,gBAAgBA,CAAC,EAAE,cAAc,KACjB,gBAAA,OAAOA,GAAG,CAAC;AAGvC;AACA,IAAI,QACA;AACY,SAAA,0BAA0BmD,GAA4B22B,GAAuB;;AAClF,SAAA32B,EAAK,SAAS22B;AACjB,IAAA32B,EAAK,MAAM;AAEf,uBAAWC,IAAA,oBAAuB,MAAvB,gBAAAA,EAAuB,KAClC,yBAAaM,IAAA,sBAAyB,MAAzB,gBAAAA,EAAyB,KACjCP,EAAA,QAAQ,CAAQmX,MAAA;AACjB,IAAAA,EAAK,SAAS,QACdA,EAAK,WAAW,UACP,SAAA,SAAS,EAAE,KAAK,QAAQ,MAAMA,GAAM,aAAa,SAAS,gBAAgB,eAAgB,CAAA;AAAA,EAAA,CACtG,GACD,mBAAmBnX,CAAI;AAC3B;AAEgB,SAAA,yBAAyB41B,GAA2Ba,GAAgB;AAChF,MAAIG,IAAkB,OAAOhB,EAAO,QAAQ,iBAAiB,KAAK;AACtD,EAAAgB,KAAAH,GACLb,EAAA,QAAQ,oBAAoB,OAAOgB,CAAQ,GAClDhB,EAAO,QAAQ,gBAAgB,aAAa,OAAOgB,CAAQ,CAAC;AAChE;AAmBO,SAAS,aAAa/zB,GAAY;AACrC,SAAIA,KAAO,QACC,KAAK,MAAMA,IAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,EAAE,QAAQ,QAAQ,EAAE,IAAI,MAC/DA,KAAO,OACN,KAAK,MAAMA,IAAM,GAAG,IAAI,IAAI,QAAQ,CAAC,EAAE,QAAQ,QAAQ,EAAE,IAAI,OAC9DA,KAAO,OACN,KAAK,MAAMA,IAAM,GAAG,IAAI,IAAI,QAAQ,CAAC,EAAE,QAAQ,QAAQ,EAAE,IAAI,MAC9DA,KAAO,OACN,KAAK,MAAMA,IAAM,GAAG,IAAI,IAAI,QAAQ,CAAC,EAAE,QAAQ,QAAQ,EAAE,IAAI,MAElEA,EAAI;AACf;AC1MA,MAAM,eAAe,SAAS;AAC9B,IAAI,wBAAwB;AAE5B,OAAO,YAAY,OAAO,aAAa,EAAE,KAAK,CAAG,EAAA;AAE1C,MAAM,4BAA4B,WAAY;AAC7C,MAAA;AAAuB;AACH,0BAAA;AACxB,QAAMg0B,IAAS,OAAO,gBAAgB,IAAI,WAAW,eAAe,GAC9DC,IAAa,IAAI;AACvB,EAAAA,EAAW,SAASD,GACpBC,EAAW,WAAW,aAAa,YAE/BD,EAAO,aACPC,EAAW,aAAa,+BAA+B,mBAAmB,OAAO,sBAAsB,IAEvGA,EAAW,aAAa,gCAAgC,mBAAmB,OAAO,uBAAuB,GAG7G,OAAO,eAAeA;AAChB,QAAAC,IAAaD,EAAW,iBAAiB,UAAU,KAAKA,EAAW,iBAAiB,oBAAoB,KAAKA,EAAW,iBAAiB,gBAAgB;AACpJ,EAAAA,EAAA,WAAW,aAAa,CAACC,CAAU,GAC9CD,EAAW,WAAW;AAC1B,GACa,8CAA8C,MAAM;AAC7D,MAAIE,IAAgB,GAChBC,IAAc,GACdC,IAAc;AAIT,WAAA,iBAAiB,YAAY,WAAY;AAC9C,IAAAF,KACS,2BAAA,IAAI,6BAA6BA,IAEnC,OAAA,UAAU,IAAI,KAAK,MAAM;AAErB,aAAA,aAAa,WAAW,mBAAmBA,CAAa;AAAA,IAAA,CAClE;AAAA,EAAA,CACJ,GAEQ,SAAA,iBAAiB,iBAAiB,WAAY;AACnD,IAAAC,KACS,2BAAA,IAAI,2BAA2BA,IAEjC,OAAA,UAAU,IAAI,KAAK,MAAM;AAErB,aAAA,aAAa,WAAW,iBAAiBA,CAAW;AAAA,IAAA,CAC9D;AAAA,EAAA,CACJ,GACQ,SAAA,iBAAiB,sBAAsB,WAAY;AACxD,IAAAC,KACS,2BAAA,IAAI,2BAA2BA,IAEjC,OAAA,UAAU,IAAI,KAAK,MAAM;AAEf,mBAAA,WAAW,iBAAiBA,CAAW;AAAA,IAAA,CACvD;AAAA,EAAA,CACJ;AAIL;AAEA;AACA;AAEA,SAAS,iBAAiB,oBAAoB,CAACC,MAAM;AACtB,gCACb,iBACK;AACvB,CAAC;","x_google_ignoreList":[0,1,2,3,4,46,47,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,96,97]}