{"version":3,"sources":["../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/@ai-sdk/provider-utils/test/dist/chunk-D6YTI3O5.mjs","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/src/format.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/src/invariant.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/devUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/checkGlobals.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/src/MemoryLeakError.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/src/Emitter.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/getCallFrame.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/isIterable.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/handlers/RequestHandler.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+statuses@1.0.1/node_modules/@bundled-es-modules/statuses/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/is-node-process@1.2.0/node_modules/is-node-process/src/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/fetchUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/bufferUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+cookie@2.0.1/node_modules/@bundled-es-modules/cookie/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+tough-cookie@0.1.6/node_modules/@bundled-es-modules/tough-cookie/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/cookieStore.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/headers-polyfill@4.0.3/node_modules/headers-polyfill/node_modules/set-cookie-parser/lib/set-cookie.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/headers-polyfill@4.0.3/node_modules/headers-polyfill/src/Headers.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/src/createDeferredExecutor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/src/DeferredPromise.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/getUrlByRequestOptions.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/cloneObject.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/hasConfigurableGlobal.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/Interceptor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/createRequestId.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/utils/bindEvent.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/utils/events.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketClientConnection.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketOverride.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketServerConnection.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketClassTransport.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/ws/webSocketInterceptor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/node/SetupServerApi.ts","../../../../node_modules/.pnpm/ai@4.3.19_react@19.2.5_zod@3.25.76/node_modules/ai/core/test/not-implemented.ts","../../../../node_modules/.pnpm/ai@4.3.19_react@19.2.5_zod@3.25.76/node_modules/ai/core/test/mock-language-model-v1.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.22_zod@4.3.6/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-readable-stream.ts","../../../../node_modules/.pnpm/ai@5.0.155_zod@4.3.6/node_modules/ai/src/test/not-implemented.ts","../../../../node_modules/.pnpm/ai@5.0.155_zod@4.3.6/node_modules/ai/src/test/mock-language-model-v2.ts","../../src/loop/test-utils/MastraLanguageModelV2Mock.ts","../../src/test-utils/llm-mock.ts"],"names":["__require","message","match","error","formatMessage","_RequestHandler","_a","_b","__defProp","exports","message2","warn","__create","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","__toESM","parse","__require2","location","Store","pathMatch","MemoryCookieStore","isObject","require_cookie","domainMatch","Cookie","CookieJar","store","http","source_default","value","cookies","splitCookiesString","Logger","hasConfigurableGlobal","getGlobalSymbol","setGlobalSymbol","deleteGlobalSymbol","Interceptor","logger","createRequestId","kEmitter","kBoundListener","invariant","AsyncLocalStorage","notImplemented","AISDKV5LanguageModel","mockModel","simulateReadableStream","MastraLLMV1"],"mappings":"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A,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,uBAAA;AACA,MAAA,oBAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA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A,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAA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MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,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MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,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A,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,iBAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,sCAAA;AACA,MAAA,oBAAA;AACA,MAAA,gCAAA;AACA,MAAA,cAAA;AACA,MAAA,4CAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,4CAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,wDAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,sCAAA;AACA,MAAA,gCAAA;AACA,MAAA,0BAAA;AACA,MAAA,gCAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,4CAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,0BAAA;AACA,MAAA,sCAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,0BAAA;AACA,MAAA,sCAAA;AACA,MAAA,sCAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,sCAAA;AACA,MAAA,0BAAA;AACA,MAAA,4CAAA;AACA,MAAA,4CAAA;AACA,MAAA,sCAAA;AACA,MAAA,oBAAA;AACA,MAAA,iCAAA;AACA,MAAA,uCAAA;AACA,MAAA,uCAAA;AACA,MAAA,iCAAA;AACA,MAAA,uCAAA;AACA,MAAA,iCAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,kDAAA;AACA,MAAA,kDAAA;AACA,MAAA,kDAAA;AACA,MAAA,kDAAA;AACA,MAAA,gCAAA;AACA,MAAA,oBAAA;AACA,MAAA,oEAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,oBAAA;AACA,MAAA,mDAAA;AACA,MAAA,yDAAA;AACA,MAAA,yDAAA;AACA,MAAA,6CAAA;AACA,MAAA,6CAAA;AACA,MAAA,yDAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,gCAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,gBAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,cAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,oBAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,iBAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,cAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,KAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,oBAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,sCAAA;AACA,MAAA,4CAAA;AACA,MAAA,sCAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,sCAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,gCAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,sCAAA;AACA,MAAA,4CAAA;AACA,MAAA,4CAAA;AACA,MAAA,gCAAA;AACA,MAAA,sCAAA;AACA,MAAA,4CAAA;AACA,MAAA,gCAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,0BAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,qBAAA;AACA,MAAA,sBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,gCAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,UAAA;AACA,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,KAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,qBAAA;AACA,MAAA,mBAAA;AACA,MAAA,yBAAA;AACA,MAAA,UAAA;AACA,MAAA,mBAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,UAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,yBAAA;AACA,MAAA,2BAAA;AACA,MAAA,4BAAA;AACA,MAAA,yBAAA;AACA,MAAA,gCAAA;AACA,MAAA,oCAAA;AACA,MAAA,sBAAA;AACA,MAAA,qCAAA;AACA,MAAA,qCAAA;AACA,MAAA,qCAAA;AACA,MAAA,iCAAA;AACA,MAAA,qCAAA;AACA,MAAA,qCAAA;AACA,MAAA,mCAAA;AACA,MAAA,mCAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,oCAAA;AACA,MAAA,gCAAA;AACA,MAAA,gCAAA;AACA,MAAA,qBAAA;AACA,MAAA,wBAAA;AACA,MAAA,0BAAA;AACA,MAAA,kBAAA;AACA,MAAA,iCAAA;AACA,MAAA,iCAAA;AACA,MAAA,6BAAA;AACA,MAAA,iCAAA;AACA,MAAA,iCAAA;AACA,MAAA,+BAAA;AACA,MAAA,+BAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,6BAAA;AACA,MAAA,qCAAA;AACA,MAAA,4BAAA;AACA,MAAA,gCAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,iCAAA;AACA,MAAA,6BAAA;AACA,MAAA,gCAAA;AACA,MAAA,+BAAA;AACA,MAAA,+BAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,2CAAA;AACA,MAAA,2CAAA;AACA,MAAA,uCAAA;AACA,MAAA,2CAAA;AACA,MAAA,2CAAA;AACA,MAAA,yCAAA;AACA,MAAA,yCAAA;AACA,MAAA,sCAAA;AACA,MAAA,sCAAA;AACA,MAAA,sCAAA;AACA,MAAA,sCAAA;AACA,MAAA,sCAAA;AACA,MAAA,sCAAA;AACA,MAAA,oCAAA;AACA,MAAA,oCAAA;AACA,MAAA,oCAAA;AACA,MAAA,yCAAA;AACA,MAAA,yCAAA;AACA,MAAA,yCAAA;AACA,MAAA,oCAAA;AACA,MAAA,oCAAA;AACA,MAAA,yCAAA;AACA,MAAA,qCAAA;AACA,MAAA,uCAAA;AACA,MAAA,uCAAA;AACA,MAAA,oCAAA;AACA,MAAA,oCAAA;AACA,MAAA,oCAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,oBAAA;AACA,MAAA,yBAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,oBAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,eAAA;AACA,MAAA,4BAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,mBAAA;AACA,MAAA,WAAA;AACA,MAAA,iBAAA;AACA,MAAA,oBAAA;AACA,MAAA,OAAA;AACA,MAAA,gBAAA;AACA,MAAA,oBAAA;AACA,MAAA,4BAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,sBAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,qBAAA;AACA,MAAA,iBAAA;AACA,MAAA,WAAA;AACA,MAAA,mBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,6BAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,oBAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,UAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,oBAAA;AACA,MAAA,wBAAA;AACA,MAAA,wBAAA;AACA,MAAA,wBAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,qBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,oBAAA;AACA,MAAA,eAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,qBAAA;AACA,MAAA,yBAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,kBAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,kBAAA;AACA,MAAA,QAAA;AACA,MAAA,0BAAA;AACA,MAAA,2BAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,wBAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,sBAAA;AACA,MAAA,qBAAA;AACA,MAAA,qBAAA;AACA,MAAA,mBAAA;AACA,MAAA,sBAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,oBAAA;AACA,MAAA,kBAAA;AACA,MAAA,qBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,kBAAA;AACA,MAAA,qBAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,uBAAA;AACA,MAAA,cAAA;AACA,MAAA,wBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,2BAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,sBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,sBAAA;AACA,MAAA,qBAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,0BAAA;AACA,MAAA,uBAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,mBAAA;AACA,MAAA,oBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,oBAAA;AACA,MAAA,sBAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,qBAAA;AACA,MAAA,kBAAA;AACA,MAAA,oBAAA;AACA,MAAA,uBAAA;AACA,MAAA,UAAA;AACA,MAAA,kBAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,sBAAA;AACA,MAAA,mBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,sBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,mBAAA;AACA,MAAA,qBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,mBAAA;AACA,MAAA,sBAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,iBAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,sBAAA;AACA,MAAA,mBAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,oBAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,mBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,uBAAA;AACA,MAAA,kBAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,oBAAA;AACA,MAAA,0BAAA;AACA,MAAA,kBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,qBAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,QAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,oBAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,sBAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,wBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,uBAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,sBAAA;AACA,MAAA,kBAAA;AACA,MAAA,yBAAA;AACA,MAAA,0BAAA;AACA,MAAA,8BAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,kBAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,OAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,mBAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,sBAAA;AACA,MAAA,iBAAA;AACA,MAAA,2BAAA;AACA,MAAA,wBAAA;AACA,MAAA,wBAAA;AACA,MAAA,sBAAA;AACA,MAAA,uBAAA;AACA,MAAA,mBAAA;AACA,MAAA,qBAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,uBAAA;AACA,MAAA,mBAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,cAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,mBAAA;AACA,MAAA,0BAAA;AACA,MAAA,UAAA;AACA,MAAA,mBAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,wBAAA;AACA,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,wBAAA;AACA,MAAA,sBAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,mBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,sBAAA;AACA,MAAA,6BAAA;AACA,MAAA,iCAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,YAAA;AACA,MAAA,gCAAA;AACA,MAAA,sBAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,uBAAA;AACA,MAAA,uBAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,6BAAA;AACA,MAAA,uBAAA;AACA,MAAA,0BAAA;AACA,MAAA,sBAAA;AACA,MAAA,8BAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,sBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,qBAAA;AACA,MAAA,oBAAA;AACA,MAAA,qBAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,SAAA;AACA,MAAA,uBAAA;AACA,MAAA,YAAA;AACA,MAAA,4BAAA;AACA,MAAA,WAAA;AACA,MAAA,sBAAA;AACA,MAAA,gBAAA;AACA,MAAA,wBAAA;AACA,MAAA,yBAAA;AACA,MAAA,qBAAA;AACA,MAAA,qBAAA;AACA,MAAA,qBAAA;AACA,MAAA,gBAAA;AACA,MAAA,2BAAA;AACA,MAAA,4BAAA;AACA,MAAA,4BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,0BAAA;AACA,MAAA,8BAAA;AACA,MAAA,kBAAA;AACA,MAAA,uBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,0BAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,oBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,qBAAA;AACA,MAAA,qBAAA;AACA,MAAA,sBAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,eAAA;AACA,MAAA,QAAA;AACA,MAAA,gBAAA;AACA,MAAA,qBAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,oBAAA;AACA,MAAA,2BAAA;AACA,MAAA,qBAAA;AACA,MAAA,0BAAA;AACA,MAAA,OAAA;AACA,MAAA,sBAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,OAAA;AACA,MAAA,cAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,wBAAA;AACA,MAAA,uBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,OAAA;AACA,MAAA,qBAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,cAAA;AACA,MAAA,qBAAA;AACA,MAAA,uBAAA;AACA,MAAA,+BAAA;AACA,MAAA,8BAAA;AACA,MAAA,6BAAA;AACA,MAAA,gCAAA;AACA,MAAA,6BAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,iBAAA;AACA,MAAA,oBAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,cAAA;AACA,MAAA,4BAAA;AACA,MAAA,2BAAA;AACA,MAAA,4BAAA;AACA,MAAA,wBAAA;AACA,MAAA,0BAAA;AACA,MAAA,2BAAA;AACA,MAAA,wBAAA;AACA,MAAA,0BAAA;AACA,MAAA,sBAAA;AACA,MAAA,qBAAA;AACA,MAAA,wBAAA;AACA,MAAA,sBAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,uBAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,UAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,cAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,sBAAA;AACA,MAAA,gBAAA;AACA,MAAA,SAAA;AACA,MAAA,iBAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,oBAAA;AACA,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,uBAAA;AACA,MAAA,qBAAA;AACA,MAAA,oBAAA;AACA,MAAA,UAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,uBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,sBAAA;AACA,MAAA,sBAAA;AACA,MAAA,sBAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,8BAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,qBAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,wBAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,kCAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,mBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,sBAAA;AACA,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA,qBAAA;AACA,MAAA,mBAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,kBAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,OAAA;AACA,MAAA,kBAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,oBAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,oCAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,oBAAA;AACA,MAAA,uBAAA;AACA,MAAA,SAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,iBAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,qBAAA;AACA,MAAA,uBAAA;AACA,MAAA,iBAAA;AACA,MAAA,oBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,oBAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,gBAAA;AACA,MAAA,yBAAA;AACA,MAAA,QAAA;AACA,MAAA,kBAAA;AACA,MAAA,qBAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,uCAAA;AACA,MAAA,uCAAA;AACA,MAAA,6CAAA;AACA,MAAA,uCAAA;AACA,MAAA,uCAAA;AACA,MAAA,uCAAA;AACA,MAAA,yDAAA;AACA,MAAA,6CAAA;AACA,MAAA,uCAAA;AACA,MAAA,2BAAA;AACA,MAAA,oBAAA;AACA,MAAA,wBAAA;AACA,MAAA,wBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,8BAAA;AACA,MAAA,8BAAA;AACA,MAAA,8BAAA;AACA,MAAA,sBAAA;AACA,MAAA,gCAAA;AACA,MAAA,sBAAA;AACA,MAAA,4BAAA;AACA,MAAA,qBAAA;AACA,MAAA,6BAAA;AACA,MAAA,sBAAA;AACA,MAAA,0BAAA;AACA,MAAA,yBAAA;AACA,MAAA,eAAA;AACA,MAAA,sBAAA;AACA,MAAA,4BAAA;AACA,MAAA,qBAAA;AACA,MAAA,6BAAA;AACA,MAAA,sBAAA;AACA,MAAA,sBAAA;AACA,MAAA,4BAAA;AACA,MAAA,qBAAA;AACA,MAAA,6BAAA;AACA,MAAA,qBAAA;AACA,MAAA,yBAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,UAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,sBAAA;AACA,MAAA,qBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,sBAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,uBAAA;AACA,MAAA,sBAAA;AACA,MAAA,eAAA;AACA,MAAA,QAAA;AACA,MAAA,kBAAA;AACA,MAAA,WAAA;AACA,MAAA,uBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,mBAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,2BAAA;AACA,MAAA,uBAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,0BAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,oBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,wBAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,wBAAA;AACA,MAAA,kBAAA;AACA,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,mBAAA;AACA,MAAA,uBAAA;AACA,MAAA,0BAAA;AACA,MAAA,wBAAA;AACA,MAAA,2BAAA;AACA,MAAA,0BAAA;AACA,MAAA,6BAAA;AACA,MAAA,8BAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,sBAAA;AACA,MAAA,aAAA;AACA,MAAA,sBAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,mBAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,yBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,mBAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,qBAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,mBAAA;AACA,MAAA,kBAAA;AACA,MAAA,uBAAA;AACA,MAAA,mBAAA;AACA,MAAA,eAAA;AACA,MAAA,wBAAA;AACA,MAAA,oBAAA;AACA,MAAA,sBAAA;AACA,MAAA,qBAAA;AACA,MAAA,wBAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,yBAAA;AACA,MAAA,yBAAA;AACA,MAAA,kBAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA;AACF,KAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,cAAcQ,WAAAA,CAAW;AAC3B,EAAA,2BAAA,CAA4BR,SAAAA,EAAS;AAEnC,IAAA,IAAI,WAAW,gBAAA,EAAA;AACf,IAAA,IAAI,YAAY,EAAA;AAChB,IAAA,SAAA,CAAU,KAAA,GAAQ,aAAA,EAAA,CAAgB,GAAA,CAAI,SAAS,IAAA,EAAM;AACnD,MAAA,OAAO;AACL,QAAA,IAAA;QACA,MAAA,EAAQ,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,EAAE,CAAA;QACrC,UAAA,EAAY,EAAA;QACZ,QAAA,EAAU,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,GAAA;QAC7B,SAAA,EAAW,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM;AAChC,OAAA;IACF,CAAC,CAAA;AACD,IAAA,SAAA,CAAU,QAAA,GAAW,SAAS,GAAA,EAAK,MAAA,EAAQ;AACzC,MAAA,OAAO,IAAI,OAAA,CAAQ,MAAA,EAAQ,IAAI,MAAA,GAAS,MAAA,CAAO,MAAM,CAAA,KAAM,EAAA;AAC7D,IAAA,CAAA;AACA,IAAA,SAAA,CAAU,QAAA,GAAW,SAAS,MAAA,EAAQ;AACpC,MAAA,IAAI,UAAA,GAAa,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAA;AACxC,MAAA,OAAO,SAAA,CAAU,KAAA,CAAM,MAAA,CAAO,SAAS,MAAM,IAAA,EAAM;AACjD,QAAA,IAAI,IAAA,CAAK,eAAe,EAAA,EAAI;AAC1B,UAAA,IAAA,CAAK,UAAA,GAAa,QAAA,CAAS,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAChD,QAAA;AACA,QAAA,IAAI,CAAC,SAAA,CAAU,QAAA,CAAS,UAAA,EAAY,GAAA,GAAM,KAAK,UAAU,CAAA,IAAK,UAAA,KAAe,IAAA,CAAK,UAAA,EAAY;AAC5F,UAAA,OAAO,IAAA;AACT,QAAA;AACA,QAAA,OAAO,IAAA;AACT,MAAA,CAAA,EAAG,IAAI,CAAA;AACT,IAAA,CAAA;AACAA,IAAAA,SAAAA,CAAQ,UAAA,GAAa;MACnB,gBAAA,EAAkB,wBAAA;MAClB,eAAA,EAAiB,4DAAA;MACjB,sBAAA,EAAwB,8CAAA;MACxB,oBAAA,EAAsB,4CAAA;MACtB,cAAA,EAAgB,oDAAA;MAChB,eAAA,EAAiB,wDAAA;MACjB,mBAAA,EAAqB;AACvB,KAAA;AACA,IAAA,SAAA,CAAU,QAAA,GAAW,SAAS,KAAA,EAAO;AACnC,MAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,KAAK,CAAA;AAClC,MAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,QAAA,OAAO,kBAAA;AACT,MAAA;AACA,MAAA,IAAI,KAAA,CAAM,SAAS,GAAA,EAAK;AACtB,QAAA,OAAO,iBAAA;AACT,MAAA;AACA,MAAA,IAAI,MAAA,GAAS,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAC5B,MAAA,IAAI,KAAA;AACJ,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,MAAA,EAAQ,EAAE,CAAA,EAAG;AACtC,QAAA,KAAA,GAAQ,OAAO,CAAC,CAAA;AAChB,QAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AACjB,UAAA,OAAO,iBAAA;AACT,QAAA;AACA,QAAA,IAAI,KAAA,CAAM,SAAS,EAAA,EAAI;AACrB,UAAA,OAAO,gBAAA;AACT,QAAA;AACA,QAAA,IAAI,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,GAAA,EAAK;AAC3B,UAAA,OAAO,wBAAA;AACT,QAAA;AACA,QAAA,IAAI,MAAM,MAAA,CAAO,KAAA,CAAM,MAAA,GAAS,CAAC,MAAM,GAAA,EAAK;AAC1C,UAAA,OAAO,sBAAA;AACT,QAAA;AACA,QAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA,EAAG;AAChC,UAAA,OAAO,qBAAA;AACT,QAAA;AACF,MAAA;AACF,IAAA,CAAA;AACAA,IAAAA,SAAAA,CAAQ,KAAA,GAAQ,SAAS,KAAA,EAAO;AAC9B,MAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,QAAA,MAAM,IAAI,UAAU,+BAA+B,CAAA;AACrD,MAAA;AACA,MAAA,IAAI,MAAA,GAAS,KAAA,CAAM,KAAA,CAAM,CAAC,EAAE,WAAA,EAAA;AAC5B,MAAA,IAAI,OAAO,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,MAAM,GAAA,EAAK;AAC5C,QAAA,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,SAAS,CAAC,CAAA;AAC5C,MAAA;AACA,MAAA,IAAIN,MAAAA,GAAQ,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA;AACrC,MAAA,IAAIA,MAAAA,EAAO;AACT,QAAA,OAAO;AACL,UAAA,KAAA;UACA,KAAA,EAAO;YACL,OAAA,EAASM,SAAAA,CAAQ,WAAWN,MAAK,CAAA;YACjC,IAAA,EAAMA;AACR;AACF,SAAA;AACF,MAAA;AACA,MAAA,IAAI,MAAA,GAAS;AACX,QAAA,KAAA;QACA,GAAA,EAAK,IAAA;QACL,GAAA,EAAK,IAAA;QACL,MAAA,EAAQ,IAAA;QACR,SAAA,EAAW,IAAA;QACX,MAAA,EAAQ;AACV,OAAA;AACA,MAAA,IAAI,WAAA,GAAc,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AAClC,MAAA,IAAI,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,MAAM,OAAA,EAAS;AACnD,QAAA,OAAO,MAAA;AACT,MAAA;AACA,MAAA,IAAI,iBAAiB,WAAW;AAC9B,QAAA,IAAI,CAAC,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,EAAG;AACxB,UAAA,OAAO,MAAA;AACT,QAAA;AACA,QAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,UAAA,MAAA,CAAO,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,MAAM,CAAA;AAChD,QAAA;AACA,QAAA,IAAI,OAAO,SAAA,EAAW;AACpB,UAAA,MAAA,CAAO,SAAA,GAAY,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,SAAS,CAAA;AACtD,QAAA;AACA,QAAA,OAAO,MAAA;AACT,MAAA,CAAA;AACA,MAAA,IAAI,IAAA,GAAO,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA;AACpC,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,UAAA,OAAO,MAAA;AACT,QAAA;AACA,QAAA,MAAA,CAAO,GAAA,GAAM,YAAY,GAAA,EAAA;AACzB,QAAA,MAAA,CAAO,GAAA,GAAM,YAAY,GAAA,EAAA;AACzB,QAAA,MAAA,CAAO,MAAA,GAAS,CAAC,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA,CAAE,KAAK,GAAG,CAAA;AACjD,QAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,UAAA,MAAA,CAAO,SAAA,GAAY,YAAY,GAAA,EAAA;AACjC,QAAA;AACA,QAAA,OAAO,cAAA,EAAA;AACT,MAAA;AACA,MAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAChB,MAAA,IAAI,QAAA,GAAW,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,IAAI,eAAe,WAAA,CAAY,KAAA,CAAM,GAAG,WAAA,CAAY,MAAA,GAAS,SAAS,MAAM,CAAA;AAC5E,MAAA,IAAI,KAAK,SAAA,EAAW;AAClB,QAAA,YAAA,CAAa,IAAA,CAAK,QAAA,CAAS,KAAA,EAAO,CAAA;AACpC,MAAA;AACA,MAAA,MAAA,CAAO,GAAA,GAAM,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AAC9B,MAAA,IAAI,CAAC,aAAa,MAAA,EAAQ;AACxB,QAAA,OAAO,cAAA,EAAA;AACT,MAAA;AACA,MAAA,IAAI,KAAK,QAAA,EAAU;AACjB,QAAA,QAAA,CAAS,OAAA,CAAQ,YAAA,CAAa,GAAA,EAAK,CAAA;AACnC,QAAA,MAAA,CAAO,GAAA,GAAM,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AAChC,MAAA;AACA,MAAA,IAAI,CAAC,aAAa,MAAA,EAAQ;AACxB,QAAA,OAAO,cAAA,EAAA;AACT,MAAA;AACA,MAAA,MAAA,CAAO,GAAA,GAAM,aAAa,GAAA,EAAA;AAC1B,MAAA,MAAA,CAAO,MAAA,GAAS,CAAC,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA,CAAE,KAAK,GAAG,CAAA;AACjD,MAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,QAAA,MAAA,CAAO,SAAA,GAAY,YAAA,CAAa,IAAA,CAAK,GAAG,CAAA;AAC1C,MAAA;AACA,MAAA,OAAO,cAAA,EAAA;AACT,IAAA,CAAA;AACAM,IAAAA,SAAAA,CAAQ,GAAA,GAAM,SAAS,MAAA,EAAQ;AAC7B,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,OAAOA,SAAAA,CAAQ,KAAA,CAAM,MAAM,CAAA,CAAE,MAAA,IAAU,IAAA;AACzC,IAAA,CAAA;AACAA,IAAAA,SAAAA,CAAQ,OAAA,GAAU,SAAS,MAAA,EAAQ;AACjC,MAAA,IAAI,MAAA,GAASA,SAAAA,CAAQ,KAAA,CAAM,MAAM,CAAA;AACjC,MAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,MAAM,CAAA;AAC/C,IAAA,CAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,wBAAwBQ,WAAAA,CAAW;AACrC,EAAA,gDAAA,CAAiDR,SAAAA,EAAS;AAExD,IAAA,IAAI,MAAM,WAAA,EAAA;AACV,IAAA,IAAI,mBAAA,GAAsB;AACxB,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA;AACF,KAAA;AACA,IAAA,IAAI,yBAAA,GAA4B,CAAC,WAAA,EAAa,SAAS,CAAA;AACvD,IAAA,SAAS,eAAA,CAAgB,MAAA,EAAQ,OAAA,GAAU,EAAA,EAAI;AAC7C,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACzD,MAAA,MAAM,qBAAA,GAAwB,CAAC,CAAC,OAAA,CAAQ,qBAAA;AACxC,MAAA,MAAM,WAAA,GAAc,CAAC,CAAC,OAAA,CAAQ,WAAA;AAC9B,MAAA,IAAI,qBAAA,IAAyB,mBAAA,CAAoB,QAAA,CAAS,cAAc,CAAA,EAAG;AACzE,QAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,UAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAC5D,UAAA,OAAO,CAAA,EAAG,iBAAiB,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;QAC/C,CAAA,MAAA,IAAW,yBAAA,CAA0B,QAAA,CAAS,cAAc,CAAA,EAAG;AAC7D,UAAA,OAAO,GAAG,cAAc,CAAA,CAAA;AAC1B,QAAA;AACF,MAAA;AACA,MAAA,IAAI,CAAC,WAAA,IAAe,mBAAA,CAAoB,QAAA,CAAS,cAAc,CAAA,EAAG;AAChE,QAAA,MAAM,IAAI,KAAA;AACR,UAAA,CAAA,4CAAA,EAA+C,cAAc,CAAA,wIAAA;AAC/D,SAAA;AACF,MAAA;AACA,MAAA,OAAO,GAAA,CAAI,IAAI,MAAM,CAAA;AACvB,IAAA;AACAA,IAAAA,SAAAA,CAAQ,eAAA,GAAkB,eAAA;AAC5B,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,gBAAgBQ,WAAAA,CAAW;AAC7B,EAAA,wCAAA,CAAyCR,SAAAA,EAAS;AAEhD,IAAA,IAAIc,SAAQ,MAAM;MAChB,WAAA,GAAc;AACZ,QAAA,IAAA,CAAK,WAAA,GAAc,KAAA;AACrB,MAAA;MACA,UAAA,CAAW,MAAA,EAAQ,IAAA,EAAM,GAAA,EAAK,EAAA,EAAI;AAChC,QAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AACjD,MAAA;MACA,WAAA,CAAY,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,EAAA,EAAI;AACnD,QAAA,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAClD,MAAA;AACA,MAAA,SAAA,CAAU,QAAQ,EAAA,EAAI;AACpB,QAAA,MAAM,IAAI,MAAM,8BAA8B,CAAA;AAChD,MAAA;MACA,YAAA,CAAa,SAAA,EAAW,WAAW,EAAA,EAAI;AACrC,QAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AACnD,MAAA;MACA,YAAA,CAAa,MAAA,EAAQ,IAAA,EAAM,GAAA,EAAK,EAAA,EAAI;AAClC,QAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AACnD,MAAA;MACA,aAAA,CAAc,MAAA,EAAQ,MAAM,EAAA,EAAI;AAC9B,QAAA,MAAM,IAAI,MAAM,kCAAkC,CAAA;AACpD,MAAA;AACA,MAAA,gBAAA,CAAiB,EAAA,EAAI;AACnB,QAAA,MAAM,IAAI,MAAM,qCAAqC,CAAA;AACvD,MAAA;AACA,MAAA,aAAA,CAAc,EAAA,EAAI;AAChB,QAAA,MAAM,IAAI,KAAA;AACR,UAAA;AACF,SAAA;AACF,MAAA;AACF,KAAA;AACAd,IAAAA,SAAAA,CAAQ,KAAA,GAAQc,MAAAA;AAClB,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,uBAAuBN,WAAAA,CAAW;AACpC,EAAA,oCAAA,CAAqCR,SAAAA,EAAS;AAE5CA,IAAAA,SAAAA,CAAQ,YAAA,GAAe,SAAS,EAAA,EAAI;AAClC,MAAA,OAAO,MAAA,CAAO,eAAe,WAAW;AACtC,QAAA,IAAI,OAAO,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAC,CAAA,KAAM,UAAA;AAAY,UAAA,EAAA,CAAG,KAAA,CAAM,MAAM,SAAS,CAAA;AAC9E,aAAA;AACH,UAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,YAAA,SAAA,CAAU,SAAA,CAAU,MAAM,CAAA,GAAI,CAAC,KAAK,GAAA,KAAQ;AAC1C,cAAA,IAAI,GAAA;AAAK,gBAAA,OAAO,OAAO,GAAG,CAAA;AAC1B,cAAA,OAAA,CAAQ,GAAG,CAAA;AACb,YAAA,CAAA;AACA,YAAA,SAAA,CAAU,MAAA,EAAA;AACV,YAAA,EAAA,CAAG,KAAA,CAAM,MAAM,SAAS,CAAA;UAC1B,CAAC,CAAA;AACH,QAAA;AACF,MAAA,CAAA,EAAG,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAA,CAAG,MAAM,CAAA;AAC/B,IAAA,CAAA;AACAA,IAAAA,SAAAA,CAAQ,WAAA,GAAc,SAAS,EAAA,EAAI;AACjC,MAAA,OAAO,MAAA,CAAO,eAAe,WAAW;AACtC,QAAA,MAAM,EAAA,GAAK,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAC,CAAA;AACzC,QAAA,IAAI,OAAO,EAAA,KAAO,UAAA;AAAY,UAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AACxD,aAAA;AACH,UAAA,OAAO,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAC,CAAA;AACrC,UAAA,SAAA,CAAU,MAAA,EAAA;AACV,UAAA,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,EAAA,CAAG,IAAA,EAAM,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,QAAA;AACF,MAAA,CAAA,EAAG,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAA,CAAG,MAAM,CAAA;AAC/B,IAAA,CAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,wBAAwBQ,WAAAA,CAAW;AACrC,EAAA,gDAAA,CAAiDR,SAAAA,EAAS;AAExD,IAAA,IAAI,YAAY,qBAAA,EAAA;AAChB,IAAA,SAAS,aAAA,CAAc,QAAQ,qBAAA,EAAuB;AACpD,MAAA,MAAM,MAAA,GAAS,SAAA,CAAU,eAAA,CAAgB,MAAA,EAAQ;AAC/C,QAAA;AACD,OAAA,CAAA;AACD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,IAAI,UAAU,MAAA,EAAQ;AACpB,QAAA,OAAO,CAAC,MAAM,CAAA;AAChB,MAAA;AACA,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,EAAE,CAAA,IAAK,GAAA,EAAK;AAC3B,QAAA,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC7B,MAAA;AACA,MAAA,MAAM,SAAS,MAAA,CAAO,KAAA,CAAM,GAAG,EAAE,MAAA,CAAO,SAAS,CAAA,CAAE,CAAA;AACnD,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,GAAG,EAAE,OAAA,EAAA;AAChC,MAAA,IAAI,GAAA,GAAM,MAAA;AACV,MAAA,MAAM,YAAA,GAAe,CAAC,GAAG,CAAA;AACzB,MAAA,OAAO,MAAM,MAAA,EAAQ;AACnB,QAAA,GAAA,GAAM,CAAA,EAAG,KAAA,CAAM,KAAA,EAAO,IAAI,GAAG,CAAA,CAAA;AAC7B,QAAA,YAAA,CAAa,KAAK,GAAG,CAAA;AACvB,MAAA;AACA,MAAA,OAAO,YAAA;AACT,IAAA;AACAA,IAAAA,SAAAA,CAAQ,aAAA,GAAgB,aAAA;AAC1B,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,oBAAoBQ,WAAAA,CAAW;AACjC,EAAA,4CAAA,CAA6CR,SAAAA,EAAS;AAEpD,IAAA,SAASe,UAAAA,CAAU,SAAS,UAAA,EAAY;AACtC,MAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,UAAU,CAAA;AACtC,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,IAAI,UAAA,CAAW,MAAA,CAAO,EAAE,CAAA,KAAM,GAAA,EAAK;AACjC,UAAA,OAAO,IAAA;AACT,QAAA;AACA,QAAA,IAAI,QAAQ,MAAA,CAAO,UAAA,CAAW,MAAA,EAAQ,CAAC,MAAM,GAAA,EAAK;AAChD,UAAA,OAAO,IAAA;AACT,QAAA;AACF,MAAA;AACA,MAAA,OAAO,KAAA;AACT,IAAA;AACAf,IAAAA,SAAAA,CAAQ,SAAA,GAAYe,UAAAA;AACtB,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,qBAAqBP,WAAAA,CAAW;AAClC,EAAA,6CAAA,CAA8CR,SAAAA,EAAS;AACrD,IAAA,SAAS,WAAA,GAAc;AACrB,MAAA,IAAI;AACF,QAAA,OAAOT,YAAU,MAAM,CAAA;AACzB,MAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,QAAA,OAAO,IAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,SAAS,yBAAA,GAA4B;AACnC,MAAA,uBAAO,MAAA,CAAO,IAAI,4BAA4B,CAAA;AAChD,IAAA;AACA,IAAA,SAAS,sCAAsC,OAAA,EAAS;AACtD,MAAA,MAAM,YAAA,GAAe,QAAQ,WAAA,IAAe,WAAA;AAC5C,MAAA,MAAM,OAAO,YAAA,EAAA;AACb,MAAA,OAAO,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,MAAA,GAAS,IAAA;AACtC,IAAA;AACAS,IAAAA,SAAAA,CAAQ,iBAAiB,SAAS,cAAA,CAAe,QAAA,EAAU,OAAA,GAAU,EAAA,EAAI;AACvE,MAAA,MAAM,YAAA,GAAe,QAAQ,WAAA,IAAe,WAAA;AAC5C,MAAA,MAAM,OAAO,YAAA,EAAA;AACb,MAAA,OAAO,SAAS,OAAA,CAAQ,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO;AAChD,QAAA,OAAO,IAAA,GAAO,KAAK,OAAA,CAAQ,KAAA,EAAO,YAAY,KAAK,CAAA,GAAI,SAAS,KAAK,CAAA;AACvE,MAAA,CAAA;AACF,IAAA,CAAA;AACAA,IAAAA,SAAAA,CAAQ,sBAAA,GAAyB,SAAS,sBAAA,CAAuB,OAAA,GAAU,EAAA,EAAI;AAC7E,MAAA,MAAM,0BAAA,GAA6B,QAAQ,yBAAA,IAA6B,yBAAA;AACxE,MAAA,OAAO,0BAAA,EAAA,IAAgC,qCAAA,CAAsC,OAAO,CAAA;AACtF,IAAA,CAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,mBAAmBQ,WAAAA,CAAW;AAChC,EAAA,2CAAA,CAA4CR,SAAAA,EAAS;AAEnD,IAAA,IAAI,EAAE,YAAA,EAAA,GAAiB,oBAAA,EAAA;AACvB,IAAA,IAAIc,MAAAA,GAAQ,eAAA,CAAgB,KAAA;AAC5B,IAAA,IAAI,aAAA,GAAgB,uBAAA,CAAwB,aAAA;AAC5C,IAAA,IAAIC,UAAAA,GAAY,mBAAA,CAAoB,SAAA;AACpC,IAAA,IAAI,EAAE,sBAAA,EAAwB,cAAA,EAAA,GAAmB,kBAAA,EAAA;AACjD,IAAA,IAAIC,kBAAAA,GAAoB,cAAcF,MAAAA,CAAM;MAC1C,WAAA,GAAc;AACZ,QAAA,KAAA,EAAA;AACA,QAAA,IAAA,CAAK,WAAA,GAAc,IAAA;AACnB,QAAA,IAAA,CAAK,GAAA,mBAAsB,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAC7C,QAAA,MAAM,sBAAsB,sBAAA,EAAA;AAC5B,QAAA,IAAI,mBAAA,EAAqB;AACvB,UAAA,IAAA,CAAK,mBAAmB,IAAI,IAAA,CAAK,OAAA;AACnC,QAAA;AACF,MAAA;MACA,OAAA,GAAU;AACR,QAAA,MAAM,IAAA,GAAO,EAAE,OAAA,EAAS,cAAA,CAAe,eAAe,CAAA,EAAA;AACtD,QAAA,OAAO,UAAU,IAAA,CAAK,OAAA,CAAQ,KAAK,GAAA,EAAK,KAAA,EAAO,CAAC,CAAC,CAAA,EAAA,CAAA;AACnD,MAAA;MACA,UAAA,CAAW,MAAA,EAAQ,IAAA,EAAM,GAAA,EAAK,EAAA,EAAI;AAChC,QAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,EAAG;AACrB,UAAA,OAAO,EAAA,CAAG,MAAM,MAAM,CAAA;AACxB,QAAA;AACA,QAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,CAAE,IAAI,CAAA,EAAG;AAC3B,UAAA,OAAO,EAAA,CAAG,MAAM,MAAM,CAAA;AACxB,QAAA;AACA,QAAA,OAAO,EAAA,CAAG,IAAA,EAAM,IAAA,CAAK,GAAA,CAAI,MAAM,EAAE,IAAI,CAAA,CAAE,GAAG,CAAA,IAAK,IAAI,CAAA;AACrD,MAAA;MACA,WAAA,CAAY,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,EAAA,EAAI;AACnD,QAAA,MAAM,UAAU,EAAA;AAChB,QAAA,IAAI,OAAO,0BAA0B,UAAA,EAAY;AAC/C,UAAA,EAAA,GAAK,qBAAA;AACL,UAAA,qBAAA,GAAwB,IAAA;AAC1B,QAAA;AACA,QAAA,IAAI,CAAC,MAAA,EAAQ;AACX,UAAA,OAAO,EAAA,CAAG,IAAA,EAAM,EAAE,CAAA;AACpB,QAAA;AACA,QAAA,IAAI,WAAA;AACJ,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,WAAA,GAAc,SAAS,SAAS,WAAA,EAAa;AAC3C,YAAA,KAAA,MAAW,WAAW,WAAA,EAAa;AACjC,cAAA,MAAM,SAAA,GAAY,YAAY,OAAO,CAAA;AACrC,cAAA,KAAA,MAAW,OAAO,SAAA,EAAW;AAC3B,gBAAA,OAAA,CAAQ,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAC7B,cAAA;AACF,YAAA;AACF,UAAA,CAAA;QACF,CAAA,MAAO;AACL,UAAA,WAAA,GAAc,SAAS,SAAS,WAAA,EAAa;AAC3C,YAAA,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,CAAE,OAAA,CAAQ,CAAC,UAAA,KAAe;AAC/C,cAAA,IAAIC,UAAAA,CAAU,IAAA,EAAM,UAAU,CAAA,EAAG;AAC/B,gBAAA,MAAM,SAAA,GAAY,YAAY,UAAU,CAAA;AACxC,gBAAA,KAAA,MAAW,OAAO,SAAA,EAAW;AAC3B,kBAAA,OAAA,CAAQ,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAC7B,gBAAA;AACF,cAAA;YACF,CAAC,CAAA;AACH,UAAA,CAAA;AACF,QAAA;AACA,QAAA,MAAM,UAAU,aAAA,CAAc,MAAA,EAAQ,qBAAqB,CAAA,IAAK,CAAC,MAAM,CAAA;AACvE,QAAA,MAAM,MAAM,IAAA,CAAK,GAAA;AACjB,QAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,SAAA,KAAc;AAC7B,UAAA,MAAM,WAAA,GAAc,IAAI,SAAS,CAAA;AACjC,UAAA,IAAI,CAAC,WAAA,EAAa;AAChB,YAAA;AACF,UAAA;AACA,UAAA,WAAA,CAAY,WAAW,CAAA;QACzB,CAAC,CAAA;AACD,QAAA,EAAA,CAAG,MAAM,OAAO,CAAA;AAClB,MAAA;AACA,MAAA,SAAA,CAAU,QAAQ,EAAA,EAAI;AACpB,QAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA,EAAG;AAC5B,UAAA,IAAA,CAAK,IAAI,MAAA,CAAO,MAAM,CAAA,mBAAoB,MAAA,CAAO,OAAO,IAAI,CAAA;AAC9D,QAAA;AACA,QAAA,IAAI,CAAC,KAAK,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA,CAAE,MAAA,CAAO,IAAI,CAAA,EAAG;AACzC,UAAA,IAAA,CAAK,GAAA,CAAI,OAAO,MAAM,CAAA,CAAE,OAAO,IAAI,CAAA,mBAAoB,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAC3E,QAAA;AACA,QAAA,IAAA,CAAK,GAAA,CAAI,OAAO,MAAM,CAAA,CAAE,OAAO,IAAI,CAAA,CAAE,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA;AACnD,QAAA,EAAA,CAAG,IAAI,CAAA;AACT,MAAA;MACA,YAAA,CAAa,SAAA,EAAW,WAAW,EAAA,EAAI;AACrC,QAAA,IAAA,CAAK,SAAA,CAAU,WAAW,EAAE,CAAA;AAC9B,MAAA;MACA,YAAA,CAAa,MAAA,EAAQ,IAAA,EAAM,GAAA,EAAK,EAAA,EAAI;AAClC,QAAA,IAAI,KAAK,GAAA,CAAI,MAAM,CAAA,IAAK,IAAA,CAAK,IAAI,MAAM,CAAA,CAAE,IAAI,CAAA,IAAK,KAAK,GAAA,CAAI,MAAM,EAAE,IAAI,CAAA,CAAE,GAAG,CAAA,EAAG;AAC7E,UAAA,OAAO,KAAK,GAAA,CAAI,MAAM,CAAA,CAAE,IAAI,EAAE,GAAG,CAAA;AACnC,QAAA;AACA,QAAA,EAAA,CAAG,IAAI,CAAA;AACT,MAAA;MACA,aAAA,CAAc,MAAA,EAAQ,MAAM,EAAA,EAAI;AAC9B,QAAA,IAAI,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,EAAG;AACpB,UAAA,IAAI,IAAA,EAAM;AACR,YAAA,OAAO,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,CAAE,IAAI,CAAA;UAC9B,CAAA,MAAO;AACL,YAAA,OAAO,IAAA,CAAK,IAAI,MAAM,CAAA;AACxB,UAAA;AACF,QAAA;AACA,QAAA,OAAO,GAAG,IAAI,CAAA;AAChB,MAAA;AACA,MAAA,gBAAA,CAAiB,EAAA,EAAI;AACnB,QAAA,IAAA,CAAK,GAAA,mBAAsB,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAC7C,QAAA,OAAO,GAAG,IAAI,CAAA;AAChB,MAAA;AACA,MAAA,aAAA,CAAc,EAAA,EAAI;AAChB,QAAA,MAAM,UAAU,EAAA;AAChB,QAAA,MAAM,MAAM,IAAA,CAAK,GAAA;AACjB,QAAA,MAAM,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAC/B,QAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC1B,UAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA;AACrC,UAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACtB,YAAA,MAAM,OAAO,MAAA,CAAO,IAAA,CAAK,IAAI,MAAM,CAAA,CAAE,IAAI,CAAC,CAAA;AAC1C,YAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACpB,cAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,gBAAA,OAAA,CAAQ,KAAK,GAAA,CAAI,MAAM,EAAE,IAAI,CAAA,CAAE,GAAG,CAAC,CAAA;AACrC,cAAA;YACF,CAAC,CAAA;UACH,CAAC,CAAA;QACH,CAAC,CAAA;AACD,QAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AACrB,UAAA,OAAA,CAAQ,CAAA,CAAE,aAAA,IAAiB,CAAA,KAAM,CAAA,CAAE,aAAA,IAAiB,CAAA,CAAA;QACtD,CAAC,CAAA;AACD,QAAA,EAAA,CAAG,MAAM,OAAO,CAAA;AAClB,MAAA;AACF,KAAA;AACA,IAAA;AACE,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA;AACA,KAAA,CAAA,OAAA,CAAQ,CAAC,IAAA,KAAS;AAClBC,MAAAA,kBAAAA,CAAkB,SAAA,CAAU,IAAI,CAAA,GAAI,YAAA;AAClCA,QAAAA,kBAAAA,CAAkB,UAAU,IAAI;AAClC,OAAA;IACF,CAAC,CAAA;AACDhB,IAAAA,SAAAA,CAAQ,iBAAA,GAAoBgB,kBAAAA;AAC5B,IAAA,SAAS,gBAAgB,GAAA,EAAK;AAC5B,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAC/B,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,OAAO,6BAAA;AACT,MAAA;AACA,MAAA,IAAI,MAAA,GAAS,8BAAA;AACb,MAAA,MAAA,CAAO,KAAK,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,QAAQ,CAAA,KAAM;AACtC,QAAA,MAAA,IAAU,YAAA,CAAa,MAAA,EAAQ,GAAA,CAAI,MAAM,CAAC,CAAA;AAC1C,QAAA,IAAI,CAAA,GAAI,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC1B,UAAA,MAAA,IAAU,GAAA;AACZ,QAAA;AACA,QAAA,MAAA,IAAU,IAAA;MACZ,CAAC,CAAA;AACD,MAAA,MAAA,IAAU,GAAA;AACV,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,SAAS,YAAA,CAAa,YAAY,WAAA,EAAa;AAC7C,MAAA,MAAM,MAAA,GAAS,IAAA;AACf,MAAA,IAAI,MAAA,GAAS,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,UAAU,CAAA;;AAEpC,MAAA,MAAA,CAAO,KAAK,WAAW,CAAA,CAAE,QAAQ,CAAC,IAAA,EAAM,GAAG,KAAA,KAAU;AACnD,QAAA,MAAA,IAAU,UAAA,CAAW,IAAA,EAAM,WAAA,CAAY,IAAI,CAAC,CAAA;AAC5C,QAAA,IAAI,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACxB,UAAA,MAAA,IAAU,GAAA;AACZ,QAAA;AACA,QAAA,MAAA,IAAU,IAAA;MACZ,CAAC,CAAA;AACD,MAAA,MAAA,IAAU,GAAG,MAAM,CAAA,CAAA,CAAA;AACnB,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,SAAS,UAAA,CAAW,UAAU,SAAA,EAAW;AACvC,MAAA,MAAM,MAAA,GAAS,MAAA;AACf,MAAA,IAAI,MAAA,GAAS,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA;;AAElC,MAAA,MAAA,CAAO,KAAK,SAAS,CAAA,CAAE,QAAQ,CAAC,UAAA,EAAY,GAAG,WAAA,KAAgB;AAC7D,QAAA,MAAM,MAAA,GAAS,UAAU,UAAU,CAAA;AACnC,QAAA,MAAA,IAAU,CAAA,MAAA,EAAS,UAAU,CAAA,EAAA,EAAK,MAAA,CAAO,SAAS,CAAA,CAAA;AAClD,QAAA,IAAI,CAAA,GAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG;AAC9B,UAAA,MAAA,IAAU,GAAA;AACZ,QAAA;AACA,QAAA,MAAA,IAAU,IAAA;MACZ,CAAC,CAAA;AACD,MAAA,MAAA,IAAU,GAAG,MAAM,CAAA,CAAA,CAAA;AACnB,MAAA,OAAO,MAAA;AACT,IAAA;AACAhB,IAAAA,SAAAA,CAAQ,eAAA,GAAkB,eAAA;AAC5B,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,qBAAqBQ,WAAAA,CAAW;AAClC,EAAA,6CAAA,CAA8CR,SAAAA,EAAS;AAErD,IAAA,IAAI,QAAA,GAAW,OAAO,SAAA,CAAU,QAAA;AAChC,IAAA,SAAS,WAAW,IAAA,EAAM;AACxB,MAAA,OAAO,OAAO,IAAA,KAAS,UAAA;AACzB,IAAA;AACA,IAAA,SAAS,iBAAiB,IAAA,EAAM;AAC9B,MAAA,OAAO,QAAA,CAAS,IAAI,CAAA,IAAK,IAAA,KAAS,EAAA;AACpC,IAAA;AACA,IAAA,SAAS,OAAO,IAAA,EAAM;AACpB,MAAA,OAAO,iBAAiB,IAAA,EAAM,IAAI,KAAK,SAAA,CAAU,IAAA,CAAK,SAAS,CAAA;AACjE,IAAA;AACA,IAAA,SAAS,cAAc,IAAA,EAAM;AAC3B,MAAA,OAAO,SAAS,EAAA,IAAM,IAAA,YAAgB,MAAA,IAAU,IAAA,CAAK,UAAA,KAAe,EAAA;AACtE,IAAA;AACA,IAAA,SAAS,SAAS,IAAA,EAAM;AACtB,MAAA,OAAO,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,YAAgB,MAAA;AACrD,IAAA;AACA,IAAA,SAASiB,UAAS,IAAA,EAAM;AACtB,MAAA,OAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,KAAM,iBAAA;AACjC,IAAA;AACA,IAAA,SAAS,gBAAA,CAAiB,MAAM,SAAA,EAAW;AACzC,MAAA,IAAI;AACF,QAAA,OAAO,IAAA,YAAgB,SAAA;AACzB,MAAA,CAAA,CAAA,OAASvB,MAAAA,EAAO;AACd,QAAA,OAAO,KAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,SAAS,oBAAoB,IAAA,EAAM;AACjC,MAAA,OAAO,gBAAA,CAAiB,IAAI,CAAA,IAAKuB,SAAAA,CAAS,IAAI,CAAA,IAAK,UAAA,IAAc,IAAA,IAAQ,UAAA,IAAc,IAAA,IAAQ,UAAA,IAAc,IAAA,IAAQ,gBAAA,CAAiB,MAAM,GAAG,CAAA;AACjJ,IAAA;AACA,IAAA,SAAS,UAAU,IAAA,EAAM;AACvB,MAAA,OAAO,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,GAAO,CAAA,KAAM,CAAA;AAClD,IAAA;AACA,IAAA,SAAS,QAAA,CAAS,IAAA,EAAM,EAAA,EAAI,OAAA,EAAS;AACnC,MAAA,IAAI,CAAC,UAAA,CAAW,EAAE,CAAA,EAAG;AACnB,QAAA,OAAA,GAAU,EAAA;AACV,QAAA,EAAA,GAAK,IAAA;AACP,MAAA;AACA,MAAA,IAAI,CAACA,UAAS,OAAO,CAAA;AAAG,QAAA,OAAA,GAAU,EAAE,OAAO,cAAA,EAAA;AAC3C,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAI,EAAA,EAAI;AACN,UAAA,EAAA,CAAG,IAAI,cAAA,CAAe,OAAO,CAAC,CAAA;QAChC,CAAA,MAAO;AACL,UAAA,MAAM,IAAI,eAAe,OAAO,CAAA;AAClC,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA,IAAI,cAAA,GAAiB,cAAc,KAAA,CAAM;AACvC,MAAA,WAAA,CAAA,GAAe,MAAA,EAAQ;AACrB,QAAA,KAAA,CAAM,GAAG,MAAM,CAAA;AACjB,MAAA;AACF,KAAA;AACAjB,IAAAA,SAAAA,CAAQ,cAAA,GAAiB,cAAA;AACzBA,IAAAA,SAAAA,CAAQ,UAAA,GAAa,UAAA;AACrBA,IAAAA,SAAAA,CAAQ,gBAAA,GAAmB,gBAAA;AAC3BA,IAAAA,SAAAA,CAAQ,MAAA,GAAS,MAAA;AACjBA,IAAAA,SAAAA,CAAQ,aAAA,GAAgB,aAAA;AACxBA,IAAAA,SAAAA,CAAQ,QAAA,GAAW,QAAA;AACnBA,IAAAA,SAAAA,CAAQ,QAAA,GAAWiB,SAAAA;AACnBjB,IAAAA,SAAAA,CAAQ,mBAAA,GAAsB,mBAAA;AAC9BA,IAAAA,SAAAA,CAAQ,QAAA,GAAW,QAAA;AACrB,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,kBAAkBQ,WAAAA,CAAW;AAC/B,EAAA,0CAAA,CAA2CR,WAAS,MAAA,EAAQ;AAC1D,IAAA,MAAA,CAAO,OAAA,GAAU,OAAA;AACnB,EAAA;AACF,CAAC,CAAA;AAGD,IAAIkB,kBAAiBV,WAAAA,CAAW;AAC9B,EAAA,yCAAA,CAA0CR,SAAAA,EAAS;AAEjD,IAAA,IAAI,WAAW,gBAAA,EAAA;AACf,IAAA,IAAI,WAAW,iBAAA,EAAA;AACf,IAAA,IAAI,YAAY,qBAAA,EAAA;AAChB,IAAA,IAAIc,MAAAA,GAAQ,eAAA,CAAgB,KAAA;AAC5B,IAAA,IAAIE,kBAAAA,GAAoB,kBAAA,CAAmB,iBAAA;AAC3C,IAAA,IAAID,UAAAA,GAAY,mBAAA,CAAoB,SAAA;AACpC,IAAA,IAAI,aAAa,kBAAA,EAAA;AACjB,IAAA,IAAI,UAAU,eAAA,EAAA;AACd,IAAA,IAAI,EAAE,YAAA,EAAA,GAAiB,oBAAA,EAAA;AACvB,IAAA,IAAI,EAAE,sBAAA,EAAA,GAA2B,kBAAA,EAAA;AACjC,IAAA,IAAI,aAAA,GAAgB,+CAAA;AACpB,IAAA,IAAI,aAAA,GAAgB,aAAA;AACpB,IAAA,IAAI,WAAA,GAAc,CAAC,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AACnC,IAAA,IAAI,UAAA,GAAa,uBAAA;AACjB,IAAA,IAAI,UAAA,GAAa,4CAAA;AACjB,IAAA,IAAI,YAAA,GAAe;MACjB,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,CAAA;MACL,GAAA,EAAK,EAAA;MACL,GAAA,EAAK;AACP,KAAA;AACA,IAAA,IAAI,QAAA,GAAW,YAAA;AACf,IAAA,IAAI,QAAA,GAAW,CAAA;AACf,IAAA,IAAI,yBAAA,GAA4B,6FAAA;AAChC,IAAA,SAAS,qBAAqB,KAAA,EAAO;AACnC,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,gBAAA,CAAiB,KAAK,GAAG,KAAK,CAAA;AAC7D,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAA,CAAE,WAAA,EAAA;AAC9B,MAAA,IAAI,OAAA,KAAY,MAAA,IAAU,OAAA,KAAY,KAAA,IAAS,YAAY,QAAA,EAAU;AACnE,QAAA,OAAO,OAAA;MACT,CAAA,MAAO;AACL,QAAA,OAAO,IAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,IAAI,kBAAA,GAAqB,OAAO,MAAA,CAAO;MACrC,MAAA,EAAQ,QAAA;MACR,MAAA,EAAQ,QAAA;MACR,QAAA,EAAU;AACX,KAAA,CAAA;AACD,IAAA,IAAI,kBAAA,GAAqB,2oCAAA;AACzB,IAAA,IAAI,WAAA,GAAc;;;;;;;;;;;AAWpB,CAAA,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA,CAAE,QAAQ,KAAA,EAAO,EAAE,EAAE,IAAA,EAAA;AAC7C,IAAA,IAAI,kBAAA,GAAqB,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,CAAG,CAAA;AACtD,IAAA,SAAS,WAAA,CAAY,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,UAAA,EAAY;AAC5D,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,OAAO,KAAA,GAAQ,MAAM,MAAA,EAAQ;AAC3B,QAAA,MAAM,CAAA,GAAI,KAAA,CAAM,UAAA,CAAW,KAAK,CAAA;AAChC,QAAA,IAAI,CAAA,IAAK,EAAA,IAAM,CAAA,IAAK,EAAA,EAAI;AACtB,UAAA;AACF,QAAA;AACA,QAAA,KAAA,EAAA;AACF,MAAA;AACA,MAAA,IAAI,KAAA,GAAQ,SAAA,IAAa,KAAA,GAAQ,SAAA,EAAW;AAC1C,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,IAAI,CAAC,UAAA,IAAc,KAAA,IAAS,KAAA,CAAM,MAAA,EAAQ;AACxC,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,OAAO,SAAS,KAAA,CAAM,MAAA,CAAO,CAAA,EAAG,KAAK,GAAG,EAAE,CAAA;AAC5C,IAAA;AACA,IAAA,SAAS,UAAU,KAAA,EAAO;AACxB,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAC7B,MAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AACvB,MAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,QAAA,MAAM,aAAa,CAAA,IAAK,CAAA;AACxB,QAAA,MAAM,MAAM,WAAA,CAAY,KAAA,CAAM,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,UAAU,CAAA;AAClD,QAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,UAAA,OAAO,IAAA;AACT,QAAA;AACA,QAAA,MAAA,CAAO,CAAC,CAAA,GAAI,GAAA;AACd,MAAA;AACA,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,SAAS,WAAW,KAAA,EAAO;AACzB,MAAA,KAAA,GAAQ,OAAO,KAAK,CAAA,CAAE,OAAO,CAAA,EAAG,CAAC,EAAE,WAAA,EAAA;AACnC,MAAA,MAAM,GAAA,GAAM,aAAa,KAAK,CAAA;AAC9B,MAAA,OAAO,GAAA,IAAO,IAAI,GAAA,GAAM,IAAA;AAC1B,IAAA;AACA,IAAA,SAAS,UAAU,GAAA,EAAK;AACtB,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA;AACF,MAAA;AACA,MAAA,MAAM,MAAA,GAAS,GAAA,CAAI,KAAA,CAAM,UAAU,CAAA;AACnC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA;AACF,MAAA;AACA,MAAA,IAAI,IAAA,GAAO,IAAA;AACX,MAAA,IAAI,MAAA,GAAS,IAAA;AACb,MAAA,IAAI,MAAA,GAAS,IAAA;AACb,MAAA,IAAI,UAAA,GAAa,IAAA;AACjB,MAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,MAAA,IAAI,IAAA,GAAO,IAAA;AACX,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AACtC,QAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,IAAA,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AACjB,UAAA;AACF,QAAA;AACA,QAAA,IAAI,MAAA;AACJ,QAAA,IAAI,WAAW,IAAA,EAAM;AACnB,UAAA,MAAA,GAAS,UAAU,KAAK,CAAA;AACxB,UAAA,IAAI,MAAA,EAAQ;AACV,YAAA,IAAA,GAAO,OAAO,CAAC,CAAA;AACf,YAAA,MAAA,GAAS,OAAO,CAAC,CAAA;AACjB,YAAA,MAAA,GAAS,OAAO,CAAC,CAAA;AACjB,YAAA;AACF,UAAA;AACF,QAAA;AACA,QAAA,IAAI,eAAe,IAAA,EAAM;AACvB,UAAA,MAAA,GAAS,WAAA,CAAY,KAAA,EAAO,CAAA,EAAG,CAAA,EAAG,IAAI,CAAA;AACtC,UAAA,IAAI,WAAW,IAAA,EAAM;AACnB,YAAA,UAAA,GAAa,MAAA;AACb,YAAA;AACF,UAAA;AACF,QAAA;AACA,QAAA,IAAI,UAAU,IAAA,EAAM;AAClB,UAAA,MAAA,GAAS,WAAW,KAAK,CAAA;AACzB,UAAA,IAAI,WAAW,IAAA,EAAM;AACnB,YAAA,KAAA,GAAQ,MAAA;AACR,YAAA;AACF,UAAA;AACF,QAAA;AACA,QAAA,IAAI,SAAS,IAAA,EAAM;AACjB,UAAA,MAAA,GAAS,WAAA,CAAY,KAAA,EAAO,CAAA,EAAG,CAAA,EAAG,IAAI,CAAA;AACtC,UAAA,IAAI,WAAW,IAAA,EAAM;AACnB,YAAA,IAAA,GAAO,MAAA;AACP,YAAA,IAAI,IAAA,IAAQ,EAAA,IAAM,IAAA,IAAQ,EAAA,EAAI;AAC5B,cAAA,IAAA,IAAQ,IAAA;YACV,CAAA,MAAA,IAAW,IAAA,IAAQ,CAAA,IAAK,IAAA,IAAQ,EAAA,EAAI;AAClC,cAAA,IAAA,IAAQ,GAAA;AACV,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,IAAI,eAAe,IAAA,IAAQ,KAAA,KAAU,QAAQ,IAAA,KAAS,IAAA,IAAQ,WAAW,IAAA,IAAQ,UAAA,GAAa,KAAK,UAAA,GAAa,EAAA,IAAM,OAAO,IAAA,IAAQ,IAAA,GAAO,MAAM,MAAA,GAAS,EAAA,IAAM,SAAS,EAAA,EAAI;AAC5K,QAAA;AACF,MAAA;AACA,MAAA,OAAO,IAAI,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,IAAA,EAAM,OAAO,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,MAAM,CAAC,CAAA;AACzE,IAAA;AACA,IAAA,SAAS,WAAW,IAAA,EAAM;AACxB,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,MAAA,CAAO,IAAI,GAAG,IAAI,CAAA;AACjD,MAAA,OAAO,KAAK,WAAA,EAAA;AACd,IAAA;AACA,IAAA,SAAS,gBAAgB,GAAA,EAAK;AAC5B,MAAA,IAAI,OAAO,IAAA,EAAM;AACf,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,GAAA,GAAM,GAAA,CAAI,IAAA,EAAA,CAAO,OAAA,CAAQ,OAAO,EAAE,CAAA;AAClC,MAAA,IAAI,kBAAA,CAAmB,IAAA,CAAK,GAAG,CAAA,EAAG;AAChC,QAAA,GAAA,GAAM,IAAI,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,CAAE,OAAA,CAAQ,KAAK,EAAE,CAAA;AAC5C,MAAA;AACA,MAAA,IAAI,QAAA,IAAY,kBAAA,CAAmB,IAAA,CAAK,GAAG,CAAA,EAAG;AAC5C,QAAA,GAAA,GAAM,QAAA,CAAS,QAAQ,GAAG,CAAA;AAC5B,MAAA;AACA,MAAA,OAAO,IAAI,WAAA,EAAA;AACb,IAAA;AACA,IAAA,SAASI,YAAAA,CAAY,GAAA,EAAK,MAAA,EAAQ,YAAA,EAAc;AAC9C,MAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,MAAA,IAAU,IAAA,EAAM;AACjC,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,QAAA,GAAA,GAAM,gBAAgB,GAAG,CAAA;AACzB,QAAA,MAAA,GAAS,gBAAgB,MAAM,CAAA;AACjC,MAAA;AACA,MAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,MAAM,GAAA,GAAM,GAAA,CAAI,WAAA,CAAY,MAAM,CAAA;AAClC,MAAA,IAAI,OAAO,CAAA,EAAG;AACZ,QAAA,OAAO,KAAA;AACT,MAAA;AACA,MAAA,IAAI,GAAA,CAAI,MAAA,KAAW,MAAA,CAAO,MAAA,GAAS,GAAA,EAAK;AACtC,QAAA,OAAO,KAAA;AACT,MAAA;AACA,MAAA,IAAI,IAAI,MAAA,CAAO,GAAA,GAAM,CAAA,EAAG,CAAC,MAAM,GAAA,EAAK;AAClC,QAAA,OAAO,KAAA;AACT,MAAA;AACA,MAAA,IAAI,kBAAA,CAAmB,IAAA,CAAK,GAAG,CAAA,EAAG;AAChC,QAAA,OAAO,KAAA;AACT,MAAA;AACA,MAAA,OAAO,IAAA;AACT,IAAA;AACA,IAAA,SAAS,YAAY,IAAA,EAAM;AACzB,MAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,OAAO,CAAA,EAAG,CAAC,MAAM,GAAA,EAAK;AACtC,QAAA,OAAO,GAAA;AACT,MAAA;AACA,MAAA,IAAI,SAAS,GAAA,EAAK;AAChB,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,WAAA,CAAY,GAAG,CAAA;AACvC,MAAA,IAAI,eAAe,CAAA,EAAG;AACpB,QAAA,OAAO,GAAA;AACT,MAAA;AACA,MAAA,OAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA;AACjC,IAAA;AACA,IAAA,SAAS,eAAe,GAAA,EAAK;AAC3B,MAAA,IAAI,UAAA,CAAW,cAAc,GAAG,CAAA;AAAG,QAAA,OAAO,GAAA;AAC1C,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,CAAY,QAAQ,CAAA,EAAA,EAAK;AAC3C,QAAA,MAAM,aAAA,GAAgB,GAAA,CAAI,OAAA,CAAQ,WAAA,CAAY,CAAC,CAAC,CAAA;AAChD,QAAA,IAAI,kBAAkB,EAAA,EAAI;AACxB,UAAA,GAAA,GAAM,GAAA,CAAI,MAAA,CAAO,CAAA,EAAG,aAAa,CAAA;AACnC,QAAA;AACF,MAAA;AACA,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,eAAA,CAAgB,YAAY,SAAA,EAAW;AAC9C,MAAA,UAAA,GAAa,eAAe,UAAU,CAAA;AACtC,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,UAAU,GAAG,UAAU,CAAA;AAC/D,MAAA,IAAI,OAAA,GAAU,UAAA,CAAW,OAAA,CAAQ,GAAG,CAAA;AACpC,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,IAAI,YAAY,CAAA,EAAG;AACjB,UAAA,UAAA,GAAa,UAAA,CAAW,OAAO,CAAC,CAAA;AAChC,UAAA,OAAA,GAAU,UAAA,CAAW,QAAQ,GAAG,CAAA;AAClC,QAAA;MACF,CAAA,MAAO;AACL,QAAA,IAAI,WAAW,CAAA,EAAG;AAChB,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,IAAI,UAAA,EAAY,WAAA;AAChB,MAAA,IAAI,WAAW,CAAA,EAAG;AAChB,QAAA,UAAA,GAAa,EAAA;AACb,QAAA,WAAA,GAAc,WAAW,IAAA,EAAA;MAC3B,CAAA,MAAO;AACL,QAAA,UAAA,GAAa,UAAA,CAAW,MAAA,CAAO,CAAA,EAAG,OAAO,EAAE,IAAA,EAAA;AAC3C,QAAA,WAAA,GAAc,UAAA,CAAW,MAAA,CAAO,OAAA,GAAU,CAAC,EAAE,IAAA,EAAA;AAC/C,MAAA;AACA,MAAA,IAAI,cAAc,IAAA,CAAK,UAAU,KAAK,aAAA,CAAc,IAAA,CAAK,WAAW,CAAA,EAAG;AACrE,QAAA;AACF,MAAA;AACA,MAAA,MAAM,CAAA,GAAI,IAAIC,OAAAA,EAAAA;AACd,MAAA,CAAA,CAAE,GAAA,GAAM,UAAA;AACR,MAAA,CAAA,CAAE,KAAA,GAAQ,WAAA;AACV,MAAA,OAAO,CAAA;AACT,IAAA;AACA,IAAA,SAAST,MAAAA,CAAM,KAAK,OAAA,EAAS;AAC3B,MAAA,IAAI,CAAC,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,EAAU;AAC3C,QAAA,OAAA,GAAU,EAAA;AACZ,MAAA;AACA,MAAA,IAAI,UAAA,CAAW,cAAc,GAAG,CAAA,IAAK,CAAC,UAAA,CAAW,QAAA,CAAS,GAAG,CAAA,EAAG;AAC9D,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,GAAA,GAAM,IAAI,IAAA,EAAA;AACV,MAAA,MAAM,SAAA,GAAY,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AACjC,MAAA,MAAM,aAAa,SAAA,KAAc,EAAA,GAAK,MAAM,GAAA,CAAI,MAAA,CAAO,GAAG,SAAS,CAAA;AACnE,MAAA,MAAM,IAAI,eAAA,CAAgB,UAAA,EAAY,CAAC,CAAC,QAAQ,KAAK,CAAA;AACrD,MAAA,IAAI,CAAC,CAAA,EAAG;AACN,QAAA;AACF,MAAA;AACA,MAAA,IAAI,cAAc,EAAA,EAAI;AACpB,QAAA,OAAO,CAAA;AACT,MAAA;AACA,MAAA,MAAM,WAAW,GAAA,CAAI,KAAA,CAAM,SAAA,GAAY,CAAC,EAAE,IAAA,EAAA;AAC1C,MAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,QAAA,OAAO,CAAA;AACT,MAAA;AACA,MAAA,MAAM,UAAA,GAAa,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA;AACrC,MAAA,OAAO,WAAW,MAAA,EAAQ;AACxB,QAAA,MAAM,EAAA,GAAK,UAAA,CAAW,KAAA,EAAA,CAAQ,IAAA,EAAA;AAC9B,QAAA,IAAI,EAAA,CAAG,WAAW,CAAA,EAAG;AACnB,UAAA;AACF,QAAA;AACA,QAAA,MAAM,MAAA,GAAS,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAA;AAC7B,QAAA,IAAI,MAAA,EAAQ,QAAA;AACZ,QAAA,IAAI,WAAW,EAAA,EAAI;AACjB,UAAA,MAAA,GAAS,EAAA;AACT,UAAA,QAAA,GAAW,IAAA;QACb,CAAA,MAAO;AACL,UAAA,MAAA,GAAS,EAAA,CAAG,MAAA,CAAO,CAAA,EAAG,MAAM,CAAA;AAC5B,UAAA,QAAA,GAAW,EAAA,CAAG,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AACjC,QAAA;AACA,QAAA,MAAA,GAAS,MAAA,CAAO,IAAA,EAAA,CAAO,WAAA,EAAA;AACvB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,QAAA,GAAW,SAAS,IAAA,EAAA;AACtB,QAAA;AACA,QAAA,QAAQ,MAAA;UACN,KAAK,SAAA;AACH,YAAA,IAAI,QAAA,EAAU;AACZ,cAAA,MAAM,GAAA,GAAM,UAAU,QAAQ,CAAA;AAC9B,cAAA,IAAI,GAAA,EAAK;AACP,gBAAA,CAAA,CAAE,OAAA,GAAU,GAAA;AACd,cAAA;AACF,YAAA;AACA,YAAA;UACF,KAAK,SAAA;AACH,YAAA,IAAI,QAAA,EAAU;AACZ,cAAA,IAAI,YAAA,CAAa,IAAA,CAAK,QAAQ,CAAA,EAAG;AAC/B,gBAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,QAAA,EAAU,EAAE,CAAA;AACnC,gBAAA,CAAA,CAAE,UAAU,KAAK,CAAA;AACnB,cAAA;AACF,YAAA;AACA,YAAA;UACF,KAAK,QAAA;AACH,YAAA,IAAI,QAAA,EAAU;AACZ,cAAA,MAAM,SAAS,QAAA,CAAS,IAAA,EAAA,CAAO,OAAA,CAAQ,OAAO,EAAE,CAAA;AAChD,cAAA,IAAI,MAAA,EAAQ;AACV,gBAAA,CAAA,CAAE,MAAA,GAAS,OAAO,WAAA,EAAA;AACpB,cAAA;AACF,YAAA;AACA,YAAA;UACF,KAAK,MAAA;AACH,YAAA,CAAA,CAAE,OAAO,QAAA,IAAY,QAAA,CAAS,CAAC,CAAA,KAAM,MAAM,QAAA,GAAW,IAAA;AACtD,YAAA;UACF,KAAK,QAAA;AACH,YAAA,CAAA,CAAE,MAAA,GAAS,IAAA;AACX,YAAA;UACF,KAAK,UAAA;AACH,YAAA,CAAA,CAAE,QAAA,GAAW,IAAA;AACb,YAAA;UACF,KAAK,UAAA;AACH,YAAA,MAAM,WAAA,GAAc,QAAA,GAAW,QAAA,CAAS,WAAA,EAAA,GAAgB,EAAA;AACxD,YAAA,QAAQ,WAAA;cACN,KAAK,QAAA;AACH,gBAAA,CAAA,CAAE,QAAA,GAAW,QAAA;AACb,gBAAA;cACF,KAAK,KAAA;AACH,gBAAA,CAAA,CAAE,QAAA,GAAW,KAAA;AACb,gBAAA;cACF,KAAK,MAAA;AACH,gBAAA,CAAA,CAAE,QAAA,GAAW,MAAA;AACb,gBAAA;AACF,cAAA;AACE,gBAAA,CAAA,CAAE,QAAA,GAAW,MAAA;AACb,gBAAA;AACJ;AACA,YAAA;AACF,UAAA;AACE,YAAA,CAAA,CAAE,UAAA,GAAa,CAAA,CAAE,UAAA,IAAc,EAAA;AAC/B,YAAA,CAAA,CAAE,UAAA,CAAW,KAAK,EAAE,CAAA;AACpB,YAAA;AACJ;AACF,MAAA;AACA,MAAA,OAAO,CAAA;AACT,IAAA;AACA,IAAA,SAAS,2BAA2B,MAAA,EAAQ;AAC1C,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,MAAM,GAAG,MAAM,CAAA;AACvD,MAAA,OAAO,CAAC,MAAA,CAAO,GAAA,CAAI,UAAA,CAAW,WAAW,KAAK,MAAA,CAAO,MAAA;AACvD,IAAA;AACA,IAAA,SAAS,yBAAyB,MAAA,EAAQ;AACxC,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,MAAM,CAAC,CAAA;AAC/C,MAAA,OAAO,CAAC,MAAA,CAAO,GAAA,CAAI,UAAA,CAAW,SAAS,CAAA,IAAK,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,QAAA,IAAY,MAAA,CAAO,IAAA,IAAQ,IAAA,IAAQ,OAAO,IAAA,KAAS,GAAA;AACzH,IAAA;AACA,IAAA,SAAS,UAAU,GAAA,EAAK;AACtB,MAAA,IAAI,GAAA;AACJ,MAAA,IAAI;AACF,QAAA,GAAA,GAAM,IAAA,CAAK,MAAM,GAAG,CAAA;AACtB,MAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,QAAA,OAAO,CAAA;AACT,MAAA;AACA,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,SAAS,GAAA,EAAK;AACrB,MAAA,IAAI,CAAC,GAAA,IAAO,UAAA,CAAW,aAAA,CAAc,GAAG,CAAA,EAAG;AACzC,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,IAAI,GAAA;AACJ,MAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,QAAA,GAAA,GAAM,UAAU,GAAG,CAAA;AACnB,QAAA,IAAI,eAAe,KAAA,EAAO;AACxB,UAAA,OAAO,IAAA;AACT,QAAA;MACF,CAAA,MAAO;AACL,QAAA,GAAA,GAAM,GAAA;AACR,MAAA;AACA,MAAA,MAAM,CAAA,GAAI,IAAIS,OAAAA,EAAAA;AACd,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAIA,OAAAA,CAAO,sBAAA,CAAuB,QAAQ,CAAA,EAAA,EAAK;AAC7D,QAAA,MAAM,IAAA,GAAOA,OAAAA,CAAO,sBAAA,CAAuB,CAAC,CAAA;AAC5C,QAAA,IAAI,GAAA,CAAI,IAAI,CAAA,KAAM,MAAA,IAAU,IAAI,IAAI,CAAA,KAAM,cAAA,CAAe,IAAI,CAAA,EAAG;AAC9D,UAAA;AACF,QAAA;AACA,QAAA,IAAI,IAAA,KAAS,SAAA,IAAa,IAAA,KAAS,UAAA,IAAc,SAAS,cAAA,EAAgB;AACxE,UAAA,IAAI,GAAA,CAAI,IAAI,CAAA,KAAM,IAAA,EAAM;AACtB,YAAA,CAAA,CAAE,IAAI,CAAA,GAAI,IAAA;UACZ,CAAA,MAAO;AACL,YAAA,CAAA,CAAE,IAAI,CAAA,GAAI,GAAA,CAAI,IAAI,CAAA,IAAK,UAAA,GAAa,UAAA,GAAa,IAAI,IAAA,CAAK,GAAA,CAAI,IAAI,CAAC,CAAA;AACrE,UAAA;QACF,CAAA,MAAO;AACL,UAAA,CAAA,CAAE,IAAI,CAAA,GAAI,GAAA,CAAI,IAAI,CAAA;AACpB,QAAA;AACF,MAAA;AACA,MAAA,OAAO,CAAA;AACT,IAAA;AACA,IAAA,SAAS,aAAA,CAAc,GAAG,CAAA,EAAG;AAC3B,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,CAAC,GAAG,CAAC,CAAA;AAC7C,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,CAAC,GAAG,CAAC,CAAA;AAC7C,MAAA,IAAI,GAAA,GAAM,CAAA;AACV,MAAA,MAAM,QAAA,GAAW,CAAA,CAAE,IAAA,GAAO,CAAA,CAAE,KAAK,MAAA,GAAS,CAAA;AAC1C,MAAA,MAAM,QAAA,GAAW,CAAA,CAAE,IAAA,GAAO,CAAA,CAAE,KAAK,MAAA,GAAS,CAAA;AAC1C,MAAA,GAAA,GAAM,QAAA,GAAW,QAAA;AACjB,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,OAAO,GAAA;AACT,MAAA;AACA,MAAA,MAAM,QAAQ,CAAA,CAAE,QAAA,GAAW,CAAA,CAAE,QAAA,CAAS,SAAA,GAAY,QAAA;AAClD,MAAA,MAAM,QAAQ,CAAA,CAAE,QAAA,GAAW,CAAA,CAAE,QAAA,CAAS,SAAA,GAAY,QAAA;AAClD,MAAA,GAAA,GAAM,KAAA,GAAQ,KAAA;AACd,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,OAAO,GAAA;AACT,MAAA;AACA,MAAA,GAAA,GAAM,CAAA,CAAE,gBAAgB,CAAA,CAAE,aAAA;AAC1B,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,YAAY,IAAA,EAAM;AACzB,MAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,IAAI,CAAC,CAAA;AAC7C,MAAA,IAAI,SAAS,GAAA,EAAK;AAChB,QAAA,OAAO,CAAC,GAAG,CAAA;AACb,MAAA;AACA,MAAA,MAAM,YAAA,GAAe,CAAC,IAAI,CAAA;AAC1B,MAAA,OAAO,IAAA,CAAK,SAAS,CAAA,EAAG;AACtB,QAAA,MAAM,MAAA,GAAS,IAAA,CAAK,WAAA,CAAY,GAAG,CAAA;AACnC,QAAA,IAAI,WAAW,CAAA,EAAG;AAChB,UAAA;AACF,QAAA;AACA,QAAA,IAAA,GAAO,IAAA,CAAK,MAAA,CAAO,CAAA,EAAG,MAAM,CAAA;AAC5B,QAAA,YAAA,CAAa,KAAK,IAAI,CAAA;AACxB,MAAA;AACA,MAAA,YAAA,CAAa,KAAK,GAAG,CAAA;AACrB,MAAA,OAAO,YAAA;AACT,IAAA;AACA,IAAA,SAAS,iBAAiB,GAAA,EAAK;AAC7B,MAAA,IAAI,eAAe,MAAA,EAAQ;AACzB,QAAA,OAAO,GAAA;AACT,MAAA;AACA,MAAA,IAAI;AACF,QAAA,GAAA,GAAM,UAAU,GAAG,CAAA;AACrB,MAAA,CAAA,CAAA,OAAS,GAAA,EAAK;AACd,MAAA;AACA,MAAA,OAAO,SAAS,GAAG,CAAA;AACrB,IAAA;AACA,IAAA,IAAI,cAAA,GAAiB;;MAEnB,GAAA,EAAK,EAAA;MACL,KAAA,EAAO,EAAA;MACP,OAAA,EAAS,UAAA;MACT,MAAA,EAAQ,IAAA;MACR,MAAA,EAAQ,IAAA;MACR,IAAA,EAAM,IAAA;MACN,MAAA,EAAQ,KAAA;MACR,QAAA,EAAU,KAAA;MACV,UAAA,EAAY,IAAA;;MAEZ,QAAA,EAAU,IAAA;MACV,aAAA,EAAe,IAAA;MACf,QAAA,EAAU,IAAA;MACV,YAAA,EAAc,IAAA;MACd,QAAA,EAAU;AACZ,KAAA;AACA,IAAA,IAAIA,OAAAA,GAAS,MAAM,OAAA,CAAQ;MACzB,WAAA,CAAY,OAAA,GAAU,EAAA,EAAI;AACxB,QAAA,MAAM,sBAAsB,sBAAA,EAAA;AAC5B,QAAA,IAAI,mBAAA,EAAqB;AACvB,UAAA,IAAA,CAAK,mBAAmB,IAAI,IAAA,CAAK,OAAA;AACnC,QAAA;AACA,QAAA,MAAA,CAAO,MAAA,CAAO,IAAA,EAAM,cAAA,EAAgB,OAAO,CAAA;AAC3C,QAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,oBAA4B,IAAI,IAAA,EAAA;AACrD,QAAA,MAAA,CAAO,cAAA,CAAe,MAAM,eAAA,EAAiB;UAC3C,YAAA,EAAc,KAAA;UACd,UAAA,EAAY,KAAA;;UAEZ,QAAA,EAAU,IAAA;AACV,UAAA,KAAA,EAAO,EAAE,OAAA,CAAQ;AAClB,SAAA,CAAA;AACH,MAAA;MACA,OAAA,GAAU;AACR,QAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAA;AACjB,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,IAAY,IAAA,GAAO,KAAK,QAAA,GAAW,GAAA;AACzD,QAAA,MAAM,SAAA,GAAY,KAAK,QAAA,GAAW,CAAA,EAAG,MAAM,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,CAAA,EAAA,CAAA,GAAO,GAAA;AACzE,QAAA,MAAM,SAAA,GAAY,KAAK,YAAA,GAAe,CAAA,EAAG,MAAM,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,CAAA,EAAA,CAAA,GAAO,GAAA;AACjF,QAAA,OAAO,CAAA,QAAA,EAAW,KAAK,QAAA,EAAU,cAAc,QAAQ,CAAA,OAAA,EAAU,SAAS,CAAA,OAAA,EAAU,SAAS,CAAA,CAAA,CAAA;AAC/F,MAAA;MACA,MAAA,GAAS;AACP,QAAA,MAAM,MAAM,EAAA;AACZ,QAAA,KAAA,MAAW,IAAA,IAAQ,QAAQ,sBAAA,EAAwB;AACjD,UAAA,IAAI,IAAA,CAAK,IAAI,CAAA,KAAM,cAAA,CAAe,IAAI,CAAA,EAAG;AACvC,YAAA;AACF,UAAA;AACA,UAAA,IAAI,IAAA,KAAS,SAAA,IAAa,IAAA,KAAS,UAAA,IAAc,SAAS,cAAA,EAAgB;AACxE,YAAA,IAAI,IAAA,CAAK,IAAI,CAAA,KAAM,IAAA,EAAM;AACvB,cAAA,GAAA,CAAI,IAAI,CAAA,GAAI,IAAA;YACd,CAAA,MAAO;AACL,cAAA,GAAA,CAAI,IAAI,CAAA,GAAI,IAAA,CAAK,IAAI,CAAA,IAAK,aAAa,UAAA,GAAa,IAAA,CAAK,IAAI,CAAA,CAAE,WAAA,EAAA;AACjE,YAAA;AACF,UAAA,CAAA,MAAA,IAAW,SAAS,QAAA,EAAU;AAC5B,YAAA,IAAI,IAAA,CAAK,IAAI,CAAA,KAAM,IAAA,EAAM;AACvB,cAAA,GAAA,CAAI,IAAI,CAAA,GAAI,IAAA,CAAK,IAAI,CAAA,IAAK,YAAY,IAAA,CAAK,IAAI,CAAA,IAAK,CAAA,QAAA,GAAY,KAAK,IAAI,CAAA,CAAE,QAAA,EAAA,GAAa,KAAK,IAAI,CAAA;AACnG,YAAA;UACF,CAAA,MAAO;AACL,YAAA,IAAI,IAAA,CAAK,IAAI,CAAA,KAAM,cAAA,CAAe,IAAI,CAAA,EAAG;AACvC,cAAA,GAAA,CAAI,IAAI,CAAA,GAAI,IAAA,CAAK,IAAI,CAAA;AACvB,YAAA;AACF,UAAA;AACF,QAAA;AACA,QAAA,OAAO,GAAA;AACT,MAAA;MACA,KAAA,GAAQ;AACN,QAAA,OAAO,QAAA,CAAS,IAAA,CAAK,MAAA,EAAQ,CAAA;AAC/B,MAAA;MACA,QAAA,GAAW;AACT,QAAA,IAAI,CAAC,aAAA,CAAc,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,EAAG;AACnC,UAAA,OAAO,KAAA;AACT,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,OAAA,IAAW,QAAA,IAAY,EAAE,IAAA,CAAK,OAAA,YAAmB,IAAA,CAAA,IAAS,CAAC,SAAA,CAAU,IAAA,CAAK,OAAO,CAAA,EAAG;AAC3F,UAAA,OAAO,KAAA;AACT,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,MAAA,IAAU,IAAA,IAAQ,IAAA,CAAK,UAAU,CAAA,EAAG;AAC3C,UAAA,OAAO,KAAA;AACT,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,QAAQ,IAAA,IAAQ,CAAC,WAAW,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,EAAG;AACpD,UAAA,OAAO,KAAA;AACT,QAAA;AACA,QAAA,MAAM,OAAA,GAAU,KAAK,OAAA,EAAA;AACrB,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,IAAI,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,EAAG;AACxB,YAAA,OAAO,KAAA;AACT,UAAA;AACA,UAAA,MAAM,MAAA,GAAS,SAAA,CAAU,eAAA,CAAgB,OAAO,CAAA;AAChD,UAAA,IAAI,UAAU,IAAA,EAAM;AAClB,YAAA,OAAO,KAAA;AACT,UAAA;AACF,QAAA;AACA,QAAA,OAAO,IAAA;AACT,MAAA;AACA,MAAA,UAAA,CAAW,GAAA,EAAK;AACd,QAAA,IAAI,eAAe,IAAA,EAAM;AACvB,UAAA,IAAA,CAAK,OAAA,GAAU,GAAA;QACjB,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,OAAA,GAAU,SAAA,CAAU,GAAG,CAAA,IAAK,UAAA;AACnC,QAAA;AACF,MAAA;AACA,MAAA,SAAA,CAAU,GAAA,EAAK;AACb,QAAA,IAAI,GAAA,KAAQ,QAAA,IAAY,GAAA,KAAQ,CAAA,QAAA,EAAW;AACzC,UAAA,IAAA,CAAK,MAAA,GAAS,IAAI,QAAA,EAAA;QACpB,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,MAAA,GAAS,GAAA;AAChB,QAAA;AACF,MAAA;MACA,YAAA,GAAe;AACb,QAAA,IAAI,MAAM,IAAA,CAAK,KAAA;AACf,QAAA,IAAI,OAAO,IAAA,EAAM;AACf,UAAA,GAAA,GAAM,EAAA;AACR,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,QAAQ,EAAA,EAAI;AACnB,UAAA,OAAO,GAAA;AACT,QAAA;AACA,QAAA,OAAO,CAAA,EAAG,IAAA,CAAK,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA;AAC3B,MAAA;;MAEA,QAAA,GAAW;AACT,QAAA,IAAI,GAAA,GAAM,KAAK,YAAA,EAAA;AACf,QAAA,IAAI,IAAA,CAAK,WAAW,QAAA,EAAU;AAC5B,UAAA,IAAI,IAAA,CAAK,mBAAmB,IAAA,EAAM;AAChC,YAAA,GAAA,IAAO,CAAA,UAAA,EAAa,UAAA,CAAW,IAAA,CAAK,OAAO,CAAC,CAAA,CAAA;UAC9C,CAAA,MAAO;AACL,YAAA,GAAA,IAAO,CAAA,UAAA,EAAa,KAAK,OAAO,CAAA,CAAA;AAClC,UAAA;AACF,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,MAAA,IAAU,IAAA,IAAQ,IAAA,CAAK,UAAU,QAAA,EAAU;AAClD,UAAA,GAAA,IAAO,CAAA,UAAA,EAAa,KAAK,MAAM,CAAA,CAAA;AACjC,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,MAAA,IAAU,CAAC,IAAA,CAAK,QAAA,EAAU;AACjC,UAAA,GAAA,IAAO,CAAA,SAAA,EAAY,KAAK,MAAM,CAAA,CAAA;AAChC,QAAA;AACA,QAAA,IAAI,KAAK,IAAA,EAAM;AACb,UAAA,GAAA,IAAO,CAAA,OAAA,EAAU,KAAK,IAAI,CAAA,CAAA;AAC5B,QAAA;AACA,QAAA,IAAI,KAAK,MAAA,EAAQ;AACf,UAAA,GAAA,IAAO,UAAA;AACT,QAAA;AACA,QAAA,IAAI,KAAK,QAAA,EAAU;AACjB,UAAA,GAAA,IAAO,YAAA;AACT,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,KAAa,MAAA,EAAQ;AAC7C,UAAA,MAAM,UAAU,OAAA,CAAQ,iBAAA,CAAkB,IAAA,CAAK,QAAA,CAAS,aAAa,CAAA;AACrE,UAAA,GAAA,IAAO,CAAA,WAAA,EAAc,OAAA,GAAU,OAAA,GAAU,IAAA,CAAK,QAAQ,CAAA,CAAA;AACxD,QAAA;AACA,QAAA,IAAI,KAAK,UAAA,EAAY;AACnB,UAAA,IAAA,CAAK,UAAA,CAAW,OAAA,CAAQ,CAAC,GAAA,KAAQ;AAC/B,YAAA,GAAA,IAAO,KAAK,GAAG,CAAA,CAAA;UACjB,CAAC,CAAA;AACH,QAAA;AACA,QAAA,OAAO,GAAA;AACT,MAAA;;;;;AAKA,MAAA,GAAA,CAAI,GAAA,EAAK;AACP,QAAA,IAAI,IAAA,CAAK,UAAU,IAAA,EAAM;AACvB,UAAA,OAAO,IAAA,CAAK,MAAA,IAAU,CAAA,GAAI,CAAA,GAAI,KAAK,MAAA,GAAS,GAAA;AAC9C,QAAA;AACA,QAAA,IAAI,UAAU,IAAA,CAAK,OAAA;AACnB,QAAA,IAAI,WAAW,QAAA,EAAU;AACvB,UAAA,IAAI,EAAE,mBAAmB,IAAA,CAAA,EAAO;AAC9B,YAAA,OAAA,GAAU,SAAA,CAAU,OAAO,CAAA,IAAK,QAAA;AAClC,UAAA;AACA,UAAA,IAAI,WAAW,QAAA,EAAU;AACvB,YAAA,OAAO,QAAA;AACT,UAAA;AACA,UAAA,OAAO,OAAA,CAAQ,OAAA,EAAA,IAAa,GAAA,IAAO,KAAK,GAAA,EAAA,CAAA;AAC1C,QAAA;AACA,QAAA,OAAO,QAAA;AACT,MAAA;;;AAGA,MAAA,UAAA,CAAW,GAAA,EAAK;AACd,QAAA,IAAI,IAAA,CAAK,UAAU,IAAA,EAAM;AACvB,UAAA,MAAM,UAAA,GAAa,GAAA,IAAO,IAAA,CAAK,QAAA,wBAAgC,IAAA,EAAA;AAC/D,UAAA,MAAM,MAAM,IAAA,CAAK,MAAA,IAAU,CAAA,GAAI,CAAA,QAAA,GAAY,KAAK,MAAA,GAAS,GAAA;AACzD,UAAA,OAAO,UAAA,CAAW,SAAA,GAAY,GAAA;AAChC,QAAA;AACA,QAAA,IAAI,IAAA,CAAK,WAAW,QAAA,EAAU;AAC5B,UAAA,OAAO,QAAA;AACT,QAAA;AACA,QAAA,OAAO,IAAA,CAAK,QAAQ,OAAA,EAAA;AACtB,MAAA;;;AAGA,MAAA,UAAA,CAAW,GAAA,EAAK;AACd,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA;AACpC,QAAA,IAAI,YAAY,QAAA,EAAU;AACxB,UAAA,OAAO,IAAI,KAAK,QAAQ,CAAA;AAC1B,QAAA,CAAA,MAAA,IAAW,YAAY,CAAA,QAAA,EAAW;AAChC,UAAA,OAAO,IAAI,KAAK,QAAQ,CAAA;QAC1B,CAAA,MAAO;AACL,UAAA,OAAO,IAAI,KAAK,QAAQ,CAAA;AAC1B,QAAA;AACF,MAAA;;MAEA,YAAA,GAAe;AACb,QAAA,OAAO,IAAA,CAAK,MAAA,IAAU,IAAA,IAAQ,IAAA,CAAK,OAAA,IAAW,QAAA;AAChD,MAAA;;MAEA,mBAAA,GAAsB;AACpB,QAAA,IAAI,IAAA,CAAK,UAAU,IAAA,EAAM;AACvB,UAAA,OAAO,IAAA;AACT,QAAA;AACA,QAAA,OAAO,eAAA,CAAgB,KAAK,MAAM,CAAA;AACpC,MAAA;MACA,OAAA,GAAU;AACR,QAAA,OAAO,KAAK,mBAAA,EAAA;AACd,MAAA;AACF,KAAA;AACAA,IAAAA,OAAAA,CAAO,cAAA,GAAiB,CAAA;AACxBA,IAAAA,OAAAA,CAAO,KAAA,GAAQT,MAAAA;AACfS,IAAAA,OAAAA,CAAO,QAAA,GAAW,QAAA;AAClBA,IAAAA,OAAAA,CAAO,sBAAA,GAAyB,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA;AAC1DA,IAAAA,OAAAA,CAAO,aAAA,GAAgB;MACrB,MAAA,EAAQ,CAAA;MACR,GAAA,EAAK,CAAA;MACL,IAAA,EAAM;AACR,KAAA;AACAA,IAAAA,OAAAA,CAAO,iBAAA,GAAoB;MACzB,MAAA,EAAQ,QAAA;MACR,GAAA,EAAK;AACP,KAAA;AACA,IAAA,SAAS,4BAA4B,cAAA,EAAgB;AACnD,MAAA,IAAI,kBAAkB,IAAA,EAAM;AAC1B,QAAA,MAAM,wBAAA,GAA2B,eAAe,WAAA,EAAA;AAChD,QAAA,QAAQ,wBAAA;AACN,UAAA,KAAK,kBAAA,CAAmB,MAAA;AACxB,UAAA,KAAK,kBAAA,CAAmB,MAAA;AACxB,UAAA,KAAK,kBAAA,CAAmB,QAAA;AACtB,YAAA,OAAO,wBAAA;AACX;AACF,MAAA;AACA,MAAA,OAAO,kBAAA,CAAmB,MAAA;AAC5B,IAAA;AACA,IAAA,IAAIC,UAAAA,GAAY,MAAM,UAAA,CAAW;AAC/B,MAAA,WAAA,CAAYC,MAAAA,EAAO,OAAA,GAAU,EAAE,oBAAA,EAAsB,MAAA,EAAQ;AAC3D,QAAA,IAAI,OAAO,YAAY,SAAA,EAAW;AAChC,UAAA,OAAA,GAAU,EAAE,sBAAsB,OAAA,EAAA;AACpC,QAAA;AACA,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,OAAO,GAAG,OAAO,CAAA;AACzD,QAAA,IAAA,CAAK,uBAAuB,OAAA,CAAQ,oBAAA;AACpC,QAAA,IAAA,CAAK,eAAA,GAAkB,CAAC,CAAC,OAAA,CAAQ,SAAA;AACjC,QAAA,IAAA,CAAK,wBAAwB,OAAO,OAAA,CAAQ,qBAAA,KAA0B,SAAA,GAAY,QAAQ,qBAAA,GAAwB,IAAA;AAClH,QAAA,IAAA,CAAK,KAAA,GAAQA,MAAAA,IAAS,IAAIN,kBAAAA,EAAAA;AAC1B,QAAA,IAAA,CAAK,cAAA,GAAiB,2BAAA,CAA4B,OAAA,CAAQ,cAAc,CAAA;AACxE,QAAA,IAAA,CAAK,UAAA,GAAa,SAAS,OAAO,CAAA;AAClC,QAAA,IAAA,CAAK,kBAAA,GAAqB,SAAS,gBAAgB,CAAA;AACnD,QAAA,IAAA,CAAK,cAAA,GAAiB,SAAS,YAAY,CAAA;AAC3C,QAAA,IAAA,CAAK,mBAAA,GAAsB,SAAS,iBAAiB,CAAA;AACrD,QAAA,IAAA,CAAK,uBAAA,GAA0B,SAAS,qBAAqB,CAAA;AAC7D,QAAA,IAAA,CAAK,oBAAA,GAAuB,SAAS,kBAAkB,CAAA;AACvD,QAAA,IAAA,CAAK,aAAA,GAAgB,SAAS,WAAW,CAAA;AACzC,QAAA,IAAA,CAAK,aAAA,GAAgB,SAAS,WAAW,CAAA;AAC3C,MAAA;MACA,SAAA,CAAU,MAAA,EAAQ,GAAA,EAAK,OAAA,EAAS,EAAA,EAAI;AAClC,QAAA,UAAA,CAAW,SAAS,UAAA,CAAW,mBAAA,CAAoB,GAAG,CAAA,EAAG,IAAI,OAAO,CAAA;AACpE,QAAA,IAAI,GAAA;AACJ,QAAA,IAAI,UAAA,CAAW,UAAA,CAAW,GAAG,CAAA,EAAG;AAC9B,UAAA,EAAA,GAAK,GAAA;AACL,UAAA,OAAO,EAAA,CAAG,IAAI,KAAA,CAAM,sBAAsB,CAAC,CAAA;AAC7C,QAAA;AACA,QAAA,MAAM,OAAA,GAAU,iBAAiB,GAAG,CAAA;AACpC,QAAA,IAAI,UAAA,CAAW,UAAA,CAAW,OAAO,CAAA,EAAG;AAClC,UAAA,EAAA,GAAK,OAAA;AACL,UAAA,OAAA,GAAU,EAAA;AACZ,QAAA;AACA,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,IAAI,CAAC,UAAA,CAAW,gBAAA,CAAiB,MAAM,KAAK,CAAC,UAAA,CAAW,QAAA,CAAS,MAAM,CAAA,IAAK,MAAA,YAAkB,MAAA,IAAU,MAAA,CAAO,UAAU,CAAA,EAAG;AAC1H,UAAA,OAAO,GAAG,IAAI,CAAA;AAChB,QAAA;AACA,QAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,OAAA,CAAQ,QAAQ,CAAA;AAC7C,QAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,IAAS,IAAA,CAAK,eAAA;AACpC,QAAA,IAAI,eAAA,GAAkB,IAAA;AACtB,QAAA,IAAI,QAAQ,eAAA,EAAiB;AAC3B,UAAA,eAAA,GAAkB,oBAAA,CAAqB,QAAQ,eAAe,CAAA;AAC9D,UAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,YAAA,OAAO,EAAA,CAAG,IAAI,KAAA,CAAM,yBAAyB,CAAC,CAAA;AAChD,UAAA;AACF,QAAA;AACA,QAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,YAAkB,MAAA,EAAQ;AAC1D,UAAA,MAAA,GAASI,OAAAA,CAAO,KAAA,CAAM,MAAA,EAAQ,EAAE,OAAO,CAAA;AACvC,UAAA,IAAI,CAAC,MAAA,EAAQ;AACX,YAAA,GAAA,GAAM,IAAI,MAAM,wBAAwB,CAAA;AACxC,YAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,GAAG,CAAA;AAC5C,UAAA;QACF,CAAA,MAAA,IAAW,EAAE,kBAAkBA,OAAAA,CAAAA,EAAS;AACtC,UAAA,GAAA,GAAM,IAAI,KAAA;AACR,YAAA;AACF,WAAA;AACA,UAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,GAAG,CAAA;AAC5C,QAAA;AACA,QAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,oBAAuB,IAAI,IAAA,EAAA;AAC/C,QAAA,IAAI,IAAA,CAAK,oBAAA,IAAwB,MAAA,CAAO,MAAA,EAAQ;AAC9C,UAAA,MAAM,MAAA,GAAS,SAAA,CAAU,eAAA,CAAgB,MAAA,CAAO,SAAA,EAAW;AACzD,YAAA,qBAAA,EAAuB,IAAA,CAAK,qBAAA;AAC5B,YAAA,WAAA,EAAa,OAAA,CAAQ;AACtB,WAAA,CAAA;AACD,UAAA,IAAI,UAAU,IAAA,IAAQ,CAAC,mBAAmB,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,EAAG;AAC7D,YAAA,GAAA,GAAM,IAAI,MAAM,0CAA0C,CAAA;AAC1D,YAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,GAAG,CAAA;AAC5C,UAAA;AACF,QAAA;AACA,QAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,UAAA,IAAI,CAACD,YAAAA,CAAY,IAAA,EAAM,OAAO,OAAA,EAAA,EAAW,KAAK,CAAA,EAAG;AAC/C,YAAA,GAAA,GAAM,IAAI,KAAA;AACR,cAAA,CAAA,yCAAA,EAA4C,MAAA,CAAO,OAAA,EAAS,CAAA,SAAA,EAAY,IAAI,CAAA;AAC9E,aAAA;AACA,YAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,GAAG,CAAA;AAC5C,UAAA;AACA,UAAA,IAAI,MAAA,CAAO,YAAY,IAAA,EAAM;AAC3B,YAAA,MAAA,CAAO,QAAA,GAAW,KAAA;AACpB,UAAA;QACF,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,QAAA,GAAW,IAAA;AAClB,UAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAClB,QAAA;AACA,QAAA,IAAI,CAAC,MAAA,CAAO,IAAA,IAAQ,OAAO,IAAA,CAAK,CAAC,MAAM,GAAA,EAAK;AAC1C,UAAA,MAAA,CAAO,IAAA,GAAO,WAAA,CAAY,OAAA,CAAQ,QAAQ,CAAA;AAC1C,UAAA,MAAA,CAAO,aAAA,GAAgB,IAAA;AACzB,QAAA;AACA,QAAA,IAAI,OAAA,CAAQ,IAAA,KAAS,KAAA,IAAS,MAAA,CAAO,QAAA,EAAU;AAC7C,UAAA,GAAA,GAAM,IAAI,MAAM,+CAA+C,CAAA;AAC/D,UAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,GAAG,CAAA;AAC5C,QAAA;AACA,QAAA,IAAI,OAAO,QAAA,KAAa,MAAA,IAAU,MAAA,CAAO,QAAA,KAAa,UAAU,eAAA,EAAiB;AAC/E,UAAA,IAAI,oBAAoB,MAAA,EAAQ;AAC9B,YAAA,GAAA,GAAM,IAAI,KAAA;AACR,cAAA;AACF,aAAA;AACA,YAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,GAAG,CAAA;AAC5C,UAAA;AACF,QAAA;AACA,QAAA,MAAM,4BAAA,GAA+B,IAAA,CAAK,cAAA,KAAmB,kBAAA,CAAmB,MAAA;AAChF,QAAA,MAAM,sBAAA,GAAyB,IAAA,CAAK,cAAA,KAAmB,kBAAA,CAAmB,QAAA;AAC1E,QAAA,IAAI,CAAC,sBAAA,EAAwB;AAC3B,UAAA,IAAI,UAAA,GAAa,KAAA;AACjB,UAAA,IAAI,QAAA;AACJ,UAAA,IAAI,CAAC,0BAAA,CAA2B,MAAM,CAAA,EAAG;AACvC,YAAA,UAAA,GAAa,IAAA;AACb,YAAA,QAAA,GAAW,4DAAA;UACb,CAAA,MAAA,IAAW,CAAC,wBAAA,CAAyB,MAAM,CAAA,EAAG;AAC5C,YAAA,UAAA,GAAa,IAAA;AACb,YAAA,QAAA,GAAW,gGAAA;AACb,UAAA;AACA,UAAA,IAAI,UAAA,EAAY;AACd,YAAA,OAAO,EAAA;AACL,cAAA,OAAA,CAAQ,WAAA,IAAe,4BAAA,GAA+B,IAAA,GAAO,IAAI,MAAM,QAAQ;AACjF,aAAA;AACF,UAAA;AACF,QAAA;AACA,QAAA,MAAMG,SAAQ,IAAA,CAAK,KAAA;AACnB,QAAA,IAAI,CAACA,OAAM,YAAA,EAAc;AACvBA,UAAAA,MAAAA,CAAM,YAAA,GAAe,SAAS,SAAA,EAAW,SAAA,EAAW,GAAA,EAAK;AACvD,YAAA,IAAA,CAAK,SAAA,CAAU,WAAW,GAAG,CAAA;AAC/B,UAAA,CAAA;AACF,QAAA;AACA,QAAA,SAAS,UAAA,CAAW,MAAM,SAAA,EAAW;AACnC,UAAA,IAAI,IAAA,EAAM;AACR,YAAA,OAAO,GAAG,IAAI,CAAA;AAChB,UAAA;AACA,UAAA,MAAM,IAAA,GAAO,SAAS,IAAA,EAAM;AAC1B,YAAA,IAAI,IAAA,EAAM;AACR,cAAA,OAAO,GAAG,IAAI,CAAA;YAChB,CAAA,MAAO;AACL,cAAA,EAAA,CAAG,MAAM,MAAM,CAAA;AACjB,YAAA;AACF,UAAA,CAAA;AACA,UAAA,IAAI,SAAA,EAAW;AACb,YAAA,IAAI,OAAA,CAAQ,IAAA,KAAS,KAAA,IAAS,SAAA,CAAU,QAAA,EAAU;AAChD,cAAA,IAAA,GAAO,IAAI,MAAM,mDAAmD,CAAA;AACpE,cAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,WAAA,GAAc,IAAA,GAAO,IAAI,CAAA;AAC7C,YAAA;AACA,YAAA,MAAA,CAAO,WAAW,SAAA,CAAU,QAAA;AAC5B,YAAA,MAAA,CAAO,gBAAgB,SAAA,CAAU,aAAA;AACjC,YAAA,MAAA,CAAO,YAAA,GAAe,GAAA;AACtBA,YAAAA,MAAAA,CAAM,YAAA,CAAa,SAAA,EAAW,MAAA,EAAQ,IAAI,CAAA;UAC5C,CAAA,MAAO;AACL,YAAA,MAAA,CAAO,QAAA,GAAW,OAAO,YAAA,GAAe,GAAA;AACxCA,YAAAA,MAAAA,CAAM,SAAA,CAAU,QAAQ,IAAI,CAAA;AAC9B,UAAA;AACF,QAAA;AACAA,QAAAA,MAAAA,CAAM,WAAW,MAAA,CAAO,MAAA,EAAQ,OAAO,IAAA,EAAM,MAAA,CAAO,KAAK,UAAU,CAAA;AACrE,MAAA;;MAEA,UAAA,CAAW,GAAA,EAAK,SAAS,EAAA,EAAI;AAC3B,QAAA,UAAA,CAAW,SAAS,UAAA,CAAW,mBAAA,CAAoB,GAAG,CAAA,EAAG,IAAI,GAAG,CAAA;AAChE,QAAA,MAAM,OAAA,GAAU,iBAAiB,GAAG,CAAA;AACpC,QAAA,IAAI,UAAA,CAAW,UAAA,CAAW,OAAO,CAAA,EAAG;AAClC,UAAA,EAAA,GAAK,OAAA;AACL,UAAA,OAAA,GAAU,EAAA;AACZ,QAAA;AACA,QAAA,UAAA,CAAW,SAAS,UAAA,CAAW,QAAA,CAAS,OAAO,CAAA,EAAG,IAAI,OAAO,CAAA;AAC7D,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,OAAA,CAAQ,QAAQ,CAAA;AAC7C,QAAA,MAAM,IAAA,GAAO,QAAQ,QAAA,IAAY,GAAA;AACjC,QAAA,IAAI,SAAS,OAAA,CAAQ,MAAA;AACrB,QAAA,IAAI,MAAA,IAAU,QAAQ,OAAA,CAAQ,QAAA,KAAa,QAAQ,QAAA,IAAY,QAAA,IAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,CAAA,EAAS;AACtG,UAAA,MAAA,GAAS,IAAA;AACX,QAAA;AACA,QAAA,IAAI,aAAA,GAAgB,CAAA;AACpB,QAAA,IAAI,QAAQ,eAAA,EAAiB;AAC3B,UAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,OAAA,CAAQ,eAAe,CAAA;AACpE,UAAA,aAAA,GAAgBF,OAAAA,CAAO,cAAc,eAAe,CAAA;AACpD,UAAA,IAAI,CAAC,aAAA,EAAe;AAClB,YAAA,OAAO,EAAA,CAAG,IAAI,KAAA,CAAM,yBAAyB,CAAC,CAAA;AAChD,UAAA;AACF,QAAA;AACA,QAAA,IAAIG,QAAO,OAAA,CAAQ,IAAA;AACnB,QAAA,IAAIA,SAAQ,IAAA,EAAM;AAChBA,UAAAA,KAAAA,GAAO,IAAA;AACT,QAAA;AACA,QAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,IAAO,IAAA,CAAK,GAAA,EAAA;AAChC,QAAA,MAAM,WAAA,GAAc,QAAQ,MAAA,KAAW,KAAA;AACvC,QAAA,MAAM,QAAA,GAAW,CAAC,CAAC,OAAA,CAAQ,QAAA;AAC3B,QAAA,MAAMD,SAAQ,IAAA,CAAK,KAAA;AACnB,QAAA,SAAS,eAAe,CAAA,EAAG;AACzB,UAAA,IAAI,EAAE,QAAA,EAAU;AACd,YAAA,IAAI,CAAA,CAAE,UAAU,IAAA,EAAM;AACpB,cAAA,OAAO,KAAA;AACT,YAAA;UACF,CAAA,MAAO;AACL,YAAA,IAAI,CAACH,YAAAA,CAAY,IAAA,EAAM,CAAA,CAAE,MAAA,EAAQ,KAAK,CAAA,EAAG;AACvC,cAAA,OAAO,KAAA;AACT,YAAA;AACF,UAAA;AACA,UAAA,IAAI,CAAC,QAAA,IAAY,CAACJ,WAAU,IAAA,EAAM,CAAA,CAAE,IAAI,CAAA,EAAG;AACzC,YAAA,OAAO,KAAA;AACT,UAAA;AACA,UAAA,IAAI,CAAA,CAAE,MAAA,IAAU,CAAC,MAAA,EAAQ;AACvB,YAAA,OAAO,KAAA;AACT,UAAA;AACA,UAAA,IAAI,CAAA,CAAE,QAAA,IAAY,CAACQ,KAAAA,EAAM;AACvB,YAAA,OAAO,KAAA;AACT,UAAA;AACA,UAAA,IAAI,aAAA,EAAe;AACjB,YAAA,MAAM,WAAA,GAAcH,OAAAA,CAAO,aAAA,CAAc,CAAA,CAAE,YAAY,MAAM,CAAA;AAC7D,YAAA,IAAI,cAAc,aAAA,EAAe;AAC/B,cAAA,OAAO,KAAA;AACT,YAAA;AACF,UAAA;AACA,UAAA,IAAI,WAAA,IAAe,CAAA,CAAE,UAAA,EAAA,IAAgB,GAAA,EAAK;AACxCE,YAAAA,MAAAA,CAAM,aAAa,CAAA,CAAE,MAAA,EAAQ,EAAE,IAAA,EAAM,CAAA,CAAE,KAAK,MAAM;YAClD,CAAC,CAAA;AACD,YAAA,OAAO,KAAA;AACT,UAAA;AACA,UAAA,OAAO,IAAA;AACT,QAAA;AACAA,QAAAA,MAAAA,CAAM,WAAA;AACJ,UAAA,IAAA;AACA,UAAA,QAAA,GAAW,IAAA,GAAO,IAAA;UAClB,IAAA,CAAK,qBAAA;AACL,UAAA,CAAC,KAAK,OAAA,KAAY;AAChB,YAAA,IAAI,GAAA,EAAK;AACP,cAAA,OAAO,GAAG,GAAG,CAAA;AACf,YAAA;AACA,YAAA,OAAA,GAAU,OAAA,CAAQ,OAAO,cAAc,CAAA;AACvC,YAAA,IAAI,OAAA,CAAQ,SAAS,KAAA,EAAO;AAC1B,cAAA,OAAA,GAAU,OAAA,CAAQ,KAAK,aAAa,CAAA;AACtC,YAAA;AACA,YAAA,MAAM,IAAA,uBAA2B,IAAA,EAAA;AACjC,YAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,cAAA,MAAA,CAAO,YAAA,GAAe,IAAA;AACxB,YAAA;AACA,YAAA,EAAA,CAAG,MAAM,OAAO,CAAA;AAClB,UAAA;AACF,SAAA;AACF,MAAA;AACA,MAAA,eAAA,CAAA,GAAmB,IAAA,EAAM;AACvB,QAAA,MAAM,EAAA,GAAK,KAAK,GAAA,EAAA;AAChB,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,SAAS,GAAA,EAAK,OAAA,EAAS;AAClC,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,EAAA,CAAG,GAAG,CAAA;UACR,CAAA,MAAO;AACL,YAAA,EAAA;AACE,cAAA,IAAA;cACA,OAAA,CAAQ,IAAA,CAAK,aAAa,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,YAAA,EAAc,CAAA,CAAE,IAAA,CAAK,IAAI;AACpE,aAAA;AACF,UAAA;AACF,QAAA,CAAA;AACA,QAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AACd,QAAA,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AAClC,MAAA;AACA,MAAA,mBAAA,CAAA,GAAuB,IAAA,EAAM;AAC3B,QAAA,MAAM,EAAA,GAAK,KAAK,GAAA,EAAA;AAChB,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,SAAS,GAAA,EAAK,OAAA,EAAS;AAClC,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,EAAA,CAAG,GAAG,CAAA;UACR,CAAA,MAAO;AACL,YAAA,EAAA;AACE,cAAA,IAAA;cACA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM;AACjB,gBAAA,OAAO,EAAE,QAAA,EAAA;cACX,CAAC;AACH,aAAA;AACF,UAAA;AACF,QAAA,CAAA;AACA,QAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AACd,QAAA,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AAClC,MAAA;AACA,MAAA,SAAA,CAAU,EAAA,EAAI;AACZ,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,IAAI,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,IAAA;AAClC,QAAA,IAAI,UAAA,CAAW,QAAA,CAAS,IAAI,CAAA,EAAG;AAC7B,UAAA,IAAA,GAAO,IAAA;AACT,QAAA;AACA,QAAA,MAAM,UAAA,GAAa;;;;AAIjB,UAAA,OAAA,EAAS,gBAAgB,OAAO,CAAA,CAAA;;UAEhC,SAAA,EAAW,IAAA;;UAEX,oBAAA,EAAsB,CAAC,CAAC,IAAA,CAAK,oBAAA;UAC7B,eAAA,EAAiB,CAAC,CAAC,IAAA,CAAK,eAAA;UACxB,qBAAA,EAAuB,CAAC,CAAC,IAAA,CAAK,qBAAA;UAC9B,cAAA,EAAgB,2BAAA,CAA4B,KAAK,cAAc,CAAA;;AAE/D,UAAA,OAAA,EAAS;AACX,SAAA;AACA,QAAA,IAAI,EAAE,KAAK,KAAA,CAAM,aAAA,IAAiB,OAAO,IAAA,CAAK,KAAA,CAAM,kBAAkB,UAAA,CAAA,EAAa;AACjF,UAAA,OAAO,EAAA;YACL,IAAI,KAAA;AACF,cAAA;AACF;AACF,WAAA;AACF,QAAA;AACA,QAAA,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,CAAC,GAAA,EAAK,OAAA,KAAY;AACzC,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAO,GAAG,GAAG,CAAA;AACf,UAAA;AACA,UAAA,UAAA,CAAW,OAAA,GAAU,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AAC3C,YAAA,MAAA,GAAS,MAAA,YAAkBF,OAAAA,GAAS,MAAA,CAAO,MAAA,EAAA,GAAW,MAAA;AACtD,YAAA,OAAO,MAAA,CAAO,aAAA;AACd,YAAA,OAAO,MAAA;UACT,CAAC,CAAA;AACD,UAAA,OAAO,EAAA,CAAG,MAAM,UAAU,CAAA;QAC5B,CAAC,CAAA;AACH,MAAA;MACA,MAAA,GAAS;AACP,QAAA,OAAO,KAAK,aAAA,EAAA;AACd,MAAA;;AAEA,MAAA,cAAA,CAAe,YAAY,EAAA,EAAI;AAC7B,QAAA,IAAI,UAAU,UAAA,CAAW,OAAA;AACzB,QAAA,IAAI,CAAC,OAAA,IAAW,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AACvC,UAAA,OAAO,EAAA,CAAG,IAAI,KAAA,CAAM,qCAAqC,CAAC,CAAA;AAC5D,QAAA;AACA,QAAA,OAAA,GAAU,QAAQ,KAAA,EAAA;AAClB,QAAA,MAAM,OAAA,GAAU,CAAC,GAAA,KAAQ;AACvB,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAO,GAAG,GAAG,CAAA;AACf,UAAA;AACA,UAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACnB,YAAA,OAAO,EAAA,CAAG,KAAK,IAAI,CAAA;AACrB,UAAA;AACA,UAAA,IAAI,MAAA;AACJ,UAAA,IAAI;AACF,YAAA,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,CAAA;AACnC,UAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,YAAA,OAAO,GAAG,CAAC,CAAA;AACb,UAAA;AACA,UAAA,IAAI,WAAW,IAAA,EAAM;AACnB,YAAA,OAAO,QAAQ,IAAI,CAAA;AACrB,UAAA;AACA,UAAA,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,MAAA,EAAQ,OAAO,CAAA;AACtC,QAAA,CAAA;AACA,QAAA,OAAA,EAAA;AACF,MAAA;AACA,MAAA,KAAA,CAAM,UAAU,EAAA,EAAI;AAClB,QAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,UAAA,EAAA,GAAK,QAAA;AACL,UAAA,QAAA,GAAW,IAAA;AACb,QAAA;AACA,QAAA,IAAA,CAAK,SAAA,CAAU,CAAC,GAAA,EAAK,UAAA,KAAe;AAClC,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAO,GAAG,GAAG,CAAA;AACf,UAAA;AACA,UAAA,UAAA,CAAW,WAAA,CAAY,UAAA,EAAY,QAAA,EAAU,EAAE,CAAA;QACjD,CAAC,CAAA;AACH,MAAA;AACA,MAAA,SAAA,CAAU,QAAA,EAAU;AAClB,QAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,UAAA,OAAO,KAAK,UAAA,EAAA;AACd,QAAA;AACA,QAAA,IAAI,CAAC,SAAS,WAAA,EAAa;AACzB,UAAA,MAAM,IAAI,KAAA;AACR,YAAA;AACF,WAAA;AACF,QAAA;AACA,QAAA,OAAO,IAAA,CAAK,WAAW,QAAQ,CAAA;AACjC,MAAA;AACA,MAAA,gBAAA,CAAiB,EAAA,EAAI;AACnB,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,MAAME,SAAQ,IAAA,CAAK,KAAA;AACnB,QAAA,IAAI,OAAOA,OAAM,gBAAA,KAAqB,UAAA,IAAcA,OAAM,gBAAA,KAAqBR,MAAAA,CAAM,UAAU,gBAAA,EAAkB;AAC/G,UAAA,OAAOQ,MAAAA,CAAM,iBAAiB,EAAE,CAAA;AAClC,QAAA;AACAA,QAAAA,MAAAA,CAAM,aAAA,CAAc,CAAC,GAAA,EAAK,OAAA,KAAY;AACpC,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAO,GAAG,GAAG,CAAA;AACf,UAAA;AACA,UAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,YAAA,OAAO,GAAG,IAAI,CAAA;AAChB,UAAA;AACA,UAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,UAAA,MAAM,eAAe,EAAA;AACrB,UAAA,SAAS,eAAe,SAAA,EAAW;AACjC,YAAA,IAAI,SAAA,EAAW;AACb,cAAA,YAAA,CAAa,KAAK,SAAS,CAAA;AAC7B,YAAA;AACA,YAAA,cAAA,EAAA;AACA,YAAA,IAAI,cAAA,KAAmB,QAAQ,MAAA,EAAQ;AACrC,cAAA,OAAO,GAAG,YAAA,CAAa,MAAA,GAAS,YAAA,CAAa,CAAC,IAAI,IAAI,CAAA;AACxD,YAAA;AACF,UAAA;AACA,UAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC1BA,YAAAA,MAAAA,CAAM,YAAA;cACJ,MAAA,CAAO,MAAA;cACP,MAAA,CAAO,IAAA;cACP,MAAA,CAAO,GAAA;AACP,cAAA;AACF,aAAA;UACF,CAAC,CAAA;QACH,CAAC,CAAA;AACH,MAAA;MACA,OAAO,WAAA,CAAY,QAAA,EAAUA,MAAAA,EAAO,EAAA,EAAI;AACtC,QAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,UAAA,EAAA,GAAKA,MAAAA;AACLA,UAAAA,MAAAA,GAAQ,IAAA;AACV,QAAA;AACA,QAAA,UAAA,CAAW,QAAA,CAAS,UAAA,CAAW,UAAA,CAAW,EAAE,GAAG,EAAE,CAAA;AACjD,QAAA,IAAI,UAAA;AACJ,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,UAAA,GAAa,UAAU,QAAQ,CAAA;AAC/B,UAAA,IAAI,sBAAsB,KAAA,EAAO;AAC/B,YAAA,OAAO,GAAG,UAAU,CAAA;AACtB,UAAA;QACF,CAAA,MAAO;AACL,UAAA,UAAA,GAAa,QAAA;AACf,QAAA;AACA,QAAA,MAAM,GAAA,GAAM,IAAI,UAAA,CAAWA,MAAAA,EAAO;AAChC,UAAA,oBAAA,EAAsB,UAAA,CAAW,oBAAA;AACjC,UAAA,SAAA,EAAW,UAAA,CAAW,eAAA;AACtB,UAAA,qBAAA,EAAuB,UAAA,CAAW,qBAAA;AAClC,UAAA,cAAA,EAAgB,UAAA,CAAW;AAC5B,SAAA,CAAA;AACD,QAAA,GAAA,CAAI,cAAA,CAAe,UAAA,EAAY,CAAC,GAAA,KAAQ;AACtC,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,OAAO,GAAG,GAAG,CAAA;AACf,UAAA;AACA,UAAA,EAAA,CAAG,MAAM,GAAG,CAAA;QACd,CAAC,CAAA;AACH,MAAA;MACA,OAAO,eAAA,CAAgB,UAAUA,MAAAA,EAAO;AACtC,QAAA,MAAM,aAAa,OAAO,QAAA,KAAa,WAAW,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA,GAAI,QAAA;AACzE,QAAA,MAAM,GAAA,GAAM,IAAI,UAAA,CAAWA,MAAAA,EAAO;AAChC,UAAA,oBAAA,EAAsB,UAAA,CAAW,oBAAA;AACjC,UAAA,SAAA,EAAW,UAAA,CAAW;AACvB,SAAA,CAAA;AACD,QAAA,IAAI,CAAC,GAAA,CAAI,KAAA,CAAM,WAAA,EAAa;AAC1B,UAAA,MAAM,IAAI,KAAA;AACR,YAAA;AACF,WAAA;AACF,QAAA;AACA,QAAA,GAAA,CAAI,mBAAmB,UAAU,CAAA;AACjC,QAAA,OAAO,GAAA;AACT,MAAA;AACF,KAAA;AACAD,IAAAA,UAAAA,CAAU,WAAWA,UAAAA,CAAU,eAAA;AAC/B,IAAA;AACE,MAAA,gBAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,kBAAA;AACA,MAAA,WAAA;AACA,MAAA;AACA,KAAA,CAAA,OAAA,CAAQ,CAAC,IAAA,KAAS;AAClBA,MAAAA,UAAAA,CAAU,UAAU,IAAI,CAAA,GAAI,aAAaA,UAAAA,CAAU,SAAA,CAAU,IAAI,CAAC,CAAA;IACpE,CAAC,CAAA;AACDA,IAAAA,UAAAA,CAAU,WAAA,GAAc,YAAA,CAAaA,UAAAA,CAAU,WAAW,CAAA;AAC1D,IAAA,SAAS,SAAS,MAAA,EAAQ;AACxB,MAAA,OAAO,YAAY,IAAA,EAAM;AACvB,QAAA,IAAI,CAAC,IAAA,CAAK,KAAA,CAAM,WAAA,EAAa;AAC3B,UAAA,MAAM,IAAI,KAAA;AACR,YAAA;AACF,WAAA;AACF,QAAA;AACA,QAAA,IAAI,OAAA,EAAS,UAAA;AACb,QAAA,IAAA,CAAK,MAAM,CAAA,CAAE,GAAG,IAAA,EAAM,CAAC,KAAK,MAAA,KAAW;AACrC,UAAA,OAAA,GAAU,GAAA;AACV,UAAA,UAAA,GAAa,MAAA;QACf,CAAC,CAAA;AACD,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,MAAM,OAAA;AACR,QAAA;AACA,QAAA,OAAO,UAAA;AACT,MAAA,CAAA;AACF,IAAA;AACArB,IAAAA,SAAAA,CAAQ,OAAA,GAAU,OAAA;AAClBA,IAAAA,SAAAA,CAAQ,SAAA,GAAYqB,UAAAA;AACpBrB,IAAAA,SAAAA,CAAQ,MAAA,GAASoB,OAAAA;AACjBpB,IAAAA,SAAAA,CAAQ,KAAA,GAAQc,MAAAA;AAChBd,IAAAA,SAAAA,CAAQ,iBAAA,GAAoBgB,kBAAAA;AAC5BhB,IAAAA,SAAAA,CAAQ,SAAA,GAAY,SAAA;AACpBA,IAAAA,SAAAA,CAAQ,UAAA,GAAa,UAAA;AACrBA,IAAAA,SAAAA,CAAQ,KAAA,GAAQW,MAAAA;AAChBX,IAAAA,SAAAA,CAAQ,QAAA,GAAW,QAAA;AACnBA,IAAAA,SAAAA,CAAQ,WAAA,GAAcmB,YAAAA;AACtBnB,IAAAA,SAAAA,CAAQ,WAAA,GAAc,WAAA;AACtBA,IAAAA,SAAAA,CAAQ,SAAA,GAAYe,UAAAA;AACpBf,IAAAA,SAAAA,CAAQ,kBAAkB,SAAA,CAAU,eAAA;AACpCA,IAAAA,SAAAA,CAAQ,aAAA,GAAgB,aAAA;AACxBA,IAAAA,SAAAA,CAAQ,aAAA,GAAgB,uBAAA,CAAwB,aAAA;AAChDA,IAAAA,SAAAA,CAAQ,WAAA,GAAc,WAAA;AACtBA,IAAAA,SAAAA,CAAQ,eAAA,GAAkB,eAAA;AAC1BA,IAAAA,SAAAA,CAAQ,kBAAA,GAAqB,kBAAA;AAC7BA,IAAAA,SAAAA,CAAQ,iBAAiB,UAAA,CAAW,cAAA;AACtC,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,mBAAA,GAAsBU,QAAAA,CAAQQ,eAAAA,EAAmB,CAAA;AACrD,IAAIM,kBAAiB,mBAAA,CAAoB,OAAA;AC9jXzC,IAAM,EAAE,MAAA,EAAQ,SAAA,EAAW,OAAO,iBAAA,EAAmB,WAAA,EAAa,WAAA,GAChEA,eAAAA;AAMF,IAAM,qBAAA,GAAN,cAAoC,KAAA,CAAM;EAIxC,WAAA,GAAc;AACZ,IAAA,KAAA,EAAA;AAJM,IAAA,aAAA,CAAA,MAAA,SAAA,CAAA;AACA,IAAA,aAAA,CAAA,MAAA,YAAA,CAAA;AAKN,IAAA,SAAA;AACE,MAAA,OAAO,YAAA,KAAiB,WAAA;AACxB,MAAA;AACF,KAAA;AAEA,IAAA,IAAA,CAAK,WAAA,GAAc,IAAA;AACnB,IAAA,IAAA,CAAK,OAAA,GAAU,YAAA;AACf,IAAA,IAAA,CAAK,UAAA,GAAa,sBAAA;AACpB,EAAA;EAEA,UAAA,CACE,MAAA,EACA,IAAA,EACA,GAAA,EACA,QAAA,EACM;AACN,IAAA,IAAI;AACF,MAAA,MAAMF,OAAAA,GAAQ,KAAK,QAAA,EAAA;AACnB,MAAA,MAAM,OAAA,GAAU,KAAK,qBAAA,CAAsBA,OAAAA,EAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACvE,MAAA,QAAA,CAAS,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAA,IAAK,IAAI,CAAA;AACnC,IAAA,CAAA,CAAA,OAAS5B,MAAAA,EAAO;AACd,MAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,QAAA,QAAA,CAASA,QAAO,IAAI,CAAA;AACtB,MAAA;AACF,IAAA;AACF,EAAA;EAEA,WAAA,CACE,MAAA,EACA,IAAA,EACA,qBAAA,EACA,QAAA,EACM;AACN,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,QAAA,CAAS,IAAA,EAAM,EAAE,CAAA;AACjB,MAAA;AACF,IAAA;AAEA,IAAA,IAAI;AACF,MAAA,MAAM4B,OAAAA,GAAQ,KAAK,QAAA,EAAA;AACnB,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,qBAAA,CAAsBA,OAAAA,EAAO;AAChD,QAAA,MAAA;AACA,QAAA;AACD,OAAA,CAAA;AACD,MAAA,QAAA,CAAS,MAAM,OAAO,CAAA;AACxB,IAAA,CAAA,CAAA,OAAS5B,MAAAA,EAAO;AACd,MAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,QAAA,QAAA,CAASA,MAAAA,EAAO,EAAE,CAAA;AACpB,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA,SAAA,CACE,QACA,QAAA,EACM;AACN,IAAA,IAAI;AAEF,MAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,QAAA;AACF,MAAA;AAEA,MAAA,MAAM4B,OAAAA,GAAQ,KAAK,QAAA,EAAA;AACnBA,MAAAA,OAAAA,CAAM,KAAK,MAAM,CAAA;AACjB,MAAA,IAAA,CAAK,YAAYA,OAAK,CAAA;AACxB,IAAA,CAAA,CAAA,OAAS5B,MAAAA,EAAO;AACd,MAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,QAAA,QAAA,CAASA,MAAK,CAAA;AAChB,MAAA;AACF,IAAA;AACF,EAAA;EAEA,YAAA,CACE,SAAA,EACA,WACA,QAAA,EACM;AAMN,IAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,MAAA,IAAA,CAAK,YAAA;AACH,QAAA,SAAA,CAAU,MAAA,IAAU,EAAA;AACpB,QAAA,SAAA,CAAU,IAAA,IAAQ,EAAA;QAClB,SAAA,CAAU,GAAA;AACV,QAAA;AACF,OAAA;AACA,MAAA;AACF,IAAA;AAEA,IAAA,IAAA,CAAK,SAAA,CAAU,WAAW,QAAQ,CAAA;AACpC,EAAA;EAEA,YAAA,CACE,MAAA,EACA,IAAA,EACA,GAAA,EACA,QAAA,EACM;AACN,IAAA,IAAI;AACF,MAAA,MAAM4B,OAAAA,GAAQ,KAAK,QAAA,EAAA;AACnB,MAAA,MAAM,SAAA,GAAY,KAAK,qBAAA,CAAsBA,OAAAA,EAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACzE,MAAA,IAAA,CAAK,YAAY,SAAS,CAAA;AAC1B,MAAA,QAAA,CAAS,IAAI,CAAA;AACf,IAAA,CAAA,CAAA,OAAS5B,MAAAA,EAAO;AACd,MAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,QAAA,QAAA,CAASA,MAAK,CAAA;AAChB,MAAA;AACF,IAAA;AACF,EAAA;EAEA,aAAA,CACE,MAAA,EACA,MACA,QAAA,EACM;AACN,IAAA,IAAI;AACF,MAAA,MAAM4B,OAAAA,GAAQ,KAAK,QAAA,EAAA;AACnB,MAAA,MAAM,YAAY,IAAA,CAAK,qBAAA,CAAsBA,SAAO,EAAE,MAAA,EAAQ,MAAM,CAAA;AACpE,MAAA,IAAA,CAAK,YAAY,SAAS,CAAA;AAC1B,MAAA,QAAA,CAAS,IAAI,CAAA;AACf,IAAA,CAAA,CAAA,OAAS5B,MAAAA,EAAO;AACd,MAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,QAAA,QAAA,CAASA,MAAK,CAAA;AAChB,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA,aAAA,CACE,QAAA,EACM;AACN,IAAA,IAAI;AACF,MAAA,QAAA,CAAS,IAAA,EAAM,IAAA,CAAK,QAAA,EAAU,CAAA;AAChC,IAAA,CAAA,CAAA,OAASA,MAAAA,EAAO;AACd,MAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,QAAA,QAAA,CAASA,MAAAA,EAAO,EAAE,CAAA;AACpB,MAAA;AACF,IAAA;AACF,EAAA;EAEQ,QAAA,GAAkC;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,KAAK,UAAU,CAAA;AAEjD,MAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,QAAA,OAAO,EAAA;AACT,MAAA;AAEA,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAClC,MAAA,MAAM,UAAiC,EAAA;AACvC,MAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AAClC,QAAA,MAAM,MAAA,GAAS,MAAA,CAAO,QAAA,CAAS,SAAS,CAAA;AACxC,QAAA,IAAI,UAAU,IAAA,EAAM;AAClB,UAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AACrB,QAAA;AACF,MAAA;AACA,MAAA,OAAO,OAAA;AACT,IAAA,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,MAAA,OAAO,EAAA;AACT,IAAA;AACF,EAAA;AAEQ,EAAA,WAAA,CAAY,SAAA,EAAkC;AACpD,IAAA,IAAA,CAAK,OAAA,CAAQ,OAAA;MACX,IAAA,CAAK,UAAA;MACL,IAAA,CAAK,SAAA,CAAU,UAAU,GAAA,CAAI,CAAC,WAAW,MAAA,CAAO,MAAA,EAAQ,CAAC;AAC3D,KAAA;AACF,EAAA;AAEQ,EAAA,qBAAA,CACN,SACA,OAAA,EACuB;AACvB,IAAA,MAAM,SAAgC,EAAA;AAEtC,IAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,MAAA,IAAI,OAAA,CAAQ,UAAU,CAAC,WAAA,CAAY,QAAQ,MAAA,EAAQ,MAAA,CAAO,MAAA,IAAU,EAAE,CAAA,EAAG;AACvE,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,OAAA,CAAQ,QAAQ,CAAC,SAAA,CAAU,QAAQ,IAAA,EAAM,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA,EAAG;AAC/D,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,OAAA,CAAQ,GAAA,IAAO,MAAA,CAAO,GAAA,KAAQ,QAAQ,GAAA,EAAK;AAC7C,QAAA;AACF,MAAA;AAEA,MAAA,MAAA,CAAO,KAAK,MAAM,CAAA;AACpB,IAAA;AAEA,IAAA,OAAO,MAAA;AACT,EAAA;AAEQ,EAAA,qBAAA,CACN,SACA,OAAA,EACA;AACA,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,qBAAA,CAAsB,OAAA,EAAS,OAAO,CAAA;AACnE,IAAA,OAAO,OAAA,CAAQ,OAAO,CAAC,MAAA,KAAW,CAAC,eAAA,CAAgB,QAAA,CAAS,MAAM,CAAC,CAAA;AACrE,EAAA;AACF,CAAA;AAEA,IAAM,QAAQ,aAAA,EAAA,GACV,IAAI,iBAAA,EAAA,GACJ,IAAI,qBAAA,EAAA;AAEmB,IAAI,UAAU,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrO9C,IAAA,qBAAAc,WAAAA,CAAA;AAAA,EAAA,kDAAA,CAAAR,WAAA,MAAA,EAAA;AAEA,IAAA,IAAI,mBAAA,GAAsB;MACxB,YAAA,EAAc,IAAA;MACd,GAAA,EAAK,KAAA;MACL,MAAA,EAAQ;AACV,KAAA;AAEA,IAAA,SAAS,iBAAiB,GAAA,EAAK;AAC7B,MAAA,OAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,CAAC,CAAC,IAAI,IAAA,EAAA;AAC1C,IAAA;AAEA,IAAA,SAAS,WAAA,CAAY,gBAAgB,OAAA,EAAS;AAC5C,MAAA,IAAI,QAAQ,cAAA,CAAe,KAAA,CAAM,GAAG,CAAA,CAAE,OAAO,gBAAgB,CAAA;AAE7D,MAAA,IAAI,gBAAA,GAAmB,MAAM,KAAA,EAAA;AAC7B,MAAA,IAAI,MAAA,GAAS,mBAAmB,gBAAgB,CAAA;AAChD,MAAA,IAAI,OAAO,MAAA,CAAO,IAAA;AAClB,MAAA,IAAI,QAAQ,MAAA,CAAO,KAAA;AAEnB,MAAA,OAAA,GAAU,UACN,MAAA,CAAO,MAAA,CAAO,EAAA,EAAI,mBAAA,EAAqB,OAAO,CAAA,GAC9C,mBAAA;AAEJ,MAAA,IAAI;AACF,QAAA,KAAA,GAAQ,OAAA,CAAQ,YAAA,GAAe,kBAAA,CAAmB,KAAK,CAAA,GAAI,KAAA;AAC7D,MAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,QAAA,OAAA,CAAQ,KAAA;AACN,UAAA,6EAAA,GACE,KAAA,GACA,+DAAA;AACF,UAAA;AACF,SAAA;AACF,MAAA;AAEA,MAAA,IAAI,MAAA,GAAS;AACX,QAAA,IAAA;AACA,QAAA;AACF,OAAA;AAEA,MAAA,KAAA,CAAM,OAAA,CAAQ,SAAU,IAAA,EAAM;AAC5B,QAAA,IAAI,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC1B,QAAA,IAAI,MAAM,KAAA,CAAM,KAAA,EAAA,CAAQ,QAAA,GAAW,WAAA,EAAA;AACnC,QAAA,IAAIyB,MAAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;AAC1B,QAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,UAAA,MAAA,CAAO,OAAA,GAAU,IAAI,IAAA,CAAKA,MAAK,CAAA;AACjC,QAAA,CAAA,MAAA,IAAW,QAAQ,SAAA,EAAW;AAC5B,UAAA,MAAA,CAAO,MAAA,GAAS,QAAA,CAASA,MAAAA,EAAO,EAAE,CAAA;AACpC,QAAA,CAAA,MAAA,IAAW,QAAQ,QAAA,EAAU;AAC3B,UAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAClB,QAAA,CAAA,MAAA,IAAW,QAAQ,UAAA,EAAY;AAC7B,UAAA,MAAA,CAAO,QAAA,GAAW,IAAA;AACpB,QAAA,CAAA,MAAA,IAAW,QAAQ,UAAA,EAAY;AAC7B,UAAA,MAAA,CAAO,QAAA,GAAWA,MAAAA;QACpB,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,GAAG,CAAA,GAAIA,MAAAA;AAChB,QAAA;MACF,CAAC,CAAA;AAED,MAAA,OAAO,MAAA;AACT,IAAA;AAEA,IAAA,SAAS,mBAAmB,gBAAA,EAAkB;AAG5C,MAAA,IAAI,IAAA,GAAO,EAAA;AACX,MAAA,IAAI,KAAA,GAAQ,EAAA;AACZ,MAAA,IAAI,YAAA,GAAe,gBAAA,CAAiB,KAAA,CAAM,GAAG,CAAA;AAC7C,MAAA,IAAI,YAAA,CAAa,SAAS,CAAA,EAAG;AAC3B,QAAA,IAAA,GAAO,aAAa,KAAA,EAAA;AACpB,QAAA,KAAA,GAAQ,YAAA,CAAa,KAAK,GAAG,CAAA;MAC/B,CAAA,MAAO;AACL,QAAA,KAAA,GAAQ,gBAAA;AACV,MAAA;AAEA,MAAA,OAAO,EAAE,MAAY,KAAA,EAAA;AACvB,IAAA;AAEA,IAAA,SAASd,MAAAA,CAAM,OAAO,OAAA,EAAS;AAC7B,MAAA,OAAA,GAAU,UACN,MAAA,CAAO,MAAA,CAAO,EAAA,EAAI,mBAAA,EAAqB,OAAO,CAAA,GAC9C,mBAAA;AAEJ,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAChB,UAAA,OAAO,EAAA;QACT,CAAA,MAAO;AACL,UAAA,OAAO,EAAA;AACT,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,MAAM,OAAA,EAAS;AACjB,QAAA,IAAI,OAAO,KAAA,CAAM,OAAA,CAAQ,YAAA,KAAiB,UAAA,EAAY;AAGpD,UAAA,KAAA,GAAQ,KAAA,CAAM,QAAQ,YAAA,EAAA;QACxB,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,EAAG;AAEtC,UAAA,KAAA,GAAQ,KAAA,CAAM,QAAQ,YAAY,CAAA;QACpC,CAAA,MAAO;AAEL,UAAA,IAAI,GAAA,GACF,KAAA,CAAM,OAAA,CACJ,MAAA,CAAO,IAAA,CAAK,MAAM,OAAO,CAAA,CAAE,IAAA,CAAK,SAAU,GAAA,EAAK;AAC7C,YAAA,OAAO,GAAA,CAAI,aAAA,KAAkB,YAAA;AAC/B,UAAA,CAAC,CACH,CAAA;AAEF,UAAA,IAAI,CAAC,GAAA,IAAO,KAAA,CAAM,QAAQ,MAAA,IAAU,CAAC,QAAQ,MAAA,EAAQ;AACnD,YAAA,OAAA,CAAQ,IAAA;AACN,cAAA;AACF,aAAA;AACF,UAAA;AACA,UAAA,KAAA,GAAQ,GAAA;AACV,QAAA;AACF,MAAA;AACA,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,QAAA,KAAA,GAAQ,CAAC,KAAK,CAAA;AAChB,MAAA;AAEA,MAAA,OAAA,GAAU,UACN,MAAA,CAAO,MAAA,CAAO,EAAA,EAAI,mBAAA,EAAqB,OAAO,CAAA,GAC9C,mBAAA;AAEJ,MAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAChB,QAAA,OAAO,MAAM,MAAA,CAAO,gBAAgB,CAAA,CAAE,GAAA,CAAI,SAAU,GAAA,EAAK;AACvD,UAAA,OAAO,WAAA,CAAY,KAAK,OAAO,CAAA;QACjC,CAAC,CAAA;MACH,CAAA,MAAO;AACL,QAAA,IAAI,UAAU,EAAA;AACd,QAAA,OAAO,MAAM,MAAA,CAAO,gBAAgB,EAAE,MAAA,CAAO,SAAUe,UAAS,GAAA,EAAK;AACnE,UAAA,IAAI,MAAA,GAAS,WAAA,CAAY,GAAA,EAAK,OAAO,CAAA;AACrCA,UAAAA,QAAAA,CAAQ,MAAA,CAAO,IAAI,CAAA,GAAI,MAAA;AACvB,UAAA,OAAOA,QAAAA;AACT,QAAA,CAAA,EAAG,OAAO,CAAA;AACZ,MAAA;AACF,IAAA;AAaA,IAAA,SAASC,oBAAmB,aAAA,EAAe;AACzC,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,EAAG;AAChC,QAAA,OAAO,aAAA;AACT,MAAA;AACA,MAAA,IAAI,OAAO,kBAAkB,QAAA,EAAU;AACrC,QAAA,OAAO,EAAA;AACT,MAAA;AAEA,MAAA,IAAI,iBAAiB,EAAA;AACrB,MAAA,IAAI,GAAA,GAAM,CAAA;AACV,MAAA,IAAI,KAAA;AACJ,MAAA,IAAI,EAAA;AACJ,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI,qBAAA;AAEJ,MAAA,SAAS,cAAA,GAAiB;AACxB,QAAA,OAAO,GAAA,GAAM,cAAc,MAAA,IAAU,IAAA,CAAK,KAAK,aAAA,CAAc,MAAA,CAAO,GAAG,CAAC,CAAA,EAAG;AACzE,UAAA,GAAA,IAAO,CAAA;AACT,QAAA;AACA,QAAA,OAAO,MAAM,aAAA,CAAc,MAAA;AAC7B,MAAA;AAEA,MAAA,SAAS,cAAA,GAAiB;AACxB,QAAA,EAAA,GAAK,aAAA,CAAc,OAAO,GAAG,CAAA;AAE7B,QAAA,OAAO,EAAA,KAAO,GAAA,IAAO,EAAA,KAAO,GAAA,IAAO,EAAA,KAAO,GAAA;AAC5C,MAAA;AAEA,MAAA,OAAO,GAAA,GAAM,cAAc,MAAA,EAAQ;AACjC,QAAA,KAAA,GAAQ,GAAA;AACR,QAAA,qBAAA,GAAwB,KAAA;AAExB,QAAA,OAAO,gBAAA,EAAkB;AACvB,UAAA,EAAA,GAAK,aAAA,CAAc,OAAO,GAAG,CAAA;AAC7B,UAAA,IAAI,OAAO,GAAA,EAAK;AAEd,YAAA,SAAA,GAAY,GAAA;AACZ,YAAA,GAAA,IAAO,CAAA;AAEP,YAAA,cAAA,EAAA;AACA,YAAA,SAAA,GAAY,GAAA;AAEZ,YAAA,OAAO,GAAA,GAAM,aAAA,CAAc,MAAA,IAAU,cAAA,EAAA,EAAkB;AACrD,cAAA,GAAA,IAAO,CAAA;AACT,YAAA;AAGA,YAAA,IAAI,MAAM,aAAA,CAAc,MAAA,IAAU,cAAc,MAAA,CAAO,GAAG,MAAM,GAAA,EAAK;AAEnE,cAAA,qBAAA,GAAwB,IAAA;AAExB,cAAA,GAAA,GAAM,SAAA;AACN,cAAA,cAAA,CAAe,IAAA,CAAK,aAAA,CAAc,SAAA,CAAU,KAAA,EAAO,SAAS,CAAC,CAAA;AAC7D,cAAA,KAAA,GAAQ,GAAA;YACV,CAAA,MAAO;AAGL,cAAA,GAAA,GAAM,SAAA,GAAY,CAAA;AACpB,YAAA;UACF,CAAA,MAAO;AACL,YAAA,GAAA,IAAO,CAAA;AACT,UAAA;AACF,QAAA;AAEA,QAAA,IAAI,CAAC,qBAAA,IAAyB,GAAA,IAAO,aAAA,CAAc,MAAA,EAAQ;AACzD,UAAA,cAAA,CAAe,KAAK,aAAA,CAAc,SAAA,CAAU,KAAA,EAAO,aAAA,CAAc,MAAM,CAAC,CAAA;AAC1E,QAAA;AACF,MAAA;AAEA,MAAA,OAAO,cAAA;AACT,IAAA;AAEA,IAAA,MAAA,CAAO,OAAA,GAAUhB,MAAAA;AACjB,IAAA,MAAA,CAAO,QAAQ,KAAA,GAAQA,MAAAA;AACvB,IAAA,MAAA,CAAO,QAAQ,WAAA,GAAc,WAAA;AAC7B,IAAA,MAAA,CAAO,QAAQ,kBAAA,GAAqBgB,mBAAAA;AAAA,EAAA;AAAA,CAAA,CAAA;ACjODjB,QAAAA,CAAA,oBAAA,CAAA;ACe5B,SAAS,sBAAA,GAG4B;AAC1C,EAAA,MAAM,QAAA,GAAoD,CACxD,OAAA,EACA,MAAA,KACG;AACH,IAAA,QAAA,CAAS,KAAA,GAAQ,SAAA;AAEjB,IAAA,QAAA,CAAS,OAAA,GAAU,CAAC,IAAA,KAAS;AAC3B,MAAA,IAAI,QAAA,CAAS,UAAU,SAAA,EAAW;AAChC,QAAA;AACF,MAAA;AAEA,MAAA,QAAA,CAAS,MAAA,GAAS,IAAA;AAElB,MAAA,MAAM,WAAA,GAAc,CAAQ,KAAA,KAAiB;AAC3C,QAAA,QAAA,CAAS,KAAA,GAAQ,WAAA;AACjB,QAAA,OAAO,KAAA;AACT,MAAA,CAAA;AAEA,MAAA,OAAO,OAAA;AACL,QAAA,IAAA,YAAgB,UAAU,IAAA,GAAO,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAE,KAAK,WAAW;AACzE,OAAA;AACF,IAAA,CAAA;AAEA,IAAA,QAAA,CAAS,MAAA,GAAS,CAAC,MAAA,KAAW;AAC5B,MAAA,IAAI,QAAA,CAAS,UAAU,SAAA,EAAW;AAChC,QAAA;AACF,MAAA;AAEA,MAAA,cAAA,CAAe,MAAM;AACnB,QAAA,QAAA,CAAS,KAAA,GAAQ,UAAA;MACnB,CAAC,CAAA;AAED,MAAA,OAAO,MAAA,CAAQ,QAAA,CAAS,eAAA,GAAkB,MAAO,CAAA;AACnD,IAAA,CAAA;AACF,EAAA,CAAA;AAEA,EAAA,OAAO,QAAA;AACT;;;;;AChDO,IAAM,eAAA,IAANb,GAAAA,GAAA,cAAqD,OAAA,CAAe;AAMzE,EAAA,WAAA,CAAY,WAAmC,IAAA,EAAM;AACnD,IAAA,MAAM,mBAAmB,sBAAA,EAAA;AACzB,IAAA,KAAA,CAAM,CAAC,iBAAiB,cAAA,KAAmB;AACzC,MAAA,gBAAA,CAAiB,iBAAiB,cAAc,CAAA;AAChD,MAAA,QAAA,IAAA,OAAA,MAAA,GAAA,QAAA,CAAW,gBAAA,CAAiB,OAAA,EAAS,iBAAiB,MAAA,CAAA;IACxD,CAAC,CAAA;AAgCH,IAAA,YAAA,CAAA,MAAA,SAAA,CAAA;AA1CA,IAAA,YAAA,CAAA,IAAA,EAAA,WAAA,MAAA,CAAA;AAEO,IAAA,aAAA,CAAA,MAAA,SAAA,CAAA;AACA,IAAA,aAAA,CAAA,MAAA,QAAA,CAAA;AASL,IAAA,YAAA,CAAA,IAAA,EAAK,WAAY,gBAAA,CAAA;AACjB,IAAA,IAAA,CAAK,OAAA,GAAU,YAAA,CAAA,IAAA,EAAK,SAAA,CAAA,CAAU,OAAA;AAC9B,IAAA,IAAA,CAAK,MAAA,GAAS,YAAA,CAAA,IAAA,EAAK,SAAA,CAAA,CAAU,MAAA;AAC/B,EAAA;AAEA,EAAA,IAAW,KAAA,GAAQ;AACjB,IAAA,OAAO,YAAA,CAAA,IAAA,EAAK,SAAA,CAAA,CAAU,KAAA;AACxB,EAAA;AAEA,EAAA,IAAW,eAAA,GAAkB;AAC3B,IAAA,OAAO,YAAA,CAAA,IAAA,EAAK,SAAA,CAAA,CAAU,eAAA;AACxB,EAAA;AAEO,EAAA,IAAA,CACL,aACA,UAAA,EACA;AACA,IAAA,OAAO,eAAA,CAAA,IAAA,EAAK,SAAA,EAAA,WAAA,CAAA,CAAL,IAAA,CAAA,IAAA,EAAe,KAAA,CAAM,IAAA,CAAK,WAAA,EAAa,UAAU,CAAA,CAAA;AAC1D,EAAA;AAEO,EAAA,KAAA,CACL,UAAA,EACA;AACA,IAAA,OAAO,eAAA,CAAA,IAAA,EAAK,SAAA,EAAA,WAAA,CAAA,CAAL,KAAA,IAAA,EAAe,KAAA,CAAM,KAAA,CAAM,UAAU,CAAA,CAAA;AAC9C,EAAA;AAEO,EAAA,OAAA,CAAQ,SAAA,EAAuC;AACpD,IAAA,OAAO,eAAA,CAAA,IAAA,EAAK,SAAA,EAAA,WAAA,CAAA,CAAL,KAAA,IAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAA;AAC/C,EAAA;AAUF,CAAA,EAlDE,SAAA,mBAAA,IAAA,OAAA,EAAA,EA0CA,SAAA,uBAAA,OAAA,EAAA,EAAA,WAAA,GAAA,SACE,OAAA,EACqC;AACrC,EAAA,OAAO,MAAA,CAAO,iBAAiB,OAAA,EAAS;AACtC,IAAA,OAAA,EAAS,EAAE,YAAA,EAAc,IAAA,EAAM,KAAA,EAAO,KAAK,OAAA,EAAA;AAC3C,IAAA,MAAA,EAAQ,EAAE,YAAA,EAAc,IAAA,EAAM,KAAA,EAAO,KAAK,MAAA;AAC3C,GAAA,CAAA;AACH,CAAA,EAlDKA,GAAAA,CAAAA;AC6DP,YAAA,EAAA;ACjEe,IAAI,OAAO,8BAA8B,CAAA;ACFzC,IAAI+B,OAAO,aAAa,CAAA;AC4BxB,IAAIA,OAAO,iCAAiC,CAAA;AC1BpD,SAASC,uBAAsB,YAAA,EAA+B;AACnE,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,wBAAA,CAAyB,UAAA,EAAY,YAAY,CAAA;AAG3E,EAAA,IAAI,OAAO,eAAe,WAAA,EAAa;AACrC,IAAA,OAAO,KAAA;AACT,EAAA;AAGA,EAAA,IACE,OAAO,WAAW,GAAA,KAAQ,UAAA,IAC1B,OAAO,UAAA,CAAW,GAAA,OAAU,WAAA,EAC5B;AACA,IAAA,OAAO,KAAA;AACT,EAAA;AAGA,EAAA,IAAI,OAAO,UAAA,CAAW,GAAA,KAAQ,WAAA,IAAe,UAAA,CAAW,SAAS,IAAA,EAAM;AACrE,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,IAAI,OAAO,UAAA,CAAW,GAAA,KAAQ,WAAA,IAAe,CAAC,WAAW,YAAA,EAAc;AACrE,IAAA,OAAA,CAAQ,KAAA;AACN,MAAA,CAAA,gDAAA,EAAmD,YAAA,CAAA,kKAAA;AACrD,KAAA;AACA,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,OAAO,IAAA;AACT;ACjBO,SAASC,iBAAmB,MAAA,EAA+B;AAChE,EAAA;;AAEE,IAAA,UAAA,CAAW,MAAM,CAAA,IAAK;;AAE1B;AAEA,SAASC,gBAAAA,CAAgB,QAAgB,KAAA,EAAkB;AAEzD,EAAA,UAAA,CAAW,MAAM,CAAA,GAAI,KAAA;AACvB;AAEO,SAASC,oBAAmB,MAAA,EAAsB;AAEvD,EAAA,OAAO,WAAW,MAAM,CAAA;AAC1B;AAaO,IAAMC,eAAN,MAAsD;AAO3D,EAAA,WAAA,CAA6B,MAAA,EAAgB;AAAhB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAC3B,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAElB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,OAAA,EAAA;AACnB,IAAA,IAAA,CAAK,gBAAgB,EAAA;AACrB,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,MAAA,CAAO,MAAA,CAAO,WAAY,CAAA;AAI5C,IAAA,IAAA,CAAK,OAAA,CAAQ,gBAAgB,CAAC,CAAA;AAE9B,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,iCAAiC,CAAA;AACpD,EAAA;;;;;EAMU,gBAAA,GAA4B;AACpC,IAAA,OAAO,IAAA;AACT,EAAA;;;;;EAMO,KAAA,GAAc;AACnB,IAAA,MAAMC,OAAAA,GAAS,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,OAAO,CAAA;AACzCA,IAAAA,OAAAA,CAAO,KAAK,6BAA6B,CAAA;AAEzC,IAAA,IAAI,IAAA,CAAK,eAAe,SAAA,EAA+B;AACrDA,MAAAA,OAAAA,CAAO,KAAK,8BAA8B,CAAA;AAC1C,MAAA;AACF,IAAA;AAEA,IAAA,MAAM,WAAA,GAAc,KAAK,gBAAA,EAAA;AAEzB,IAAA,IAAI,CAAC,WAAA,EAAa;AAChBA,MAAAA,OAAAA,CAAO,KAAK,wDAAwD,CAAA;AACpE,MAAA;AACF,IAAA;AAEA,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAKlB,IAAA,MAAM,eAAA,GAAkB,KAAK,WAAA,EAAA;AAE7B,IAAA,IAAI,eAAA,EAAiB;AACnBA,MAAAA,OAAAA,CAAO,KAAK,sCAAsC,CAAA;AAGlD,MAAA,IAAA,CAAK,EAAA,GAAK,CAAC,KAAA,EAAO,QAAA,KAAa;AAC7BA,QAAAA,OAAAA,CAAO,IAAA,CAAK,8BAA8B,KAAK,CAAA;AAI/C,QAAA,eAAA,CAAgB,OAAA,CAAQ,WAAA,CAAY,KAAA,EAAO,QAAQ,CAAA;AAInD,QAAA,IAAA,CAAK,aAAA,CAAc,KAAK,MAAM;AAC5B,UAAA,eAAA,CAAgB,OAAA,CAAQ,cAAA,CAAe,KAAA,EAAO,QAAQ,CAAA;AACtDA,UAAAA,OAAAA,CAAO,IAAA,CAAK,kCAAkC,KAAK,CAAA;QACrD,CAAC,CAAA;AAED,QAAA,OAAO,IAAA;AACT,MAAA,CAAA;AAEA,MAAA,IAAA,CAAK,UAAA,GAAa,SAAA;AAElB,MAAA;AACF,IAAA;AAEAA,IAAAA,OAAAA,CAAO,KAAK,yDAAyD,CAAA;AAGrE,IAAA,IAAA,CAAK,KAAA,EAAA;AAGL,IAAA,IAAA,CAAK,WAAA,EAAA;AAEL,IAAA,IAAA,CAAK,UAAA,GAAa,SAAA;AACpB,EAAA;;;;;;EAOU,KAAA,GAAc;AAAC,EAAA;;;;AAKlB,EAAA,EAAA,CACL,OACA,QAAA,EACM;AACN,IAAA,MAAMA,OAAAA,GAAS,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAEtC,IAAA,IACE,IAAA,CAAK,UAAA,KAAe,WAAA,IACpB,IAAA,CAAK,eAAe,UAAA,EACpB;AACAA,MAAAA,OAAAA,CAAO,KAAK,4CAA4C,CAAA;AACxD,MAAA,OAAO,IAAA;AACT,IAAA;AAEAA,IAAAA,OAAAA,CAAO,IAAA,CAAK,6BAAA,EAA+B,KAAA,EAAO,QAAQ,CAAA;AAE1D,IAAA,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,KAAA,EAAO,QAAQ,CAAA;AAC/B,IAAA,OAAO,IAAA;AACT,EAAA;AAEO,EAAA,IAAA,CACL,OACA,QAAA,EACM;AACN,IAAA,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,KAAA,EAAO,QAAQ,CAAA;AACjC,IAAA,OAAO,IAAA;AACT,EAAA;AAEO,EAAA,GAAA,CACL,OACA,QAAA,EACM;AACN,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,QAAQ,CAAA;AAChC,IAAA,OAAO,IAAA;AACT,EAAA;AAEO,EAAA,kBAAA,CACL,KAAA,EACM;AACN,IAAA,IAAA,CAAK,OAAA,CAAQ,mBAAmB,KAAK,CAAA;AACrC,IAAA,OAAO,IAAA;AACT,EAAA;;;;EAKO,OAAA,GAAgB;AACrB,IAAA,MAAMA,OAAAA,GAAS,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA;AAE3C,IAAA,IAAI,IAAA,CAAK,eAAe,UAAA,EAAgC;AACtDA,MAAAA,OAAAA,CAAO,KAAK,mCAAmC,CAAA;AAC/C,MAAA;AACF,IAAA;AAEAA,IAAAA,OAAAA,CAAO,KAAK,8BAA8B,CAAA;AAC1C,IAAA,IAAA,CAAK,UAAA,GAAa,WAAA;AAElB,IAAA,IAAI,CAAC,IAAA,CAAK,WAAA,EAAA,EAAe;AACvBA,MAAAA,OAAAA,CAAO,KAAK,8CAA8C,CAAA;AAC1D,MAAA;AACF,IAAA;AAIA,IAAA,IAAA,CAAK,aAAA,EAAA;AAELA,IAAAA,OAAAA,CAAO,IAAA,CAAK,wBAAA,EAA0BJ,gBAAAA,CAAgB,IAAA,CAAK,MAAM,CAAC,CAAA;AAElE,IAAA,IAAI,IAAA,CAAK,aAAA,CAAc,MAAA,GAAS,CAAA,EAAG;AACjCI,MAAAA,OAAAA,CAAO,IAAA,CAAK,kCAAA,EAAoC,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AAEzE,MAAA,KAAA,MAAW,OAAA,IAAW,KAAK,aAAA,EAAe;AACxC,QAAA,OAAA,EAAA;AACF,MAAA;AAEA,MAAA,IAAA,CAAK,gBAAgB,EAAA;AAErBA,MAAAA,OAAAA,CAAO,IAAA,CAAK,gCAAA,EAAkC,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AACzE,IAAA;AAEA,IAAA,IAAA,CAAK,QAAQ,kBAAA,EAAA;AACbA,IAAAA,OAAAA,CAAO,KAAK,yBAAyB,CAAA;AAErC,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AACpB,EAAA;EAEQ,WAAA,GAAgC;AAzO1C,IAAA,IAAArC,GAAAA;AA0OI,IAAA,MAAM,QAAA,GAAWiC,gBAAAA,CAAsB,IAAA,CAAK,MAAM,CAAA;AAClD,IAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,4BAAA,EAAA,CAA8BjC,GAAAA,GAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,WAAA,KAAV,IAAA,GAAA,MAAA,GAAAA,GAAAA,CAAuB,IAAI,CAAA;AAC1E,IAAA,OAAO,QAAA;AACT,EAAA;EAEQ,WAAA,GAAoB;AAC1BkC,IAAAA,gBAAAA,CAAgB,IAAA,CAAK,QAAQ,IAAI,CAAA;AACjC,IAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,sBAAA,EAAwB,IAAA,CAAK,OAAO,WAAW,CAAA;AAClE,EAAA;EAEQ,aAAA,GAAsB;AAC5BC,IAAAA,mBAAAA,CAAmB,KAAK,MAAM,CAAA;AAC9B,IAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,0BAAA,EAA4B,IAAA,CAAK,OAAO,WAAW,CAAA;AACtE,EAAA;AACF,CAAA;AClPO,SAASG,gBAAAA,GAA0B;AACxC,EAAA,OAAO,KAAK,MAAA,EAAA,CAAS,SAAS,EAAE,CAAA,CAAE,MAAM,CAAC,CAAA;AAC3C;ACNO,SAAS,SAAA,CACd,QACA,KAAA,EACuB;AACvB,EAAA,MAAA,CAAO,iBAAiB,KAAA,EAAO;IAC7B,MAAA,EAAQ;MACN,KAAA,EAAO,MAAA;MACP,UAAA,EAAY,IAAA;MACZ,QAAA,EAAU;AACZ,KAAA;IACA,aAAA,EAAe;MACb,KAAA,EAAO,MAAA;MACP,UAAA,EAAY,IAAA;MACZ,QAAA,EAAU;AACZ;AACD,GAAA,CAAA;AAED,EAAA,OAAO,KAAA;AACT;ACpBA,IAAM,WAAA,0BAAqB,aAAa,CAAA;AACxC,IAAM,iBAAA,0BAA2B,mBAAmB,CAAA;AAS7C,IAAM,sBAAA,GAAN,cAA8C,YAAA,CAAgB;AAInE,EAAA,WAAA,CAAY,MAAc,IAAA,EAA2B;AACnD,IAAA,KAAA,CAAM,MAAM,IAAI,CAAA;AAChB,IAAA,IAAA,CAAK,WAAW,CAAA,GAAI,CAAC,CAAC,IAAA,CAAK,UAAA;AAC3B,IAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,KAAA;AAC5B,EAAA;AAEA,EAAA,IAAI,UAAA,GAAa;AACf,IAAA,OAAO,KAAK,WAAW,CAAA;AACzB,EAAA;AAEA,EAAA,IAAI,WAAW,cAAA,EAAgB;AAC7B,IAAA,IAAA,CAAK,WAAW,CAAA,GAAI,cAAA;AACtB,EAAA;AAEA,EAAA,IAAI,gBAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,iBAAiB,CAAA;AAC/B,EAAA;AAEA,EAAA,IAAI,iBAAiB,oBAAA,EAAsB;AACzC,IAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,oBAAA;AAC5B,EAAA;EAEO,cAAA,GAAuB;AAC5B,IAAA,IAAI,IAAA,CAAK,UAAA,IAAc,CAAC,IAAA,CAAK,iBAAiB,CAAA,EAAG;AAC/C,MAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,IAAA;AAC5B,IAAA;AACF,EAAA;AACF,CAAA;AAQO,IAAM,UAAA,GAAN,cAAyB,KAAA,CAAM;EAKpC,WAAA,CAAY,IAAA,EAAc,IAAA,GAAuB,EAAA,EAAI;AACnD,IAAA,KAAA,CAAM,MAAM,IAAI,CAAA;AAChB,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,IAAA,KAAS,MAAA,GAAY,IAAI,IAAA,CAAK,IAAA;AAC/C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,MAAA,KAAW,MAAA,GAAY,KAAK,IAAA,CAAK,MAAA;AACpD,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,KAAa,MAAA,GAAY,QAAQ,IAAA,CAAK,QAAA;AAC7D,EAAA;AACF,CAAA;AAEO,IAAM,oBAAA,GAAN,cAAmC,UAAA,CAAW;EAInD,WAAA,CAAY,IAAA,EAAc,IAAA,GAAuB,EAAA,EAAI;AACnD,IAAA,KAAA,CAAM,MAAM,IAAI,CAAA;AAChB,IAAA,IAAA,CAAK,WAAW,CAAA,GAAI,CAAC,CAAC,IAAA,CAAK,UAAA;AAC3B,IAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,KAAA;AAC5B,EAAA;AAEA,EAAA,IAAI,UAAA,GAAa;AACf,IAAA,OAAO,KAAK,WAAW,CAAA;AACzB,EAAA;AAEA,EAAA,IAAI,WAAW,cAAA,EAAgB;AAC7B,IAAA,IAAA,CAAK,WAAW,CAAA,GAAI,cAAA;AACtB,EAAA;AAEA,EAAA,IAAI,gBAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,iBAAiB,CAAA;AAC/B,EAAA;AAEA,EAAA,IAAI,iBAAiB,oBAAA,EAAsB;AACzC,IAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,oBAAA;AAC5B,EAAA;EAEO,cAAA,GAAuB;AAC5B,IAAA,IAAI,IAAA,CAAK,UAAA,IAAc,CAAC,IAAA,CAAK,iBAAiB,CAAA,EAAG;AAC/C,MAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,IAAA;AAC5B,IAAA;AACF,EAAA;AACF,CAAA;ACvFA,IAAMC,SAAAA,0BAAkB,UAAU,CAAA;AAClC,IAAM,cAAA,0BAAwB,gBAAgB,CAAA;AAmBvC,IAAM,4BAAN,MAEP;AAME,EAAA,WAAA,CACkB,QACC,SAAA,EACjB;AAFgB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACC,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAEjB,IAAA,IAAA,CAAK,KAAKD,gBAAAA,EAAAA;AACV,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,GAAA,CAAI,MAAA,CAAO,GAAG,CAAA;AAC7B,IAAA,IAAA,CAAKC,SAAQ,CAAA,GAAI,IAAI,WAAA,EAAA;AAIrB,IAAA,IAAA,CAAK,SAAA,CAAU,gBAAA,CAAiB,UAAA,EAAY,CAAC,KAAA,KAAU;AACrD,MAAA,MAAM5C,QAAAA,GAAU,SAAA;QACd,IAAA,CAAK,MAAA;AACL,QAAA,IAAI,uBAAuB,SAAA,EAAW;AACpC,UAAA,IAAA,EAAM,KAAA,CAAM,IAAA;AACZ,UAAA,MAAA,EAAQ,KAAA,CAAM,MAAA;UACd,UAAA,EAAY;AACb,SAAA;AACH,OAAA;AAEA,MAAA,IAAA,CAAK4C,SAAQ,CAAA,CAAE,aAAA,CAAc5C,QAAO,CAAA;AAMpC,MAAA,IAAIA,SAAQ,gBAAA,EAAkB;AAC5B,QAAA,KAAA,CAAM,cAAA,EAAA;AACR,MAAA;IACF,CAAC,CAAA;AAUD,IAAA,IAAA,CAAK,SAAA,CAAU,gBAAA,CAAiB,OAAA,EAAS,CAAC,KAAA,KAAU;AAClD,MAAA,IAAA,CAAK4C,SAAQ,CAAA,CAAE,aAAA;AACb,QAAA,SAAA,CAAU,KAAK,MAAA,EAAQ,IAAI,UAAA,CAAW,OAAA,EAAS,KAAK,CAAC;AACvD,OAAA;IACF,CAAC,CAAA;AACH,EAAA;;;;EAKO,gBAAA,CACL,IAAA,EACA,UACA,OAAA,EACM;AACN,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,QAAA,EAAU,cAAc,CAAA,EAAG;AAC1C,MAAA,MAAM,aAAA,GAAgB,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAI/C,MAAA,MAAA,CAAO,cAAA,CAAe,UAAU,cAAA,EAAgB;QAC9C,KAAA,EAAO,aAAA;QACP,UAAA,EAAY,KAAA;QACZ,YAAA,EAAc;AACf,OAAA,CAAA;AACH,IAAA;AAEA,IAAA,IAAA,CAAKA,SAAQ,CAAA,CAAE,gBAAA;AACb,MAAA,IAAA;MACA,OAAA,CAAQ,GAAA,CAAI,UAAU,cAAc,CAAA;AACpC,MAAA;AACF,KAAA;AACF,EAAA;;;;EAKO,mBAAA,CACL,KAAA,EACA,UACA,OAAA,EACM;AACN,IAAA,IAAA,CAAKA,SAAQ,CAAA,CAAE,mBAAA;AACb,MAAA,KAAA;MACA,OAAA,CAAQ,GAAA,CAAI,UAAU,cAAc,CAAA;AACpC,MAAA;AACF,KAAA;AACF,EAAA;;;;AAKO,EAAA,IAAA,CAAK,IAAA,EAA2B;AACrC,IAAA,IAAA,CAAK,SAAA,CAAU,KAAK,IAAI,CAAA;AAC1B,EAAA;;;;;;AAOO,EAAA,KAAA,CAAM,MAAe,MAAA,EAAuB;AACjD,IAAA,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,IAAA,EAAM,MAAM,CAAA;AACnC,EAAA;AACF,CAAA;AC/HA,IAAM,gCAAA,GACJ,+DAAA;AAEK,IAAM,mBAAA,0BAA6B,qBAAqB,CAAA;AACxD,IAAM,OAAA,0BAAiB,SAAS,CAAA;AAChC,IAAM,MAAA,0BAAgB,QAAQ,CAAA;AAE9B,IAAM,iBAAA,GAAN,cAAgC,WAAA,CAAiC;AA2BtE,EAAA,WAAA,CAAY,KAAmB,SAAA,EAAoC;AACjE,IAAA,KAAA,EAAA;AAvBF,IAAA,IAAA,CAAS,UAAA,GAAa,CAAA;AACtB,IAAA,IAAA,CAAS,IAAA,GAAO,CAAA;AAChB,IAAA,IAAA,CAAS,OAAA,GAAU,CAAA;AACnB,IAAA,IAAA,CAAS,MAAA,GAAS,CAAA;AASlB,IAAA,IAAA,CAAQ,OAAA,GAAyC,IAAA;AACjD,IAAA,IAAA,CAAQ,UAAA,GAEG,IAAA;AACX,IAAA,IAAA,CAAQ,QAAA,GAA0C,IAAA;AAClD,IAAA,IAAA,CAAQ,QAAA,GAAsD,IAAA;AAO5D,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,QAAA,EAAA;AACf,IAAA,IAAA,CAAK,QAAA,GAAW,EAAA;AAChB,IAAA,IAAA,CAAK,UAAA,GAAa,EAAA;AAClB,IAAA,IAAA,CAAK,UAAA,GAAa,MAAA;AAClB,IAAA,IAAA,CAAK,aAAa,IAAA,CAAK,UAAA;AACvB,IAAA,IAAA,CAAK,cAAA,GAAiB,CAAA;AAEtB,IAAA,IAAA,CAAK,mBAAmB,CAAA,GAAI,IAAI,eAAA,EAAA;AAEhC,IAAA,cAAA,CAAe,YAAY;AACzB,MAAA,IAAI,MAAM,IAAA,CAAK,mBAAmB,CAAA,EAAG;AACnC,QAAA;AACF,MAAA;AAEA,MAAA,IAAA,CAAK,QAAA,GACH,OAAO,SAAA,KAAc,QAAA,GACjB,YACA,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,IAAK,SAAA,CAAU,MAAA,GAAS,CAAA,GAC/C,SAAA,CAAU,CAAC,CAAA,GACX,EAAA;AAON,MAAA,IAAI,IAAA,CAAK,UAAA,KAAe,IAAA,CAAK,UAAA,EAAY;AACvC,QAAA,IAAA,CAAK,aAAa,IAAA,CAAK,IAAA;AACvB,QAAA,IAAA,CAAK,cAAc,SAAA,CAAU,IAAA,EAAM,IAAI,KAAA,CAAM,MAAM,CAAC,CAAC,CAAA;AACvD,MAAA;IACF,CAAC,CAAA;AACH,EAAA;AAEA,EAAA,IAAI,OAAO,QAAA,EAAyC;AAClD,IAAA,IAAA,CAAK,mBAAA,CAAoB,MAAA,EAAQ,IAAA,CAAK,OAAO,CAAA;AAC7C,IAAA,IAAA,CAAK,OAAA,GAAU,QAAA;AACf,IAAA,IAAI,aAAa,IAAA,EAAM;AACrB,MAAA,IAAA,CAAK,gBAAA,CAAiB,QAAQ,QAAQ,CAAA;AACxC,IAAA;AACF,EAAA;AACA,EAAA,IAAI,MAAA,GAAwC;AAC1C,IAAA,OAAO,IAAA,CAAK,OAAA;AACd,EAAA;AAEA,EAAA,IAAI,UACF,QAAA,EACA;AACA,IAAA,IAAA,CAAK,mBAAA;AACH,MAAA,SAAA;MACA,IAAA,CAAK;AACP,KAAA;AACA,IAAA,IAAA,CAAK,UAAA,GAAa,QAAA;AAClB,IAAA,IAAI,aAAa,IAAA,EAAM;AACrB,MAAA,IAAA,CAAK,gBAAA,CAAiB,WAAW,QAAQ,CAAA;AAC3C,IAAA;AACF,EAAA;AACA,EAAA,IAAI,SAAA,GAAwE;AAC1E,IAAA,OAAO,IAAA,CAAK,UAAA;AACd,EAAA;AAEA,EAAA,IAAI,QAAQ,QAAA,EAAyC;AACnD,IAAA,IAAA,CAAK,mBAAA,CAAoB,OAAA,EAAS,IAAA,CAAK,QAAQ,CAAA;AAC/C,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAI,aAAa,IAAA,EAAM;AACrB,MAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,QAAQ,CAAA;AACzC,IAAA;AACF,EAAA;AACA,EAAA,IAAI,OAAA,GAAyC;AAC3C,IAAA,OAAO,IAAA,CAAK,QAAA;AACd,EAAA;AAEA,EAAA,IAAI,QAAQ,QAAA,EAAqD;AAC/D,IAAA,IAAA,CAAK,mBAAA,CAAoB,OAAA,EAAS,IAAA,CAAK,QAAkC,CAAA;AACzE,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAI,aAAa,IAAA,EAAM;AACrB,MAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,QAAQ,CAAA;AACzC,IAAA;AACF,EAAA;AACA,EAAA,IAAI,OAAA,GAAqD;AACvD,IAAA,OAAO,IAAA,CAAK,QAAA;AACd,EAAA;;;;AAKO,EAAA,IAAA,CAAK,IAAA,EAA2B;AACrC,IAAA,IAAI,IAAA,CAAK,UAAA,KAAe,IAAA,CAAK,UAAA,EAAY;AACvC,MAAA,IAAA,CAAK,KAAA,EAAA;AACL,MAAA,MAAM,IAAI,aAAa,mBAAmB,CAAA;AAC5C,IAAA;AAIA,IAAA,IAAI,KAAK,UAAA,KAAe,IAAA,CAAK,WAAW,IAAA,CAAK,UAAA,KAAe,KAAK,MAAA,EAAQ;AACvE,MAAA;AACF,IAAA;AAIA,IAAA,IAAA,CAAK,cAAA,IAAkB,YAAY,IAAI,CAAA;AAEvC,IAAA,cAAA,CAAe,MAAM;AAnJzB,MAAA,IAAAvC,GAAAA;AAsJM,MAAA,IAAA,CAAK,cAAA,GAAiB,CAAA;AAOtB,MAAA,CAAAA,GAAAA,GAAA,KAAK,OAAA,CAAA,KAAL,OAAA,MAAA,GAAAA,GAAAA,CAAA,IAAA,CAAA,IAAA,EAAgB,IAAA,CAAA;IAClB,CAAC,CAAA;AACH,EAAA;EAEO,KAAA,CAAM,IAAA,GAAe,KAAM,MAAA,EAAuB;AACvD,IAAA,SAAA,CAAU,MAAM,gCAAgC,CAAA;AAChD,IAAA,SAAA;MACE,IAAA,KAAS,GAAA,IAAS,IAAA,IAAQ,GAAA,IAAQ,IAAA,IAAQ,IAAA;AAC1C,MAAA;AACF,KAAA;AAEA,IAAA,IAAA,CAAK,MAAM,CAAA,CAAE,IAAA,EAAM,MAAM,CAAA;AAC3B,EAAA;AAEA,EAAA,CAAS,MAAA,CAAA,CACP,IAAA,GAAe,GAAA,EACf,MAAA,EACA,WAAW,IAAA,EACL;AAMN,IAAA,IAAI,KAAK,UAAA,KAAe,IAAA,CAAK,WAAW,IAAA,CAAK,UAAA,KAAe,KAAK,MAAA,EAAQ;AACvE,MAAA;AACF,IAAA;AAEA,IAAA,IAAA,CAAK,aAAa,IAAA,CAAK,OAAA;AAEvB,IAAA,cAAA,CAAe,MAAM;AACnB,MAAA,IAAA,CAAK,aAAa,IAAA,CAAK,MAAA;AAEvB,MAAA,IAAA,CAAK,aAAA;AACH,QAAA,SAAA;AACE,UAAA,IAAA;AACA,UAAA,IAAI,WAAW,OAAA,EAAS;AACtB,YAAA,IAAA;AACA,YAAA,MAAA;AACA,YAAA;AACD,WAAA;AACH;AACF,OAAA;AAGA,MAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,MAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;IAClB,CAAC,CAAA;AACH,EAAA;EAYO,gBAAA,CACL,IAAA,EACA,UACA,OAAA,EACM;AACN,IAAA,OAAO,KAAA,CAAM,gBAAA;AACX,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA;AACF,KAAA;AACF,EAAA;EAEA,mBAAA,CACE,IAAA,EACA,UACA,OAAA,EACM;AACN,IAAA,OAAO,KAAA,CAAM,mBAAA,CAAoB,IAAA,EAAM,QAAA,EAAU,OAAO,CAAA;AAC1D,EAAA;AACF,CAAA;AA7Na,iBAAA,CACK,UAAA,GAAa,CAAA;AADlB,iBAAA,CAEK,IAAA,GAAO,CAAA;AAFZ,iBAAA,CAGK,OAAA,GAAU,CAAA;AAHf,iBAAA,CAIK,MAAA,GAAS,CAAA;AA2N3B,SAAS,YAAY,IAAA,EAA6B;AAChD,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAA;AACd,EAAA;AAEA,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,IAAA,OAAO,IAAA,CAAK,IAAA;AACd,EAAA;AAEA,EAAA,OAAO,IAAA,CAAK,UAAA;AACd;AC3OA,IAAMuC,UAAAA,0BAAkB,UAAU,CAAA;AAClC,IAAMC,eAAAA,0BAAwB,gBAAgB,CAAA;AAC9C,IAAM,KAAA,0BAAe,OAAO,CAAA;AAcrB,IAAM,4BAAN,MAAgC;EASrC,WAAA,CACmB,MAAA,EACA,WACA,gBAAA,EACjB;AAHiB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,gBAAA,GAAA,gBAAA;AAEjB,IAAA,IAAA,CAAKD,UAAQ,CAAA,GAAI,IAAI,WAAA,EAAA;AACrB,IAAA,IAAA,CAAK,mBAAA,GAAsB,IAAI,eAAA,EAAA;AAC/B,IAAA,IAAA,CAAK,mBAAA,GAAsB,IAAI,eAAA,EAAA;AAM/B,IAAA,IAAA,CAAK,SAAA,CAAU,gBAAA,CAAiB,UAAA,EAAY,CAAC,KAAA,KAAU;AAGrD,MAAA,IAAI,OAAO,IAAA,CAAK,aAAA,KAAkB,WAAA,EAAa;AAC7C,QAAA;AACF,MAAA;AAMA,MAAA,cAAA,CAAe,MAAM;AACnB,QAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAM3B,UAAA,IAAA,CAAK,KAAK,CAAA,CAAE,KAAA,CAAM,IAAI,CAAA;AACxB,QAAA;MACF,CAAC,CAAA;IACH,CAAC,CAAA;AAED,IAAA,IAAA,CAAK,SAAA,CAAU,gBAAA;AACb,MAAA,UAAA;MACA,IAAA,CAAK,qBAAA,CAAsB,KAAK,IAAI;AACtC,KAAA;AACF,EAAA;;;;;AAMA,EAAA,IAAW,MAAA,GAAoB;AAC7BE,IAAAA,SAAAA;MACE,IAAA,CAAK,aAAA;AACL,MAAA;AACF,KAAA;AAEA,IAAA,OAAO,IAAA,CAAK,aAAA;AACd,EAAA;;;;EAKO,OAAA,GAAgB;AACrBA,IAAAA,SAAAA;AACE,MAAA,CAAC,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,aAAA,CAAc,eAAe,SAAA,CAAU,IAAA;AACnE,MAAA;AACF,KAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,KAAK,gBAAA,EAAA;AAG3B,IAAA,aAAA,CAAc,UAAA,GAAa,KAAK,MAAA,CAAO,UAAA;AAKvC,IAAA,aAAA,CAAc,gBAAA;AACZ,MAAA,MAAA;AACA,MAAA,CAAC,KAAA,KAAU;AACT,QAAA,IAAA,CAAKF,UAAQ,CAAA,CAAE,aAAA;AACb,UAAA,SAAA,CAAU,KAAK,aAAA,EAAgB,IAAI,KAAA,CAAM,MAAA,EAAQ,KAAK,CAAC;AACzD,SAAA;AACF,MAAA,CAAA;AACA,MAAA,EAAE,MAAM,IAAA;AACV,KAAA;AAEA,IAAA,aAAA,CAAc,gBAAA,CAAiB,SAAA,EAAW,CAAC,KAAA,KAAU;AAKnD,MAAA,IAAA,CAAK,SAAA,CAAU,aAAA;AACb,QAAA,SAAA;UACE,IAAA,CAAK,aAAA;AACL,UAAA,IAAI,aAAa,UAAA,EAAY;AAC3B,YAAA,IAAA,EAAM,KAAA,CAAM,IAAA;AACZ,YAAA,MAAA,EAAQ,KAAA,CAAM;AACf,WAAA;AACH;AACF,OAAA;IACF,CAAC,CAAA;AAID,IAAA,IAAA,CAAK,MAAA,CAAO,gBAAA;AACV,MAAA,OAAA;AACA,MAAA,CAAC,KAAA,KAAU;AACT,QAAA,IAAA,CAAK,gBAAgB,KAAK,CAAA;AAC5B,MAAA,CAAA;AACA,MAAA;AACE,QAAA,MAAA,EAAQ,KAAK,mBAAA,CAAoB;AACnC;AACF,KAAA;AAIA,IAAA,aAAA,CAAc,gBAAA;AACZ,MAAA,OAAA;AACA,MAAA,CAAC,KAAA,KAAU;AACT,QAAA,IAAA,CAAK,gBAAgB,KAAK,CAAA;AAC5B,MAAA,CAAA;AACA,MAAA;AACE,QAAA,MAAA,EAAQ,KAAK,mBAAA,CAAoB;AACnC;AACF,KAAA;AAEA,IAAA,aAAA,CAAc,gBAAA,CAAiB,SAAS,MAAM;AAC5C,MAAA,MAAM,UAAA,GAAa,SAAA;AACjB,QAAA,aAAA;AACA,QAAA,IAAI,KAAA,CAAM,OAAA,EAAS,EAAE,UAAA,EAAY,MAAM;AACzC,OAAA;AAIA,MAAA,IAAA,CAAKA,UAAQ,CAAA,CAAE,aAAA,CAAc,UAAU,CAAA;AAIvC,MAAA,IAAI,CAAC,WAAW,gBAAA,EAAkB;AAChC,QAAA,IAAA,CAAK,MAAA,CAAO,cAAc,SAAA,CAAU,IAAA,CAAK,QAAQ,IAAI,KAAA,CAAM,OAAO,CAAC,CAAC,CAAA;AACtE,MAAA;IACF,CAAC,CAAA;AAED,IAAA,IAAA,CAAK,aAAA,GAAgB,aAAA;AACvB,EAAA;;;;EAKO,gBAAA,CACL,KAAA,EACA,UACA,OAAA,EACM;AACN,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,QAAA,EAAUC,eAAc,CAAA,EAAG;AAC1C,MAAA,MAAM,aAAA,GAAgB,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAI/C,MAAA,MAAA,CAAO,cAAA,CAAe,UAAUA,eAAAA,EAAgB;QAC9C,KAAA,EAAO,aAAA;QACP,UAAA,EAAY;AACb,OAAA,CAAA;AACH,IAAA;AAEA,IAAA,IAAA,CAAKD,UAAQ,CAAA,CAAE,gBAAA;AACb,MAAA,KAAA;MACA,OAAA,CAAQ,GAAA,CAAI,UAAUC,eAAc,CAAA;AACpC,MAAA;AACF,KAAA;AACF,EAAA;;;;EAKO,mBAAA,CACL,KAAA,EACA,UACA,OAAA,EACM;AACN,IAAA,IAAA,CAAKD,UAAQ,CAAA,CAAE,mBAAA;AACb,MAAA,KAAA;MACA,OAAA,CAAQ,GAAA,CAAI,UAAUC,eAAc,CAAA;AACpC,MAAA;AACF,KAAA;AACF,EAAA;;;;;;;;AASO,EAAA,IAAA,CAAK,IAAA,EAA2B;AACrC,IAAA,IAAA,CAAK,KAAK,EAAE,IAAI,CAAA;AAClB,EAAA;EAEA,CAAS,KAAA,EAAO,IAAA,EAA2B;AACzC,IAAA,MAAM,EAAE,eAAA,GAAkB,IAAA;AAE1BC,IAAAA,SAAAA;AACE,MAAA,aAAA;AACA,MAAA,iHAAA;AACA,MAAA,IAAA,CAAK,MAAA,CAAO;AACd,KAAA;AAGA,IAAA,IACE,cAAc,UAAA,KAAe,SAAA,CAAU,WACvC,aAAA,CAAc,UAAA,KAAe,UAAU,MAAA,EACvC;AACA,MAAA;AACF,IAAA;AAKA,IAAA,IAAI,aAAA,CAAc,UAAA,KAAe,SAAA,CAAU,UAAA,EAAY;AACrD,MAAA,aAAA,CAAc,gBAAA;AACZ,QAAA,MAAA;QACA,MAAM;AACJ,UAAA,aAAA,CAAc,KAAK,IAAI,CAAA;AACzB,QAAA,CAAA;AACA,QAAA,EAAE,MAAM,IAAA;AACV,OAAA;AACA,MAAA;AACF,IAAA;AAGA,IAAA,aAAA,CAAc,KAAK,IAAI,CAAA;AACzB,EAAA;;;;EAKO,KAAA,GAAc;AACnB,IAAA,MAAM,EAAE,eAAA,GAAkB,IAAA;AAE1BA,IAAAA,SAAAA;AACE,MAAA,aAAA;AACA,MAAA,oHAAA;AACA,MAAA,IAAA,CAAK,MAAA,CAAO;AACd,KAAA;AAMA,IAAA,IAAA,CAAK,oBAAoB,KAAA,EAAA;AAEzB,IAAA,IACE,cAAc,UAAA,KAAe,SAAA,CAAU,WACvC,aAAA,CAAc,UAAA,KAAe,UAAU,MAAA,EACvC;AACA,MAAA;AACF,IAAA;AAGA,IAAA,aAAA,CAAc,KAAA,EAAA;AAGd,IAAA,cAAA,CAAe,MAAM;AACnB,MAAA,IAAA,CAAKF,UAAQ,CAAA,CAAE,aAAA;AACb,QAAA,SAAA;UACE,IAAA,CAAK,aAAA;AACL,UAAA,IAAI,qBAAqB,OAAA,EAAS;;;;;YAKhC,IAAA,EAAM,GAAA;YACN,UAAA,EAAY;AACb,WAAA;AACH;AACF,OAAA;IACF,CAAC,CAAA;AACH,EAAA;AAEQ,EAAA,qBAAA,CAAsB,KAAA,EAA0C;AAKtE,IAAA,MAAM,YAAA,GAAe,SAAA;MACnB,KAAA,CAAM,MAAA;AACN,MAAA,IAAI,uBAAuB,SAAA,EAAW;AACpC,QAAA,IAAA,EAAM,KAAA,CAAM,IAAA;AACZ,QAAA,MAAA,EAAQ,KAAA,CAAM,MAAA;QACd,UAAA,EAAY;AACb,OAAA;AACH,KAAA;AASA,IAAA,IAAA,CAAKA,UAAQ,CAAA,CAAE,aAAA,CAAc,YAAY,CAAA;AAMzC,IAAA,IAAI,CAAC,aAAa,gBAAA,EAAkB;AAClC,MAAA,IAAA,CAAK,MAAA,CAAO,aAAA;AACV,QAAA,SAAA;;;;;;UAME,IAAA,CAAK,MAAA;;;AAGL,UAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,YAAA,IAAA,EAAM,KAAA,CAAM,IAAA;AACZ,YAAA,MAAA,EAAQ,KAAA,CAAM;AACf,WAAA;AACH;AACF,OAAA;AACF,IAAA;AACF,EAAA;AAEQ,EAAA,eAAA,CAAgB,MAAA,EAAqB;AAE3C,IAAA,IAAI,KAAK,aAAA,EAAe;AACtB,MAAA,IAAA,CAAK,cAAc,KAAA,EAAA;AACrB,IAAA;AACF,EAAA;AAEQ,EAAA,eAAA,CAAgB,KAAA,EAAyB;AAI/C,IAAA,IAAA,CAAK,oBAAoB,KAAA,EAAA;AAEzB,IAAA,MAAM,UAAA,GAAa,SAAA;MACjB,IAAA,CAAK,aAAA;AACL,MAAA,IAAI,qBAAqB,OAAA,EAAS;AAChC,QAAA,IAAA,EAAM,KAAA,CAAM,IAAA;AACZ,QAAA,MAAA,EAAQ,KAAA,CAAM,MAAA;AACd,QAAA,QAAA,EAAU,KAAA,CAAM,QAAA;QAChB,UAAA,EAAY;AACb,OAAA;AACH,KAAA;AAEA,IAAA,IAAA,CAAKA,UAAQ,CAAA,CAAE,aAAA,CAAc,UAAU,CAAA;AAIvC,IAAA,IAAI,CAAC,WAAW,gBAAA,EAAkB;AAKhC,MAAA,IAAA,CAAK,OAAO,MAAM,CAAA,CAAE,KAAA,CAAM,IAAA,EAAM,MAAM,MAAM,CAAA;AAC9C,IAAA;AACF,EAAA;AACF,CAAA;AC/XO,IAAM,uBAAA,GAAN,cACG,WAAA,CAEV;AACE,EAAA,WAAA,CAA+B,MAAA,EAA2B;AACxD,IAAA,KAAA,EAAA;AAD6B,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAM7B,IAAA,IAAA,CAAK,MAAA,CAAO,gBAAA,CAAiB,OAAA,EAAS,CAAC,KAAA,KAAU;AAC/C,MAAA,IAAA,CAAK,aAAA,CAAc,UAAU,IAAA,CAAK,MAAA,EAAQ,IAAI,UAAA,CAAW,OAAA,EAAS,KAAK,CAAC,CAAC,CAAA;IAC3E,CAAC,CAAA;AAMD,IAAA,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,GAAI,CAAC,IAAA,KAAS;AAC/B,MAAA,IAAA,CAAK,aAAA;AACH,QAAA,SAAA;UACE,IAAA,CAAK,MAAA;;;AAGL,UAAA,IAAI,uBAAuB,UAAA,EAAY;AACrC,YAAA,IAAA;AACA,YAAA,MAAA,EAAQ,KAAK,MAAA,CAAO,GAAA;YACpB,UAAA,EAAY;AACb,WAAA;AACH;AACF,OAAA;AACF,IAAA,CAAA;AACF,EAAA;EAEO,gBAAA,CACL,IAAA,EACA,UAGA,OAAA,EACM;AACN,IAAA,OAAO,KAAA,CAAM,gBAAA,CAAiB,IAAA,EAAM,QAAA,EAA2B,OAAO,CAAA;AACxE,EAAA;AAEO,EAAA,aAAA,CACL,KAAA,EACS;AACT,IAAA,OAAO,KAAA,CAAM,cAAc,KAAK,CAAA;AAClC,EAAA;AAEO,EAAA,IAAA,CAAK,IAAA,EAA2B;AACrC,IAAA,cAAA,CAAe,MAAM;AACnB,MAAA,IACE,IAAA,CAAK,MAAA,CAAO,UAAA,KAAe,IAAA,CAAK,MAAA,CAAO,OAAA,IACvC,IAAA,CAAK,MAAA,CAAO,UAAA,KAAe,IAAA,CAAK,MAAA,CAAO,MAAA,EACvC;AACA,QAAA;AACF,MAAA;AAEA,MAAA,MAAM,gBAAgB,MAAM;AAC1B,QAAA,IAAA,CAAK,MAAA,CAAO,aAAA;AACV,UAAA,SAAA;;;;;;;;;YASE,IAAA,CAAK,MAAA;AACL,YAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,cAAA,IAAA;AACA,cAAA,MAAA,EAAQ,KAAK,MAAA,CAAO;AACrB,aAAA;AACH;AACF,SAAA;AACF,MAAA,CAAA;AAEA,MAAA,IAAI,IAAA,CAAK,MAAA,CAAO,UAAA,KAAe,IAAA,CAAK,OAAO,UAAA,EAAY;AACrD,QAAA,IAAA,CAAK,MAAA,CAAO,gBAAA;AACV,UAAA,MAAA;UACA,MAAM;AACJ,YAAA,aAAA,EAAA;AACF,UAAA,CAAA;AACA,UAAA,EAAE,MAAM,IAAA;AACV,SAAA;MACF,CAAA,MAAO;AACL,QAAA,aAAA,EAAA;AACF,MAAA;IACF,CAAC,CAAA;AACH,EAAA;AAEO,EAAA,KAAA,CAAM,MAAc,MAAA,EAAuB;AAMhD,IAAA,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,CAAE,IAAA,EAAM,MAAM,CAAA;AAClC,EAAA;AACF,CAAA;AC/DO,IAAM,qBAAA,GAAN,cAAmCH,YAAAA,CAA+B;EAGvE,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,sBAAqB,MAAM,CAAA;AACnC,EAAA;EAEU,gBAAA,GAA4B;AACpC,IAAA,OAAOJ,uBAAsB,WAAW,CAAA;AAC1C,EAAA;EAEU,KAAA,GAAc;AACtB,IAAA,MAAM,8BAA8B,MAAA,CAAO,wBAAA;AACzC,MAAA,UAAA;AACA,MAAA;AACF,KAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,IAAI,KAAA,CAAM,UAAA,CAAW,SAAA,EAAW;MACrD,SAAA,EAAW,CACT,MAAA,EACA,IAAA,EACA,SAAA,KACG;AACH,QAAA,MAAM,CAAC,GAAA,EAAK,SAAS,CAAA,GAAI,IAAA;AAEzB,QAAA,MAAM,mBAAmB,MAAiB;AACxC,UAAA,OAAO,OAAA,CAAQ,SAAA,CAAU,MAAA,EAAQ,IAAA,EAAM,SAAS,CAAA;AAClD,QAAA,CAAA;AAKA,QAAA,MAAM,MAAA,GAAS,IAAI,iBAAA,CAAkB,GAAA,EAAK,SAAS,CAAA;AACnD,QAAA,MAAM,SAAA,GAAY,IAAI,uBAAA,CAAwB,MAAM,CAAA;AAKpD,QAAA,cAAA,CAAe,MAAM;AACnB,UAAA,IAAI;AACF,YAAA,MAAM,SAAS,IAAI,yBAAA;AACjB,cAAA,MAAA;AACA,cAAA,SAAA;AACA,cAAA;AACF,aAAA;AAKA,YAAA,MAAM,sBAAA,GAAyB,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,YAAA,EAAc;cAC7D,MAAA,EAAQ,IAAI,yBAAA,CAA0B,MAAA,EAAQ,SAAS,CAAA;AACvD,cAAA,MAAA;cACA,IAAA,EAAM;AACJ,gBAAA;AACF;AACD,aAAA,CAAA;AAED,YAAA,IAAI,sBAAA,EAAwB;AAC1B,cAAA,MAAA,CAAO,mBAAmB,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;YAC3C,CAAA,MAAO;AACL,cAAA,MAAA,CAAO,mBAAmB,CAAA,CAAE,OAAA,CAAQ,IAAI,CAAA;AAExC,cAAA,MAAA,CAAO,OAAA,EAAA;AAIP,cAAA,MAAA,CAAO,gBAAA,CAAiB,QAAQ,MAAM;AACpC,gBAAA,MAAA,CAAO,cAAc,SAAA,CAAU,MAAA,EAAQ,IAAI,KAAA,CAAM,MAAM,CAAC,CAAC,CAAA;AAIzD,gBAAA,IAAI,MAAA,CAAO,eAAe,CAAA,EAAG;AAC3B,kBAAA,MAAA,CAAO,QAAA,GAAW,MAAA,CAAO,eAAe,CAAA,CAAE,QAAA;AAC5C,gBAAA;cACF,CAAC,CAAA;AACH,YAAA;AACF,UAAA,CAAA,CAAA,OAASnC,MAAAA,EAAP;AAOA,YAAA,IAAIA,kBAAiB,KAAA,EAAO;AAC1B,cAAA,MAAA,CAAO,aAAA,CAAc,IAAI,KAAA,CAAM,OAAO,CAAC,CAAA;AAIvC,cAAA,IACE,OAAO,UAAA,KAAe,SAAA,CAAU,WAChC,MAAA,CAAO,UAAA,KAAe,UAAU,MAAA,EAChC;AACA,gBAAA,MAAA,CAAO,MAAM,CAAA,CAAE,IAAA,EAAMA,MAAAA,CAAM,SAAS,KAAK,CAAA;AAC3C,cAAA;AAEA,cAAA,OAAA,CAAQ,MAAMA,MAAK,CAAA;AACrB,YAAA;AACF,UAAA;QACF,CAAC,CAAA;AAED,QAAA,OAAO,MAAA;AACT,MAAA;AACD,KAAA,CAAA;AAED,IAAA,MAAA,CAAO,cAAA,CAAe,YAAY,WAAA,EAAa;MAC7C,KAAA,EAAO,cAAA;MACP,YAAA,EAAc;AACf,KAAA,CAAA;AAED,IAAA,IAAA,CAAK,aAAA,CAAc,KAAK,MAAM;AAC5B,MAAA,MAAA,CAAO,cAAA;AACL,QAAA,UAAA;AACA,QAAA,WAAA;AACA,QAAA;AACF,OAAA;IACF,CAAC,CAAA;AACH,EAAA;AACF,CAAA;AArHO,IAAM,oBAAA,GAAN,qBAAA;AAAM,oBAAA,CACJ,MAAA,0BAAgB,WAAW,CAAA;ACnDA,IAAI,oBAAA,EAAA;ACQ1B,IAAI6C,6BAAA,EAAA;ACVX,SAAS,cAAA,GAAwB;AACtC,EAAA,MAAM,IAAI,MAAM,iBAAiB,CAAA;AACnC;ACCO,IAAM,sBAAN,MAAqD;EAY1D,WAAA,CAAY;IACV,QAAA,GAAW,eAAA;IACX,OAAA,GAAU,eAAA;IACV,WAAA,GAAc,MAAA;IACd,UAAA,GAAa,cAAA;IACb,QAAA,GAAW,cAAA;IACX,2BAAA,GAA8B,MAAA;IAC9B,yBAAA,GAA4B;AAC9B,GAAA,GAQI,EAAA,EAAI;AA3BR,IAAA,IAAA,CAAS,oBAAA,GAAuB,IAAA;AA4B9B,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AAEnB,IAAA,IAAA,CAAK,2BAAA,GAA8B,2BAAA;AACnC,IAAA,IAAA,CAAK,yBAAA,GAA4B,yBAAA;AACnC,EAAA;AACF,CAAA;;;ACzCO,SAAS,6BACd,MAAA,EACmB;AACnB,EAAA,OAAO,IAAI,cAAA,CAAe;AACxB,IAAA,KAAA,CAAM,UAAA,EAAY;AAChB,MAAA,IAAI;AACF,QAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,UAAA,UAAA,CAAW,QAAQ,KAAK,CAAA;AAC1B,QAAA;MACF,CAAA,SAAA;AACE,QAAA,UAAA,CAAW,KAAA,EAAA;AACb,MAAA;AACF,IAAA;AACD,GAAA,CAAA;AACH;ACdO,SAASC,eAAAA,GAAwB;AACtC,EAAA,MAAM,IAAI,MAAM,iBAAiB,CAAA;AACnC;ACCO,IAAM,sBAAN,MAAqD;EAc1D,WAAA,CAAY;IACV,QAAA,GAAW,eAAA;IACX,OAAA,GAAU,eAAA;AACV,IAAA,aAAA,GAAgB,EAAA;IAChB,UAAA,GAAaA,eAAAA;IACb,QAAA,GAAWA;AACb,GAAA,GAcI,EAAA,EAAI;AAjCR,IAAA,IAAA,CAAS,oBAAA,GAAuB,IAAA;AAUhC,IAAA,IAAA,CAAA,kBAAkE,EAAA;AAClE,IAAA,IAAA,CAAA,gBAA8D,EAAA;AAuB5D,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,UAAA,GAAa,OAAM,OAAA,KAAW;AACjC,MAAA,IAAA,CAAK,eAAA,CAAgB,KAAK,OAAO,CAAA;AAEjC,MAAA,IAAI,OAAO,eAAe,UAAA,EAAY;AACpC,QAAA,OAAO,WAAW,OAAO,CAAA;MAC3B,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,EAAG;AACpC,QAAA,OAAO,UAAA,CAAW,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;MAC/C,CAAA,MAAO;AACL,QAAA,OAAO,UAAA;AACT,MAAA;AACF,IAAA,CAAA;AACA,IAAA,IAAA,CAAK,QAAA,GAAW,OAAM,OAAA,KAAW;AAC/B,MAAA,IAAA,CAAK,aAAA,CAAc,KAAK,OAAO,CAAA;AAE/B,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,QAAA,OAAO,SAAS,OAAO,CAAA;MACzB,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAClC,QAAA,OAAO,QAAA,CAAS,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;MAC3C,CAAA,MAAO;AACL,QAAA,OAAO,QAAA;AACT,MAAA;AACF,IAAA,CAAA;AACA,IAAA,IAAA,CAAK,cAAA,GACH,OAAO,aAAA,KAAkB,UAAA,GACrB,gBACA,YAAY,aAAA;AACpB,EAAA;AAEA,EAAA,IAAI,aAAA,GAAgB;AAClB,IAAA,OAAO,KAAK,cAAA,EAAA;AACd,EAAA;AACF,CAAA;;;AClEO,IAAM,4BAAN,MAAiE;AAAA,EAC7D,oBAAA,GAAuB,IAAA;AAAA,EACvB,QAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACT,MAAA;AAAA,EAEA,YAAY,MAAA,EAYT;AACD,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,mBAAA,CAAoB,MAAM,CAAA;AAC5C,IAAA,IAAA,CAAK,QAAA,GAAW,KAAK,MAAA,CAAO,QAAA;AAC5B,IAAA,IAAA,CAAK,OAAA,GAAU,KAAK,MAAA,CAAO,OAAA;AAC3B,IAAA,IAAA,CAAK,aAAA,GAAgB,KAAK,MAAA,CAAO,aAAA;AAAA,EACnC;AAAA,EAEA,WAAW,OAAA,EAAqC;AAC9C,IAAA,MAAM,UAAA,GAAa,IAAIC,sCAAA,CAAqB,IAAA,CAAK,MAAM,CAAA;AACvD,IAAA,OAAO,UAAA,CAAW,WAAW,OAAO,CAAA;AAAA,EACtC;AAAA,EAEA,SAAS,OAAA,EAAqC;AAC5C,IAAA,MAAM,UAAA,GAAa,IAAIA,sCAAA,CAAqB,IAAA,CAAK,MAAM,CAAA;AACvD,IAAA,OAAO,UAAA,CAAW,SAAS,OAAO,CAAA;AAAA,EACpC;AAAA,EAEA,IAAI,eAAA,GAAgD;AAClD,IAAA,OAAO,KAAK,MAAA,CAAO,eAAA;AAAA,EACrB;AAAA,EACA,IAAI,aAAA,GAA8C;AAChD,IAAA,OAAO,KAAK,MAAA,CAAO,aAAA;AAAA,EACrB;AACF;;;ACpCO,SAAS,eAAA,CAAgB;AAAA,EAC9B,oBAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA,GAAU;AACZ,CAAA,EAMG;AACD,EAAA,MAAM,OAAO,OAAO,QAAA,KAAa,WAAW,QAAA,GAAW,IAAA,CAAK,UAAU,QAAQ,CAAA;AAC9E,EAAA,MAAM,YAAY,oBAAA,KAAyB,MAAA,GAAS,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAA,GAAI,IAAA;AAE/E,EAAA,IAAI,YAAY,IAAA,EAAM;AAEpB,IAAA,MAAMC,UAAAA,GAAY,IAAI,mBAAA,CAAoB;AAAA,MACxC,2BAAA,EAA6B,oBAAA;AAAA,MAC7B,UAAA,EAAY,OAAM,KAAA,KAAS;AACzB,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,WAAA,CAAY,KAAK,CAAA;AAAA,QACnB;AAEA,QAAA,OAAO;AAAA,UACL,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC,EAAE;AAAA,UAC5C,YAAA,EAAc,MAAA;AAAA,UACd,KAAA,EAAO,EAAE,YAAA,EAAc,EAAA,EAAI,kBAAkB,EAAA,EAAG;AAAA,UAChD,IAAA,EAAM;AAAA,SACR;AAAA,MACF,CAAA;AAAA,MACA,QAAA,EAAU,OAAM,KAAA,KAAS;AACvB,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,SAAA,CAAU,KAAK,CAAA;AAAA,QACjB;AAGA,QAAA,MAAM,SAAS,SAAA,CAAU,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,CAAA,IAAA,MAAS;AAAA,UAC/C,IAAA,EAAM,YAAA;AAAA,UACN,WAAW,IAAA,GAAO;AAAA,SACpB,CAAE,CAAA;AAEF,QAAA,OAAO;AAAA,UACL,QAAQC,wCAAA,CAAuB;AAAA,YAC7B,MAAA,EAAQ;AAAA,cACN,GAAG,MAAA;AAAA,cACH;AAAA,gBACE,IAAA,EAAM,QAAA;AAAA,gBACN,YAAA,EAAc,MAAA;AAAA,gBACd,QAAA,EAAU,MAAA;AAAA,gBACV,KAAA,EAAO,EAAE,gBAAA,EAAkB,EAAA,EAAI,cAAc,CAAA;AAAE;AACjD;AACF,WACD,CAAA;AAAA,UACD,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC;AAAE,SAC9C;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,OAAOD,UAAAA;AAAA,EACT;AAGA,EAAA,MAAM,SAAA,GAAY,IAAI,mBAAA,CAAoB;AAAA,IACxC,UAAA,EAAY,OAAM,KAAA,KAAS;AACzB,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB;AAEA,MAAA,OAAO;AAAA,QACL,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC,EAAE;AAAA,QAC5C,YAAA,EAAc,MAAA;AAAA,QACd,OAAO,EAAE,WAAA,EAAa,IAAI,YAAA,EAAc,EAAA,EAAI,aAAa,EAAA,EAAG;AAAA,QAC5D,OAAA,EAAS;AAAA,UACP;AAAA,YACE,IAAA,EAAM,MAAA;AAAA,YACN,IAAA,EAAM;AAAA;AACR,SACF;AAAA,QACA,UAAU;AAAC,OACb;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU,OAAM,KAAA,KAAS;AACvB,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB;AAEA,MAAA,OAAO;AAAA,QACL,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC,EAAE;AAAA,QAC5C,UAAU,EAAC;AAAA,QACX,QAAQ,4BAAA,CAA6B;AAAA,UACnC,EAAE,IAAA,EAAM,cAAA,EAAgB,QAAA,EAAU,EAAC,EAAE;AAAA,UACrC,EAAE,IAAA,EAAM,mBAAA,EAAqB,EAAA,EAAI,MAAA,EAAQ,OAAA,EAAS,eAAA,EAAiB,SAAA,kBAAW,IAAI,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,UAC1F,EAAE,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,QAAA,EAAS;AAAA,UACnC,EAAE,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,QAAA,EAAU,OAAO,SAAA,EAAU;AAAA,UACrD,EAAE,IAAA,EAAM,UAAA,EAAY,EAAA,EAAI,QAAA,EAAS;AAAA,UACjC;AAAA,YACE,IAAA,EAAM,QAAA;AAAA,YACN,YAAA,EAAc,MAAA;AAAA,YACd,OAAO,EAAE,WAAA,EAAa,IAAI,YAAA,EAAc,EAAA,EAAI,aAAa,EAAA;AAAG;AAC9D,SACD;AAAA,OACH;AAAA,IACF;AAAA,GACD,CAAA;AAED,EAAA,OAAO,SAAA;AACT;AAEO,IAAM,YAAA,GAAN,cAA2BE,6BAAA,CAAY;AAAA,EAC5C,WAAA,CAAY;AAAA,IACV,WAAA;AAAA,IACA,SAAA;AAAA,IACA,oBAAA;AAAA,IACA,QAAA,GAAW;AAAA,GACb,EAKG;AACD,IAAA,MAAM,SAAA,GAAY,IAAI,mBAAA,CAAoB;AAAA,MACxC,2BAAA,EAA6B,oBAAA;AAAA,MAC7B,UAAA,EAAY,OAAM,KAAA,KAAS;AACzB,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,WAAA,CAAY,KAAK,CAAA;AAAA,QACnB;AAEA,QAAA,IAAI,yBAAyB,MAAA,EAAQ;AACnC,UAAA,OAAO;AAAA,YACL,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC,EAAE;AAAA,YAC5C,YAAA,EAAc,MAAA;AAAA,YACd,KAAA,EAAO,EAAE,YAAA,EAAc,EAAA,EAAI,kBAAkB,EAAA,EAAG;AAAA,YAChD,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,QAAQ;AAAA,WAC/B;AAAA,QACF;AAEA,QAAA,OAAO;AAAA,UACL,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC,EAAE;AAAA,UAC5C,YAAA,EAAc,MAAA;AAAA,UACd,KAAA,EAAO,EAAE,YAAA,EAAc,EAAA,EAAI,kBAAkB,EAAA,EAAG;AAAA,UAChD,MAAM,OAAO,QAAA,KAAa,WAAW,QAAA,GAAW,IAAA,CAAK,UAAU,QAAQ;AAAA,SACzE;AAAA,MACF,CAAA;AAAA,MACA,QAAA,EAAU,OAAM,KAAA,KAAS;AACvB,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,SAAA,CAAU,KAAK,CAAA;AAAA,QACjB;AAEA,QAAA,MAAM,OAAO,OAAO,QAAA,KAAa,WAAW,QAAA,GAAW,IAAA,CAAK,UAAU,QAAQ,CAAA;AAE9E,QAAA,MAAM,SAAS,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,CAAA,IAAA,MAAS;AAAA,UAC1C,IAAA,EAAM,YAAA;AAAA,UACN,WAAW,IAAA,GAAO;AAAA,SACpB,CAAE,CAAA;AAEF,QAAA,OAAO;AAAA,UACL,QAAQD,wCAAA,CAAuB;AAAA,YAC7B,MAAA,EAAQ;AAAA,cACN,GAAG,MAAA;AAAA,cACH;AAAA,gBACE,IAAA,EAAM,QAAA;AAAA,gBACN,YAAA,EAAc,MAAA;AAAA,gBACd,QAAA,EAAU,MAAA;AAAA,gBACV,KAAA,EAAO,EAAE,gBAAA,EAAkB,EAAA,EAAI,cAAc,CAAA;AAAE;AACjD;AACF,WACD,CAAA;AAAA,UACD,SAAS,EAAE,SAAA,EAAW,IAAA,EAAM,WAAA,EAAa,EAAC;AAAE,SAC9C;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,KAAA,CAAM,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,EAC5B;AAAA;AAAA,EAGA,UAAU,IAAA,EAAqD;AAE7D,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,GAAG,IAAI,CAAA;AAEnC,IAAA,OAAO;AAAA,MACL,GAAG,MAAA;AAAA,MACH,IAAA,EAAM,CAAC,WAAA,EAAa,UAAA,KAAe;AAEjC,QAAA,OAAO,MAAA,CAAO,WAAW,MAAA,CAAO,IAAI,gBAAgB,CAAA,CAAE,IAAA,CAAK,WAAA,EAAa,UAAU,CAAA;AAAA,MACpF;AAAA,KACF;AAAA,EACF;AAAA;AAAA,EAGA,kBAAkB,IAAA,EAA4C;AAE5D,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,cAAA,CAAe,GAAG,IAAI,CAAA;AAE3C,IAAA,OAAO;AAAA,MACL,GAAG,MAAA;AAAA,MACH,IAAA,EAAM,CAAC,WAAA,EAAa,UAAA,KAAe;AAEjC,QAAA,OAAO,MAAA,CAAO,WAAW,MAAA,CAAO,IAAI,gBAAgB,CAAA,CAAE,IAAA,CAAK,WAAA,EAAa,UAAU,CAAA;AAAA,MACpF;AAAA,KACF;AAAA,EACF;AACF","file":"llm-mock.cjs","sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n  get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n  if (typeof require !== \"undefined\")\n    return require.apply(this, arguments);\n  throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __publicField = (obj, key, value) => {\n  __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n  return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n  if (!member.has(obj))\n    throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n  __accessCheck(obj, member, \"read from private field\");\n  return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n  if (member.has(obj))\n    throw TypeError(\"Cannot add the same private member more than once\");\n  member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n  __accessCheck(obj, member, \"write to private field\");\n  setter ? setter.call(obj, value) : member.set(obj, value);\n  return value;\n};\nvar __privateMethod = (obj, member, method) => {\n  __accessCheck(obj, member, \"access private method\");\n  return method;\n};\n\nexport {\n  __require,\n  __publicField,\n  __privateGet,\n  __privateAdd,\n  __privateSet,\n  __privateMethod\n};\n//# sourceMappingURL=chunk-D6YTI3O5.mjs.map","const POSITIONALS_EXP = /(%?)(%([sdijo]))/g\n\nfunction serializePositional(positional: any, flag: string): any {\n  switch (flag) {\n    // Strings.\n    case 's':\n      return positional\n\n    // Digits.\n    case 'd':\n    case 'i':\n      return Number(positional)\n\n    // JSON.\n    case 'j':\n      return JSON.stringify(positional)\n\n    // Objects.\n    case 'o': {\n      // Preserve stings to prevent extra quotes around them.\n      if (typeof positional === 'string') {\n        return positional\n      }\n\n      const json = JSON.stringify(positional)\n\n      // If the positional isn't serializable, return it as-is.\n      if (json === '{}' || json === '[]' || /^\\[object .+?\\]$/.test(json)) {\n        return positional\n      }\n\n      return json\n    }\n  }\n}\n\nexport function format(message: string, ...positionals: any[]): string {\n  if (positionals.length === 0) {\n    return message\n  }\n\n  let positionalIndex = 0\n  let formattedMessage = message.replace(\n    POSITIONALS_EXP,\n    (match, isEscaped, _, flag) => {\n      const positional = positionals[positionalIndex]\n      const value = serializePositional(positional, flag)\n\n      if (!isEscaped) {\n        positionalIndex++\n        return value\n      }\n\n      return match\n    }\n  )\n\n  // Append unresolved positionals to string as-is.\n  if (positionalIndex < positionals.length) {\n    formattedMessage += ` ${positionals.slice(positionalIndex).join(' ')}`\n  }\n\n  formattedMessage = formattedMessage.replace(/%{2,2}/g, '%')\n\n  return formattedMessage\n}\n","import { format } from './format'\n\nconst STACK_FRAMES_TO_IGNORE = 2\n\n/**\n * Remove the \"outvariant\" package trace from the given error.\n * This scopes down the error stack to the relevant parts\n * when used in other applications.\n */\nfunction cleanErrorStack(error: Error): void {\n  if (!error.stack) {\n    return\n  }\n\n  const nextStack = error.stack.split('\\n')\n  nextStack.splice(1, STACK_FRAMES_TO_IGNORE)\n  error.stack = nextStack.join('\\n')\n}\n\nexport class InvariantError extends Error {\n  name = 'Invariant Violation'\n\n  constructor(public readonly message: string, ...positionals: any[]) {\n    super(message)\n    this.message = format(message, ...positionals)\n    cleanErrorStack(this)\n  }\n}\n\nexport interface CustomErrorConstructor {\n  new (message: string): Error\n}\n\nexport interface CustomErrorFactory {\n  (message: string): Error\n}\n\nexport type CustomError = CustomErrorConstructor | CustomErrorFactory\n\ntype Invariant = {\n  (\n    predicate: unknown,\n    message: string,\n    ...positionals: any[]\n  ): asserts predicate\n\n  as(\n    ErrorConstructor: CustomError,\n    predicate: unknown,\n    message: string,\n    ...positionals: unknown[]\n  ): asserts predicate\n}\n\nexport const invariant: Invariant = (\n  predicate,\n  message,\n  ...positionals\n): asserts predicate => {\n  if (!predicate) {\n    throw new InvariantError(message, ...positionals)\n  }\n}\n\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n  if (!predicate) {\n    const formatMessage =\n      positionals.length === 0 ? message : format(message, ...positionals)\n    let error: Error\n\n    try {\n      error = Reflect.construct(ErrorConstructor as CustomErrorConstructor, [\n        formatMessage,\n      ])\n    } catch (err) {\n      error = (ErrorConstructor as CustomErrorFactory)(formatMessage)\n    }\n\n    throw error\n  }\n}\n","import { format } from 'outvariant'\n\nconst LIBRARY_PREFIX = '[MSW]'\n\n/**\n * Formats a given message by appending the library's prefix string.\n */\nfunction formatMessage(message: string, ...positionals: any[]): string {\n  const interpolatedMessage = format(message, ...positionals)\n  return `${LIBRARY_PREFIX} ${interpolatedMessage}`\n}\n\n/**\n * Prints a library-specific warning.\n */\nfunction warn(message: string, ...positionals: any[]): void {\n  // eslint-disable-next-line no-console\n  console.warn(formatMessage(message, ...positionals))\n}\n\n/**\n * Prints a library-specific error.\n */\nfunction error(message: string, ...positionals: any[]): void {\n  // eslint-disable-next-line no-console\n  console.error(formatMessage(message, ...positionals))\n}\n\nexport const devUtils = {\n  formatMessage,\n  warn,\n  error,\n}\n\n/**\n * Internal error instance.\n * Used to differentiate the library errors that must be forwarded\n * to the user from the unhandled exceptions. Use this if you don't\n * wish for the error to be coerced to a 500 fallback response.\n */\nexport class InternalError extends Error {\n  constructor(message: string) {\n    super(message)\n    this.name = 'InternalError'\n  }\n}\n","import { invariant } from 'outvariant'\nimport { devUtils } from './devUtils'\n\nexport function checkGlobals() {\n  /**\n   * MSW expects the \"URL\" constructor to be defined.\n   * It's not present in React Native so suggest a polyfill\n   * instead of failing silently.\n   * @see https://github.com/mswjs/msw/issues/1408\n   */\n  invariant(\n    typeof URL !== 'undefined',\n    devUtils.formatMessage(\n      `Global \"URL\" class is not defined. This likely means that you're running MSW in an environment that doesn't support all Node.js standard API (e.g. React Native). If that's the case, please use an appropriate polyfill for the \"URL\" class, like \"react-native-url-polyfill\".`,\n    ),\n  )\n}\n","import type { Emitter } from './Emitter'\n\nexport class MemoryLeakError extends Error {\n  constructor(\n    public readonly emitter: Emitter<any>,\n    public readonly type: string | number | symbol,\n    public readonly count: number\n  ) {\n    super(\n      `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n    )\n    this.name = 'MaxListenersExceededWarning'\n  }\n}\n","import { MemoryLeakError } from './MemoryLeakError'\n\nexport type EventMap = {\n  [eventName: string]: Array<unknown>\n}\n\nexport type InternalEventNames = 'newListener' | 'removeListener'\n\nexport type InternalListener<Events extends EventMap> = Listener<\n  [eventName: keyof Events, listener: Listener<Array<unknown>>]\n>\n\nexport type Listener<Data extends Array<unknown>> = (...data: Data) => void\n\n/**\n * Node.js-compatible implementation of `EventEmitter`.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.on('hello', (name) => console.log(name))\n * emitter.emit('hello', 'John')\n */\nexport class Emitter<Events extends EventMap> {\n  private events: Map<keyof Events, Array<Listener<any>>>\n  private maxListeners: number\n  private hasWarnedAboutPotentialMemoryLeak: boolean\n\n  static defaultMaxListeners = 10\n\n  static listenerCount<Events extends EventMap>(\n    emitter: Emitter<EventMap>,\n    eventName: keyof Events\n  ): number {\n    return emitter.listenerCount<any>(eventName)\n  }\n\n  constructor() {\n    this.events = new Map()\n    this.maxListeners = Emitter.defaultMaxListeners\n    this.hasWarnedAboutPotentialMemoryLeak = false\n  }\n\n  private _emitInternalEvent(\n    internalEventName: InternalEventNames,\n    eventName: keyof Events,\n    listener: Listener<Array<unknown>>\n  ): void {\n    this.emit(\n      internalEventName,\n      // Anything to make TypeScript happy.\n      ...([eventName, listener] as Events['newListener'] &\n        Events['removeListener'])\n    )\n  }\n\n  private _getListeners<EventName extends keyof Events>(\n    eventName: EventName\n  ): Array<Listener<Array<unknown>>> {\n    // Always return a copy of the listeners array\n    // so they are fixed at the time of the \"_getListeners\" call.\n    return Array.prototype.concat.apply([], this.events.get(eventName)) || []\n  }\n\n  private _removeListener<EventName extends keyof Events>(\n    listeners: Array<Listener<Events[EventName]>>,\n    listener: Listener<Events[EventName]>\n  ): Array<Listener<Events[EventName]>> {\n    const index = listeners.indexOf(listener)\n\n    if (index > -1) {\n      listeners.splice(index, 1)\n    }\n\n    return []\n  }\n\n  private _wrapOnceListener<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): Listener<Events[EventName]> {\n    const onceListener = (...data: Events[keyof Events]) => {\n      this.removeListener(eventName, onceListener)\n\n      /**\n       * @note Return the result of the original listener.\n       * This way this wrapped preserves listeners that are async.\n       */\n      return listener.apply(this, data)\n    }\n\n    // Inherit the name of the original listener.\n    Object.defineProperty(onceListener, 'name', { value: listener.name })\n\n    return onceListener\n  }\n\n  public setMaxListeners(maxListeners: number): this {\n    this.maxListeners = maxListeners\n    return this\n  }\n\n  /**\n   * Returns the current max listener value for the `Emitter` which is\n   * either set by `emitter.setMaxListeners(n)` or defaults to\n   * `Emitter.defaultMaxListeners`.\n   */\n  public getMaxListeners(): number {\n    return this.maxListeners\n  }\n\n  /**\n   * Returns an array listing the events for which the emitter has registered listeners.\n   * The values in the array will be strings or Symbols.\n   */\n  public eventNames(): Array<keyof Events> {\n    return Array.from(this.events.keys())\n  }\n\n  /**\n   * Synchronously calls each of the listeners registered for the event named `eventName`,\n   * in the order they were registered, passing the supplied arguments to each.\n   * Returns `true` if the event has listeners, `false` otherwise.\n   *\n   * @example\n   * const emitter = new Emitter<{ hello: [string] }>()\n   * emitter.emit('hello', 'John')\n   */\n  public emit<EventName extends keyof Events>(\n    eventName: EventName,\n    ...data: Events[EventName]\n  ): boolean {\n    const listeners = this._getListeners(eventName)\n    listeners.forEach((listener) => {\n      listener.apply(this, data)\n    })\n\n    return listeners.length > 0\n  }\n\n  public addListener(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public addListener<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  public addListener(\n    eventName: InternalEventNames | keyof Events,\n    listener: InternalListener<Events> | Listener<Events[any]>\n  ): this {\n    // Emit the `newListener` event before adding the listener.\n    this._emitInternalEvent('newListener', eventName, listener)\n\n    const nextListeners = this._getListeners(eventName).concat(listener)\n    this.events.set(eventName, nextListeners)\n\n    if (\n      this.maxListeners > 0 &&\n      this.listenerCount(eventName) > this.maxListeners &&\n      !this.hasWarnedAboutPotentialMemoryLeak\n    ) {\n      this.hasWarnedAboutPotentialMemoryLeak = true\n\n      const memoryLeakWarning = new MemoryLeakError(\n        this,\n        eventName,\n        this.listenerCount(eventName)\n      )\n      console.warn(memoryLeakWarning)\n    }\n\n    return this\n  }\n\n  public on(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public on<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  public on<EventName extends keyof Events>(\n    eventName: 'removeListener' | EventName,\n    listener: Listener<any>\n  ): this {\n    return this.addListener(eventName, listener)\n  }\n\n  public once(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public once<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  public once<EventName extends keyof Events>(\n    eventName: InternalEventNames | EventName,\n    listener: Listener<any>\n  ): this {\n    return this.addListener(\n      eventName,\n      this._wrapOnceListener(eventName, listener)\n    )\n  }\n\n  public prependListener(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public prependListener<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  public prependListener(\n    eventName: InternalEventNames | keyof Events,\n    listener: Listener<any>\n  ): this {\n    const listeners = this._getListeners(eventName)\n\n    if (listeners.length > 0) {\n      const nextListeners = [listener].concat(listeners)\n      this.events.set(eventName, nextListeners)\n    } else {\n      this.events.set(eventName, listeners.concat(listener))\n    }\n\n    return this\n  }\n\n  public prependOnceListener(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public prependOnceListener<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  public prependOnceListener(\n    eventName: InternalEventNames | keyof Events,\n    listener: Listener<any>\n  ): this {\n    return this.prependListener(\n      eventName,\n      this._wrapOnceListener(eventName, listener)\n    )\n  }\n\n  public removeListener(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public removeListener<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  public removeListener(\n    eventName: InternalEventNames | keyof Events,\n    listener: Listener<any>\n  ): this {\n    const listeners = this._getListeners(eventName)\n\n    if (listeners.length > 0) {\n      this._removeListener(listeners, listener)\n      this.events.set(eventName, listeners)\n\n      // Emit the `removeListener` event after removing the listener.\n      this._emitInternalEvent('removeListener', eventName, listener)\n    }\n\n    return this\n  }\n\n  public off(\n    eventName: InternalEventNames,\n    listener: InternalListener<Events>\n  ): this\n  public off<EventName extends keyof Events>(\n    eventName: EventName,\n    listener: Listener<Events[EventName]>\n  ): this\n  /**\n   * Alias for `emitter.removeListener()`.\n   *\n   * @example\n   * emitter.off('hello', listener)\n   */\n  public off(\n    eventName: InternalEventNames | keyof Events,\n    listener: Listener<any>\n  ): this {\n    return this.removeListener(eventName, listener)\n  }\n\n  public removeAllListeners(eventName?: InternalEventNames): this\n  public removeAllListeners<EventName extends keyof Events>(\n    eventName?: EventName\n  ): this\n  public removeAllListeners(\n    eventName?: InternalEventNames | keyof Events\n  ): this {\n    if (eventName) {\n      this.events.delete(eventName)\n    } else {\n      this.events.clear()\n    }\n\n    return this\n  }\n\n  public listeners(eventName: InternalEventNames): Array<Listener<any>>\n  public listeners<EventName extends keyof Events>(\n    eventName: EventName\n  ): Array<Listener<Events[EventName]>>\n  /**\n   * Returns a copy of the array of listeners for the event named `eventName`.\n   */\n  public listeners(eventName: InternalEventNames | keyof Events) {\n    return Array.from(this._getListeners(eventName))\n  }\n\n  public listenerCount(eventName: InternalEventNames): number\n  public listenerCount<EventName extends keyof Events>(\n    eventName: EventName\n  ): number\n  /**\n   * Returns the number of listeners listening to the event named `eventName`.\n   */\n  public listenerCount(eventName: InternalEventNames | keyof Events): number {\n    return this._getListeners(eventName).length\n  }\n\n  public rawListeners<EventName extends keyof Events>(\n    eventName: EventName\n  ): Array<Listener<Events[EventName]>> {\n    return this.listeners(eventName)\n  }\n}\n","// Ignore the source files traces for local testing.\nconst SOURCE_FRAME = /[\\/\\\\]msw[\\/\\\\]src[\\/\\\\](.+)/\n\nconst BUILD_FRAME =\n  /(node_modules)?[\\/\\\\]lib[\\/\\\\](core|browser|node|native|iife)[\\/\\\\]|^[^\\/\\\\]*$/\n\n/**\n * Return the stack trace frame of a function's invocation.\n */\nexport function getCallFrame(error: Error) {\n  // In <IE11, new Error may return an undefined stack\n  const stack = error.stack\n\n  if (!stack) {\n    return\n  }\n\n  const frames: string[] = stack.split('\\n').slice(1)\n\n  // Get the first frame that doesn't reference the library's internal trace.\n  // Assume that frame is the invocation frame.\n  const declarationFrame = frames.find((frame) => {\n    return !(SOURCE_FRAME.test(frame) || BUILD_FRAME.test(frame))\n  })\n\n  if (!declarationFrame) {\n    return\n  }\n\n  // Extract file reference from the stack frame.\n  const declarationPath = declarationFrame\n    .replace(/\\s*at [^()]*\\(([^)]+)\\)/, '$1')\n    .replace(/^@/, '')\n  return declarationPath\n}\n","/**\n * This is the same as TypeScript's `Iterable`, but with all three type parameters.\n * @todo Remove once TypeScript 5.6 is the minimum.\n */\nexport interface Iterable<T, TReturn, TNext> {\n  [Symbol.iterator](): Iterator<T, TReturn, TNext>\n}\n\n/**\n * This is the same as TypeScript's `AsyncIterable`, but with all three type parameters.\n * @todo Remove once TypeScript 5.6 is the minimum.\n */\nexport interface AsyncIterable<T, TReturn, TNext> {\n  [Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>\n}\n\n/**\n * Determines if the given function is an iterator.\n */\nexport function isIterable<IteratorType>(\n  fn: any,\n): fn is\n  | Iterable<IteratorType, IteratorType, IteratorType>\n  | AsyncIterable<IteratorType, IteratorType, IteratorType> {\n  if (!fn) {\n    return false\n  }\n\n  return (\n    Reflect.has(fn, Symbol.iterator) || Reflect.has(fn, Symbol.asyncIterator)\n  )\n}\n","import { getCallFrame } from '../utils/internal/getCallFrame'\nimport {\n  AsyncIterable,\n  Iterable,\n  isIterable,\n} from '../utils/internal/isIterable'\nimport type { ResponseResolutionContext } from '../utils/executeHandlers'\nimport type { MaybePromise } from '../typeUtils'\nimport { StrictRequest, StrictResponse } from '..//HttpResponse'\nimport type { HandlerKind } from './common'\n\nexport type DefaultRequestMultipartBody = Record<\n  string,\n  string | File | Array<string | File>\n>\n\nexport type DefaultBodyType =\n  | Record<string, any>\n  | DefaultRequestMultipartBody\n  | string\n  | number\n  | boolean\n  | null\n  | undefined\n\nexport type JsonBodyType =\n  | Record<string, any>\n  | string\n  | number\n  | boolean\n  | null\n  | undefined\n\nexport interface RequestHandlerDefaultInfo {\n  header: string\n}\n\nexport interface RequestHandlerInternalInfo {\n  callFrame?: string\n}\n\nexport type ResponseResolverReturnType<\n  ResponseBodyType extends DefaultBodyType = undefined,\n> =\n  | ([ResponseBodyType] extends [undefined]\n      ? Response\n      : StrictResponse<ResponseBodyType>)\n  | undefined\n  | void\n\nexport type MaybeAsyncResponseResolverReturnType<\n  ResponseBodyType extends DefaultBodyType,\n> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>\n\nexport type AsyncResponseResolverReturnType<\n  ResponseBodyType extends DefaultBodyType,\n> = MaybePromise<\n  | ResponseResolverReturnType<ResponseBodyType>\n  | Iterable<\n      MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n      MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n      MaybeAsyncResponseResolverReturnType<ResponseBodyType>\n    >\n  | AsyncIterable<\n      MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n      MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n      MaybeAsyncResponseResolverReturnType<ResponseBodyType>\n    >\n>\n\nexport type ResponseResolverInfo<\n  ResolverExtraInfo extends Record<string, unknown>,\n  RequestBodyType extends DefaultBodyType = DefaultBodyType,\n> = {\n  request: StrictRequest<RequestBodyType>\n  requestId: string\n} & ResolverExtraInfo\n\nexport type ResponseResolver<\n  ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>,\n  RequestBodyType extends DefaultBodyType = DefaultBodyType,\n  ResponseBodyType extends DefaultBodyType = undefined,\n> = (\n  info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>,\n) => AsyncResponseResolverReturnType<ResponseBodyType>\n\nexport interface RequestHandlerArgs<\n  HandlerInfo,\n  HandlerOptions extends RequestHandlerOptions,\n> {\n  info: HandlerInfo\n  resolver: ResponseResolver<any>\n  options?: HandlerOptions\n}\n\nexport interface RequestHandlerOptions {\n  once?: boolean\n}\n\nexport interface RequestHandlerExecutionResult<\n  ParsedResult extends Record<string, unknown> | undefined,\n> {\n  handler: RequestHandler\n  parsedResult?: ParsedResult\n  request: Request\n  requestId: string\n  response?: Response\n}\n\nexport abstract class RequestHandler<\n  HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo,\n  ParsedResult extends Record<string, any> | undefined = any,\n  ResolverExtras extends Record<string, unknown> = any,\n  HandlerOptions extends RequestHandlerOptions = RequestHandlerOptions,\n> {\n  static cache = new WeakMap<\n    StrictRequest<DefaultBodyType>,\n    StrictRequest<DefaultBodyType>\n  >()\n\n  private readonly __kind: HandlerKind\n\n  public info: HandlerInfo & RequestHandlerInternalInfo\n  /**\n   * Indicates whether this request handler has been used\n   * (its resolver has successfully executed).\n   */\n  public isUsed: boolean\n\n  protected resolver: ResponseResolver<ResolverExtras, any, any>\n  private resolverIterator?:\n    | Iterator<\n        MaybeAsyncResponseResolverReturnType<any>,\n        MaybeAsyncResponseResolverReturnType<any>,\n        MaybeAsyncResponseResolverReturnType<any>\n      >\n    | AsyncIterator<\n        MaybeAsyncResponseResolverReturnType<any>,\n        MaybeAsyncResponseResolverReturnType<any>,\n        MaybeAsyncResponseResolverReturnType<any>\n      >\n  private resolverIteratorResult?: Response | StrictResponse<any>\n  private options?: HandlerOptions\n\n  constructor(args: RequestHandlerArgs<HandlerInfo, HandlerOptions>) {\n    this.resolver = args.resolver\n    this.options = args.options\n\n    const callFrame = getCallFrame(new Error())\n\n    this.info = {\n      ...args.info,\n      callFrame,\n    }\n\n    this.isUsed = false\n    this.__kind = 'RequestHandler'\n  }\n\n  /**\n   * Determine if the intercepted request should be mocked.\n   */\n  abstract predicate(args: {\n    request: Request\n    parsedResult: ParsedResult\n    resolutionContext?: ResponseResolutionContext\n  }): boolean\n\n  /**\n   * Print out the successfully handled request.\n   */\n  abstract log(args: {\n    request: Request\n    response: Response\n    parsedResult: ParsedResult\n  }): void\n\n  /**\n   * Parse the intercepted request to extract additional information from it.\n   * Parsed result is then exposed to other methods of this request handler.\n   */\n  async parse(_args: {\n    request: Request\n    resolutionContext?: ResponseResolutionContext\n  }): Promise<ParsedResult> {\n    return {} as ParsedResult\n  }\n\n  /**\n   * Test if this handler matches the given request.\n   *\n   * This method is not used internally but is exposed\n   * as a convenience method for consumers writing custom\n   * handlers.\n   */\n  public async test(args: {\n    request: Request\n    resolutionContext?: ResponseResolutionContext\n  }): Promise<boolean> {\n    const parsedResult = await this.parse({\n      request: args.request,\n      resolutionContext: args.resolutionContext,\n    })\n\n    return this.predicate({\n      request: args.request,\n      parsedResult,\n      resolutionContext: args.resolutionContext,\n    })\n  }\n\n  protected extendResolverArgs(_args: {\n    request: Request\n    parsedResult: ParsedResult\n  }): ResolverExtras {\n    return {} as ResolverExtras\n  }\n\n  // Clone the request instance before it's passed to the handler phases\n  // and the response resolver so we can always read it for logging.\n  // We only clone it once per request to avoid unnecessary overhead.\n  private cloneRequestOrGetFromCache(\n    request: StrictRequest<DefaultBodyType>,\n  ): StrictRequest<DefaultBodyType> {\n    const existingClone = RequestHandler.cache.get(request)\n\n    if (typeof existingClone !== 'undefined') {\n      return existingClone\n    }\n\n    const clonedRequest = request.clone()\n    RequestHandler.cache.set(request, clonedRequest)\n\n    return clonedRequest\n  }\n\n  /**\n   * Execute this request handler and produce a mocked response\n   * using the given resolver function.\n   */\n  public async run(args: {\n    request: StrictRequest<any>\n    requestId: string\n    resolutionContext?: ResponseResolutionContext\n  }): Promise<RequestHandlerExecutionResult<ParsedResult> | null> {\n    if (this.isUsed && this.options?.once) {\n      return null\n    }\n\n    // Clone the request.\n    // If this is the first time MSW handles this request, a fresh clone\n    // will be created and cached. Upon further handling of the same request,\n    // the request clone from the cache will be reused to prevent abundant\n    // \"abort\" listeners and save up resources on cloning.\n    const requestClone = this.cloneRequestOrGetFromCache(args.request)\n\n    const parsedResult = await this.parse({\n      request: args.request,\n      resolutionContext: args.resolutionContext,\n    })\n    const shouldInterceptRequest = this.predicate({\n      request: args.request,\n      parsedResult,\n      resolutionContext: args.resolutionContext,\n    })\n\n    if (!shouldInterceptRequest) {\n      return null\n    }\n\n    // Re-check isUsed, in case another request hit this handler while we were\n    // asynchronously parsing the request.\n    if (this.isUsed && this.options?.once) {\n      return null\n    }\n\n    // Preemptively mark the handler as used.\n    // Generators will undo this because only when the resolver reaches the\n    // \"done\" state of the generator that it considers the handler used.\n    this.isUsed = true\n\n    // Create a response extraction wrapper around the resolver\n    // since it can be both an async function and a generator.\n    const executeResolver = this.wrapResolver(this.resolver)\n\n    const resolverExtras = this.extendResolverArgs({\n      request: args.request,\n      parsedResult,\n    })\n\n    const mockedResponsePromise = (\n      executeResolver({\n        ...resolverExtras,\n        requestId: args.requestId,\n        request: args.request,\n      }) as Promise<Response>\n    ).catch((errorOrResponse) => {\n      // Allow throwing a Response instance in a response resolver.\n      if (errorOrResponse instanceof Response) {\n        return errorOrResponse\n      }\n\n      // Otherwise, throw the error as-is.\n      throw errorOrResponse\n    })\n\n    const mockedResponse = await mockedResponsePromise\n\n    const executionResult = this.createExecutionResult({\n      // Pass the cloned request to the result so that logging\n      // and other consumers could read its body once more.\n      request: requestClone,\n      requestId: args.requestId,\n      response: mockedResponse,\n      parsedResult,\n    })\n\n    return executionResult\n  }\n\n  private wrapResolver(\n    resolver: ResponseResolver<ResolverExtras>,\n  ): ResponseResolver<ResolverExtras> {\n    return async (info): Promise<ResponseResolverReturnType<any>> => {\n      if (!this.resolverIterator) {\n        const result = await resolver(info)\n        if (!isIterable(result)) {\n          return result\n        }\n        this.resolverIterator =\n          Symbol.iterator in result\n            ? result[Symbol.iterator]()\n            : result[Symbol.asyncIterator]()\n      }\n\n      // Opt-out from marking this handler as used.\n      this.isUsed = false\n\n      const { done, value } = await this.resolverIterator.next()\n      const nextResponse = await value\n\n      if (nextResponse) {\n        this.resolverIteratorResult = nextResponse.clone()\n      }\n\n      if (done) {\n        // A one-time generator resolver stops affecting the network\n        // only after it's been completely exhausted.\n        this.isUsed = true\n\n        // Clone the previously stored response so it can be read\n        // when receiving it repeatedly from the \"done\" generator.\n        return this.resolverIteratorResult?.clone()\n      }\n\n      return nextResponse\n    }\n  }\n\n  private createExecutionResult(args: {\n    request: Request\n    requestId: string\n    parsedResult: ParsedResult\n    response?: Response\n  }): RequestHandlerExecutionResult<ParsedResult> {\n    return {\n      handler: this,\n      request: args.request,\n      requestId: args.requestId,\n      response: args.response,\n      parsedResult: args.parsedResult,\n    }\n  }\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// node_modules/statuses/codes.json\nvar require_codes = __commonJS({\n  \"node_modules/statuses/codes.json\"(exports, module) {\n    module.exports = {\n      \"100\": \"Continue\",\n      \"101\": \"Switching Protocols\",\n      \"102\": \"Processing\",\n      \"103\": \"Early Hints\",\n      \"200\": \"OK\",\n      \"201\": \"Created\",\n      \"202\": \"Accepted\",\n      \"203\": \"Non-Authoritative Information\",\n      \"204\": \"No Content\",\n      \"205\": \"Reset Content\",\n      \"206\": \"Partial Content\",\n      \"207\": \"Multi-Status\",\n      \"208\": \"Already Reported\",\n      \"226\": \"IM Used\",\n      \"300\": \"Multiple Choices\",\n      \"301\": \"Moved Permanently\",\n      \"302\": \"Found\",\n      \"303\": \"See Other\",\n      \"304\": \"Not Modified\",\n      \"305\": \"Use Proxy\",\n      \"307\": \"Temporary Redirect\",\n      \"308\": \"Permanent Redirect\",\n      \"400\": \"Bad Request\",\n      \"401\": \"Unauthorized\",\n      \"402\": \"Payment Required\",\n      \"403\": \"Forbidden\",\n      \"404\": \"Not Found\",\n      \"405\": \"Method Not Allowed\",\n      \"406\": \"Not Acceptable\",\n      \"407\": \"Proxy Authentication Required\",\n      \"408\": \"Request Timeout\",\n      \"409\": \"Conflict\",\n      \"410\": \"Gone\",\n      \"411\": \"Length Required\",\n      \"412\": \"Precondition Failed\",\n      \"413\": \"Payload Too Large\",\n      \"414\": \"URI Too Long\",\n      \"415\": \"Unsupported Media Type\",\n      \"416\": \"Range Not Satisfiable\",\n      \"417\": \"Expectation Failed\",\n      \"418\": \"I'm a Teapot\",\n      \"421\": \"Misdirected Request\",\n      \"422\": \"Unprocessable Entity\",\n      \"423\": \"Locked\",\n      \"424\": \"Failed Dependency\",\n      \"425\": \"Too Early\",\n      \"426\": \"Upgrade Required\",\n      \"428\": \"Precondition Required\",\n      \"429\": \"Too Many Requests\",\n      \"431\": \"Request Header Fields Too Large\",\n      \"451\": \"Unavailable For Legal Reasons\",\n      \"500\": \"Internal Server Error\",\n      \"501\": \"Not Implemented\",\n      \"502\": \"Bad Gateway\",\n      \"503\": \"Service Unavailable\",\n      \"504\": \"Gateway Timeout\",\n      \"505\": \"HTTP Version Not Supported\",\n      \"506\": \"Variant Also Negotiates\",\n      \"507\": \"Insufficient Storage\",\n      \"508\": \"Loop Detected\",\n      \"509\": \"Bandwidth Limit Exceeded\",\n      \"510\": \"Not Extended\",\n      \"511\": \"Network Authentication Required\"\n    };\n  }\n});\n\n// node_modules/statuses/index.js\nvar require_statuses = __commonJS({\n  \"node_modules/statuses/index.js\"(exports, module) {\n    \"use strict\";\n    var codes = require_codes();\n    module.exports = status2;\n    status2.message = codes;\n    status2.code = createMessageToStatusCodeMap(codes);\n    status2.codes = createStatusCodeList(codes);\n    status2.redirect = {\n      300: true,\n      301: true,\n      302: true,\n      303: true,\n      305: true,\n      307: true,\n      308: true\n    };\n    status2.empty = {\n      204: true,\n      205: true,\n      304: true\n    };\n    status2.retry = {\n      502: true,\n      503: true,\n      504: true\n    };\n    function createMessageToStatusCodeMap(codes2) {\n      var map = {};\n      Object.keys(codes2).forEach(function forEachCode(code) {\n        var message = codes2[code];\n        var status3 = Number(code);\n        map[message.toLowerCase()] = status3;\n      });\n      return map;\n    }\n    function createStatusCodeList(codes2) {\n      return Object.keys(codes2).map(function mapCode(code) {\n        return Number(code);\n      });\n    }\n    function getStatusCode(message) {\n      var msg = message.toLowerCase();\n      if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {\n        throw new Error('invalid status message: \"' + message + '\"');\n      }\n      return status2.code[msg];\n    }\n    function getStatusMessage(code) {\n      if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {\n        throw new Error(\"invalid status code: \" + code);\n      }\n      return status2.message[code];\n    }\n    function status2(code) {\n      if (typeof code === \"number\") {\n        return getStatusMessage(code);\n      }\n      if (typeof code !== \"string\") {\n        throw new TypeError(\"code must be a number or string\");\n      }\n      var n = parseInt(code, 10);\n      if (!isNaN(n)) {\n        return getStatusMessage(n);\n      }\n      return getStatusCode(code);\n    }\n  }\n});\n\n// source.js\nvar import_statuses = __toESM(require_statuses(), 1);\nvar source_default = import_statuses.default;\nexport {\n  source_default as default\n};\n/*! Bundled license information:\n\nstatuses/index.js:\n  (*!\n   * statuses\n   * Copyright(c) 2014 Jonathan Ong\n   * Copyright(c) 2016 Douglas Christopher Wilson\n   * MIT Licensed\n   *)\n*/\n","/**\n * Determines if the current process is a Node.js process.\n */\nexport function isNodeProcess(): boolean {\n  if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n    return true\n  }\n\n  if (typeof process !== 'undefined') {\n    // Electron (https://www.electronjs.org/docs/latest/api/process#processtype-readonly)\n    const type = (process as any).type\n    if (type === 'renderer' || type === 'worker') {\n      return false\n    }\n\n\n    return !!(\n      process.versions &&\n      process.versions.node\n    )\n  }\n\n  return false\n}\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/index.ts\nimport { isNodeProcess } from \"is-node-process\";\nimport { format } from \"outvariant\";\n\n// src/colors.ts\nvar colors_exports = {};\n__export(colors_exports, {\n  blue: () => blue,\n  gray: () => gray,\n  green: () => green,\n  red: () => red,\n  yellow: () => yellow\n});\nfunction yellow(text) {\n  return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n  return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n  return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n  return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n  return `\\x1B[32m${text}\\x1B[0m`;\n}\n\n// src/index.ts\nvar IS_NODE = isNodeProcess();\nvar Logger = class {\n  constructor(name) {\n    this.name = name;\n    this.prefix = `[${this.name}]`;\n    const LOGGER_NAME = getVariable(\"DEBUG\");\n    const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n    const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n    if (isLoggingEnabled) {\n      this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n      this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n      this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n      this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n      this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n    } else {\n      this.info = noop;\n      this.success = noop;\n      this.warning = noop;\n      this.error = noop;\n      this.only = noop;\n    }\n  }\n  prefix;\n  extend(domain) {\n    return new Logger(`${this.name}:${domain}`);\n  }\n  /**\n   * Print a debug message.\n   * @example\n   * logger.debug('no duplicates found, creating a document...')\n   */\n  debug(message, ...positionals) {\n    this.logEntry({\n      level: \"debug\",\n      message: gray(message),\n      positionals,\n      prefix: this.prefix,\n      colors: {\n        prefix: \"gray\"\n      }\n    });\n  }\n  /**\n   * Print an info message.\n   * @example\n   * logger.info('start parsing...')\n   */\n  info(message, ...positionals) {\n    this.logEntry({\n      level: \"info\",\n      message,\n      positionals,\n      prefix: this.prefix,\n      colors: {\n        prefix: \"blue\"\n      }\n    });\n    const performance2 = new PerformanceEntry();\n    return (message2, ...positionals2) => {\n      performance2.measure();\n      this.logEntry({\n        level: \"info\",\n        message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n        positionals: positionals2,\n        prefix: this.prefix,\n        colors: {\n          prefix: \"blue\"\n        }\n      });\n    };\n  }\n  /**\n   * Print a success message.\n   * @example\n   * logger.success('successfully created document')\n   */\n  success(message, ...positionals) {\n    this.logEntry({\n      level: \"info\",\n      message,\n      positionals,\n      prefix: `\\u2714 ${this.prefix}`,\n      colors: {\n        timestamp: \"green\",\n        prefix: \"green\"\n      }\n    });\n  }\n  /**\n   * Print a warning.\n   * @example\n   * logger.warning('found legacy document format')\n   */\n  warning(message, ...positionals) {\n    this.logEntry({\n      level: \"warning\",\n      message,\n      positionals,\n      prefix: `\\u26A0 ${this.prefix}`,\n      colors: {\n        timestamp: \"yellow\",\n        prefix: \"yellow\"\n      }\n    });\n  }\n  /**\n   * Print an error message.\n   * @example\n   * logger.error('something went wrong')\n   */\n  error(message, ...positionals) {\n    this.logEntry({\n      level: \"error\",\n      message,\n      positionals,\n      prefix: `\\u2716 ${this.prefix}`,\n      colors: {\n        timestamp: \"red\",\n        prefix: \"red\"\n      }\n    });\n  }\n  /**\n   * Execute the given callback only when the logging is enabled.\n   * This is skipped in its entirety and has no runtime cost otherwise.\n   * This executes regardless of the log level.\n   * @example\n   * logger.only(() => {\n   *   logger.info('additional info')\n   * })\n   */\n  only(callback) {\n    callback();\n  }\n  createEntry(level, message) {\n    return {\n      timestamp: /* @__PURE__ */ new Date(),\n      level,\n      message\n    };\n  }\n  logEntry(args) {\n    const {\n      level,\n      message,\n      prefix,\n      colors: customColors,\n      positionals = []\n    } = args;\n    const entry = this.createEntry(level, message);\n    const timestampColor = customColors?.timestamp || \"gray\";\n    const prefixColor = customColors?.prefix || \"gray\";\n    const colorize = {\n      timestamp: colors_exports[timestampColor],\n      prefix: colors_exports[prefixColor]\n    };\n    const write = this.getWriter(level);\n    write(\n      [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n      ...positionals.map(serializeInput)\n    );\n  }\n  formatTimestamp(timestamp) {\n    return `${timestamp.toLocaleTimeString(\n      \"en-GB\"\n    )}:${timestamp.getMilliseconds()}`;\n  }\n  getWriter(level) {\n    switch (level) {\n      case \"debug\":\n      case \"success\":\n      case \"info\": {\n        return log;\n      }\n      case \"warning\": {\n        return warn;\n      }\n      case \"error\": {\n        return error;\n      }\n    }\n  }\n};\nvar PerformanceEntry = class {\n  startTime;\n  endTime;\n  deltaTime;\n  constructor() {\n    this.startTime = performance.now();\n  }\n  measure() {\n    this.endTime = performance.now();\n    const deltaTime = this.endTime - this.startTime;\n    this.deltaTime = deltaTime.toFixed(2);\n  }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n  if (IS_NODE) {\n    process.stdout.write(format(message, ...positionals) + \"\\n\");\n    return;\n  }\n  console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n  if (IS_NODE) {\n    process.stderr.write(format(message, ...positionals) + \"\\n\");\n    return;\n  }\n  console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n  if (IS_NODE) {\n    process.stderr.write(format(message, ...positionals) + \"\\n\");\n    return;\n  }\n  console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n  if (IS_NODE) {\n    return process.env[variableName];\n  }\n  return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n  return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n  if (typeof message === \"undefined\") {\n    return \"undefined\";\n  }\n  if (message === null) {\n    return \"null\";\n  }\n  if (typeof message === \"string\") {\n    return message;\n  }\n  if (typeof message === \"object\") {\n    return JSON.stringify(message);\n  }\n  return message.toString();\n}\nexport {\n  Logger\n};\n","export interface FetchResponseInit extends ResponseInit {\n  url?: string\n}\n\nexport class FetchResponse extends Response {\n  /**\n   * Response status codes for responses that cannot have body.\n   * @see https://fetch.spec.whatwg.org/#statuses\n   */\n  static readonly STATUS_CODES_WITHOUT_BODY = [101, 103, 204, 205, 304]\n\n  static readonly STATUS_CODES_WITH_REDIRECT = [301, 302, 303, 307, 308]\n\n  static isConfigurableStatusCode(status: number): boolean {\n    return status >= 200 && status <= 599\n  }\n\n  static isRedirectResponse(status: number): boolean {\n    return FetchResponse.STATUS_CODES_WITH_REDIRECT.includes(status)\n  }\n\n  /**\n   * Returns a boolean indicating whether the given response status\n   * code represents a response that can have a body.\n   */\n  static isResponseWithBody(status: number): boolean {\n    return !FetchResponse.STATUS_CODES_WITHOUT_BODY.includes(status)\n  }\n\n  static setUrl(url: string | undefined, response: Response): void {\n    if (!url) {\n      return\n    }\n\n    if (response.url != '') {\n      return\n    }\n\n    Object.defineProperty(response, 'url', {\n      value: url,\n      enumerable: true,\n      configurable: true,\n      writable: false,\n    })\n  }\n\n  /**\n   * Parses the given raw HTTP headers into a Fetch API `Headers` instance.\n   */\n  static parseRawHeaders(rawHeaders: Array<string>): Headers {\n    const headers = new Headers()\n    for (let line = 0; line < rawHeaders.length; line += 2) {\n      headers.append(rawHeaders[line], rawHeaders[line + 1])\n    }\n    return headers\n  }\n\n  constructor(body?: BodyInit | null, init: FetchResponseInit = {}) {\n    const status = init.status ?? 200\n    const safeStatus = FetchResponse.isConfigurableStatusCode(status)\n      ? status\n      : 200\n    const finalBody = FetchResponse.isResponseWithBody(status) ? body : null\n\n    super(finalBody, {\n      ...init,\n      status: safeStatus,\n    })\n\n    if (status !== safeStatus) {\n      /**\n       * @note Undici keeps an internal \"Symbol(state)\" that holds\n       * the actual value of response status. Update that in Node.js.\n       */\n      const stateSymbol = Object.getOwnPropertySymbols(this).find(\n        (symbol) => symbol.description === 'state'\n      )\n      if (stateSymbol) {\n        const state = Reflect.get(this, stateSymbol) as object\n        Reflect.set(state, 'status', status)\n      } else {\n        Object.defineProperty(this, 'status', {\n          value: status,\n          enumerable: true,\n          configurable: true,\n          writable: false,\n        })\n      }\n    }\n\n    FetchResponse.setUrl(init.url, this)\n  }\n}\n","const encoder = new TextEncoder()\n\nexport function encodeBuffer(text: string): Uint8Array {\n  return encoder.encode(text)\n}\n\nexport function decodeBuffer(buffer: ArrayBuffer, encoding?: string): string {\n  const decoder = new TextDecoder(encoding)\n  return decoder.decode(buffer)\n}\n\n/**\n * Create an `ArrayBuffer` from the given `Uint8Array`.\n * Takes the byte offset into account to produce the right buffer\n * in the case when the buffer is bigger than the data view.\n */\nexport function toArrayBuffer(array: Uint8Array): ArrayBuffer {\n  return array.buffer.slice(\n    array.byteOffset,\n    array.byteOffset + array.byteLength\n  )\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// node_modules/cookie/index.js\nvar require_cookie = __commonJS({\n  \"node_modules/cookie/index.js\"(exports) {\n    \"use strict\";\n    exports.parse = parse;\n    exports.serialize = serialize;\n    var __toString = Object.prototype.toString;\n    var __hasOwnProperty = Object.prototype.hasOwnProperty;\n    var cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n    var cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\n    var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n    var pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n    function parse(str, opt) {\n      if (typeof str !== \"string\") {\n        throw new TypeError(\"argument str must be a string\");\n      }\n      var obj = {};\n      var len = str.length;\n      if (len < 2) return obj;\n      var dec = opt && opt.decode || decode;\n      var index = 0;\n      var eqIdx = 0;\n      var endIdx = 0;\n      do {\n        eqIdx = str.indexOf(\"=\", index);\n        if (eqIdx === -1) break;\n        endIdx = str.indexOf(\";\", index);\n        if (endIdx === -1) {\n          endIdx = len;\n        } else if (eqIdx > endIdx) {\n          index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n          continue;\n        }\n        var keyStartIdx = startIndex(str, index, eqIdx);\n        var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n        var key = str.slice(keyStartIdx, keyEndIdx);\n        if (!__hasOwnProperty.call(obj, key)) {\n          var valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n          var valEndIdx = endIndex(str, endIdx, valStartIdx);\n          if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {\n            valStartIdx++;\n            valEndIdx--;\n          }\n          var val = str.slice(valStartIdx, valEndIdx);\n          obj[key] = tryDecode(val, dec);\n        }\n        index = endIdx + 1;\n      } while (index < len);\n      return obj;\n    }\n    function startIndex(str, index, max) {\n      do {\n        var code = str.charCodeAt(index);\n        if (code !== 32 && code !== 9) return index;\n      } while (++index < max);\n      return max;\n    }\n    function endIndex(str, index, min) {\n      while (index > min) {\n        var code = str.charCodeAt(--index);\n        if (code !== 32 && code !== 9) return index + 1;\n      }\n      return min;\n    }\n    function serialize(name, val, opt) {\n      var enc = opt && opt.encode || encodeURIComponent;\n      if (typeof enc !== \"function\") {\n        throw new TypeError(\"option encode is invalid\");\n      }\n      if (!cookieNameRegExp.test(name)) {\n        throw new TypeError(\"argument name is invalid\");\n      }\n      var value = enc(val);\n      if (!cookieValueRegExp.test(value)) {\n        throw new TypeError(\"argument val is invalid\");\n      }\n      var str = name + \"=\" + value;\n      if (!opt) return str;\n      if (null != opt.maxAge) {\n        var maxAge = Math.floor(opt.maxAge);\n        if (!isFinite(maxAge)) {\n          throw new TypeError(\"option maxAge is invalid\");\n        }\n        str += \"; Max-Age=\" + maxAge;\n      }\n      if (opt.domain) {\n        if (!domainValueRegExp.test(opt.domain)) {\n          throw new TypeError(\"option domain is invalid\");\n        }\n        str += \"; Domain=\" + opt.domain;\n      }\n      if (opt.path) {\n        if (!pathValueRegExp.test(opt.path)) {\n          throw new TypeError(\"option path is invalid\");\n        }\n        str += \"; Path=\" + opt.path;\n      }\n      if (opt.expires) {\n        var expires = opt.expires;\n        if (!isDate(expires) || isNaN(expires.valueOf())) {\n          throw new TypeError(\"option expires is invalid\");\n        }\n        str += \"; Expires=\" + expires.toUTCString();\n      }\n      if (opt.httpOnly) {\n        str += \"; HttpOnly\";\n      }\n      if (opt.secure) {\n        str += \"; Secure\";\n      }\n      if (opt.partitioned) {\n        str += \"; Partitioned\";\n      }\n      if (opt.priority) {\n        var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n        switch (priority) {\n          case \"low\":\n            str += \"; Priority=Low\";\n            break;\n          case \"medium\":\n            str += \"; Priority=Medium\";\n            break;\n          case \"high\":\n            str += \"; Priority=High\";\n            break;\n          default:\n            throw new TypeError(\"option priority is invalid\");\n        }\n      }\n      if (opt.sameSite) {\n        var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n        switch (sameSite) {\n          case true:\n            str += \"; SameSite=Strict\";\n            break;\n          case \"lax\":\n            str += \"; SameSite=Lax\";\n            break;\n          case \"strict\":\n            str += \"; SameSite=Strict\";\n            break;\n          case \"none\":\n            str += \"; SameSite=None\";\n            break;\n          default:\n            throw new TypeError(\"option sameSite is invalid\");\n        }\n      }\n      return str;\n    }\n    function decode(str) {\n      return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n    }\n    function isDate(val) {\n      return __toString.call(val) === \"[object Date]\";\n    }\n    function tryDecode(str, decode2) {\n      try {\n        return decode2(str);\n      } catch (e) {\n        return str;\n      }\n    }\n  }\n});\n\n// source.js\nvar import_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_cookie.default;\nexport {\n  source_default as default\n};\n/*! Bundled license information:\n\ncookie/index.js:\n  (*!\n   * cookie\n   * Copyright(c) 2012-2014 Roman Shtylman\n   * Copyright(c) 2015 Douglas Christopher Wilson\n   * MIT Licensed\n   *)\n*/\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n  get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n  if (typeof require !== \"undefined\") return require.apply(this, arguments);\n  throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// node_modules/punycode/punycode.js\nvar require_punycode = __commonJS({\n  \"node_modules/punycode/punycode.js\"(exports, module) {\n    \"use strict\";\n    var maxInt = 2147483647;\n    var base = 36;\n    var tMin = 1;\n    var tMax = 26;\n    var skew = 38;\n    var damp = 700;\n    var initialBias = 72;\n    var initialN = 128;\n    var delimiter = \"-\";\n    var regexPunycode = /^xn--/;\n    var regexNonASCII = /[^\\0-\\x7F]/;\n    var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\n    var errors = {\n      \"overflow\": \"Overflow: input needs wider integers to process\",\n      \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n      \"invalid-input\": \"Invalid input\"\n    };\n    var baseMinusTMin = base - tMin;\n    var floor = Math.floor;\n    var stringFromCharCode = String.fromCharCode;\n    function error(type) {\n      throw new RangeError(errors[type]);\n    }\n    function map(array, callback) {\n      const result = [];\n      let length = array.length;\n      while (length--) {\n        result[length] = callback(array[length]);\n      }\n      return result;\n    }\n    function mapDomain(domain, callback) {\n      const parts = domain.split(\"@\");\n      let result = \"\";\n      if (parts.length > 1) {\n        result = parts[0] + \"@\";\n        domain = parts[1];\n      }\n      domain = domain.replace(regexSeparators, \".\");\n      const labels = domain.split(\".\");\n      const encoded = map(labels, callback).join(\".\");\n      return result + encoded;\n    }\n    function ucs2decode(string) {\n      const output = [];\n      let counter = 0;\n      const length = string.length;\n      while (counter < length) {\n        const value = string.charCodeAt(counter++);\n        if (value >= 55296 && value <= 56319 && counter < length) {\n          const extra = string.charCodeAt(counter++);\n          if ((extra & 64512) == 56320) {\n            output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n          } else {\n            output.push(value);\n            counter--;\n          }\n        } else {\n          output.push(value);\n        }\n      }\n      return output;\n    }\n    var ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);\n    var basicToDigit = function(codePoint) {\n      if (codePoint >= 48 && codePoint < 58) {\n        return 26 + (codePoint - 48);\n      }\n      if (codePoint >= 65 && codePoint < 91) {\n        return codePoint - 65;\n      }\n      if (codePoint >= 97 && codePoint < 123) {\n        return codePoint - 97;\n      }\n      return base;\n    };\n    var digitToBasic = function(digit, flag) {\n      return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n    };\n    var adapt = function(delta, numPoints, firstTime) {\n      let k = 0;\n      delta = firstTime ? floor(delta / damp) : delta >> 1;\n      delta += floor(delta / numPoints);\n      for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n        delta = floor(delta / baseMinusTMin);\n      }\n      return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n    };\n    var decode = function(input) {\n      const output = [];\n      const inputLength = input.length;\n      let i = 0;\n      let n = initialN;\n      let bias = initialBias;\n      let basic = input.lastIndexOf(delimiter);\n      if (basic < 0) {\n        basic = 0;\n      }\n      for (let j = 0; j < basic; ++j) {\n        if (input.charCodeAt(j) >= 128) {\n          error(\"not-basic\");\n        }\n        output.push(input.charCodeAt(j));\n      }\n      for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {\n        const oldi = i;\n        for (let w = 1, k = base; ; k += base) {\n          if (index >= inputLength) {\n            error(\"invalid-input\");\n          }\n          const digit = basicToDigit(input.charCodeAt(index++));\n          if (digit >= base) {\n            error(\"invalid-input\");\n          }\n          if (digit > floor((maxInt - i) / w)) {\n            error(\"overflow\");\n          }\n          i += digit * w;\n          const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n          if (digit < t) {\n            break;\n          }\n          const baseMinusT = base - t;\n          if (w > floor(maxInt / baseMinusT)) {\n            error(\"overflow\");\n          }\n          w *= baseMinusT;\n        }\n        const out = output.length + 1;\n        bias = adapt(i - oldi, out, oldi == 0);\n        if (floor(i / out) > maxInt - n) {\n          error(\"overflow\");\n        }\n        n += floor(i / out);\n        i %= out;\n        output.splice(i++, 0, n);\n      }\n      return String.fromCodePoint(...output);\n    };\n    var encode = function(input) {\n      const output = [];\n      input = ucs2decode(input);\n      const inputLength = input.length;\n      let n = initialN;\n      let delta = 0;\n      let bias = initialBias;\n      for (const currentValue of input) {\n        if (currentValue < 128) {\n          output.push(stringFromCharCode(currentValue));\n        }\n      }\n      const basicLength = output.length;\n      let handledCPCount = basicLength;\n      if (basicLength) {\n        output.push(delimiter);\n      }\n      while (handledCPCount < inputLength) {\n        let m = maxInt;\n        for (const currentValue of input) {\n          if (currentValue >= n && currentValue < m) {\n            m = currentValue;\n          }\n        }\n        const handledCPCountPlusOne = handledCPCount + 1;\n        if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n          error(\"overflow\");\n        }\n        delta += (m - n) * handledCPCountPlusOne;\n        n = m;\n        for (const currentValue of input) {\n          if (currentValue < n && ++delta > maxInt) {\n            error(\"overflow\");\n          }\n          if (currentValue === n) {\n            let q = delta;\n            for (let k = base; ; k += base) {\n              const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n              if (q < t) {\n                break;\n              }\n              const qMinusT = q - t;\n              const baseMinusT = base - t;\n              output.push(\n                stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n              );\n              q = floor(qMinusT / baseMinusT);\n            }\n            output.push(stringFromCharCode(digitToBasic(q, 0)));\n            bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n            delta = 0;\n            ++handledCPCount;\n          }\n        }\n        ++delta;\n        ++n;\n      }\n      return output.join(\"\");\n    };\n    var toUnicode = function(input) {\n      return mapDomain(input, function(string) {\n        return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n      });\n    };\n    var toASCII = function(input) {\n      return mapDomain(input, function(string) {\n        return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n      });\n    };\n    var punycode = {\n      /**\n       * A string representing the current Punycode.js version number.\n       * @memberOf punycode\n       * @type String\n       */\n      \"version\": \"2.3.1\",\n      /**\n       * An object of methods to convert from JavaScript's internal character\n       * representation (UCS-2) to Unicode code points, and back.\n       * @see <https://mathiasbynens.be/notes/javascript-encoding>\n       * @memberOf punycode\n       * @type Object\n       */\n      \"ucs2\": {\n        \"decode\": ucs2decode,\n        \"encode\": ucs2encode\n      },\n      \"decode\": decode,\n      \"encode\": encode,\n      \"toASCII\": toASCII,\n      \"toUnicode\": toUnicode\n    };\n    module.exports = punycode;\n  }\n});\n\n// node_modules/requires-port/index.js\nvar require_requires_port = __commonJS({\n  \"node_modules/requires-port/index.js\"(exports, module) {\n    \"use strict\";\n    module.exports = function required(port, protocol) {\n      protocol = protocol.split(\":\")[0];\n      port = +port;\n      if (!port) return false;\n      switch (protocol) {\n        case \"http\":\n        case \"ws\":\n          return port !== 80;\n        case \"https\":\n        case \"wss\":\n          return port !== 443;\n        case \"ftp\":\n          return port !== 21;\n        case \"gopher\":\n          return port !== 70;\n        case \"file\":\n          return false;\n      }\n      return port !== 0;\n    };\n  }\n});\n\n// node_modules/querystringify/index.js\nvar require_querystringify = __commonJS({\n  \"node_modules/querystringify/index.js\"(exports) {\n    \"use strict\";\n    var has = Object.prototype.hasOwnProperty;\n    var undef;\n    function decode(input) {\n      try {\n        return decodeURIComponent(input.replace(/\\+/g, \" \"));\n      } catch (e) {\n        return null;\n      }\n    }\n    function encode(input) {\n      try {\n        return encodeURIComponent(input);\n      } catch (e) {\n        return null;\n      }\n    }\n    function querystring(query) {\n      var parser = /([^=?#&]+)=?([^&]*)/g, result = {}, part;\n      while (part = parser.exec(query)) {\n        var key = decode(part[1]), value = decode(part[2]);\n        if (key === null || value === null || key in result) continue;\n        result[key] = value;\n      }\n      return result;\n    }\n    function querystringify(obj, prefix) {\n      prefix = prefix || \"\";\n      var pairs = [], value, key;\n      if (\"string\" !== typeof prefix) prefix = \"?\";\n      for (key in obj) {\n        if (has.call(obj, key)) {\n          value = obj[key];\n          if (!value && (value === null || value === undef || isNaN(value))) {\n            value = \"\";\n          }\n          key = encode(key);\n          value = encode(value);\n          if (key === null || value === null) continue;\n          pairs.push(key + \"=\" + value);\n        }\n      }\n      return pairs.length ? prefix + pairs.join(\"&\") : \"\";\n    }\n    exports.stringify = querystringify;\n    exports.parse = querystring;\n  }\n});\n\n// node_modules/url-parse/index.js\nvar require_url_parse = __commonJS({\n  \"node_modules/url-parse/index.js\"(exports, module) {\n    \"use strict\";\n    var required = require_requires_port();\n    var qs = require_querystringify();\n    var controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/;\n    var CRHTLF = /[\\n\\r\\t]/g;\n    var slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//;\n    var port = /:\\d+$/;\n    var protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i;\n    var windowsDriveLetter = /^[a-zA-Z]:/;\n    function trimLeft(str) {\n      return (str ? str : \"\").toString().replace(controlOrWhitespace, \"\");\n    }\n    var rules = [\n      [\"#\", \"hash\"],\n      // Extract from the back.\n      [\"?\", \"query\"],\n      // Extract from the back.\n      function sanitize(address, url) {\n        return isSpecial(url.protocol) ? address.replace(/\\\\/g, \"/\") : address;\n      },\n      [\"/\", \"pathname\"],\n      // Extract from the back.\n      [\"@\", \"auth\", 1],\n      // Extract from the front.\n      [NaN, \"host\", void 0, 1, 1],\n      // Set left over value.\n      [/:(\\d*)$/, \"port\", void 0, 1],\n      // RegExp the back.\n      [NaN, \"hostname\", void 0, 1, 1]\n      // Set left over.\n    ];\n    var ignore = { hash: 1, query: 1 };\n    function lolcation(loc) {\n      var globalVar;\n      if (typeof window !== \"undefined\") globalVar = window;\n      else if (typeof global !== \"undefined\") globalVar = global;\n      else if (typeof self !== \"undefined\") globalVar = self;\n      else globalVar = {};\n      var location = globalVar.location || {};\n      loc = loc || location;\n      var finaldestination = {}, type = typeof loc, key;\n      if (\"blob:\" === loc.protocol) {\n        finaldestination = new Url(unescape(loc.pathname), {});\n      } else if (\"string\" === type) {\n        finaldestination = new Url(loc, {});\n        for (key in ignore) delete finaldestination[key];\n      } else if (\"object\" === type) {\n        for (key in loc) {\n          if (key in ignore) continue;\n          finaldestination[key] = loc[key];\n        }\n        if (finaldestination.slashes === void 0) {\n          finaldestination.slashes = slashes.test(loc.href);\n        }\n      }\n      return finaldestination;\n    }\n    function isSpecial(scheme) {\n      return scheme === \"file:\" || scheme === \"ftp:\" || scheme === \"http:\" || scheme === \"https:\" || scheme === \"ws:\" || scheme === \"wss:\";\n    }\n    function extractProtocol(address, location) {\n      address = trimLeft(address);\n      address = address.replace(CRHTLF, \"\");\n      location = location || {};\n      var match = protocolre.exec(address);\n      var protocol = match[1] ? match[1].toLowerCase() : \"\";\n      var forwardSlashes = !!match[2];\n      var otherSlashes = !!match[3];\n      var slashesCount = 0;\n      var rest;\n      if (forwardSlashes) {\n        if (otherSlashes) {\n          rest = match[2] + match[3] + match[4];\n          slashesCount = match[2].length + match[3].length;\n        } else {\n          rest = match[2] + match[4];\n          slashesCount = match[2].length;\n        }\n      } else {\n        if (otherSlashes) {\n          rest = match[3] + match[4];\n          slashesCount = match[3].length;\n        } else {\n          rest = match[4];\n        }\n      }\n      if (protocol === \"file:\") {\n        if (slashesCount >= 2) {\n          rest = rest.slice(2);\n        }\n      } else if (isSpecial(protocol)) {\n        rest = match[4];\n      } else if (protocol) {\n        if (forwardSlashes) {\n          rest = rest.slice(2);\n        }\n      } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n        rest = match[4];\n      }\n      return {\n        protocol,\n        slashes: forwardSlashes || isSpecial(protocol),\n        slashesCount,\n        rest\n      };\n    }\n    function resolve(relative, base) {\n      if (relative === \"\") return base;\n      var path = (base || \"/\").split(\"/\").slice(0, -1).concat(relative.split(\"/\")), i = path.length, last = path[i - 1], unshift = false, up = 0;\n      while (i--) {\n        if (path[i] === \".\") {\n          path.splice(i, 1);\n        } else if (path[i] === \"..\") {\n          path.splice(i, 1);\n          up++;\n        } else if (up) {\n          if (i === 0) unshift = true;\n          path.splice(i, 1);\n          up--;\n        }\n      }\n      if (unshift) path.unshift(\"\");\n      if (last === \".\" || last === \"..\") path.push(\"\");\n      return path.join(\"/\");\n    }\n    function Url(address, location, parser) {\n      address = trimLeft(address);\n      address = address.replace(CRHTLF, \"\");\n      if (!(this instanceof Url)) {\n        return new Url(address, location, parser);\n      }\n      var relative, extracted, parse, instruction, index, key, instructions = rules.slice(), type = typeof location, url = this, i = 0;\n      if (\"object\" !== type && \"string\" !== type) {\n        parser = location;\n        location = null;\n      }\n      if (parser && \"function\" !== typeof parser) parser = qs.parse;\n      location = lolcation(location);\n      extracted = extractProtocol(address || \"\", location);\n      relative = !extracted.protocol && !extracted.slashes;\n      url.slashes = extracted.slashes || relative && location.slashes;\n      url.protocol = extracted.protocol || location.protocol || \"\";\n      address = extracted.rest;\n      if (extracted.protocol === \"file:\" && (extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) || !extracted.slashes && (extracted.protocol || extracted.slashesCount < 2 || !isSpecial(url.protocol))) {\n        instructions[3] = [/(.*)/, \"pathname\"];\n      }\n      for (; i < instructions.length; i++) {\n        instruction = instructions[i];\n        if (typeof instruction === \"function\") {\n          address = instruction(address, url);\n          continue;\n        }\n        parse = instruction[0];\n        key = instruction[1];\n        if (parse !== parse) {\n          url[key] = address;\n        } else if (\"string\" === typeof parse) {\n          index = parse === \"@\" ? address.lastIndexOf(parse) : address.indexOf(parse);\n          if (~index) {\n            if (\"number\" === typeof instruction[2]) {\n              url[key] = address.slice(0, index);\n              address = address.slice(index + instruction[2]);\n            } else {\n              url[key] = address.slice(index);\n              address = address.slice(0, index);\n            }\n          }\n        } else if (index = parse.exec(address)) {\n          url[key] = index[1];\n          address = address.slice(0, index.index);\n        }\n        url[key] = url[key] || (relative && instruction[3] ? location[key] || \"\" : \"\");\n        if (instruction[4]) url[key] = url[key].toLowerCase();\n      }\n      if (parser) url.query = parser(url.query);\n      if (relative && location.slashes && url.pathname.charAt(0) !== \"/\" && (url.pathname !== \"\" || location.pathname !== \"\")) {\n        url.pathname = resolve(url.pathname, location.pathname);\n      }\n      if (url.pathname.charAt(0) !== \"/\" && isSpecial(url.protocol)) {\n        url.pathname = \"/\" + url.pathname;\n      }\n      if (!required(url.port, url.protocol)) {\n        url.host = url.hostname;\n        url.port = \"\";\n      }\n      url.username = url.password = \"\";\n      if (url.auth) {\n        index = url.auth.indexOf(\":\");\n        if (~index) {\n          url.username = url.auth.slice(0, index);\n          url.username = encodeURIComponent(decodeURIComponent(url.username));\n          url.password = url.auth.slice(index + 1);\n          url.password = encodeURIComponent(decodeURIComponent(url.password));\n        } else {\n          url.username = encodeURIComponent(decodeURIComponent(url.auth));\n        }\n        url.auth = url.password ? url.username + \":\" + url.password : url.username;\n      }\n      url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n      url.href = url.toString();\n    }\n    function set(part, value, fn) {\n      var url = this;\n      switch (part) {\n        case \"query\":\n          if (\"string\" === typeof value && value.length) {\n            value = (fn || qs.parse)(value);\n          }\n          url[part] = value;\n          break;\n        case \"port\":\n          url[part] = value;\n          if (!required(value, url.protocol)) {\n            url.host = url.hostname;\n            url[part] = \"\";\n          } else if (value) {\n            url.host = url.hostname + \":\" + value;\n          }\n          break;\n        case \"hostname\":\n          url[part] = value;\n          if (url.port) value += \":\" + url.port;\n          url.host = value;\n          break;\n        case \"host\":\n          url[part] = value;\n          if (port.test(value)) {\n            value = value.split(\":\");\n            url.port = value.pop();\n            url.hostname = value.join(\":\");\n          } else {\n            url.hostname = value;\n            url.port = \"\";\n          }\n          break;\n        case \"protocol\":\n          url.protocol = value.toLowerCase();\n          url.slashes = !fn;\n          break;\n        case \"pathname\":\n        case \"hash\":\n          if (value) {\n            var char = part === \"pathname\" ? \"/\" : \"#\";\n            url[part] = value.charAt(0) !== char ? char + value : value;\n          } else {\n            url[part] = value;\n          }\n          break;\n        case \"username\":\n        case \"password\":\n          url[part] = encodeURIComponent(value);\n          break;\n        case \"auth\":\n          var index = value.indexOf(\":\");\n          if (~index) {\n            url.username = value.slice(0, index);\n            url.username = encodeURIComponent(decodeURIComponent(url.username));\n            url.password = value.slice(index + 1);\n            url.password = encodeURIComponent(decodeURIComponent(url.password));\n          } else {\n            url.username = encodeURIComponent(decodeURIComponent(value));\n          }\n      }\n      for (var i = 0; i < rules.length; i++) {\n        var ins = rules[i];\n        if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n      }\n      url.auth = url.password ? url.username + \":\" + url.password : url.username;\n      url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n      url.href = url.toString();\n      return url;\n    }\n    function toString(stringify) {\n      if (!stringify || \"function\" !== typeof stringify) stringify = qs.stringify;\n      var query, url = this, host = url.host, protocol = url.protocol;\n      if (protocol && protocol.charAt(protocol.length - 1) !== \":\") protocol += \":\";\n      var result = protocol + (url.protocol && url.slashes || isSpecial(url.protocol) ? \"//\" : \"\");\n      if (url.username) {\n        result += url.username;\n        if (url.password) result += \":\" + url.password;\n        result += \"@\";\n      } else if (url.password) {\n        result += \":\" + url.password;\n        result += \"@\";\n      } else if (url.protocol !== \"file:\" && isSpecial(url.protocol) && !host && url.pathname !== \"/\") {\n        result += \"@\";\n      }\n      if (host[host.length - 1] === \":\" || port.test(url.hostname) && !url.port) {\n        host += \":\";\n      }\n      result += host + url.pathname;\n      query = \"object\" === typeof url.query ? stringify(url.query) : url.query;\n      if (query) result += \"?\" !== query.charAt(0) ? \"?\" + query : query;\n      if (url.hash) result += url.hash;\n      return result;\n    }\n    Url.prototype = { set, toString };\n    Url.extractProtocol = extractProtocol;\n    Url.location = lolcation;\n    Url.trimLeft = trimLeft;\n    Url.qs = qs;\n    module.exports = Url;\n  }\n});\n\n// node_modules/psl/data/rules.json\nvar require_rules = __commonJS({\n  \"node_modules/psl/data/rules.json\"(exports, module) {\n    module.exports = [\n      \"ac\",\n      \"com.ac\",\n      \"edu.ac\",\n      \"gov.ac\",\n      \"net.ac\",\n      \"mil.ac\",\n      \"org.ac\",\n      \"ad\",\n      \"nom.ad\",\n      \"ae\",\n      \"co.ae\",\n      \"net.ae\",\n      \"org.ae\",\n      \"sch.ae\",\n      \"ac.ae\",\n      \"gov.ae\",\n      \"mil.ae\",\n      \"aero\",\n      \"accident-investigation.aero\",\n      \"accident-prevention.aero\",\n      \"aerobatic.aero\",\n      \"aeroclub.aero\",\n      \"aerodrome.aero\",\n      \"agents.aero\",\n      \"aircraft.aero\",\n      \"airline.aero\",\n      \"airport.aero\",\n      \"air-surveillance.aero\",\n      \"airtraffic.aero\",\n      \"air-traffic-control.aero\",\n      \"ambulance.aero\",\n      \"amusement.aero\",\n      \"association.aero\",\n      \"author.aero\",\n      \"ballooning.aero\",\n      \"broker.aero\",\n      \"caa.aero\",\n      \"cargo.aero\",\n      \"catering.aero\",\n      \"certification.aero\",\n      \"championship.aero\",\n      \"charter.aero\",\n      \"civilaviation.aero\",\n      \"club.aero\",\n      \"conference.aero\",\n      \"consultant.aero\",\n      \"consulting.aero\",\n      \"control.aero\",\n      \"council.aero\",\n      \"crew.aero\",\n      \"design.aero\",\n      \"dgca.aero\",\n      \"educator.aero\",\n      \"emergency.aero\",\n      \"engine.aero\",\n      \"engineer.aero\",\n      \"entertainment.aero\",\n      \"equipment.aero\",\n      \"exchange.aero\",\n      \"express.aero\",\n      \"federation.aero\",\n      \"flight.aero\",\n      \"fuel.aero\",\n      \"gliding.aero\",\n      \"government.aero\",\n      \"groundhandling.aero\",\n      \"group.aero\",\n      \"hanggliding.aero\",\n      \"homebuilt.aero\",\n      \"insurance.aero\",\n      \"journal.aero\",\n      \"journalist.aero\",\n      \"leasing.aero\",\n      \"logistics.aero\",\n      \"magazine.aero\",\n      \"maintenance.aero\",\n      \"media.aero\",\n      \"microlight.aero\",\n      \"modelling.aero\",\n      \"navigation.aero\",\n      \"parachuting.aero\",\n      \"paragliding.aero\",\n      \"passenger-association.aero\",\n      \"pilot.aero\",\n      \"press.aero\",\n      \"production.aero\",\n      \"recreation.aero\",\n      \"repbody.aero\",\n      \"res.aero\",\n      \"research.aero\",\n      \"rotorcraft.aero\",\n      \"safety.aero\",\n      \"scientist.aero\",\n      \"services.aero\",\n      \"show.aero\",\n      \"skydiving.aero\",\n      \"software.aero\",\n      \"student.aero\",\n      \"trader.aero\",\n      \"trading.aero\",\n      \"trainer.aero\",\n      \"union.aero\",\n      \"workinggroup.aero\",\n      \"works.aero\",\n      \"af\",\n      \"gov.af\",\n      \"com.af\",\n      \"org.af\",\n      \"net.af\",\n      \"edu.af\",\n      \"ag\",\n      \"com.ag\",\n      \"org.ag\",\n      \"net.ag\",\n      \"co.ag\",\n      \"nom.ag\",\n      \"ai\",\n      \"off.ai\",\n      \"com.ai\",\n      \"net.ai\",\n      \"org.ai\",\n      \"al\",\n      \"com.al\",\n      \"edu.al\",\n      \"gov.al\",\n      \"mil.al\",\n      \"net.al\",\n      \"org.al\",\n      \"am\",\n      \"co.am\",\n      \"com.am\",\n      \"commune.am\",\n      \"net.am\",\n      \"org.am\",\n      \"ao\",\n      \"ed.ao\",\n      \"gv.ao\",\n      \"og.ao\",\n      \"co.ao\",\n      \"pb.ao\",\n      \"it.ao\",\n      \"aq\",\n      \"ar\",\n      \"bet.ar\",\n      \"com.ar\",\n      \"coop.ar\",\n      \"edu.ar\",\n      \"gob.ar\",\n      \"gov.ar\",\n      \"int.ar\",\n      \"mil.ar\",\n      \"musica.ar\",\n      \"mutual.ar\",\n      \"net.ar\",\n      \"org.ar\",\n      \"senasa.ar\",\n      \"tur.ar\",\n      \"arpa\",\n      \"e164.arpa\",\n      \"in-addr.arpa\",\n      \"ip6.arpa\",\n      \"iris.arpa\",\n      \"uri.arpa\",\n      \"urn.arpa\",\n      \"as\",\n      \"gov.as\",\n      \"asia\",\n      \"at\",\n      \"ac.at\",\n      \"co.at\",\n      \"gv.at\",\n      \"or.at\",\n      \"sth.ac.at\",\n      \"au\",\n      \"com.au\",\n      \"net.au\",\n      \"org.au\",\n      \"edu.au\",\n      \"gov.au\",\n      \"asn.au\",\n      \"id.au\",\n      \"info.au\",\n      \"conf.au\",\n      \"oz.au\",\n      \"act.au\",\n      \"nsw.au\",\n      \"nt.au\",\n      \"qld.au\",\n      \"sa.au\",\n      \"tas.au\",\n      \"vic.au\",\n      \"wa.au\",\n      \"act.edu.au\",\n      \"catholic.edu.au\",\n      \"nsw.edu.au\",\n      \"nt.edu.au\",\n      \"qld.edu.au\",\n      \"sa.edu.au\",\n      \"tas.edu.au\",\n      \"vic.edu.au\",\n      \"wa.edu.au\",\n      \"qld.gov.au\",\n      \"sa.gov.au\",\n      \"tas.gov.au\",\n      \"vic.gov.au\",\n      \"wa.gov.au\",\n      \"schools.nsw.edu.au\",\n      \"aw\",\n      \"com.aw\",\n      \"ax\",\n      \"az\",\n      \"com.az\",\n      \"net.az\",\n      \"int.az\",\n      \"gov.az\",\n      \"org.az\",\n      \"edu.az\",\n      \"info.az\",\n      \"pp.az\",\n      \"mil.az\",\n      \"name.az\",\n      \"pro.az\",\n      \"biz.az\",\n      \"ba\",\n      \"com.ba\",\n      \"edu.ba\",\n      \"gov.ba\",\n      \"mil.ba\",\n      \"net.ba\",\n      \"org.ba\",\n      \"bb\",\n      \"biz.bb\",\n      \"co.bb\",\n      \"com.bb\",\n      \"edu.bb\",\n      \"gov.bb\",\n      \"info.bb\",\n      \"net.bb\",\n      \"org.bb\",\n      \"store.bb\",\n      \"tv.bb\",\n      \"*.bd\",\n      \"be\",\n      \"ac.be\",\n      \"bf\",\n      \"gov.bf\",\n      \"bg\",\n      \"a.bg\",\n      \"b.bg\",\n      \"c.bg\",\n      \"d.bg\",\n      \"e.bg\",\n      \"f.bg\",\n      \"g.bg\",\n      \"h.bg\",\n      \"i.bg\",\n      \"j.bg\",\n      \"k.bg\",\n      \"l.bg\",\n      \"m.bg\",\n      \"n.bg\",\n      \"o.bg\",\n      \"p.bg\",\n      \"q.bg\",\n      \"r.bg\",\n      \"s.bg\",\n      \"t.bg\",\n      \"u.bg\",\n      \"v.bg\",\n      \"w.bg\",\n      \"x.bg\",\n      \"y.bg\",\n      \"z.bg\",\n      \"0.bg\",\n      \"1.bg\",\n      \"2.bg\",\n      \"3.bg\",\n      \"4.bg\",\n      \"5.bg\",\n      \"6.bg\",\n      \"7.bg\",\n      \"8.bg\",\n      \"9.bg\",\n      \"bh\",\n      \"com.bh\",\n      \"edu.bh\",\n      \"net.bh\",\n      \"org.bh\",\n      \"gov.bh\",\n      \"bi\",\n      \"co.bi\",\n      \"com.bi\",\n      \"edu.bi\",\n      \"or.bi\",\n      \"org.bi\",\n      \"biz\",\n      \"bj\",\n      \"asso.bj\",\n      \"barreau.bj\",\n      \"gouv.bj\",\n      \"bm\",\n      \"com.bm\",\n      \"edu.bm\",\n      \"gov.bm\",\n      \"net.bm\",\n      \"org.bm\",\n      \"bn\",\n      \"com.bn\",\n      \"edu.bn\",\n      \"gov.bn\",\n      \"net.bn\",\n      \"org.bn\",\n      \"bo\",\n      \"com.bo\",\n      \"edu.bo\",\n      \"gob.bo\",\n      \"int.bo\",\n      \"org.bo\",\n      \"net.bo\",\n      \"mil.bo\",\n      \"tv.bo\",\n      \"web.bo\",\n      \"academia.bo\",\n      \"agro.bo\",\n      \"arte.bo\",\n      \"blog.bo\",\n      \"bolivia.bo\",\n      \"ciencia.bo\",\n      \"cooperativa.bo\",\n      \"democracia.bo\",\n      \"deporte.bo\",\n      \"ecologia.bo\",\n      \"economia.bo\",\n      \"empresa.bo\",\n      \"indigena.bo\",\n      \"industria.bo\",\n      \"info.bo\",\n      \"medicina.bo\",\n      \"movimiento.bo\",\n      \"musica.bo\",\n      \"natural.bo\",\n      \"nombre.bo\",\n      \"noticias.bo\",\n      \"patria.bo\",\n      \"politica.bo\",\n      \"profesional.bo\",\n      \"plurinacional.bo\",\n      \"pueblo.bo\",\n      \"revista.bo\",\n      \"salud.bo\",\n      \"tecnologia.bo\",\n      \"tksat.bo\",\n      \"transporte.bo\",\n      \"wiki.bo\",\n      \"br\",\n      \"9guacu.br\",\n      \"abc.br\",\n      \"adm.br\",\n      \"adv.br\",\n      \"agr.br\",\n      \"aju.br\",\n      \"am.br\",\n      \"anani.br\",\n      \"aparecida.br\",\n      \"app.br\",\n      \"arq.br\",\n      \"art.br\",\n      \"ato.br\",\n      \"b.br\",\n      \"barueri.br\",\n      \"belem.br\",\n      \"bhz.br\",\n      \"bib.br\",\n      \"bio.br\",\n      \"blog.br\",\n      \"bmd.br\",\n      \"boavista.br\",\n      \"bsb.br\",\n      \"campinagrande.br\",\n      \"campinas.br\",\n      \"caxias.br\",\n      \"cim.br\",\n      \"cng.br\",\n      \"cnt.br\",\n      \"com.br\",\n      \"contagem.br\",\n      \"coop.br\",\n      \"coz.br\",\n      \"cri.br\",\n      \"cuiaba.br\",\n      \"curitiba.br\",\n      \"def.br\",\n      \"des.br\",\n      \"det.br\",\n      \"dev.br\",\n      \"ecn.br\",\n      \"eco.br\",\n      \"edu.br\",\n      \"emp.br\",\n      \"enf.br\",\n      \"eng.br\",\n      \"esp.br\",\n      \"etc.br\",\n      \"eti.br\",\n      \"far.br\",\n      \"feira.br\",\n      \"flog.br\",\n      \"floripa.br\",\n      \"fm.br\",\n      \"fnd.br\",\n      \"fortal.br\",\n      \"fot.br\",\n      \"foz.br\",\n      \"fst.br\",\n      \"g12.br\",\n      \"geo.br\",\n      \"ggf.br\",\n      \"goiania.br\",\n      \"gov.br\",\n      \"ac.gov.br\",\n      \"al.gov.br\",\n      \"am.gov.br\",\n      \"ap.gov.br\",\n      \"ba.gov.br\",\n      \"ce.gov.br\",\n      \"df.gov.br\",\n      \"es.gov.br\",\n      \"go.gov.br\",\n      \"ma.gov.br\",\n      \"mg.gov.br\",\n      \"ms.gov.br\",\n      \"mt.gov.br\",\n      \"pa.gov.br\",\n      \"pb.gov.br\",\n      \"pe.gov.br\",\n      \"pi.gov.br\",\n      \"pr.gov.br\",\n      \"rj.gov.br\",\n      \"rn.gov.br\",\n      \"ro.gov.br\",\n      \"rr.gov.br\",\n      \"rs.gov.br\",\n      \"sc.gov.br\",\n      \"se.gov.br\",\n      \"sp.gov.br\",\n      \"to.gov.br\",\n      \"gru.br\",\n      \"imb.br\",\n      \"ind.br\",\n      \"inf.br\",\n      \"jab.br\",\n      \"jampa.br\",\n      \"jdf.br\",\n      \"joinville.br\",\n      \"jor.br\",\n      \"jus.br\",\n      \"leg.br\",\n      \"lel.br\",\n      \"log.br\",\n      \"londrina.br\",\n      \"macapa.br\",\n      \"maceio.br\",\n      \"manaus.br\",\n      \"maringa.br\",\n      \"mat.br\",\n      \"med.br\",\n      \"mil.br\",\n      \"morena.br\",\n      \"mp.br\",\n      \"mus.br\",\n      \"natal.br\",\n      \"net.br\",\n      \"niteroi.br\",\n      \"*.nom.br\",\n      \"not.br\",\n      \"ntr.br\",\n      \"odo.br\",\n      \"ong.br\",\n      \"org.br\",\n      \"osasco.br\",\n      \"palmas.br\",\n      \"poa.br\",\n      \"ppg.br\",\n      \"pro.br\",\n      \"psc.br\",\n      \"psi.br\",\n      \"pvh.br\",\n      \"qsl.br\",\n      \"radio.br\",\n      \"rec.br\",\n      \"recife.br\",\n      \"rep.br\",\n      \"ribeirao.br\",\n      \"rio.br\",\n      \"riobranco.br\",\n      \"riopreto.br\",\n      \"salvador.br\",\n      \"sampa.br\",\n      \"santamaria.br\",\n      \"santoandre.br\",\n      \"saobernardo.br\",\n      \"saogonca.br\",\n      \"seg.br\",\n      \"sjc.br\",\n      \"slg.br\",\n      \"slz.br\",\n      \"sorocaba.br\",\n      \"srv.br\",\n      \"taxi.br\",\n      \"tc.br\",\n      \"tec.br\",\n      \"teo.br\",\n      \"the.br\",\n      \"tmp.br\",\n      \"trd.br\",\n      \"tur.br\",\n      \"tv.br\",\n      \"udi.br\",\n      \"vet.br\",\n      \"vix.br\",\n      \"vlog.br\",\n      \"wiki.br\",\n      \"zlg.br\",\n      \"bs\",\n      \"com.bs\",\n      \"net.bs\",\n      \"org.bs\",\n      \"edu.bs\",\n      \"gov.bs\",\n      \"bt\",\n      \"com.bt\",\n      \"edu.bt\",\n      \"gov.bt\",\n      \"net.bt\",\n      \"org.bt\",\n      \"bv\",\n      \"bw\",\n      \"co.bw\",\n      \"org.bw\",\n      \"by\",\n      \"gov.by\",\n      \"mil.by\",\n      \"com.by\",\n      \"of.by\",\n      \"bz\",\n      \"com.bz\",\n      \"net.bz\",\n      \"org.bz\",\n      \"edu.bz\",\n      \"gov.bz\",\n      \"ca\",\n      \"ab.ca\",\n      \"bc.ca\",\n      \"mb.ca\",\n      \"nb.ca\",\n      \"nf.ca\",\n      \"nl.ca\",\n      \"ns.ca\",\n      \"nt.ca\",\n      \"nu.ca\",\n      \"on.ca\",\n      \"pe.ca\",\n      \"qc.ca\",\n      \"sk.ca\",\n      \"yk.ca\",\n      \"gc.ca\",\n      \"cat\",\n      \"cc\",\n      \"cd\",\n      \"gov.cd\",\n      \"cf\",\n      \"cg\",\n      \"ch\",\n      \"ci\",\n      \"org.ci\",\n      \"or.ci\",\n      \"com.ci\",\n      \"co.ci\",\n      \"edu.ci\",\n      \"ed.ci\",\n      \"ac.ci\",\n      \"net.ci\",\n      \"go.ci\",\n      \"asso.ci\",\n      \"a\\xE9roport.ci\",\n      \"int.ci\",\n      \"presse.ci\",\n      \"md.ci\",\n      \"gouv.ci\",\n      \"*.ck\",\n      \"!www.ck\",\n      \"cl\",\n      \"co.cl\",\n      \"gob.cl\",\n      \"gov.cl\",\n      \"mil.cl\",\n      \"cm\",\n      \"co.cm\",\n      \"com.cm\",\n      \"gov.cm\",\n      \"net.cm\",\n      \"cn\",\n      \"ac.cn\",\n      \"com.cn\",\n      \"edu.cn\",\n      \"gov.cn\",\n      \"net.cn\",\n      \"org.cn\",\n      \"mil.cn\",\n      \"\\u516C\\u53F8.cn\",\n      \"\\u7F51\\u7EDC.cn\",\n      \"\\u7DB2\\u7D61.cn\",\n      \"ah.cn\",\n      \"bj.cn\",\n      \"cq.cn\",\n      \"fj.cn\",\n      \"gd.cn\",\n      \"gs.cn\",\n      \"gz.cn\",\n      \"gx.cn\",\n      \"ha.cn\",\n      \"hb.cn\",\n      \"he.cn\",\n      \"hi.cn\",\n      \"hl.cn\",\n      \"hn.cn\",\n      \"jl.cn\",\n      \"js.cn\",\n      \"jx.cn\",\n      \"ln.cn\",\n      \"nm.cn\",\n      \"nx.cn\",\n      \"qh.cn\",\n      \"sc.cn\",\n      \"sd.cn\",\n      \"sh.cn\",\n      \"sn.cn\",\n      \"sx.cn\",\n      \"tj.cn\",\n      \"xj.cn\",\n      \"xz.cn\",\n      \"yn.cn\",\n      \"zj.cn\",\n      \"hk.cn\",\n      \"mo.cn\",\n      \"tw.cn\",\n      \"co\",\n      \"arts.co\",\n      \"com.co\",\n      \"edu.co\",\n      \"firm.co\",\n      \"gov.co\",\n      \"info.co\",\n      \"int.co\",\n      \"mil.co\",\n      \"net.co\",\n      \"nom.co\",\n      \"org.co\",\n      \"rec.co\",\n      \"web.co\",\n      \"com\",\n      \"coop\",\n      \"cr\",\n      \"ac.cr\",\n      \"co.cr\",\n      \"ed.cr\",\n      \"fi.cr\",\n      \"go.cr\",\n      \"or.cr\",\n      \"sa.cr\",\n      \"cu\",\n      \"com.cu\",\n      \"edu.cu\",\n      \"org.cu\",\n      \"net.cu\",\n      \"gov.cu\",\n      \"inf.cu\",\n      \"cv\",\n      \"com.cv\",\n      \"edu.cv\",\n      \"int.cv\",\n      \"nome.cv\",\n      \"org.cv\",\n      \"cw\",\n      \"com.cw\",\n      \"edu.cw\",\n      \"net.cw\",\n      \"org.cw\",\n      \"cx\",\n      \"gov.cx\",\n      \"cy\",\n      \"ac.cy\",\n      \"biz.cy\",\n      \"com.cy\",\n      \"ekloges.cy\",\n      \"gov.cy\",\n      \"ltd.cy\",\n      \"mil.cy\",\n      \"net.cy\",\n      \"org.cy\",\n      \"press.cy\",\n      \"pro.cy\",\n      \"tm.cy\",\n      \"cz\",\n      \"de\",\n      \"dj\",\n      \"dk\",\n      \"dm\",\n      \"com.dm\",\n      \"net.dm\",\n      \"org.dm\",\n      \"edu.dm\",\n      \"gov.dm\",\n      \"do\",\n      \"art.do\",\n      \"com.do\",\n      \"edu.do\",\n      \"gob.do\",\n      \"gov.do\",\n      \"mil.do\",\n      \"net.do\",\n      \"org.do\",\n      \"sld.do\",\n      \"web.do\",\n      \"dz\",\n      \"art.dz\",\n      \"asso.dz\",\n      \"com.dz\",\n      \"edu.dz\",\n      \"gov.dz\",\n      \"org.dz\",\n      \"net.dz\",\n      \"pol.dz\",\n      \"soc.dz\",\n      \"tm.dz\",\n      \"ec\",\n      \"com.ec\",\n      \"info.ec\",\n      \"net.ec\",\n      \"fin.ec\",\n      \"k12.ec\",\n      \"med.ec\",\n      \"pro.ec\",\n      \"org.ec\",\n      \"edu.ec\",\n      \"gov.ec\",\n      \"gob.ec\",\n      \"mil.ec\",\n      \"edu\",\n      \"ee\",\n      \"edu.ee\",\n      \"gov.ee\",\n      \"riik.ee\",\n      \"lib.ee\",\n      \"med.ee\",\n      \"com.ee\",\n      \"pri.ee\",\n      \"aip.ee\",\n      \"org.ee\",\n      \"fie.ee\",\n      \"eg\",\n      \"com.eg\",\n      \"edu.eg\",\n      \"eun.eg\",\n      \"gov.eg\",\n      \"mil.eg\",\n      \"name.eg\",\n      \"net.eg\",\n      \"org.eg\",\n      \"sci.eg\",\n      \"*.er\",\n      \"es\",\n      \"com.es\",\n      \"nom.es\",\n      \"org.es\",\n      \"gob.es\",\n      \"edu.es\",\n      \"et\",\n      \"com.et\",\n      \"gov.et\",\n      \"org.et\",\n      \"edu.et\",\n      \"biz.et\",\n      \"name.et\",\n      \"info.et\",\n      \"net.et\",\n      \"eu\",\n      \"fi\",\n      \"aland.fi\",\n      \"fj\",\n      \"ac.fj\",\n      \"biz.fj\",\n      \"com.fj\",\n      \"gov.fj\",\n      \"info.fj\",\n      \"mil.fj\",\n      \"name.fj\",\n      \"net.fj\",\n      \"org.fj\",\n      \"pro.fj\",\n      \"*.fk\",\n      \"com.fm\",\n      \"edu.fm\",\n      \"net.fm\",\n      \"org.fm\",\n      \"fm\",\n      \"fo\",\n      \"fr\",\n      \"asso.fr\",\n      \"com.fr\",\n      \"gouv.fr\",\n      \"nom.fr\",\n      \"prd.fr\",\n      \"tm.fr\",\n      \"aeroport.fr\",\n      \"avocat.fr\",\n      \"avoues.fr\",\n      \"cci.fr\",\n      \"chambagri.fr\",\n      \"chirurgiens-dentistes.fr\",\n      \"experts-comptables.fr\",\n      \"geometre-expert.fr\",\n      \"greta.fr\",\n      \"huissier-justice.fr\",\n      \"medecin.fr\",\n      \"notaires.fr\",\n      \"pharmacien.fr\",\n      \"port.fr\",\n      \"veterinaire.fr\",\n      \"ga\",\n      \"gb\",\n      \"edu.gd\",\n      \"gov.gd\",\n      \"gd\",\n      \"ge\",\n      \"com.ge\",\n      \"edu.ge\",\n      \"gov.ge\",\n      \"org.ge\",\n      \"mil.ge\",\n      \"net.ge\",\n      \"pvt.ge\",\n      \"gf\",\n      \"gg\",\n      \"co.gg\",\n      \"net.gg\",\n      \"org.gg\",\n      \"gh\",\n      \"com.gh\",\n      \"edu.gh\",\n      \"gov.gh\",\n      \"org.gh\",\n      \"mil.gh\",\n      \"gi\",\n      \"com.gi\",\n      \"ltd.gi\",\n      \"gov.gi\",\n      \"mod.gi\",\n      \"edu.gi\",\n      \"org.gi\",\n      \"gl\",\n      \"co.gl\",\n      \"com.gl\",\n      \"edu.gl\",\n      \"net.gl\",\n      \"org.gl\",\n      \"gm\",\n      \"gn\",\n      \"ac.gn\",\n      \"com.gn\",\n      \"edu.gn\",\n      \"gov.gn\",\n      \"org.gn\",\n      \"net.gn\",\n      \"gov\",\n      \"gp\",\n      \"com.gp\",\n      \"net.gp\",\n      \"mobi.gp\",\n      \"edu.gp\",\n      \"org.gp\",\n      \"asso.gp\",\n      \"gq\",\n      \"gr\",\n      \"com.gr\",\n      \"edu.gr\",\n      \"net.gr\",\n      \"org.gr\",\n      \"gov.gr\",\n      \"gs\",\n      \"gt\",\n      \"com.gt\",\n      \"edu.gt\",\n      \"gob.gt\",\n      \"ind.gt\",\n      \"mil.gt\",\n      \"net.gt\",\n      \"org.gt\",\n      \"gu\",\n      \"com.gu\",\n      \"edu.gu\",\n      \"gov.gu\",\n      \"guam.gu\",\n      \"info.gu\",\n      \"net.gu\",\n      \"org.gu\",\n      \"web.gu\",\n      \"gw\",\n      \"gy\",\n      \"co.gy\",\n      \"com.gy\",\n      \"edu.gy\",\n      \"gov.gy\",\n      \"net.gy\",\n      \"org.gy\",\n      \"hk\",\n      \"com.hk\",\n      \"edu.hk\",\n      \"gov.hk\",\n      \"idv.hk\",\n      \"net.hk\",\n      \"org.hk\",\n      \"\\u516C\\u53F8.hk\",\n      \"\\u6559\\u80B2.hk\",\n      \"\\u654E\\u80B2.hk\",\n      \"\\u653F\\u5E9C.hk\",\n      \"\\u500B\\u4EBA.hk\",\n      \"\\u4E2A\\uFFFD\\uFFFD.hk\",\n      \"\\u7B87\\u4EBA.hk\",\n      \"\\u7DB2\\u7EDC.hk\",\n      \"\\u7F51\\u7EDC.hk\",\n      \"\\u7EC4\\u7E54.hk\",\n      \"\\u7DB2\\u7D61.hk\",\n      \"\\u7F51\\u7D61.hk\",\n      \"\\u7EC4\\u7EC7.hk\",\n      \"\\u7D44\\u7E54.hk\",\n      \"\\u7D44\\u7EC7.hk\",\n      \"hm\",\n      \"hn\",\n      \"com.hn\",\n      \"edu.hn\",\n      \"org.hn\",\n      \"net.hn\",\n      \"mil.hn\",\n      \"gob.hn\",\n      \"hr\",\n      \"iz.hr\",\n      \"from.hr\",\n      \"name.hr\",\n      \"com.hr\",\n      \"ht\",\n      \"com.ht\",\n      \"shop.ht\",\n      \"firm.ht\",\n      \"info.ht\",\n      \"adult.ht\",\n      \"net.ht\",\n      \"pro.ht\",\n      \"org.ht\",\n      \"med.ht\",\n      \"art.ht\",\n      \"coop.ht\",\n      \"pol.ht\",\n      \"asso.ht\",\n      \"edu.ht\",\n      \"rel.ht\",\n      \"gouv.ht\",\n      \"perso.ht\",\n      \"hu\",\n      \"co.hu\",\n      \"info.hu\",\n      \"org.hu\",\n      \"priv.hu\",\n      \"sport.hu\",\n      \"tm.hu\",\n      \"2000.hu\",\n      \"agrar.hu\",\n      \"bolt.hu\",\n      \"casino.hu\",\n      \"city.hu\",\n      \"erotica.hu\",\n      \"erotika.hu\",\n      \"film.hu\",\n      \"forum.hu\",\n      \"games.hu\",\n      \"hotel.hu\",\n      \"ingatlan.hu\",\n      \"jogasz.hu\",\n      \"konyvelo.hu\",\n      \"lakas.hu\",\n      \"media.hu\",\n      \"news.hu\",\n      \"reklam.hu\",\n      \"sex.hu\",\n      \"shop.hu\",\n      \"suli.hu\",\n      \"szex.hu\",\n      \"tozsde.hu\",\n      \"utazas.hu\",\n      \"video.hu\",\n      \"id\",\n      \"ac.id\",\n      \"biz.id\",\n      \"co.id\",\n      \"desa.id\",\n      \"go.id\",\n      \"mil.id\",\n      \"my.id\",\n      \"net.id\",\n      \"or.id\",\n      \"ponpes.id\",\n      \"sch.id\",\n      \"web.id\",\n      \"ie\",\n      \"gov.ie\",\n      \"il\",\n      \"ac.il\",\n      \"co.il\",\n      \"gov.il\",\n      \"idf.il\",\n      \"k12.il\",\n      \"muni.il\",\n      \"net.il\",\n      \"org.il\",\n      \"im\",\n      \"ac.im\",\n      \"co.im\",\n      \"com.im\",\n      \"ltd.co.im\",\n      \"net.im\",\n      \"org.im\",\n      \"plc.co.im\",\n      \"tt.im\",\n      \"tv.im\",\n      \"in\",\n      \"co.in\",\n      \"firm.in\",\n      \"net.in\",\n      \"org.in\",\n      \"gen.in\",\n      \"ind.in\",\n      \"nic.in\",\n      \"ac.in\",\n      \"edu.in\",\n      \"res.in\",\n      \"gov.in\",\n      \"mil.in\",\n      \"info\",\n      \"int\",\n      \"eu.int\",\n      \"io\",\n      \"com.io\",\n      \"iq\",\n      \"gov.iq\",\n      \"edu.iq\",\n      \"mil.iq\",\n      \"com.iq\",\n      \"org.iq\",\n      \"net.iq\",\n      \"ir\",\n      \"ac.ir\",\n      \"co.ir\",\n      \"gov.ir\",\n      \"id.ir\",\n      \"net.ir\",\n      \"org.ir\",\n      \"sch.ir\",\n      \"\\u0627\\u06CC\\u0631\\u0627\\u0646.ir\",\n      \"\\u0627\\u064A\\u0631\\u0627\\u0646.ir\",\n      \"is\",\n      \"net.is\",\n      \"com.is\",\n      \"edu.is\",\n      \"gov.is\",\n      \"org.is\",\n      \"int.is\",\n      \"it\",\n      \"gov.it\",\n      \"edu.it\",\n      \"abr.it\",\n      \"abruzzo.it\",\n      \"aosta-valley.it\",\n      \"aostavalley.it\",\n      \"bas.it\",\n      \"basilicata.it\",\n      \"cal.it\",\n      \"calabria.it\",\n      \"cam.it\",\n      \"campania.it\",\n      \"emilia-romagna.it\",\n      \"emiliaromagna.it\",\n      \"emr.it\",\n      \"friuli-v-giulia.it\",\n      \"friuli-ve-giulia.it\",\n      \"friuli-vegiulia.it\",\n      \"friuli-venezia-giulia.it\",\n      \"friuli-veneziagiulia.it\",\n      \"friuli-vgiulia.it\",\n      \"friuliv-giulia.it\",\n      \"friulive-giulia.it\",\n      \"friulivegiulia.it\",\n      \"friulivenezia-giulia.it\",\n      \"friuliveneziagiulia.it\",\n      \"friulivgiulia.it\",\n      \"fvg.it\",\n      \"laz.it\",\n      \"lazio.it\",\n      \"lig.it\",\n      \"liguria.it\",\n      \"lom.it\",\n      \"lombardia.it\",\n      \"lombardy.it\",\n      \"lucania.it\",\n      \"mar.it\",\n      \"marche.it\",\n      \"mol.it\",\n      \"molise.it\",\n      \"piedmont.it\",\n      \"piemonte.it\",\n      \"pmn.it\",\n      \"pug.it\",\n      \"puglia.it\",\n      \"sar.it\",\n      \"sardegna.it\",\n      \"sardinia.it\",\n      \"sic.it\",\n      \"sicilia.it\",\n      \"sicily.it\",\n      \"taa.it\",\n      \"tos.it\",\n      \"toscana.it\",\n      \"trentin-sud-tirol.it\",\n      \"trentin-s\\xFCd-tirol.it\",\n      \"trentin-sudtirol.it\",\n      \"trentin-s\\xFCdtirol.it\",\n      \"trentin-sued-tirol.it\",\n      \"trentin-suedtirol.it\",\n      \"trentino-a-adige.it\",\n      \"trentino-aadige.it\",\n      \"trentino-alto-adige.it\",\n      \"trentino-altoadige.it\",\n      \"trentino-s-tirol.it\",\n      \"trentino-stirol.it\",\n      \"trentino-sud-tirol.it\",\n      \"trentino-s\\xFCd-tirol.it\",\n      \"trentino-sudtirol.it\",\n      \"trentino-s\\xFCdtirol.it\",\n      \"trentino-sued-tirol.it\",\n      \"trentino-suedtirol.it\",\n      \"trentino.it\",\n      \"trentinoa-adige.it\",\n      \"trentinoaadige.it\",\n      \"trentinoalto-adige.it\",\n      \"trentinoaltoadige.it\",\n      \"trentinos-tirol.it\",\n      \"trentinostirol.it\",\n      \"trentinosud-tirol.it\",\n      \"trentinos\\xFCd-tirol.it\",\n      \"trentinosudtirol.it\",\n      \"trentinos\\xFCdtirol.it\",\n      \"trentinosued-tirol.it\",\n      \"trentinosuedtirol.it\",\n      \"trentinsud-tirol.it\",\n      \"trentins\\xFCd-tirol.it\",\n      \"trentinsudtirol.it\",\n      \"trentins\\xFCdtirol.it\",\n      \"trentinsued-tirol.it\",\n      \"trentinsuedtirol.it\",\n      \"tuscany.it\",\n      \"umb.it\",\n      \"umbria.it\",\n      \"val-d-aosta.it\",\n      \"val-daosta.it\",\n      \"vald-aosta.it\",\n      \"valdaosta.it\",\n      \"valle-aosta.it\",\n      \"valle-d-aosta.it\",\n      \"valle-daosta.it\",\n      \"valleaosta.it\",\n      \"valled-aosta.it\",\n      \"valledaosta.it\",\n      \"vallee-aoste.it\",\n      \"vall\\xE9e-aoste.it\",\n      \"vallee-d-aoste.it\",\n      \"vall\\xE9e-d-aoste.it\",\n      \"valleeaoste.it\",\n      \"vall\\xE9eaoste.it\",\n      \"valleedaoste.it\",\n      \"vall\\xE9edaoste.it\",\n      \"vao.it\",\n      \"vda.it\",\n      \"ven.it\",\n      \"veneto.it\",\n      \"ag.it\",\n      \"agrigento.it\",\n      \"al.it\",\n      \"alessandria.it\",\n      \"alto-adige.it\",\n      \"altoadige.it\",\n      \"an.it\",\n      \"ancona.it\",\n      \"andria-barletta-trani.it\",\n      \"andria-trani-barletta.it\",\n      \"andriabarlettatrani.it\",\n      \"andriatranibarletta.it\",\n      \"ao.it\",\n      \"aosta.it\",\n      \"aoste.it\",\n      \"ap.it\",\n      \"aq.it\",\n      \"aquila.it\",\n      \"ar.it\",\n      \"arezzo.it\",\n      \"ascoli-piceno.it\",\n      \"ascolipiceno.it\",\n      \"asti.it\",\n      \"at.it\",\n      \"av.it\",\n      \"avellino.it\",\n      \"ba.it\",\n      \"balsan-sudtirol.it\",\n      \"balsan-s\\xFCdtirol.it\",\n      \"balsan-suedtirol.it\",\n      \"balsan.it\",\n      \"bari.it\",\n      \"barletta-trani-andria.it\",\n      \"barlettatraniandria.it\",\n      \"belluno.it\",\n      \"benevento.it\",\n      \"bergamo.it\",\n      \"bg.it\",\n      \"bi.it\",\n      \"biella.it\",\n      \"bl.it\",\n      \"bn.it\",\n      \"bo.it\",\n      \"bologna.it\",\n      \"bolzano-altoadige.it\",\n      \"bolzano.it\",\n      \"bozen-sudtirol.it\",\n      \"bozen-s\\xFCdtirol.it\",\n      \"bozen-suedtirol.it\",\n      \"bozen.it\",\n      \"br.it\",\n      \"brescia.it\",\n      \"brindisi.it\",\n      \"bs.it\",\n      \"bt.it\",\n      \"bulsan-sudtirol.it\",\n      \"bulsan-s\\xFCdtirol.it\",\n      \"bulsan-suedtirol.it\",\n      \"bulsan.it\",\n      \"bz.it\",\n      \"ca.it\",\n      \"cagliari.it\",\n      \"caltanissetta.it\",\n      \"campidano-medio.it\",\n      \"campidanomedio.it\",\n      \"campobasso.it\",\n      \"carbonia-iglesias.it\",\n      \"carboniaiglesias.it\",\n      \"carrara-massa.it\",\n      \"carraramassa.it\",\n      \"caserta.it\",\n      \"catania.it\",\n      \"catanzaro.it\",\n      \"cb.it\",\n      \"ce.it\",\n      \"cesena-forli.it\",\n      \"cesena-forl\\xEC.it\",\n      \"cesenaforli.it\",\n      \"cesenaforl\\xEC.it\",\n      \"ch.it\",\n      \"chieti.it\",\n      \"ci.it\",\n      \"cl.it\",\n      \"cn.it\",\n      \"co.it\",\n      \"como.it\",\n      \"cosenza.it\",\n      \"cr.it\",\n      \"cremona.it\",\n      \"crotone.it\",\n      \"cs.it\",\n      \"ct.it\",\n      \"cuneo.it\",\n      \"cz.it\",\n      \"dell-ogliastra.it\",\n      \"dellogliastra.it\",\n      \"en.it\",\n      \"enna.it\",\n      \"fc.it\",\n      \"fe.it\",\n      \"fermo.it\",\n      \"ferrara.it\",\n      \"fg.it\",\n      \"fi.it\",\n      \"firenze.it\",\n      \"florence.it\",\n      \"fm.it\",\n      \"foggia.it\",\n      \"forli-cesena.it\",\n      \"forl\\xEC-cesena.it\",\n      \"forlicesena.it\",\n      \"forl\\xECcesena.it\",\n      \"fr.it\",\n      \"frosinone.it\",\n      \"ge.it\",\n      \"genoa.it\",\n      \"genova.it\",\n      \"go.it\",\n      \"gorizia.it\",\n      \"gr.it\",\n      \"grosseto.it\",\n      \"iglesias-carbonia.it\",\n      \"iglesiascarbonia.it\",\n      \"im.it\",\n      \"imperia.it\",\n      \"is.it\",\n      \"isernia.it\",\n      \"kr.it\",\n      \"la-spezia.it\",\n      \"laquila.it\",\n      \"laspezia.it\",\n      \"latina.it\",\n      \"lc.it\",\n      \"le.it\",\n      \"lecce.it\",\n      \"lecco.it\",\n      \"li.it\",\n      \"livorno.it\",\n      \"lo.it\",\n      \"lodi.it\",\n      \"lt.it\",\n      \"lu.it\",\n      \"lucca.it\",\n      \"macerata.it\",\n      \"mantova.it\",\n      \"massa-carrara.it\",\n      \"massacarrara.it\",\n      \"matera.it\",\n      \"mb.it\",\n      \"mc.it\",\n      \"me.it\",\n      \"medio-campidano.it\",\n      \"mediocampidano.it\",\n      \"messina.it\",\n      \"mi.it\",\n      \"milan.it\",\n      \"milano.it\",\n      \"mn.it\",\n      \"mo.it\",\n      \"modena.it\",\n      \"monza-brianza.it\",\n      \"monza-e-della-brianza.it\",\n      \"monza.it\",\n      \"monzabrianza.it\",\n      \"monzaebrianza.it\",\n      \"monzaedellabrianza.it\",\n      \"ms.it\",\n      \"mt.it\",\n      \"na.it\",\n      \"naples.it\",\n      \"napoli.it\",\n      \"no.it\",\n      \"novara.it\",\n      \"nu.it\",\n      \"nuoro.it\",\n      \"og.it\",\n      \"ogliastra.it\",\n      \"olbia-tempio.it\",\n      \"olbiatempio.it\",\n      \"or.it\",\n      \"oristano.it\",\n      \"ot.it\",\n      \"pa.it\",\n      \"padova.it\",\n      \"padua.it\",\n      \"palermo.it\",\n      \"parma.it\",\n      \"pavia.it\",\n      \"pc.it\",\n      \"pd.it\",\n      \"pe.it\",\n      \"perugia.it\",\n      \"pesaro-urbino.it\",\n      \"pesarourbino.it\",\n      \"pescara.it\",\n      \"pg.it\",\n      \"pi.it\",\n      \"piacenza.it\",\n      \"pisa.it\",\n      \"pistoia.it\",\n      \"pn.it\",\n      \"po.it\",\n      \"pordenone.it\",\n      \"potenza.it\",\n      \"pr.it\",\n      \"prato.it\",\n      \"pt.it\",\n      \"pu.it\",\n      \"pv.it\",\n      \"pz.it\",\n      \"ra.it\",\n      \"ragusa.it\",\n      \"ravenna.it\",\n      \"rc.it\",\n      \"re.it\",\n      \"reggio-calabria.it\",\n      \"reggio-emilia.it\",\n      \"reggiocalabria.it\",\n      \"reggioemilia.it\",\n      \"rg.it\",\n      \"ri.it\",\n      \"rieti.it\",\n      \"rimini.it\",\n      \"rm.it\",\n      \"rn.it\",\n      \"ro.it\",\n      \"roma.it\",\n      \"rome.it\",\n      \"rovigo.it\",\n      \"sa.it\",\n      \"salerno.it\",\n      \"sassari.it\",\n      \"savona.it\",\n      \"si.it\",\n      \"siena.it\",\n      \"siracusa.it\",\n      \"so.it\",\n      \"sondrio.it\",\n      \"sp.it\",\n      \"sr.it\",\n      \"ss.it\",\n      \"suedtirol.it\",\n      \"s\\xFCdtirol.it\",\n      \"sv.it\",\n      \"ta.it\",\n      \"taranto.it\",\n      \"te.it\",\n      \"tempio-olbia.it\",\n      \"tempioolbia.it\",\n      \"teramo.it\",\n      \"terni.it\",\n      \"tn.it\",\n      \"to.it\",\n      \"torino.it\",\n      \"tp.it\",\n      \"tr.it\",\n      \"trani-andria-barletta.it\",\n      \"trani-barletta-andria.it\",\n      \"traniandriabarletta.it\",\n      \"tranibarlettaandria.it\",\n      \"trapani.it\",\n      \"trento.it\",\n      \"treviso.it\",\n      \"trieste.it\",\n      \"ts.it\",\n      \"turin.it\",\n      \"tv.it\",\n      \"ud.it\",\n      \"udine.it\",\n      \"urbino-pesaro.it\",\n      \"urbinopesaro.it\",\n      \"va.it\",\n      \"varese.it\",\n      \"vb.it\",\n      \"vc.it\",\n      \"ve.it\",\n      \"venezia.it\",\n      \"venice.it\",\n      \"verbania.it\",\n      \"vercelli.it\",\n      \"verona.it\",\n      \"vi.it\",\n      \"vibo-valentia.it\",\n      \"vibovalentia.it\",\n      \"vicenza.it\",\n      \"viterbo.it\",\n      \"vr.it\",\n      \"vs.it\",\n      \"vt.it\",\n      \"vv.it\",\n      \"je\",\n      \"co.je\",\n      \"net.je\",\n      \"org.je\",\n      \"*.jm\",\n      \"jo\",\n      \"com.jo\",\n      \"org.jo\",\n      \"net.jo\",\n      \"edu.jo\",\n      \"sch.jo\",\n      \"gov.jo\",\n      \"mil.jo\",\n      \"name.jo\",\n      \"jobs\",\n      \"jp\",\n      \"ac.jp\",\n      \"ad.jp\",\n      \"co.jp\",\n      \"ed.jp\",\n      \"go.jp\",\n      \"gr.jp\",\n      \"lg.jp\",\n      \"ne.jp\",\n      \"or.jp\",\n      \"aichi.jp\",\n      \"akita.jp\",\n      \"aomori.jp\",\n      \"chiba.jp\",\n      \"ehime.jp\",\n      \"fukui.jp\",\n      \"fukuoka.jp\",\n      \"fukushima.jp\",\n      \"gifu.jp\",\n      \"gunma.jp\",\n      \"hiroshima.jp\",\n      \"hokkaido.jp\",\n      \"hyogo.jp\",\n      \"ibaraki.jp\",\n      \"ishikawa.jp\",\n      \"iwate.jp\",\n      \"kagawa.jp\",\n      \"kagoshima.jp\",\n      \"kanagawa.jp\",\n      \"kochi.jp\",\n      \"kumamoto.jp\",\n      \"kyoto.jp\",\n      \"mie.jp\",\n      \"miyagi.jp\",\n      \"miyazaki.jp\",\n      \"nagano.jp\",\n      \"nagasaki.jp\",\n      \"nara.jp\",\n      \"niigata.jp\",\n      \"oita.jp\",\n      \"okayama.jp\",\n      \"okinawa.jp\",\n      \"osaka.jp\",\n      \"saga.jp\",\n      \"saitama.jp\",\n      \"shiga.jp\",\n      \"shimane.jp\",\n      \"shizuoka.jp\",\n      \"tochigi.jp\",\n      \"tokushima.jp\",\n      \"tokyo.jp\",\n      \"tottori.jp\",\n      \"toyama.jp\",\n      \"wakayama.jp\",\n      \"yamagata.jp\",\n      \"yamaguchi.jp\",\n      \"yamanashi.jp\",\n      \"\\u6803\\u6728.jp\",\n      \"\\u611B\\u77E5.jp\",\n      \"\\u611B\\u5A9B.jp\",\n      \"\\u5175\\u5EAB.jp\",\n      \"\\u718A\\u672C.jp\",\n      \"\\u8328\\u57CE.jp\",\n      \"\\u5317\\u6D77\\u9053.jp\",\n      \"\\u5343\\u8449.jp\",\n      \"\\u548C\\u6B4C\\u5C71.jp\",\n      \"\\u9577\\u5D0E.jp\",\n      \"\\u9577\\u91CE.jp\",\n      \"\\u65B0\\u6F5F.jp\",\n      \"\\u9752\\u68EE.jp\",\n      \"\\u9759\\u5CA1.jp\",\n      \"\\u6771\\u4EAC.jp\",\n      \"\\u77F3\\u5DDD.jp\",\n      \"\\u57FC\\u7389.jp\",\n      \"\\u4E09\\u91CD.jp\",\n      \"\\u4EAC\\u90FD.jp\",\n      \"\\u4F50\\u8CC0.jp\",\n      \"\\u5927\\u5206.jp\",\n      \"\\u5927\\u962A.jp\",\n      \"\\u5948\\u826F.jp\",\n      \"\\u5BAE\\u57CE.jp\",\n      \"\\u5BAE\\u5D0E.jp\",\n      \"\\u5BCC\\u5C71.jp\",\n      \"\\u5C71\\u53E3.jp\",\n      \"\\u5C71\\u5F62.jp\",\n      \"\\u5C71\\u68A8.jp\",\n      \"\\u5CA9\\u624B.jp\",\n      \"\\u5C90\\u961C.jp\",\n      \"\\u5CA1\\u5C71.jp\",\n      \"\\u5CF6\\u6839.jp\",\n      \"\\u5E83\\u5CF6.jp\",\n      \"\\u5FB3\\u5CF6.jp\",\n      \"\\u6C96\\u7E04.jp\",\n      \"\\u6ECB\\u8CC0.jp\",\n      \"\\u795E\\u5948\\u5DDD.jp\",\n      \"\\u798F\\u4E95.jp\",\n      \"\\u798F\\u5CA1.jp\",\n      \"\\u798F\\u5CF6.jp\",\n      \"\\u79CB\\u7530.jp\",\n      \"\\u7FA4\\u99AC.jp\",\n      \"\\u9999\\u5DDD.jp\",\n      \"\\u9AD8\\u77E5.jp\",\n      \"\\u9CE5\\u53D6.jp\",\n      \"\\u9E7F\\u5150\\u5CF6.jp\",\n      \"*.kawasaki.jp\",\n      \"*.kitakyushu.jp\",\n      \"*.kobe.jp\",\n      \"*.nagoya.jp\",\n      \"*.sapporo.jp\",\n      \"*.sendai.jp\",\n      \"*.yokohama.jp\",\n      \"!city.kawasaki.jp\",\n      \"!city.kitakyushu.jp\",\n      \"!city.kobe.jp\",\n      \"!city.nagoya.jp\",\n      \"!city.sapporo.jp\",\n      \"!city.sendai.jp\",\n      \"!city.yokohama.jp\",\n      \"aisai.aichi.jp\",\n      \"ama.aichi.jp\",\n      \"anjo.aichi.jp\",\n      \"asuke.aichi.jp\",\n      \"chiryu.aichi.jp\",\n      \"chita.aichi.jp\",\n      \"fuso.aichi.jp\",\n      \"gamagori.aichi.jp\",\n      \"handa.aichi.jp\",\n      \"hazu.aichi.jp\",\n      \"hekinan.aichi.jp\",\n      \"higashiura.aichi.jp\",\n      \"ichinomiya.aichi.jp\",\n      \"inazawa.aichi.jp\",\n      \"inuyama.aichi.jp\",\n      \"isshiki.aichi.jp\",\n      \"iwakura.aichi.jp\",\n      \"kanie.aichi.jp\",\n      \"kariya.aichi.jp\",\n      \"kasugai.aichi.jp\",\n      \"kira.aichi.jp\",\n      \"kiyosu.aichi.jp\",\n      \"komaki.aichi.jp\",\n      \"konan.aichi.jp\",\n      \"kota.aichi.jp\",\n      \"mihama.aichi.jp\",\n      \"miyoshi.aichi.jp\",\n      \"nishio.aichi.jp\",\n      \"nisshin.aichi.jp\",\n      \"obu.aichi.jp\",\n      \"oguchi.aichi.jp\",\n      \"oharu.aichi.jp\",\n      \"okazaki.aichi.jp\",\n      \"owariasahi.aichi.jp\",\n      \"seto.aichi.jp\",\n      \"shikatsu.aichi.jp\",\n      \"shinshiro.aichi.jp\",\n      \"shitara.aichi.jp\",\n      \"tahara.aichi.jp\",\n      \"takahama.aichi.jp\",\n      \"tobishima.aichi.jp\",\n      \"toei.aichi.jp\",\n      \"togo.aichi.jp\",\n      \"tokai.aichi.jp\",\n      \"tokoname.aichi.jp\",\n      \"toyoake.aichi.jp\",\n      \"toyohashi.aichi.jp\",\n      \"toyokawa.aichi.jp\",\n      \"toyone.aichi.jp\",\n      \"toyota.aichi.jp\",\n      \"tsushima.aichi.jp\",\n      \"yatomi.aichi.jp\",\n      \"akita.akita.jp\",\n      \"daisen.akita.jp\",\n      \"fujisato.akita.jp\",\n      \"gojome.akita.jp\",\n      \"hachirogata.akita.jp\",\n      \"happou.akita.jp\",\n      \"higashinaruse.akita.jp\",\n      \"honjo.akita.jp\",\n      \"honjyo.akita.jp\",\n      \"ikawa.akita.jp\",\n      \"kamikoani.akita.jp\",\n      \"kamioka.akita.jp\",\n      \"katagami.akita.jp\",\n      \"kazuno.akita.jp\",\n      \"kitaakita.akita.jp\",\n      \"kosaka.akita.jp\",\n      \"kyowa.akita.jp\",\n      \"misato.akita.jp\",\n      \"mitane.akita.jp\",\n      \"moriyoshi.akita.jp\",\n      \"nikaho.akita.jp\",\n      \"noshiro.akita.jp\",\n      \"odate.akita.jp\",\n      \"oga.akita.jp\",\n      \"ogata.akita.jp\",\n      \"semboku.akita.jp\",\n      \"yokote.akita.jp\",\n      \"yurihonjo.akita.jp\",\n      \"aomori.aomori.jp\",\n      \"gonohe.aomori.jp\",\n      \"hachinohe.aomori.jp\",\n      \"hashikami.aomori.jp\",\n      \"hiranai.aomori.jp\",\n      \"hirosaki.aomori.jp\",\n      \"itayanagi.aomori.jp\",\n      \"kuroishi.aomori.jp\",\n      \"misawa.aomori.jp\",\n      \"mutsu.aomori.jp\",\n      \"nakadomari.aomori.jp\",\n      \"noheji.aomori.jp\",\n      \"oirase.aomori.jp\",\n      \"owani.aomori.jp\",\n      \"rokunohe.aomori.jp\",\n      \"sannohe.aomori.jp\",\n      \"shichinohe.aomori.jp\",\n      \"shingo.aomori.jp\",\n      \"takko.aomori.jp\",\n      \"towada.aomori.jp\",\n      \"tsugaru.aomori.jp\",\n      \"tsuruta.aomori.jp\",\n      \"abiko.chiba.jp\",\n      \"asahi.chiba.jp\",\n      \"chonan.chiba.jp\",\n      \"chosei.chiba.jp\",\n      \"choshi.chiba.jp\",\n      \"chuo.chiba.jp\",\n      \"funabashi.chiba.jp\",\n      \"futtsu.chiba.jp\",\n      \"hanamigawa.chiba.jp\",\n      \"ichihara.chiba.jp\",\n      \"ichikawa.chiba.jp\",\n      \"ichinomiya.chiba.jp\",\n      \"inzai.chiba.jp\",\n      \"isumi.chiba.jp\",\n      \"kamagaya.chiba.jp\",\n      \"kamogawa.chiba.jp\",\n      \"kashiwa.chiba.jp\",\n      \"katori.chiba.jp\",\n      \"katsuura.chiba.jp\",\n      \"kimitsu.chiba.jp\",\n      \"kisarazu.chiba.jp\",\n      \"kozaki.chiba.jp\",\n      \"kujukuri.chiba.jp\",\n      \"kyonan.chiba.jp\",\n      \"matsudo.chiba.jp\",\n      \"midori.chiba.jp\",\n      \"mihama.chiba.jp\",\n      \"minamiboso.chiba.jp\",\n      \"mobara.chiba.jp\",\n      \"mutsuzawa.chiba.jp\",\n      \"nagara.chiba.jp\",\n      \"nagareyama.chiba.jp\",\n      \"narashino.chiba.jp\",\n      \"narita.chiba.jp\",\n      \"noda.chiba.jp\",\n      \"oamishirasato.chiba.jp\",\n      \"omigawa.chiba.jp\",\n      \"onjuku.chiba.jp\",\n      \"otaki.chiba.jp\",\n      \"sakae.chiba.jp\",\n      \"sakura.chiba.jp\",\n      \"shimofusa.chiba.jp\",\n      \"shirako.chiba.jp\",\n      \"shiroi.chiba.jp\",\n      \"shisui.chiba.jp\",\n      \"sodegaura.chiba.jp\",\n      \"sosa.chiba.jp\",\n      \"tako.chiba.jp\",\n      \"tateyama.chiba.jp\",\n      \"togane.chiba.jp\",\n      \"tohnosho.chiba.jp\",\n      \"tomisato.chiba.jp\",\n      \"urayasu.chiba.jp\",\n      \"yachimata.chiba.jp\",\n      \"yachiyo.chiba.jp\",\n      \"yokaichiba.chiba.jp\",\n      \"yokoshibahikari.chiba.jp\",\n      \"yotsukaido.chiba.jp\",\n      \"ainan.ehime.jp\",\n      \"honai.ehime.jp\",\n      \"ikata.ehime.jp\",\n      \"imabari.ehime.jp\",\n      \"iyo.ehime.jp\",\n      \"kamijima.ehime.jp\",\n      \"kihoku.ehime.jp\",\n      \"kumakogen.ehime.jp\",\n      \"masaki.ehime.jp\",\n      \"matsuno.ehime.jp\",\n      \"matsuyama.ehime.jp\",\n      \"namikata.ehime.jp\",\n      \"niihama.ehime.jp\",\n      \"ozu.ehime.jp\",\n      \"saijo.ehime.jp\",\n      \"seiyo.ehime.jp\",\n      \"shikokuchuo.ehime.jp\",\n      \"tobe.ehime.jp\",\n      \"toon.ehime.jp\",\n      \"uchiko.ehime.jp\",\n      \"uwajima.ehime.jp\",\n      \"yawatahama.ehime.jp\",\n      \"echizen.fukui.jp\",\n      \"eiheiji.fukui.jp\",\n      \"fukui.fukui.jp\",\n      \"ikeda.fukui.jp\",\n      \"katsuyama.fukui.jp\",\n      \"mihama.fukui.jp\",\n      \"minamiechizen.fukui.jp\",\n      \"obama.fukui.jp\",\n      \"ohi.fukui.jp\",\n      \"ono.fukui.jp\",\n      \"sabae.fukui.jp\",\n      \"sakai.fukui.jp\",\n      \"takahama.fukui.jp\",\n      \"tsuruga.fukui.jp\",\n      \"wakasa.fukui.jp\",\n      \"ashiya.fukuoka.jp\",\n      \"buzen.fukuoka.jp\",\n      \"chikugo.fukuoka.jp\",\n      \"chikuho.fukuoka.jp\",\n      \"chikujo.fukuoka.jp\",\n      \"chikushino.fukuoka.jp\",\n      \"chikuzen.fukuoka.jp\",\n      \"chuo.fukuoka.jp\",\n      \"dazaifu.fukuoka.jp\",\n      \"fukuchi.fukuoka.jp\",\n      \"hakata.fukuoka.jp\",\n      \"higashi.fukuoka.jp\",\n      \"hirokawa.fukuoka.jp\",\n      \"hisayama.fukuoka.jp\",\n      \"iizuka.fukuoka.jp\",\n      \"inatsuki.fukuoka.jp\",\n      \"kaho.fukuoka.jp\",\n      \"kasuga.fukuoka.jp\",\n      \"kasuya.fukuoka.jp\",\n      \"kawara.fukuoka.jp\",\n      \"keisen.fukuoka.jp\",\n      \"koga.fukuoka.jp\",\n      \"kurate.fukuoka.jp\",\n      \"kurogi.fukuoka.jp\",\n      \"kurume.fukuoka.jp\",\n      \"minami.fukuoka.jp\",\n      \"miyako.fukuoka.jp\",\n      \"miyama.fukuoka.jp\",\n      \"miyawaka.fukuoka.jp\",\n      \"mizumaki.fukuoka.jp\",\n      \"munakata.fukuoka.jp\",\n      \"nakagawa.fukuoka.jp\",\n      \"nakama.fukuoka.jp\",\n      \"nishi.fukuoka.jp\",\n      \"nogata.fukuoka.jp\",\n      \"ogori.fukuoka.jp\",\n      \"okagaki.fukuoka.jp\",\n      \"okawa.fukuoka.jp\",\n      \"oki.fukuoka.jp\",\n      \"omuta.fukuoka.jp\",\n      \"onga.fukuoka.jp\",\n      \"onojo.fukuoka.jp\",\n      \"oto.fukuoka.jp\",\n      \"saigawa.fukuoka.jp\",\n      \"sasaguri.fukuoka.jp\",\n      \"shingu.fukuoka.jp\",\n      \"shinyoshitomi.fukuoka.jp\",\n      \"shonai.fukuoka.jp\",\n      \"soeda.fukuoka.jp\",\n      \"sue.fukuoka.jp\",\n      \"tachiarai.fukuoka.jp\",\n      \"tagawa.fukuoka.jp\",\n      \"takata.fukuoka.jp\",\n      \"toho.fukuoka.jp\",\n      \"toyotsu.fukuoka.jp\",\n      \"tsuiki.fukuoka.jp\",\n      \"ukiha.fukuoka.jp\",\n      \"umi.fukuoka.jp\",\n      \"usui.fukuoka.jp\",\n      \"yamada.fukuoka.jp\",\n      \"yame.fukuoka.jp\",\n      \"yanagawa.fukuoka.jp\",\n      \"yukuhashi.fukuoka.jp\",\n      \"aizubange.fukushima.jp\",\n      \"aizumisato.fukushima.jp\",\n      \"aizuwakamatsu.fukushima.jp\",\n      \"asakawa.fukushima.jp\",\n      \"bandai.fukushima.jp\",\n      \"date.fukushima.jp\",\n      \"fukushima.fukushima.jp\",\n      \"furudono.fukushima.jp\",\n      \"futaba.fukushima.jp\",\n      \"hanawa.fukushima.jp\",\n      \"higashi.fukushima.jp\",\n      \"hirata.fukushima.jp\",\n      \"hirono.fukushima.jp\",\n      \"iitate.fukushima.jp\",\n      \"inawashiro.fukushima.jp\",\n      \"ishikawa.fukushima.jp\",\n      \"iwaki.fukushima.jp\",\n      \"izumizaki.fukushima.jp\",\n      \"kagamiishi.fukushima.jp\",\n      \"kaneyama.fukushima.jp\",\n      \"kawamata.fukushima.jp\",\n      \"kitakata.fukushima.jp\",\n      \"kitashiobara.fukushima.jp\",\n      \"koori.fukushima.jp\",\n      \"koriyama.fukushima.jp\",\n      \"kunimi.fukushima.jp\",\n      \"miharu.fukushima.jp\",\n      \"mishima.fukushima.jp\",\n      \"namie.fukushima.jp\",\n      \"nango.fukushima.jp\",\n      \"nishiaizu.fukushima.jp\",\n      \"nishigo.fukushima.jp\",\n      \"okuma.fukushima.jp\",\n      \"omotego.fukushima.jp\",\n      \"ono.fukushima.jp\",\n      \"otama.fukushima.jp\",\n      \"samegawa.fukushima.jp\",\n      \"shimogo.fukushima.jp\",\n      \"shirakawa.fukushima.jp\",\n      \"showa.fukushima.jp\",\n      \"soma.fukushima.jp\",\n      \"sukagawa.fukushima.jp\",\n      \"taishin.fukushima.jp\",\n      \"tamakawa.fukushima.jp\",\n      \"tanagura.fukushima.jp\",\n      \"tenei.fukushima.jp\",\n      \"yabuki.fukushima.jp\",\n      \"yamato.fukushima.jp\",\n      \"yamatsuri.fukushima.jp\",\n      \"yanaizu.fukushima.jp\",\n      \"yugawa.fukushima.jp\",\n      \"anpachi.gifu.jp\",\n      \"ena.gifu.jp\",\n      \"gifu.gifu.jp\",\n      \"ginan.gifu.jp\",\n      \"godo.gifu.jp\",\n      \"gujo.gifu.jp\",\n      \"hashima.gifu.jp\",\n      \"hichiso.gifu.jp\",\n      \"hida.gifu.jp\",\n      \"higashishirakawa.gifu.jp\",\n      \"ibigawa.gifu.jp\",\n      \"ikeda.gifu.jp\",\n      \"kakamigahara.gifu.jp\",\n      \"kani.gifu.jp\",\n      \"kasahara.gifu.jp\",\n      \"kasamatsu.gifu.jp\",\n      \"kawaue.gifu.jp\",\n      \"kitagata.gifu.jp\",\n      \"mino.gifu.jp\",\n      \"minokamo.gifu.jp\",\n      \"mitake.gifu.jp\",\n      \"mizunami.gifu.jp\",\n      \"motosu.gifu.jp\",\n      \"nakatsugawa.gifu.jp\",\n      \"ogaki.gifu.jp\",\n      \"sakahogi.gifu.jp\",\n      \"seki.gifu.jp\",\n      \"sekigahara.gifu.jp\",\n      \"shirakawa.gifu.jp\",\n      \"tajimi.gifu.jp\",\n      \"takayama.gifu.jp\",\n      \"tarui.gifu.jp\",\n      \"toki.gifu.jp\",\n      \"tomika.gifu.jp\",\n      \"wanouchi.gifu.jp\",\n      \"yamagata.gifu.jp\",\n      \"yaotsu.gifu.jp\",\n      \"yoro.gifu.jp\",\n      \"annaka.gunma.jp\",\n      \"chiyoda.gunma.jp\",\n      \"fujioka.gunma.jp\",\n      \"higashiagatsuma.gunma.jp\",\n      \"isesaki.gunma.jp\",\n      \"itakura.gunma.jp\",\n      \"kanna.gunma.jp\",\n      \"kanra.gunma.jp\",\n      \"katashina.gunma.jp\",\n      \"kawaba.gunma.jp\",\n      \"kiryu.gunma.jp\",\n      \"kusatsu.gunma.jp\",\n      \"maebashi.gunma.jp\",\n      \"meiwa.gunma.jp\",\n      \"midori.gunma.jp\",\n      \"minakami.gunma.jp\",\n      \"naganohara.gunma.jp\",\n      \"nakanojo.gunma.jp\",\n      \"nanmoku.gunma.jp\",\n      \"numata.gunma.jp\",\n      \"oizumi.gunma.jp\",\n      \"ora.gunma.jp\",\n      \"ota.gunma.jp\",\n      \"shibukawa.gunma.jp\",\n      \"shimonita.gunma.jp\",\n      \"shinto.gunma.jp\",\n      \"showa.gunma.jp\",\n      \"takasaki.gunma.jp\",\n      \"takayama.gunma.jp\",\n      \"tamamura.gunma.jp\",\n      \"tatebayashi.gunma.jp\",\n      \"tomioka.gunma.jp\",\n      \"tsukiyono.gunma.jp\",\n      \"tsumagoi.gunma.jp\",\n      \"ueno.gunma.jp\",\n      \"yoshioka.gunma.jp\",\n      \"asaminami.hiroshima.jp\",\n      \"daiwa.hiroshima.jp\",\n      \"etajima.hiroshima.jp\",\n      \"fuchu.hiroshima.jp\",\n      \"fukuyama.hiroshima.jp\",\n      \"hatsukaichi.hiroshima.jp\",\n      \"higashihiroshima.hiroshima.jp\",\n      \"hongo.hiroshima.jp\",\n      \"jinsekikogen.hiroshima.jp\",\n      \"kaita.hiroshima.jp\",\n      \"kui.hiroshima.jp\",\n      \"kumano.hiroshima.jp\",\n      \"kure.hiroshima.jp\",\n      \"mihara.hiroshima.jp\",\n      \"miyoshi.hiroshima.jp\",\n      \"naka.hiroshima.jp\",\n      \"onomichi.hiroshima.jp\",\n      \"osakikamijima.hiroshima.jp\",\n      \"otake.hiroshima.jp\",\n      \"saka.hiroshima.jp\",\n      \"sera.hiroshima.jp\",\n      \"seranishi.hiroshima.jp\",\n      \"shinichi.hiroshima.jp\",\n      \"shobara.hiroshima.jp\",\n      \"takehara.hiroshima.jp\",\n      \"abashiri.hokkaido.jp\",\n      \"abira.hokkaido.jp\",\n      \"aibetsu.hokkaido.jp\",\n      \"akabira.hokkaido.jp\",\n      \"akkeshi.hokkaido.jp\",\n      \"asahikawa.hokkaido.jp\",\n      \"ashibetsu.hokkaido.jp\",\n      \"ashoro.hokkaido.jp\",\n      \"assabu.hokkaido.jp\",\n      \"atsuma.hokkaido.jp\",\n      \"bibai.hokkaido.jp\",\n      \"biei.hokkaido.jp\",\n      \"bifuka.hokkaido.jp\",\n      \"bihoro.hokkaido.jp\",\n      \"biratori.hokkaido.jp\",\n      \"chippubetsu.hokkaido.jp\",\n      \"chitose.hokkaido.jp\",\n      \"date.hokkaido.jp\",\n      \"ebetsu.hokkaido.jp\",\n      \"embetsu.hokkaido.jp\",\n      \"eniwa.hokkaido.jp\",\n      \"erimo.hokkaido.jp\",\n      \"esan.hokkaido.jp\",\n      \"esashi.hokkaido.jp\",\n      \"fukagawa.hokkaido.jp\",\n      \"fukushima.hokkaido.jp\",\n      \"furano.hokkaido.jp\",\n      \"furubira.hokkaido.jp\",\n      \"haboro.hokkaido.jp\",\n      \"hakodate.hokkaido.jp\",\n      \"hamatonbetsu.hokkaido.jp\",\n      \"hidaka.hokkaido.jp\",\n      \"higashikagura.hokkaido.jp\",\n      \"higashikawa.hokkaido.jp\",\n      \"hiroo.hokkaido.jp\",\n      \"hokuryu.hokkaido.jp\",\n      \"hokuto.hokkaido.jp\",\n      \"honbetsu.hokkaido.jp\",\n      \"horokanai.hokkaido.jp\",\n      \"horonobe.hokkaido.jp\",\n      \"ikeda.hokkaido.jp\",\n      \"imakane.hokkaido.jp\",\n      \"ishikari.hokkaido.jp\",\n      \"iwamizawa.hokkaido.jp\",\n      \"iwanai.hokkaido.jp\",\n      \"kamifurano.hokkaido.jp\",\n      \"kamikawa.hokkaido.jp\",\n      \"kamishihoro.hokkaido.jp\",\n      \"kamisunagawa.hokkaido.jp\",\n      \"kamoenai.hokkaido.jp\",\n      \"kayabe.hokkaido.jp\",\n      \"kembuchi.hokkaido.jp\",\n      \"kikonai.hokkaido.jp\",\n      \"kimobetsu.hokkaido.jp\",\n      \"kitahiroshima.hokkaido.jp\",\n      \"kitami.hokkaido.jp\",\n      \"kiyosato.hokkaido.jp\",\n      \"koshimizu.hokkaido.jp\",\n      \"kunneppu.hokkaido.jp\",\n      \"kuriyama.hokkaido.jp\",\n      \"kuromatsunai.hokkaido.jp\",\n      \"kushiro.hokkaido.jp\",\n      \"kutchan.hokkaido.jp\",\n      \"kyowa.hokkaido.jp\",\n      \"mashike.hokkaido.jp\",\n      \"matsumae.hokkaido.jp\",\n      \"mikasa.hokkaido.jp\",\n      \"minamifurano.hokkaido.jp\",\n      \"mombetsu.hokkaido.jp\",\n      \"moseushi.hokkaido.jp\",\n      \"mukawa.hokkaido.jp\",\n      \"muroran.hokkaido.jp\",\n      \"naie.hokkaido.jp\",\n      \"nakagawa.hokkaido.jp\",\n      \"nakasatsunai.hokkaido.jp\",\n      \"nakatombetsu.hokkaido.jp\",\n      \"nanae.hokkaido.jp\",\n      \"nanporo.hokkaido.jp\",\n      \"nayoro.hokkaido.jp\",\n      \"nemuro.hokkaido.jp\",\n      \"niikappu.hokkaido.jp\",\n      \"niki.hokkaido.jp\",\n      \"nishiokoppe.hokkaido.jp\",\n      \"noboribetsu.hokkaido.jp\",\n      \"numata.hokkaido.jp\",\n      \"obihiro.hokkaido.jp\",\n      \"obira.hokkaido.jp\",\n      \"oketo.hokkaido.jp\",\n      \"okoppe.hokkaido.jp\",\n      \"otaru.hokkaido.jp\",\n      \"otobe.hokkaido.jp\",\n      \"otofuke.hokkaido.jp\",\n      \"otoineppu.hokkaido.jp\",\n      \"oumu.hokkaido.jp\",\n      \"ozora.hokkaido.jp\",\n      \"pippu.hokkaido.jp\",\n      \"rankoshi.hokkaido.jp\",\n      \"rebun.hokkaido.jp\",\n      \"rikubetsu.hokkaido.jp\",\n      \"rishiri.hokkaido.jp\",\n      \"rishirifuji.hokkaido.jp\",\n      \"saroma.hokkaido.jp\",\n      \"sarufutsu.hokkaido.jp\",\n      \"shakotan.hokkaido.jp\",\n      \"shari.hokkaido.jp\",\n      \"shibecha.hokkaido.jp\",\n      \"shibetsu.hokkaido.jp\",\n      \"shikabe.hokkaido.jp\",\n      \"shikaoi.hokkaido.jp\",\n      \"shimamaki.hokkaido.jp\",\n      \"shimizu.hokkaido.jp\",\n      \"shimokawa.hokkaido.jp\",\n      \"shinshinotsu.hokkaido.jp\",\n      \"shintoku.hokkaido.jp\",\n      \"shiranuka.hokkaido.jp\",\n      \"shiraoi.hokkaido.jp\",\n      \"shiriuchi.hokkaido.jp\",\n      \"sobetsu.hokkaido.jp\",\n      \"sunagawa.hokkaido.jp\",\n      \"taiki.hokkaido.jp\",\n      \"takasu.hokkaido.jp\",\n      \"takikawa.hokkaido.jp\",\n      \"takinoue.hokkaido.jp\",\n      \"teshikaga.hokkaido.jp\",\n      \"tobetsu.hokkaido.jp\",\n      \"tohma.hokkaido.jp\",\n      \"tomakomai.hokkaido.jp\",\n      \"tomari.hokkaido.jp\",\n      \"toya.hokkaido.jp\",\n      \"toyako.hokkaido.jp\",\n      \"toyotomi.hokkaido.jp\",\n      \"toyoura.hokkaido.jp\",\n      \"tsubetsu.hokkaido.jp\",\n      \"tsukigata.hokkaido.jp\",\n      \"urakawa.hokkaido.jp\",\n      \"urausu.hokkaido.jp\",\n      \"uryu.hokkaido.jp\",\n      \"utashinai.hokkaido.jp\",\n      \"wakkanai.hokkaido.jp\",\n      \"wassamu.hokkaido.jp\",\n      \"yakumo.hokkaido.jp\",\n      \"yoichi.hokkaido.jp\",\n      \"aioi.hyogo.jp\",\n      \"akashi.hyogo.jp\",\n      \"ako.hyogo.jp\",\n      \"amagasaki.hyogo.jp\",\n      \"aogaki.hyogo.jp\",\n      \"asago.hyogo.jp\",\n      \"ashiya.hyogo.jp\",\n      \"awaji.hyogo.jp\",\n      \"fukusaki.hyogo.jp\",\n      \"goshiki.hyogo.jp\",\n      \"harima.hyogo.jp\",\n      \"himeji.hyogo.jp\",\n      \"ichikawa.hyogo.jp\",\n      \"inagawa.hyogo.jp\",\n      \"itami.hyogo.jp\",\n      \"kakogawa.hyogo.jp\",\n      \"kamigori.hyogo.jp\",\n      \"kamikawa.hyogo.jp\",\n      \"kasai.hyogo.jp\",\n      \"kasuga.hyogo.jp\",\n      \"kawanishi.hyogo.jp\",\n      \"miki.hyogo.jp\",\n      \"minamiawaji.hyogo.jp\",\n      \"nishinomiya.hyogo.jp\",\n      \"nishiwaki.hyogo.jp\",\n      \"ono.hyogo.jp\",\n      \"sanda.hyogo.jp\",\n      \"sannan.hyogo.jp\",\n      \"sasayama.hyogo.jp\",\n      \"sayo.hyogo.jp\",\n      \"shingu.hyogo.jp\",\n      \"shinonsen.hyogo.jp\",\n      \"shiso.hyogo.jp\",\n      \"sumoto.hyogo.jp\",\n      \"taishi.hyogo.jp\",\n      \"taka.hyogo.jp\",\n      \"takarazuka.hyogo.jp\",\n      \"takasago.hyogo.jp\",\n      \"takino.hyogo.jp\",\n      \"tamba.hyogo.jp\",\n      \"tatsuno.hyogo.jp\",\n      \"toyooka.hyogo.jp\",\n      \"yabu.hyogo.jp\",\n      \"yashiro.hyogo.jp\",\n      \"yoka.hyogo.jp\",\n      \"yokawa.hyogo.jp\",\n      \"ami.ibaraki.jp\",\n      \"asahi.ibaraki.jp\",\n      \"bando.ibaraki.jp\",\n      \"chikusei.ibaraki.jp\",\n      \"daigo.ibaraki.jp\",\n      \"fujishiro.ibaraki.jp\",\n      \"hitachi.ibaraki.jp\",\n      \"hitachinaka.ibaraki.jp\",\n      \"hitachiomiya.ibaraki.jp\",\n      \"hitachiota.ibaraki.jp\",\n      \"ibaraki.ibaraki.jp\",\n      \"ina.ibaraki.jp\",\n      \"inashiki.ibaraki.jp\",\n      \"itako.ibaraki.jp\",\n      \"iwama.ibaraki.jp\",\n      \"joso.ibaraki.jp\",\n      \"kamisu.ibaraki.jp\",\n      \"kasama.ibaraki.jp\",\n      \"kashima.ibaraki.jp\",\n      \"kasumigaura.ibaraki.jp\",\n      \"koga.ibaraki.jp\",\n      \"miho.ibaraki.jp\",\n      \"mito.ibaraki.jp\",\n      \"moriya.ibaraki.jp\",\n      \"naka.ibaraki.jp\",\n      \"namegata.ibaraki.jp\",\n      \"oarai.ibaraki.jp\",\n      \"ogawa.ibaraki.jp\",\n      \"omitama.ibaraki.jp\",\n      \"ryugasaki.ibaraki.jp\",\n      \"sakai.ibaraki.jp\",\n      \"sakuragawa.ibaraki.jp\",\n      \"shimodate.ibaraki.jp\",\n      \"shimotsuma.ibaraki.jp\",\n      \"shirosato.ibaraki.jp\",\n      \"sowa.ibaraki.jp\",\n      \"suifu.ibaraki.jp\",\n      \"takahagi.ibaraki.jp\",\n      \"tamatsukuri.ibaraki.jp\",\n      \"tokai.ibaraki.jp\",\n      \"tomobe.ibaraki.jp\",\n      \"tone.ibaraki.jp\",\n      \"toride.ibaraki.jp\",\n      \"tsuchiura.ibaraki.jp\",\n      \"tsukuba.ibaraki.jp\",\n      \"uchihara.ibaraki.jp\",\n      \"ushiku.ibaraki.jp\",\n      \"yachiyo.ibaraki.jp\",\n      \"yamagata.ibaraki.jp\",\n      \"yawara.ibaraki.jp\",\n      \"yuki.ibaraki.jp\",\n      \"anamizu.ishikawa.jp\",\n      \"hakui.ishikawa.jp\",\n      \"hakusan.ishikawa.jp\",\n      \"kaga.ishikawa.jp\",\n      \"kahoku.ishikawa.jp\",\n      \"kanazawa.ishikawa.jp\",\n      \"kawakita.ishikawa.jp\",\n      \"komatsu.ishikawa.jp\",\n      \"nakanoto.ishikawa.jp\",\n      \"nanao.ishikawa.jp\",\n      \"nomi.ishikawa.jp\",\n      \"nonoichi.ishikawa.jp\",\n      \"noto.ishikawa.jp\",\n      \"shika.ishikawa.jp\",\n      \"suzu.ishikawa.jp\",\n      \"tsubata.ishikawa.jp\",\n      \"tsurugi.ishikawa.jp\",\n      \"uchinada.ishikawa.jp\",\n      \"wajima.ishikawa.jp\",\n      \"fudai.iwate.jp\",\n      \"fujisawa.iwate.jp\",\n      \"hanamaki.iwate.jp\",\n      \"hiraizumi.iwate.jp\",\n      \"hirono.iwate.jp\",\n      \"ichinohe.iwate.jp\",\n      \"ichinoseki.iwate.jp\",\n      \"iwaizumi.iwate.jp\",\n      \"iwate.iwate.jp\",\n      \"joboji.iwate.jp\",\n      \"kamaishi.iwate.jp\",\n      \"kanegasaki.iwate.jp\",\n      \"karumai.iwate.jp\",\n      \"kawai.iwate.jp\",\n      \"kitakami.iwate.jp\",\n      \"kuji.iwate.jp\",\n      \"kunohe.iwate.jp\",\n      \"kuzumaki.iwate.jp\",\n      \"miyako.iwate.jp\",\n      \"mizusawa.iwate.jp\",\n      \"morioka.iwate.jp\",\n      \"ninohe.iwate.jp\",\n      \"noda.iwate.jp\",\n      \"ofunato.iwate.jp\",\n      \"oshu.iwate.jp\",\n      \"otsuchi.iwate.jp\",\n      \"rikuzentakata.iwate.jp\",\n      \"shiwa.iwate.jp\",\n      \"shizukuishi.iwate.jp\",\n      \"sumita.iwate.jp\",\n      \"tanohata.iwate.jp\",\n      \"tono.iwate.jp\",\n      \"yahaba.iwate.jp\",\n      \"yamada.iwate.jp\",\n      \"ayagawa.kagawa.jp\",\n      \"higashikagawa.kagawa.jp\",\n      \"kanonji.kagawa.jp\",\n      \"kotohira.kagawa.jp\",\n      \"manno.kagawa.jp\",\n      \"marugame.kagawa.jp\",\n      \"mitoyo.kagawa.jp\",\n      \"naoshima.kagawa.jp\",\n      \"sanuki.kagawa.jp\",\n      \"tadotsu.kagawa.jp\",\n      \"takamatsu.kagawa.jp\",\n      \"tonosho.kagawa.jp\",\n      \"uchinomi.kagawa.jp\",\n      \"utazu.kagawa.jp\",\n      \"zentsuji.kagawa.jp\",\n      \"akune.kagoshima.jp\",\n      \"amami.kagoshima.jp\",\n      \"hioki.kagoshima.jp\",\n      \"isa.kagoshima.jp\",\n      \"isen.kagoshima.jp\",\n      \"izumi.kagoshima.jp\",\n      \"kagoshima.kagoshima.jp\",\n      \"kanoya.kagoshima.jp\",\n      \"kawanabe.kagoshima.jp\",\n      \"kinko.kagoshima.jp\",\n      \"kouyama.kagoshima.jp\",\n      \"makurazaki.kagoshima.jp\",\n      \"matsumoto.kagoshima.jp\",\n      \"minamitane.kagoshima.jp\",\n      \"nakatane.kagoshima.jp\",\n      \"nishinoomote.kagoshima.jp\",\n      \"satsumasendai.kagoshima.jp\",\n      \"soo.kagoshima.jp\",\n      \"tarumizu.kagoshima.jp\",\n      \"yusui.kagoshima.jp\",\n      \"aikawa.kanagawa.jp\",\n      \"atsugi.kanagawa.jp\",\n      \"ayase.kanagawa.jp\",\n      \"chigasaki.kanagawa.jp\",\n      \"ebina.kanagawa.jp\",\n      \"fujisawa.kanagawa.jp\",\n      \"hadano.kanagawa.jp\",\n      \"hakone.kanagawa.jp\",\n      \"hiratsuka.kanagawa.jp\",\n      \"isehara.kanagawa.jp\",\n      \"kaisei.kanagawa.jp\",\n      \"kamakura.kanagawa.jp\",\n      \"kiyokawa.kanagawa.jp\",\n      \"matsuda.kanagawa.jp\",\n      \"minamiashigara.kanagawa.jp\",\n      \"miura.kanagawa.jp\",\n      \"nakai.kanagawa.jp\",\n      \"ninomiya.kanagawa.jp\",\n      \"odawara.kanagawa.jp\",\n      \"oi.kanagawa.jp\",\n      \"oiso.kanagawa.jp\",\n      \"sagamihara.kanagawa.jp\",\n      \"samukawa.kanagawa.jp\",\n      \"tsukui.kanagawa.jp\",\n      \"yamakita.kanagawa.jp\",\n      \"yamato.kanagawa.jp\",\n      \"yokosuka.kanagawa.jp\",\n      \"yugawara.kanagawa.jp\",\n      \"zama.kanagawa.jp\",\n      \"zushi.kanagawa.jp\",\n      \"aki.kochi.jp\",\n      \"geisei.kochi.jp\",\n      \"hidaka.kochi.jp\",\n      \"higashitsuno.kochi.jp\",\n      \"ino.kochi.jp\",\n      \"kagami.kochi.jp\",\n      \"kami.kochi.jp\",\n      \"kitagawa.kochi.jp\",\n      \"kochi.kochi.jp\",\n      \"mihara.kochi.jp\",\n      \"motoyama.kochi.jp\",\n      \"muroto.kochi.jp\",\n      \"nahari.kochi.jp\",\n      \"nakamura.kochi.jp\",\n      \"nankoku.kochi.jp\",\n      \"nishitosa.kochi.jp\",\n      \"niyodogawa.kochi.jp\",\n      \"ochi.kochi.jp\",\n      \"okawa.kochi.jp\",\n      \"otoyo.kochi.jp\",\n      \"otsuki.kochi.jp\",\n      \"sakawa.kochi.jp\",\n      \"sukumo.kochi.jp\",\n      \"susaki.kochi.jp\",\n      \"tosa.kochi.jp\",\n      \"tosashimizu.kochi.jp\",\n      \"toyo.kochi.jp\",\n      \"tsuno.kochi.jp\",\n      \"umaji.kochi.jp\",\n      \"yasuda.kochi.jp\",\n      \"yusuhara.kochi.jp\",\n      \"amakusa.kumamoto.jp\",\n      \"arao.kumamoto.jp\",\n      \"aso.kumamoto.jp\",\n      \"choyo.kumamoto.jp\",\n      \"gyokuto.kumamoto.jp\",\n      \"kamiamakusa.kumamoto.jp\",\n      \"kikuchi.kumamoto.jp\",\n      \"kumamoto.kumamoto.jp\",\n      \"mashiki.kumamoto.jp\",\n      \"mifune.kumamoto.jp\",\n      \"minamata.kumamoto.jp\",\n      \"minamioguni.kumamoto.jp\",\n      \"nagasu.kumamoto.jp\",\n      \"nishihara.kumamoto.jp\",\n      \"oguni.kumamoto.jp\",\n      \"ozu.kumamoto.jp\",\n      \"sumoto.kumamoto.jp\",\n      \"takamori.kumamoto.jp\",\n      \"uki.kumamoto.jp\",\n      \"uto.kumamoto.jp\",\n      \"yamaga.kumamoto.jp\",\n      \"yamato.kumamoto.jp\",\n      \"yatsushiro.kumamoto.jp\",\n      \"ayabe.kyoto.jp\",\n      \"fukuchiyama.kyoto.jp\",\n      \"higashiyama.kyoto.jp\",\n      \"ide.kyoto.jp\",\n      \"ine.kyoto.jp\",\n      \"joyo.kyoto.jp\",\n      \"kameoka.kyoto.jp\",\n      \"kamo.kyoto.jp\",\n      \"kita.kyoto.jp\",\n      \"kizu.kyoto.jp\",\n      \"kumiyama.kyoto.jp\",\n      \"kyotamba.kyoto.jp\",\n      \"kyotanabe.kyoto.jp\",\n      \"kyotango.kyoto.jp\",\n      \"maizuru.kyoto.jp\",\n      \"minami.kyoto.jp\",\n      \"minamiyamashiro.kyoto.jp\",\n      \"miyazu.kyoto.jp\",\n      \"muko.kyoto.jp\",\n      \"nagaokakyo.kyoto.jp\",\n      \"nakagyo.kyoto.jp\",\n      \"nantan.kyoto.jp\",\n      \"oyamazaki.kyoto.jp\",\n      \"sakyo.kyoto.jp\",\n      \"seika.kyoto.jp\",\n      \"tanabe.kyoto.jp\",\n      \"uji.kyoto.jp\",\n      \"ujitawara.kyoto.jp\",\n      \"wazuka.kyoto.jp\",\n      \"yamashina.kyoto.jp\",\n      \"yawata.kyoto.jp\",\n      \"asahi.mie.jp\",\n      \"inabe.mie.jp\",\n      \"ise.mie.jp\",\n      \"kameyama.mie.jp\",\n      \"kawagoe.mie.jp\",\n      \"kiho.mie.jp\",\n      \"kisosaki.mie.jp\",\n      \"kiwa.mie.jp\",\n      \"komono.mie.jp\",\n      \"kumano.mie.jp\",\n      \"kuwana.mie.jp\",\n      \"matsusaka.mie.jp\",\n      \"meiwa.mie.jp\",\n      \"mihama.mie.jp\",\n      \"minamiise.mie.jp\",\n      \"misugi.mie.jp\",\n      \"miyama.mie.jp\",\n      \"nabari.mie.jp\",\n      \"shima.mie.jp\",\n      \"suzuka.mie.jp\",\n      \"tado.mie.jp\",\n      \"taiki.mie.jp\",\n      \"taki.mie.jp\",\n      \"tamaki.mie.jp\",\n      \"toba.mie.jp\",\n      \"tsu.mie.jp\",\n      \"udono.mie.jp\",\n      \"ureshino.mie.jp\",\n      \"watarai.mie.jp\",\n      \"yokkaichi.mie.jp\",\n      \"furukawa.miyagi.jp\",\n      \"higashimatsushima.miyagi.jp\",\n      \"ishinomaki.miyagi.jp\",\n      \"iwanuma.miyagi.jp\",\n      \"kakuda.miyagi.jp\",\n      \"kami.miyagi.jp\",\n      \"kawasaki.miyagi.jp\",\n      \"marumori.miyagi.jp\",\n      \"matsushima.miyagi.jp\",\n      \"minamisanriku.miyagi.jp\",\n      \"misato.miyagi.jp\",\n      \"murata.miyagi.jp\",\n      \"natori.miyagi.jp\",\n      \"ogawara.miyagi.jp\",\n      \"ohira.miyagi.jp\",\n      \"onagawa.miyagi.jp\",\n      \"osaki.miyagi.jp\",\n      \"rifu.miyagi.jp\",\n      \"semine.miyagi.jp\",\n      \"shibata.miyagi.jp\",\n      \"shichikashuku.miyagi.jp\",\n      \"shikama.miyagi.jp\",\n      \"shiogama.miyagi.jp\",\n      \"shiroishi.miyagi.jp\",\n      \"tagajo.miyagi.jp\",\n      \"taiwa.miyagi.jp\",\n      \"tome.miyagi.jp\",\n      \"tomiya.miyagi.jp\",\n      \"wakuya.miyagi.jp\",\n      \"watari.miyagi.jp\",\n      \"yamamoto.miyagi.jp\",\n      \"zao.miyagi.jp\",\n      \"aya.miyazaki.jp\",\n      \"ebino.miyazaki.jp\",\n      \"gokase.miyazaki.jp\",\n      \"hyuga.miyazaki.jp\",\n      \"kadogawa.miyazaki.jp\",\n      \"kawaminami.miyazaki.jp\",\n      \"kijo.miyazaki.jp\",\n      \"kitagawa.miyazaki.jp\",\n      \"kitakata.miyazaki.jp\",\n      \"kitaura.miyazaki.jp\",\n      \"kobayashi.miyazaki.jp\",\n      \"kunitomi.miyazaki.jp\",\n      \"kushima.miyazaki.jp\",\n      \"mimata.miyazaki.jp\",\n      \"miyakonojo.miyazaki.jp\",\n      \"miyazaki.miyazaki.jp\",\n      \"morotsuka.miyazaki.jp\",\n      \"nichinan.miyazaki.jp\",\n      \"nishimera.miyazaki.jp\",\n      \"nobeoka.miyazaki.jp\",\n      \"saito.miyazaki.jp\",\n      \"shiiba.miyazaki.jp\",\n      \"shintomi.miyazaki.jp\",\n      \"takaharu.miyazaki.jp\",\n      \"takanabe.miyazaki.jp\",\n      \"takazaki.miyazaki.jp\",\n      \"tsuno.miyazaki.jp\",\n      \"achi.nagano.jp\",\n      \"agematsu.nagano.jp\",\n      \"anan.nagano.jp\",\n      \"aoki.nagano.jp\",\n      \"asahi.nagano.jp\",\n      \"azumino.nagano.jp\",\n      \"chikuhoku.nagano.jp\",\n      \"chikuma.nagano.jp\",\n      \"chino.nagano.jp\",\n      \"fujimi.nagano.jp\",\n      \"hakuba.nagano.jp\",\n      \"hara.nagano.jp\",\n      \"hiraya.nagano.jp\",\n      \"iida.nagano.jp\",\n      \"iijima.nagano.jp\",\n      \"iiyama.nagano.jp\",\n      \"iizuna.nagano.jp\",\n      \"ikeda.nagano.jp\",\n      \"ikusaka.nagano.jp\",\n      \"ina.nagano.jp\",\n      \"karuizawa.nagano.jp\",\n      \"kawakami.nagano.jp\",\n      \"kiso.nagano.jp\",\n      \"kisofukushima.nagano.jp\",\n      \"kitaaiki.nagano.jp\",\n      \"komagane.nagano.jp\",\n      \"komoro.nagano.jp\",\n      \"matsukawa.nagano.jp\",\n      \"matsumoto.nagano.jp\",\n      \"miasa.nagano.jp\",\n      \"minamiaiki.nagano.jp\",\n      \"minamimaki.nagano.jp\",\n      \"minamiminowa.nagano.jp\",\n      \"minowa.nagano.jp\",\n      \"miyada.nagano.jp\",\n      \"miyota.nagano.jp\",\n      \"mochizuki.nagano.jp\",\n      \"nagano.nagano.jp\",\n      \"nagawa.nagano.jp\",\n      \"nagiso.nagano.jp\",\n      \"nakagawa.nagano.jp\",\n      \"nakano.nagano.jp\",\n      \"nozawaonsen.nagano.jp\",\n      \"obuse.nagano.jp\",\n      \"ogawa.nagano.jp\",\n      \"okaya.nagano.jp\",\n      \"omachi.nagano.jp\",\n      \"omi.nagano.jp\",\n      \"ookuwa.nagano.jp\",\n      \"ooshika.nagano.jp\",\n      \"otaki.nagano.jp\",\n      \"otari.nagano.jp\",\n      \"sakae.nagano.jp\",\n      \"sakaki.nagano.jp\",\n      \"saku.nagano.jp\",\n      \"sakuho.nagano.jp\",\n      \"shimosuwa.nagano.jp\",\n      \"shinanomachi.nagano.jp\",\n      \"shiojiri.nagano.jp\",\n      \"suwa.nagano.jp\",\n      \"suzaka.nagano.jp\",\n      \"takagi.nagano.jp\",\n      \"takamori.nagano.jp\",\n      \"takayama.nagano.jp\",\n      \"tateshina.nagano.jp\",\n      \"tatsuno.nagano.jp\",\n      \"togakushi.nagano.jp\",\n      \"togura.nagano.jp\",\n      \"tomi.nagano.jp\",\n      \"ueda.nagano.jp\",\n      \"wada.nagano.jp\",\n      \"yamagata.nagano.jp\",\n      \"yamanouchi.nagano.jp\",\n      \"yasaka.nagano.jp\",\n      \"yasuoka.nagano.jp\",\n      \"chijiwa.nagasaki.jp\",\n      \"futsu.nagasaki.jp\",\n      \"goto.nagasaki.jp\",\n      \"hasami.nagasaki.jp\",\n      \"hirado.nagasaki.jp\",\n      \"iki.nagasaki.jp\",\n      \"isahaya.nagasaki.jp\",\n      \"kawatana.nagasaki.jp\",\n      \"kuchinotsu.nagasaki.jp\",\n      \"matsuura.nagasaki.jp\",\n      \"nagasaki.nagasaki.jp\",\n      \"obama.nagasaki.jp\",\n      \"omura.nagasaki.jp\",\n      \"oseto.nagasaki.jp\",\n      \"saikai.nagasaki.jp\",\n      \"sasebo.nagasaki.jp\",\n      \"seihi.nagasaki.jp\",\n      \"shimabara.nagasaki.jp\",\n      \"shinkamigoto.nagasaki.jp\",\n      \"togitsu.nagasaki.jp\",\n      \"tsushima.nagasaki.jp\",\n      \"unzen.nagasaki.jp\",\n      \"ando.nara.jp\",\n      \"gose.nara.jp\",\n      \"heguri.nara.jp\",\n      \"higashiyoshino.nara.jp\",\n      \"ikaruga.nara.jp\",\n      \"ikoma.nara.jp\",\n      \"kamikitayama.nara.jp\",\n      \"kanmaki.nara.jp\",\n      \"kashiba.nara.jp\",\n      \"kashihara.nara.jp\",\n      \"katsuragi.nara.jp\",\n      \"kawai.nara.jp\",\n      \"kawakami.nara.jp\",\n      \"kawanishi.nara.jp\",\n      \"koryo.nara.jp\",\n      \"kurotaki.nara.jp\",\n      \"mitsue.nara.jp\",\n      \"miyake.nara.jp\",\n      \"nara.nara.jp\",\n      \"nosegawa.nara.jp\",\n      \"oji.nara.jp\",\n      \"ouda.nara.jp\",\n      \"oyodo.nara.jp\",\n      \"sakurai.nara.jp\",\n      \"sango.nara.jp\",\n      \"shimoichi.nara.jp\",\n      \"shimokitayama.nara.jp\",\n      \"shinjo.nara.jp\",\n      \"soni.nara.jp\",\n      \"takatori.nara.jp\",\n      \"tawaramoto.nara.jp\",\n      \"tenkawa.nara.jp\",\n      \"tenri.nara.jp\",\n      \"uda.nara.jp\",\n      \"yamatokoriyama.nara.jp\",\n      \"yamatotakada.nara.jp\",\n      \"yamazoe.nara.jp\",\n      \"yoshino.nara.jp\",\n      \"aga.niigata.jp\",\n      \"agano.niigata.jp\",\n      \"gosen.niigata.jp\",\n      \"itoigawa.niigata.jp\",\n      \"izumozaki.niigata.jp\",\n      \"joetsu.niigata.jp\",\n      \"kamo.niigata.jp\",\n      \"kariwa.niigata.jp\",\n      \"kashiwazaki.niigata.jp\",\n      \"minamiuonuma.niigata.jp\",\n      \"mitsuke.niigata.jp\",\n      \"muika.niigata.jp\",\n      \"murakami.niigata.jp\",\n      \"myoko.niigata.jp\",\n      \"nagaoka.niigata.jp\",\n      \"niigata.niigata.jp\",\n      \"ojiya.niigata.jp\",\n      \"omi.niigata.jp\",\n      \"sado.niigata.jp\",\n      \"sanjo.niigata.jp\",\n      \"seiro.niigata.jp\",\n      \"seirou.niigata.jp\",\n      \"sekikawa.niigata.jp\",\n      \"shibata.niigata.jp\",\n      \"tagami.niigata.jp\",\n      \"tainai.niigata.jp\",\n      \"tochio.niigata.jp\",\n      \"tokamachi.niigata.jp\",\n      \"tsubame.niigata.jp\",\n      \"tsunan.niigata.jp\",\n      \"uonuma.niigata.jp\",\n      \"yahiko.niigata.jp\",\n      \"yoita.niigata.jp\",\n      \"yuzawa.niigata.jp\",\n      \"beppu.oita.jp\",\n      \"bungoono.oita.jp\",\n      \"bungotakada.oita.jp\",\n      \"hasama.oita.jp\",\n      \"hiji.oita.jp\",\n      \"himeshima.oita.jp\",\n      \"hita.oita.jp\",\n      \"kamitsue.oita.jp\",\n      \"kokonoe.oita.jp\",\n      \"kuju.oita.jp\",\n      \"kunisaki.oita.jp\",\n      \"kusu.oita.jp\",\n      \"oita.oita.jp\",\n      \"saiki.oita.jp\",\n      \"taketa.oita.jp\",\n      \"tsukumi.oita.jp\",\n      \"usa.oita.jp\",\n      \"usuki.oita.jp\",\n      \"yufu.oita.jp\",\n      \"akaiwa.okayama.jp\",\n      \"asakuchi.okayama.jp\",\n      \"bizen.okayama.jp\",\n      \"hayashima.okayama.jp\",\n      \"ibara.okayama.jp\",\n      \"kagamino.okayama.jp\",\n      \"kasaoka.okayama.jp\",\n      \"kibichuo.okayama.jp\",\n      \"kumenan.okayama.jp\",\n      \"kurashiki.okayama.jp\",\n      \"maniwa.okayama.jp\",\n      \"misaki.okayama.jp\",\n      \"nagi.okayama.jp\",\n      \"niimi.okayama.jp\",\n      \"nishiawakura.okayama.jp\",\n      \"okayama.okayama.jp\",\n      \"satosho.okayama.jp\",\n      \"setouchi.okayama.jp\",\n      \"shinjo.okayama.jp\",\n      \"shoo.okayama.jp\",\n      \"soja.okayama.jp\",\n      \"takahashi.okayama.jp\",\n      \"tamano.okayama.jp\",\n      \"tsuyama.okayama.jp\",\n      \"wake.okayama.jp\",\n      \"yakage.okayama.jp\",\n      \"aguni.okinawa.jp\",\n      \"ginowan.okinawa.jp\",\n      \"ginoza.okinawa.jp\",\n      \"gushikami.okinawa.jp\",\n      \"haebaru.okinawa.jp\",\n      \"higashi.okinawa.jp\",\n      \"hirara.okinawa.jp\",\n      \"iheya.okinawa.jp\",\n      \"ishigaki.okinawa.jp\",\n      \"ishikawa.okinawa.jp\",\n      \"itoman.okinawa.jp\",\n      \"izena.okinawa.jp\",\n      \"kadena.okinawa.jp\",\n      \"kin.okinawa.jp\",\n      \"kitadaito.okinawa.jp\",\n      \"kitanakagusuku.okinawa.jp\",\n      \"kumejima.okinawa.jp\",\n      \"kunigami.okinawa.jp\",\n      \"minamidaito.okinawa.jp\",\n      \"motobu.okinawa.jp\",\n      \"nago.okinawa.jp\",\n      \"naha.okinawa.jp\",\n      \"nakagusuku.okinawa.jp\",\n      \"nakijin.okinawa.jp\",\n      \"nanjo.okinawa.jp\",\n      \"nishihara.okinawa.jp\",\n      \"ogimi.okinawa.jp\",\n      \"okinawa.okinawa.jp\",\n      \"onna.okinawa.jp\",\n      \"shimoji.okinawa.jp\",\n      \"taketomi.okinawa.jp\",\n      \"tarama.okinawa.jp\",\n      \"tokashiki.okinawa.jp\",\n      \"tomigusuku.okinawa.jp\",\n      \"tonaki.okinawa.jp\",\n      \"urasoe.okinawa.jp\",\n      \"uruma.okinawa.jp\",\n      \"yaese.okinawa.jp\",\n      \"yomitan.okinawa.jp\",\n      \"yonabaru.okinawa.jp\",\n      \"yonaguni.okinawa.jp\",\n      \"zamami.okinawa.jp\",\n      \"abeno.osaka.jp\",\n      \"chihayaakasaka.osaka.jp\",\n      \"chuo.osaka.jp\",\n      \"daito.osaka.jp\",\n      \"fujiidera.osaka.jp\",\n      \"habikino.osaka.jp\",\n      \"hannan.osaka.jp\",\n      \"higashiosaka.osaka.jp\",\n      \"higashisumiyoshi.osaka.jp\",\n      \"higashiyodogawa.osaka.jp\",\n      \"hirakata.osaka.jp\",\n      \"ibaraki.osaka.jp\",\n      \"ikeda.osaka.jp\",\n      \"izumi.osaka.jp\",\n      \"izumiotsu.osaka.jp\",\n      \"izumisano.osaka.jp\",\n      \"kadoma.osaka.jp\",\n      \"kaizuka.osaka.jp\",\n      \"kanan.osaka.jp\",\n      \"kashiwara.osaka.jp\",\n      \"katano.osaka.jp\",\n      \"kawachinagano.osaka.jp\",\n      \"kishiwada.osaka.jp\",\n      \"kita.osaka.jp\",\n      \"kumatori.osaka.jp\",\n      \"matsubara.osaka.jp\",\n      \"minato.osaka.jp\",\n      \"minoh.osaka.jp\",\n      \"misaki.osaka.jp\",\n      \"moriguchi.osaka.jp\",\n      \"neyagawa.osaka.jp\",\n      \"nishi.osaka.jp\",\n      \"nose.osaka.jp\",\n      \"osakasayama.osaka.jp\",\n      \"sakai.osaka.jp\",\n      \"sayama.osaka.jp\",\n      \"sennan.osaka.jp\",\n      \"settsu.osaka.jp\",\n      \"shijonawate.osaka.jp\",\n      \"shimamoto.osaka.jp\",\n      \"suita.osaka.jp\",\n      \"tadaoka.osaka.jp\",\n      \"taishi.osaka.jp\",\n      \"tajiri.osaka.jp\",\n      \"takaishi.osaka.jp\",\n      \"takatsuki.osaka.jp\",\n      \"tondabayashi.osaka.jp\",\n      \"toyonaka.osaka.jp\",\n      \"toyono.osaka.jp\",\n      \"yao.osaka.jp\",\n      \"ariake.saga.jp\",\n      \"arita.saga.jp\",\n      \"fukudomi.saga.jp\",\n      \"genkai.saga.jp\",\n      \"hamatama.saga.jp\",\n      \"hizen.saga.jp\",\n      \"imari.saga.jp\",\n      \"kamimine.saga.jp\",\n      \"kanzaki.saga.jp\",\n      \"karatsu.saga.jp\",\n      \"kashima.saga.jp\",\n      \"kitagata.saga.jp\",\n      \"kitahata.saga.jp\",\n      \"kiyama.saga.jp\",\n      \"kouhoku.saga.jp\",\n      \"kyuragi.saga.jp\",\n      \"nishiarita.saga.jp\",\n      \"ogi.saga.jp\",\n      \"omachi.saga.jp\",\n      \"ouchi.saga.jp\",\n      \"saga.saga.jp\",\n      \"shiroishi.saga.jp\",\n      \"taku.saga.jp\",\n      \"tara.saga.jp\",\n      \"tosu.saga.jp\",\n      \"yoshinogari.saga.jp\",\n      \"arakawa.saitama.jp\",\n      \"asaka.saitama.jp\",\n      \"chichibu.saitama.jp\",\n      \"fujimi.saitama.jp\",\n      \"fujimino.saitama.jp\",\n      \"fukaya.saitama.jp\",\n      \"hanno.saitama.jp\",\n      \"hanyu.saitama.jp\",\n      \"hasuda.saitama.jp\",\n      \"hatogaya.saitama.jp\",\n      \"hatoyama.saitama.jp\",\n      \"hidaka.saitama.jp\",\n      \"higashichichibu.saitama.jp\",\n      \"higashimatsuyama.saitama.jp\",\n      \"honjo.saitama.jp\",\n      \"ina.saitama.jp\",\n      \"iruma.saitama.jp\",\n      \"iwatsuki.saitama.jp\",\n      \"kamiizumi.saitama.jp\",\n      \"kamikawa.saitama.jp\",\n      \"kamisato.saitama.jp\",\n      \"kasukabe.saitama.jp\",\n      \"kawagoe.saitama.jp\",\n      \"kawaguchi.saitama.jp\",\n      \"kawajima.saitama.jp\",\n      \"kazo.saitama.jp\",\n      \"kitamoto.saitama.jp\",\n      \"koshigaya.saitama.jp\",\n      \"kounosu.saitama.jp\",\n      \"kuki.saitama.jp\",\n      \"kumagaya.saitama.jp\",\n      \"matsubushi.saitama.jp\",\n      \"minano.saitama.jp\",\n      \"misato.saitama.jp\",\n      \"miyashiro.saitama.jp\",\n      \"miyoshi.saitama.jp\",\n      \"moroyama.saitama.jp\",\n      \"nagatoro.saitama.jp\",\n      \"namegawa.saitama.jp\",\n      \"niiza.saitama.jp\",\n      \"ogano.saitama.jp\",\n      \"ogawa.saitama.jp\",\n      \"ogose.saitama.jp\",\n      \"okegawa.saitama.jp\",\n      \"omiya.saitama.jp\",\n      \"otaki.saitama.jp\",\n      \"ranzan.saitama.jp\",\n      \"ryokami.saitama.jp\",\n      \"saitama.saitama.jp\",\n      \"sakado.saitama.jp\",\n      \"satte.saitama.jp\",\n      \"sayama.saitama.jp\",\n      \"shiki.saitama.jp\",\n      \"shiraoka.saitama.jp\",\n      \"soka.saitama.jp\",\n      \"sugito.saitama.jp\",\n      \"toda.saitama.jp\",\n      \"tokigawa.saitama.jp\",\n      \"tokorozawa.saitama.jp\",\n      \"tsurugashima.saitama.jp\",\n      \"urawa.saitama.jp\",\n      \"warabi.saitama.jp\",\n      \"yashio.saitama.jp\",\n      \"yokoze.saitama.jp\",\n      \"yono.saitama.jp\",\n      \"yorii.saitama.jp\",\n      \"yoshida.saitama.jp\",\n      \"yoshikawa.saitama.jp\",\n      \"yoshimi.saitama.jp\",\n      \"aisho.shiga.jp\",\n      \"gamo.shiga.jp\",\n      \"higashiomi.shiga.jp\",\n      \"hikone.shiga.jp\",\n      \"koka.shiga.jp\",\n      \"konan.shiga.jp\",\n      \"kosei.shiga.jp\",\n      \"koto.shiga.jp\",\n      \"kusatsu.shiga.jp\",\n      \"maibara.shiga.jp\",\n      \"moriyama.shiga.jp\",\n      \"nagahama.shiga.jp\",\n      \"nishiazai.shiga.jp\",\n      \"notogawa.shiga.jp\",\n      \"omihachiman.shiga.jp\",\n      \"otsu.shiga.jp\",\n      \"ritto.shiga.jp\",\n      \"ryuoh.shiga.jp\",\n      \"takashima.shiga.jp\",\n      \"takatsuki.shiga.jp\",\n      \"torahime.shiga.jp\",\n      \"toyosato.shiga.jp\",\n      \"yasu.shiga.jp\",\n      \"akagi.shimane.jp\",\n      \"ama.shimane.jp\",\n      \"gotsu.shimane.jp\",\n      \"hamada.shimane.jp\",\n      \"higashiizumo.shimane.jp\",\n      \"hikawa.shimane.jp\",\n      \"hikimi.shimane.jp\",\n      \"izumo.shimane.jp\",\n      \"kakinoki.shimane.jp\",\n      \"masuda.shimane.jp\",\n      \"matsue.shimane.jp\",\n      \"misato.shimane.jp\",\n      \"nishinoshima.shimane.jp\",\n      \"ohda.shimane.jp\",\n      \"okinoshima.shimane.jp\",\n      \"okuizumo.shimane.jp\",\n      \"shimane.shimane.jp\",\n      \"tamayu.shimane.jp\",\n      \"tsuwano.shimane.jp\",\n      \"unnan.shimane.jp\",\n      \"yakumo.shimane.jp\",\n      \"yasugi.shimane.jp\",\n      \"yatsuka.shimane.jp\",\n      \"arai.shizuoka.jp\",\n      \"atami.shizuoka.jp\",\n      \"fuji.shizuoka.jp\",\n      \"fujieda.shizuoka.jp\",\n      \"fujikawa.shizuoka.jp\",\n      \"fujinomiya.shizuoka.jp\",\n      \"fukuroi.shizuoka.jp\",\n      \"gotemba.shizuoka.jp\",\n      \"haibara.shizuoka.jp\",\n      \"hamamatsu.shizuoka.jp\",\n      \"higashiizu.shizuoka.jp\",\n      \"ito.shizuoka.jp\",\n      \"iwata.shizuoka.jp\",\n      \"izu.shizuoka.jp\",\n      \"izunokuni.shizuoka.jp\",\n      \"kakegawa.shizuoka.jp\",\n      \"kannami.shizuoka.jp\",\n      \"kawanehon.shizuoka.jp\",\n      \"kawazu.shizuoka.jp\",\n      \"kikugawa.shizuoka.jp\",\n      \"kosai.shizuoka.jp\",\n      \"makinohara.shizuoka.jp\",\n      \"matsuzaki.shizuoka.jp\",\n      \"minamiizu.shizuoka.jp\",\n      \"mishima.shizuoka.jp\",\n      \"morimachi.shizuoka.jp\",\n      \"nishiizu.shizuoka.jp\",\n      \"numazu.shizuoka.jp\",\n      \"omaezaki.shizuoka.jp\",\n      \"shimada.shizuoka.jp\",\n      \"shimizu.shizuoka.jp\",\n      \"shimoda.shizuoka.jp\",\n      \"shizuoka.shizuoka.jp\",\n      \"susono.shizuoka.jp\",\n      \"yaizu.shizuoka.jp\",\n      \"yoshida.shizuoka.jp\",\n      \"ashikaga.tochigi.jp\",\n      \"bato.tochigi.jp\",\n      \"haga.tochigi.jp\",\n      \"ichikai.tochigi.jp\",\n      \"iwafune.tochigi.jp\",\n      \"kaminokawa.tochigi.jp\",\n      \"kanuma.tochigi.jp\",\n      \"karasuyama.tochigi.jp\",\n      \"kuroiso.tochigi.jp\",\n      \"mashiko.tochigi.jp\",\n      \"mibu.tochigi.jp\",\n      \"moka.tochigi.jp\",\n      \"motegi.tochigi.jp\",\n      \"nasu.tochigi.jp\",\n      \"nasushiobara.tochigi.jp\",\n      \"nikko.tochigi.jp\",\n      \"nishikata.tochigi.jp\",\n      \"nogi.tochigi.jp\",\n      \"ohira.tochigi.jp\",\n      \"ohtawara.tochigi.jp\",\n      \"oyama.tochigi.jp\",\n      \"sakura.tochigi.jp\",\n      \"sano.tochigi.jp\",\n      \"shimotsuke.tochigi.jp\",\n      \"shioya.tochigi.jp\",\n      \"takanezawa.tochigi.jp\",\n      \"tochigi.tochigi.jp\",\n      \"tsuga.tochigi.jp\",\n      \"ujiie.tochigi.jp\",\n      \"utsunomiya.tochigi.jp\",\n      \"yaita.tochigi.jp\",\n      \"aizumi.tokushima.jp\",\n      \"anan.tokushima.jp\",\n      \"ichiba.tokushima.jp\",\n      \"itano.tokushima.jp\",\n      \"kainan.tokushima.jp\",\n      \"komatsushima.tokushima.jp\",\n      \"matsushige.tokushima.jp\",\n      \"mima.tokushima.jp\",\n      \"minami.tokushima.jp\",\n      \"miyoshi.tokushima.jp\",\n      \"mugi.tokushima.jp\",\n      \"nakagawa.tokushima.jp\",\n      \"naruto.tokushima.jp\",\n      \"sanagochi.tokushima.jp\",\n      \"shishikui.tokushima.jp\",\n      \"tokushima.tokushima.jp\",\n      \"wajiki.tokushima.jp\",\n      \"adachi.tokyo.jp\",\n      \"akiruno.tokyo.jp\",\n      \"akishima.tokyo.jp\",\n      \"aogashima.tokyo.jp\",\n      \"arakawa.tokyo.jp\",\n      \"bunkyo.tokyo.jp\",\n      \"chiyoda.tokyo.jp\",\n      \"chofu.tokyo.jp\",\n      \"chuo.tokyo.jp\",\n      \"edogawa.tokyo.jp\",\n      \"fuchu.tokyo.jp\",\n      \"fussa.tokyo.jp\",\n      \"hachijo.tokyo.jp\",\n      \"hachioji.tokyo.jp\",\n      \"hamura.tokyo.jp\",\n      \"higashikurume.tokyo.jp\",\n      \"higashimurayama.tokyo.jp\",\n      \"higashiyamato.tokyo.jp\",\n      \"hino.tokyo.jp\",\n      \"hinode.tokyo.jp\",\n      \"hinohara.tokyo.jp\",\n      \"inagi.tokyo.jp\",\n      \"itabashi.tokyo.jp\",\n      \"katsushika.tokyo.jp\",\n      \"kita.tokyo.jp\",\n      \"kiyose.tokyo.jp\",\n      \"kodaira.tokyo.jp\",\n      \"koganei.tokyo.jp\",\n      \"kokubunji.tokyo.jp\",\n      \"komae.tokyo.jp\",\n      \"koto.tokyo.jp\",\n      \"kouzushima.tokyo.jp\",\n      \"kunitachi.tokyo.jp\",\n      \"machida.tokyo.jp\",\n      \"meguro.tokyo.jp\",\n      \"minato.tokyo.jp\",\n      \"mitaka.tokyo.jp\",\n      \"mizuho.tokyo.jp\",\n      \"musashimurayama.tokyo.jp\",\n      \"musashino.tokyo.jp\",\n      \"nakano.tokyo.jp\",\n      \"nerima.tokyo.jp\",\n      \"ogasawara.tokyo.jp\",\n      \"okutama.tokyo.jp\",\n      \"ome.tokyo.jp\",\n      \"oshima.tokyo.jp\",\n      \"ota.tokyo.jp\",\n      \"setagaya.tokyo.jp\",\n      \"shibuya.tokyo.jp\",\n      \"shinagawa.tokyo.jp\",\n      \"shinjuku.tokyo.jp\",\n      \"suginami.tokyo.jp\",\n      \"sumida.tokyo.jp\",\n      \"tachikawa.tokyo.jp\",\n      \"taito.tokyo.jp\",\n      \"tama.tokyo.jp\",\n      \"toshima.tokyo.jp\",\n      \"chizu.tottori.jp\",\n      \"hino.tottori.jp\",\n      \"kawahara.tottori.jp\",\n      \"koge.tottori.jp\",\n      \"kotoura.tottori.jp\",\n      \"misasa.tottori.jp\",\n      \"nanbu.tottori.jp\",\n      \"nichinan.tottori.jp\",\n      \"sakaiminato.tottori.jp\",\n      \"tottori.tottori.jp\",\n      \"wakasa.tottori.jp\",\n      \"yazu.tottori.jp\",\n      \"yonago.tottori.jp\",\n      \"asahi.toyama.jp\",\n      \"fuchu.toyama.jp\",\n      \"fukumitsu.toyama.jp\",\n      \"funahashi.toyama.jp\",\n      \"himi.toyama.jp\",\n      \"imizu.toyama.jp\",\n      \"inami.toyama.jp\",\n      \"johana.toyama.jp\",\n      \"kamiichi.toyama.jp\",\n      \"kurobe.toyama.jp\",\n      \"nakaniikawa.toyama.jp\",\n      \"namerikawa.toyama.jp\",\n      \"nanto.toyama.jp\",\n      \"nyuzen.toyama.jp\",\n      \"oyabe.toyama.jp\",\n      \"taira.toyama.jp\",\n      \"takaoka.toyama.jp\",\n      \"tateyama.toyama.jp\",\n      \"toga.toyama.jp\",\n      \"tonami.toyama.jp\",\n      \"toyama.toyama.jp\",\n      \"unazuki.toyama.jp\",\n      \"uozu.toyama.jp\",\n      \"yamada.toyama.jp\",\n      \"arida.wakayama.jp\",\n      \"aridagawa.wakayama.jp\",\n      \"gobo.wakayama.jp\",\n      \"hashimoto.wakayama.jp\",\n      \"hidaka.wakayama.jp\",\n      \"hirogawa.wakayama.jp\",\n      \"inami.wakayama.jp\",\n      \"iwade.wakayama.jp\",\n      \"kainan.wakayama.jp\",\n      \"kamitonda.wakayama.jp\",\n      \"katsuragi.wakayama.jp\",\n      \"kimino.wakayama.jp\",\n      \"kinokawa.wakayama.jp\",\n      \"kitayama.wakayama.jp\",\n      \"koya.wakayama.jp\",\n      \"koza.wakayama.jp\",\n      \"kozagawa.wakayama.jp\",\n      \"kudoyama.wakayama.jp\",\n      \"kushimoto.wakayama.jp\",\n      \"mihama.wakayama.jp\",\n      \"misato.wakayama.jp\",\n      \"nachikatsuura.wakayama.jp\",\n      \"shingu.wakayama.jp\",\n      \"shirahama.wakayama.jp\",\n      \"taiji.wakayama.jp\",\n      \"tanabe.wakayama.jp\",\n      \"wakayama.wakayama.jp\",\n      \"yuasa.wakayama.jp\",\n      \"yura.wakayama.jp\",\n      \"asahi.yamagata.jp\",\n      \"funagata.yamagata.jp\",\n      \"higashine.yamagata.jp\",\n      \"iide.yamagata.jp\",\n      \"kahoku.yamagata.jp\",\n      \"kaminoyama.yamagata.jp\",\n      \"kaneyama.yamagata.jp\",\n      \"kawanishi.yamagata.jp\",\n      \"mamurogawa.yamagata.jp\",\n      \"mikawa.yamagata.jp\",\n      \"murayama.yamagata.jp\",\n      \"nagai.yamagata.jp\",\n      \"nakayama.yamagata.jp\",\n      \"nanyo.yamagata.jp\",\n      \"nishikawa.yamagata.jp\",\n      \"obanazawa.yamagata.jp\",\n      \"oe.yamagata.jp\",\n      \"oguni.yamagata.jp\",\n      \"ohkura.yamagata.jp\",\n      \"oishida.yamagata.jp\",\n      \"sagae.yamagata.jp\",\n      \"sakata.yamagata.jp\",\n      \"sakegawa.yamagata.jp\",\n      \"shinjo.yamagata.jp\",\n      \"shirataka.yamagata.jp\",\n      \"shonai.yamagata.jp\",\n      \"takahata.yamagata.jp\",\n      \"tendo.yamagata.jp\",\n      \"tozawa.yamagata.jp\",\n      \"tsuruoka.yamagata.jp\",\n      \"yamagata.yamagata.jp\",\n      \"yamanobe.yamagata.jp\",\n      \"yonezawa.yamagata.jp\",\n      \"yuza.yamagata.jp\",\n      \"abu.yamaguchi.jp\",\n      \"hagi.yamaguchi.jp\",\n      \"hikari.yamaguchi.jp\",\n      \"hofu.yamaguchi.jp\",\n      \"iwakuni.yamaguchi.jp\",\n      \"kudamatsu.yamaguchi.jp\",\n      \"mitou.yamaguchi.jp\",\n      \"nagato.yamaguchi.jp\",\n      \"oshima.yamaguchi.jp\",\n      \"shimonoseki.yamaguchi.jp\",\n      \"shunan.yamaguchi.jp\",\n      \"tabuse.yamaguchi.jp\",\n      \"tokuyama.yamaguchi.jp\",\n      \"toyota.yamaguchi.jp\",\n      \"ube.yamaguchi.jp\",\n      \"yuu.yamaguchi.jp\",\n      \"chuo.yamanashi.jp\",\n      \"doshi.yamanashi.jp\",\n      \"fuefuki.yamanashi.jp\",\n      \"fujikawa.yamanashi.jp\",\n      \"fujikawaguchiko.yamanashi.jp\",\n      \"fujiyoshida.yamanashi.jp\",\n      \"hayakawa.yamanashi.jp\",\n      \"hokuto.yamanashi.jp\",\n      \"ichikawamisato.yamanashi.jp\",\n      \"kai.yamanashi.jp\",\n      \"kofu.yamanashi.jp\",\n      \"koshu.yamanashi.jp\",\n      \"kosuge.yamanashi.jp\",\n      \"minami-alps.yamanashi.jp\",\n      \"minobu.yamanashi.jp\",\n      \"nakamichi.yamanashi.jp\",\n      \"nanbu.yamanashi.jp\",\n      \"narusawa.yamanashi.jp\",\n      \"nirasaki.yamanashi.jp\",\n      \"nishikatsura.yamanashi.jp\",\n      \"oshino.yamanashi.jp\",\n      \"otsuki.yamanashi.jp\",\n      \"showa.yamanashi.jp\",\n      \"tabayama.yamanashi.jp\",\n      \"tsuru.yamanashi.jp\",\n      \"uenohara.yamanashi.jp\",\n      \"yamanakako.yamanashi.jp\",\n      \"yamanashi.yamanashi.jp\",\n      \"ke\",\n      \"ac.ke\",\n      \"co.ke\",\n      \"go.ke\",\n      \"info.ke\",\n      \"me.ke\",\n      \"mobi.ke\",\n      \"ne.ke\",\n      \"or.ke\",\n      \"sc.ke\",\n      \"kg\",\n      \"org.kg\",\n      \"net.kg\",\n      \"com.kg\",\n      \"edu.kg\",\n      \"gov.kg\",\n      \"mil.kg\",\n      \"*.kh\",\n      \"ki\",\n      \"edu.ki\",\n      \"biz.ki\",\n      \"net.ki\",\n      \"org.ki\",\n      \"gov.ki\",\n      \"info.ki\",\n      \"com.ki\",\n      \"km\",\n      \"org.km\",\n      \"nom.km\",\n      \"gov.km\",\n      \"prd.km\",\n      \"tm.km\",\n      \"edu.km\",\n      \"mil.km\",\n      \"ass.km\",\n      \"com.km\",\n      \"coop.km\",\n      \"asso.km\",\n      \"presse.km\",\n      \"medecin.km\",\n      \"notaires.km\",\n      \"pharmaciens.km\",\n      \"veterinaire.km\",\n      \"gouv.km\",\n      \"kn\",\n      \"net.kn\",\n      \"org.kn\",\n      \"edu.kn\",\n      \"gov.kn\",\n      \"kp\",\n      \"com.kp\",\n      \"edu.kp\",\n      \"gov.kp\",\n      \"org.kp\",\n      \"rep.kp\",\n      \"tra.kp\",\n      \"kr\",\n      \"ac.kr\",\n      \"co.kr\",\n      \"es.kr\",\n      \"go.kr\",\n      \"hs.kr\",\n      \"kg.kr\",\n      \"mil.kr\",\n      \"ms.kr\",\n      \"ne.kr\",\n      \"or.kr\",\n      \"pe.kr\",\n      \"re.kr\",\n      \"sc.kr\",\n      \"busan.kr\",\n      \"chungbuk.kr\",\n      \"chungnam.kr\",\n      \"daegu.kr\",\n      \"daejeon.kr\",\n      \"gangwon.kr\",\n      \"gwangju.kr\",\n      \"gyeongbuk.kr\",\n      \"gyeonggi.kr\",\n      \"gyeongnam.kr\",\n      \"incheon.kr\",\n      \"jeju.kr\",\n      \"jeonbuk.kr\",\n      \"jeonnam.kr\",\n      \"seoul.kr\",\n      \"ulsan.kr\",\n      \"kw\",\n      \"com.kw\",\n      \"edu.kw\",\n      \"emb.kw\",\n      \"gov.kw\",\n      \"ind.kw\",\n      \"net.kw\",\n      \"org.kw\",\n      \"ky\",\n      \"com.ky\",\n      \"edu.ky\",\n      \"net.ky\",\n      \"org.ky\",\n      \"kz\",\n      \"org.kz\",\n      \"edu.kz\",\n      \"net.kz\",\n      \"gov.kz\",\n      \"mil.kz\",\n      \"com.kz\",\n      \"la\",\n      \"int.la\",\n      \"net.la\",\n      \"info.la\",\n      \"edu.la\",\n      \"gov.la\",\n      \"per.la\",\n      \"com.la\",\n      \"org.la\",\n      \"lb\",\n      \"com.lb\",\n      \"edu.lb\",\n      \"gov.lb\",\n      \"net.lb\",\n      \"org.lb\",\n      \"lc\",\n      \"com.lc\",\n      \"net.lc\",\n      \"co.lc\",\n      \"org.lc\",\n      \"edu.lc\",\n      \"gov.lc\",\n      \"li\",\n      \"lk\",\n      \"gov.lk\",\n      \"sch.lk\",\n      \"net.lk\",\n      \"int.lk\",\n      \"com.lk\",\n      \"org.lk\",\n      \"edu.lk\",\n      \"ngo.lk\",\n      \"soc.lk\",\n      \"web.lk\",\n      \"ltd.lk\",\n      \"assn.lk\",\n      \"grp.lk\",\n      \"hotel.lk\",\n      \"ac.lk\",\n      \"lr\",\n      \"com.lr\",\n      \"edu.lr\",\n      \"gov.lr\",\n      \"org.lr\",\n      \"net.lr\",\n      \"ls\",\n      \"ac.ls\",\n      \"biz.ls\",\n      \"co.ls\",\n      \"edu.ls\",\n      \"gov.ls\",\n      \"info.ls\",\n      \"net.ls\",\n      \"org.ls\",\n      \"sc.ls\",\n      \"lt\",\n      \"gov.lt\",\n      \"lu\",\n      \"lv\",\n      \"com.lv\",\n      \"edu.lv\",\n      \"gov.lv\",\n      \"org.lv\",\n      \"mil.lv\",\n      \"id.lv\",\n      \"net.lv\",\n      \"asn.lv\",\n      \"conf.lv\",\n      \"ly\",\n      \"com.ly\",\n      \"net.ly\",\n      \"gov.ly\",\n      \"plc.ly\",\n      \"edu.ly\",\n      \"sch.ly\",\n      \"med.ly\",\n      \"org.ly\",\n      \"id.ly\",\n      \"ma\",\n      \"co.ma\",\n      \"net.ma\",\n      \"gov.ma\",\n      \"org.ma\",\n      \"ac.ma\",\n      \"press.ma\",\n      \"mc\",\n      \"tm.mc\",\n      \"asso.mc\",\n      \"md\",\n      \"me\",\n      \"co.me\",\n      \"net.me\",\n      \"org.me\",\n      \"edu.me\",\n      \"ac.me\",\n      \"gov.me\",\n      \"its.me\",\n      \"priv.me\",\n      \"mg\",\n      \"org.mg\",\n      \"nom.mg\",\n      \"gov.mg\",\n      \"prd.mg\",\n      \"tm.mg\",\n      \"edu.mg\",\n      \"mil.mg\",\n      \"com.mg\",\n      \"co.mg\",\n      \"mh\",\n      \"mil\",\n      \"mk\",\n      \"com.mk\",\n      \"org.mk\",\n      \"net.mk\",\n      \"edu.mk\",\n      \"gov.mk\",\n      \"inf.mk\",\n      \"name.mk\",\n      \"ml\",\n      \"com.ml\",\n      \"edu.ml\",\n      \"gouv.ml\",\n      \"gov.ml\",\n      \"net.ml\",\n      \"org.ml\",\n      \"presse.ml\",\n      \"*.mm\",\n      \"mn\",\n      \"gov.mn\",\n      \"edu.mn\",\n      \"org.mn\",\n      \"mo\",\n      \"com.mo\",\n      \"net.mo\",\n      \"org.mo\",\n      \"edu.mo\",\n      \"gov.mo\",\n      \"mobi\",\n      \"mp\",\n      \"mq\",\n      \"mr\",\n      \"gov.mr\",\n      \"ms\",\n      \"com.ms\",\n      \"edu.ms\",\n      \"gov.ms\",\n      \"net.ms\",\n      \"org.ms\",\n      \"mt\",\n      \"com.mt\",\n      \"edu.mt\",\n      \"net.mt\",\n      \"org.mt\",\n      \"mu\",\n      \"com.mu\",\n      \"net.mu\",\n      \"org.mu\",\n      \"gov.mu\",\n      \"ac.mu\",\n      \"co.mu\",\n      \"or.mu\",\n      \"museum\",\n      \"academy.museum\",\n      \"agriculture.museum\",\n      \"air.museum\",\n      \"airguard.museum\",\n      \"alabama.museum\",\n      \"alaska.museum\",\n      \"amber.museum\",\n      \"ambulance.museum\",\n      \"american.museum\",\n      \"americana.museum\",\n      \"americanantiques.museum\",\n      \"americanart.museum\",\n      \"amsterdam.museum\",\n      \"and.museum\",\n      \"annefrank.museum\",\n      \"anthro.museum\",\n      \"anthropology.museum\",\n      \"antiques.museum\",\n      \"aquarium.museum\",\n      \"arboretum.museum\",\n      \"archaeological.museum\",\n      \"archaeology.museum\",\n      \"architecture.museum\",\n      \"art.museum\",\n      \"artanddesign.museum\",\n      \"artcenter.museum\",\n      \"artdeco.museum\",\n      \"arteducation.museum\",\n      \"artgallery.museum\",\n      \"arts.museum\",\n      \"artsandcrafts.museum\",\n      \"asmatart.museum\",\n      \"assassination.museum\",\n      \"assisi.museum\",\n      \"association.museum\",\n      \"astronomy.museum\",\n      \"atlanta.museum\",\n      \"austin.museum\",\n      \"australia.museum\",\n      \"automotive.museum\",\n      \"aviation.museum\",\n      \"axis.museum\",\n      \"badajoz.museum\",\n      \"baghdad.museum\",\n      \"bahn.museum\",\n      \"bale.museum\",\n      \"baltimore.museum\",\n      \"barcelona.museum\",\n      \"baseball.museum\",\n      \"basel.museum\",\n      \"baths.museum\",\n      \"bauern.museum\",\n      \"beauxarts.museum\",\n      \"beeldengeluid.museum\",\n      \"bellevue.museum\",\n      \"bergbau.museum\",\n      \"berkeley.museum\",\n      \"berlin.museum\",\n      \"bern.museum\",\n      \"bible.museum\",\n      \"bilbao.museum\",\n      \"bill.museum\",\n      \"birdart.museum\",\n      \"birthplace.museum\",\n      \"bonn.museum\",\n      \"boston.museum\",\n      \"botanical.museum\",\n      \"botanicalgarden.museum\",\n      \"botanicgarden.museum\",\n      \"botany.museum\",\n      \"brandywinevalley.museum\",\n      \"brasil.museum\",\n      \"bristol.museum\",\n      \"british.museum\",\n      \"britishcolumbia.museum\",\n      \"broadcast.museum\",\n      \"brunel.museum\",\n      \"brussel.museum\",\n      \"brussels.museum\",\n      \"bruxelles.museum\",\n      \"building.museum\",\n      \"burghof.museum\",\n      \"bus.museum\",\n      \"bushey.museum\",\n      \"cadaques.museum\",\n      \"california.museum\",\n      \"cambridge.museum\",\n      \"can.museum\",\n      \"canada.museum\",\n      \"capebreton.museum\",\n      \"carrier.museum\",\n      \"cartoonart.museum\",\n      \"casadelamoneda.museum\",\n      \"castle.museum\",\n      \"castres.museum\",\n      \"celtic.museum\",\n      \"center.museum\",\n      \"chattanooga.museum\",\n      \"cheltenham.museum\",\n      \"chesapeakebay.museum\",\n      \"chicago.museum\",\n      \"children.museum\",\n      \"childrens.museum\",\n      \"childrensgarden.museum\",\n      \"chiropractic.museum\",\n      \"chocolate.museum\",\n      \"christiansburg.museum\",\n      \"cincinnati.museum\",\n      \"cinema.museum\",\n      \"circus.museum\",\n      \"civilisation.museum\",\n      \"civilization.museum\",\n      \"civilwar.museum\",\n      \"clinton.museum\",\n      \"clock.museum\",\n      \"coal.museum\",\n      \"coastaldefence.museum\",\n      \"cody.museum\",\n      \"coldwar.museum\",\n      \"collection.museum\",\n      \"colonialwilliamsburg.museum\",\n      \"coloradoplateau.museum\",\n      \"columbia.museum\",\n      \"columbus.museum\",\n      \"communication.museum\",\n      \"communications.museum\",\n      \"community.museum\",\n      \"computer.museum\",\n      \"computerhistory.museum\",\n      \"comunica\\xE7\\xF5es.museum\",\n      \"contemporary.museum\",\n      \"contemporaryart.museum\",\n      \"convent.museum\",\n      \"copenhagen.museum\",\n      \"corporation.museum\",\n      \"correios-e-telecomunica\\xE7\\xF5es.museum\",\n      \"corvette.museum\",\n      \"costume.museum\",\n      \"countryestate.museum\",\n      \"county.museum\",\n      \"crafts.museum\",\n      \"cranbrook.museum\",\n      \"creation.museum\",\n      \"cultural.museum\",\n      \"culturalcenter.museum\",\n      \"culture.museum\",\n      \"cyber.museum\",\n      \"cymru.museum\",\n      \"dali.museum\",\n      \"dallas.museum\",\n      \"database.museum\",\n      \"ddr.museum\",\n      \"decorativearts.museum\",\n      \"delaware.museum\",\n      \"delmenhorst.museum\",\n      \"denmark.museum\",\n      \"depot.museum\",\n      \"design.museum\",\n      \"detroit.museum\",\n      \"dinosaur.museum\",\n      \"discovery.museum\",\n      \"dolls.museum\",\n      \"donostia.museum\",\n      \"durham.museum\",\n      \"eastafrica.museum\",\n      \"eastcoast.museum\",\n      \"education.museum\",\n      \"educational.museum\",\n      \"egyptian.museum\",\n      \"eisenbahn.museum\",\n      \"elburg.museum\",\n      \"elvendrell.museum\",\n      \"embroidery.museum\",\n      \"encyclopedic.museum\",\n      \"england.museum\",\n      \"entomology.museum\",\n      \"environment.museum\",\n      \"environmentalconservation.museum\",\n      \"epilepsy.museum\",\n      \"essex.museum\",\n      \"estate.museum\",\n      \"ethnology.museum\",\n      \"exeter.museum\",\n      \"exhibition.museum\",\n      \"family.museum\",\n      \"farm.museum\",\n      \"farmequipment.museum\",\n      \"farmers.museum\",\n      \"farmstead.museum\",\n      \"field.museum\",\n      \"figueres.museum\",\n      \"filatelia.museum\",\n      \"film.museum\",\n      \"fineart.museum\",\n      \"finearts.museum\",\n      \"finland.museum\",\n      \"flanders.museum\",\n      \"florida.museum\",\n      \"force.museum\",\n      \"fortmissoula.museum\",\n      \"fortworth.museum\",\n      \"foundation.museum\",\n      \"francaise.museum\",\n      \"frankfurt.museum\",\n      \"franziskaner.museum\",\n      \"freemasonry.museum\",\n      \"freiburg.museum\",\n      \"fribourg.museum\",\n      \"frog.museum\",\n      \"fundacio.museum\",\n      \"furniture.museum\",\n      \"gallery.museum\",\n      \"garden.museum\",\n      \"gateway.museum\",\n      \"geelvinck.museum\",\n      \"gemological.museum\",\n      \"geology.museum\",\n      \"georgia.museum\",\n      \"giessen.museum\",\n      \"glas.museum\",\n      \"glass.museum\",\n      \"gorge.museum\",\n      \"grandrapids.museum\",\n      \"graz.museum\",\n      \"guernsey.museum\",\n      \"halloffame.museum\",\n      \"hamburg.museum\",\n      \"handson.museum\",\n      \"harvestcelebration.museum\",\n      \"hawaii.museum\",\n      \"health.museum\",\n      \"heimatunduhren.museum\",\n      \"hellas.museum\",\n      \"helsinki.museum\",\n      \"hembygdsforbund.museum\",\n      \"heritage.museum\",\n      \"histoire.museum\",\n      \"historical.museum\",\n      \"historicalsociety.museum\",\n      \"historichouses.museum\",\n      \"historisch.museum\",\n      \"historisches.museum\",\n      \"history.museum\",\n      \"historyofscience.museum\",\n      \"horology.museum\",\n      \"house.museum\",\n      \"humanities.museum\",\n      \"illustration.museum\",\n      \"imageandsound.museum\",\n      \"indian.museum\",\n      \"indiana.museum\",\n      \"indianapolis.museum\",\n      \"indianmarket.museum\",\n      \"intelligence.museum\",\n      \"interactive.museum\",\n      \"iraq.museum\",\n      \"iron.museum\",\n      \"isleofman.museum\",\n      \"jamison.museum\",\n      \"jefferson.museum\",\n      \"jerusalem.museum\",\n      \"jewelry.museum\",\n      \"jewish.museum\",\n      \"jewishart.museum\",\n      \"jfk.museum\",\n      \"journalism.museum\",\n      \"judaica.museum\",\n      \"judygarland.museum\",\n      \"juedisches.museum\",\n      \"juif.museum\",\n      \"karate.museum\",\n      \"karikatur.museum\",\n      \"kids.museum\",\n      \"koebenhavn.museum\",\n      \"koeln.museum\",\n      \"kunst.museum\",\n      \"kunstsammlung.museum\",\n      \"kunstunddesign.museum\",\n      \"labor.museum\",\n      \"labour.museum\",\n      \"lajolla.museum\",\n      \"lancashire.museum\",\n      \"landes.museum\",\n      \"lans.museum\",\n      \"l\\xE4ns.museum\",\n      \"larsson.museum\",\n      \"lewismiller.museum\",\n      \"lincoln.museum\",\n      \"linz.museum\",\n      \"living.museum\",\n      \"livinghistory.museum\",\n      \"localhistory.museum\",\n      \"london.museum\",\n      \"losangeles.museum\",\n      \"louvre.museum\",\n      \"loyalist.museum\",\n      \"lucerne.museum\",\n      \"luxembourg.museum\",\n      \"luzern.museum\",\n      \"mad.museum\",\n      \"madrid.museum\",\n      \"mallorca.museum\",\n      \"manchester.museum\",\n      \"mansion.museum\",\n      \"mansions.museum\",\n      \"manx.museum\",\n      \"marburg.museum\",\n      \"maritime.museum\",\n      \"maritimo.museum\",\n      \"maryland.museum\",\n      \"marylhurst.museum\",\n      \"media.museum\",\n      \"medical.museum\",\n      \"medizinhistorisches.museum\",\n      \"meeres.museum\",\n      \"memorial.museum\",\n      \"mesaverde.museum\",\n      \"michigan.museum\",\n      \"midatlantic.museum\",\n      \"military.museum\",\n      \"mill.museum\",\n      \"miners.museum\",\n      \"mining.museum\",\n      \"minnesota.museum\",\n      \"missile.museum\",\n      \"missoula.museum\",\n      \"modern.museum\",\n      \"moma.museum\",\n      \"money.museum\",\n      \"monmouth.museum\",\n      \"monticello.museum\",\n      \"montreal.museum\",\n      \"moscow.museum\",\n      \"motorcycle.museum\",\n      \"muenchen.museum\",\n      \"muenster.museum\",\n      \"mulhouse.museum\",\n      \"muncie.museum\",\n      \"museet.museum\",\n      \"museumcenter.museum\",\n      \"museumvereniging.museum\",\n      \"music.museum\",\n      \"national.museum\",\n      \"nationalfirearms.museum\",\n      \"nationalheritage.museum\",\n      \"nativeamerican.museum\",\n      \"naturalhistory.museum\",\n      \"naturalhistorymuseum.museum\",\n      \"naturalsciences.museum\",\n      \"nature.museum\",\n      \"naturhistorisches.museum\",\n      \"natuurwetenschappen.museum\",\n      \"naumburg.museum\",\n      \"naval.museum\",\n      \"nebraska.museum\",\n      \"neues.museum\",\n      \"newhampshire.museum\",\n      \"newjersey.museum\",\n      \"newmexico.museum\",\n      \"newport.museum\",\n      \"newspaper.museum\",\n      \"newyork.museum\",\n      \"niepce.museum\",\n      \"norfolk.museum\",\n      \"north.museum\",\n      \"nrw.museum\",\n      \"nyc.museum\",\n      \"nyny.museum\",\n      \"oceanographic.museum\",\n      \"oceanographique.museum\",\n      \"omaha.museum\",\n      \"online.museum\",\n      \"ontario.museum\",\n      \"openair.museum\",\n      \"oregon.museum\",\n      \"oregontrail.museum\",\n      \"otago.museum\",\n      \"oxford.museum\",\n      \"pacific.museum\",\n      \"paderborn.museum\",\n      \"palace.museum\",\n      \"paleo.museum\",\n      \"palmsprings.museum\",\n      \"panama.museum\",\n      \"paris.museum\",\n      \"pasadena.museum\",\n      \"pharmacy.museum\",\n      \"philadelphia.museum\",\n      \"philadelphiaarea.museum\",\n      \"philately.museum\",\n      \"phoenix.museum\",\n      \"photography.museum\",\n      \"pilots.museum\",\n      \"pittsburgh.museum\",\n      \"planetarium.museum\",\n      \"plantation.museum\",\n      \"plants.museum\",\n      \"plaza.museum\",\n      \"portal.museum\",\n      \"portland.museum\",\n      \"portlligat.museum\",\n      \"posts-and-telecommunications.museum\",\n      \"preservation.museum\",\n      \"presidio.museum\",\n      \"press.museum\",\n      \"project.museum\",\n      \"public.museum\",\n      \"pubol.museum\",\n      \"quebec.museum\",\n      \"railroad.museum\",\n      \"railway.museum\",\n      \"research.museum\",\n      \"resistance.museum\",\n      \"riodejaneiro.museum\",\n      \"rochester.museum\",\n      \"rockart.museum\",\n      \"roma.museum\",\n      \"russia.museum\",\n      \"saintlouis.museum\",\n      \"salem.museum\",\n      \"salvadordali.museum\",\n      \"salzburg.museum\",\n      \"sandiego.museum\",\n      \"sanfrancisco.museum\",\n      \"santabarbara.museum\",\n      \"santacruz.museum\",\n      \"santafe.museum\",\n      \"saskatchewan.museum\",\n      \"satx.museum\",\n      \"savannahga.museum\",\n      \"schlesisches.museum\",\n      \"schoenbrunn.museum\",\n      \"schokoladen.museum\",\n      \"school.museum\",\n      \"schweiz.museum\",\n      \"science.museum\",\n      \"scienceandhistory.museum\",\n      \"scienceandindustry.museum\",\n      \"sciencecenter.museum\",\n      \"sciencecenters.museum\",\n      \"science-fiction.museum\",\n      \"sciencehistory.museum\",\n      \"sciences.museum\",\n      \"sciencesnaturelles.museum\",\n      \"scotland.museum\",\n      \"seaport.museum\",\n      \"settlement.museum\",\n      \"settlers.museum\",\n      \"shell.museum\",\n      \"sherbrooke.museum\",\n      \"sibenik.museum\",\n      \"silk.museum\",\n      \"ski.museum\",\n      \"skole.museum\",\n      \"society.museum\",\n      \"sologne.museum\",\n      \"soundandvision.museum\",\n      \"southcarolina.museum\",\n      \"southwest.museum\",\n      \"space.museum\",\n      \"spy.museum\",\n      \"square.museum\",\n      \"stadt.museum\",\n      \"stalbans.museum\",\n      \"starnberg.museum\",\n      \"state.museum\",\n      \"stateofdelaware.museum\",\n      \"station.museum\",\n      \"steam.museum\",\n      \"steiermark.museum\",\n      \"stjohn.museum\",\n      \"stockholm.museum\",\n      \"stpetersburg.museum\",\n      \"stuttgart.museum\",\n      \"suisse.museum\",\n      \"surgeonshall.museum\",\n      \"surrey.museum\",\n      \"svizzera.museum\",\n      \"sweden.museum\",\n      \"sydney.museum\",\n      \"tank.museum\",\n      \"tcm.museum\",\n      \"technology.museum\",\n      \"telekommunikation.museum\",\n      \"television.museum\",\n      \"texas.museum\",\n      \"textile.museum\",\n      \"theater.museum\",\n      \"time.museum\",\n      \"timekeeping.museum\",\n      \"topology.museum\",\n      \"torino.museum\",\n      \"touch.museum\",\n      \"town.museum\",\n      \"transport.museum\",\n      \"tree.museum\",\n      \"trolley.museum\",\n      \"trust.museum\",\n      \"trustee.museum\",\n      \"uhren.museum\",\n      \"ulm.museum\",\n      \"undersea.museum\",\n      \"university.museum\",\n      \"usa.museum\",\n      \"usantiques.museum\",\n      \"usarts.museum\",\n      \"uscountryestate.museum\",\n      \"usculture.museum\",\n      \"usdecorativearts.museum\",\n      \"usgarden.museum\",\n      \"ushistory.museum\",\n      \"ushuaia.museum\",\n      \"uslivinghistory.museum\",\n      \"utah.museum\",\n      \"uvic.museum\",\n      \"valley.museum\",\n      \"vantaa.museum\",\n      \"versailles.museum\",\n      \"viking.museum\",\n      \"village.museum\",\n      \"virginia.museum\",\n      \"virtual.museum\",\n      \"virtuel.museum\",\n      \"vlaanderen.museum\",\n      \"volkenkunde.museum\",\n      \"wales.museum\",\n      \"wallonie.museum\",\n      \"war.museum\",\n      \"washingtondc.museum\",\n      \"watchandclock.museum\",\n      \"watch-and-clock.museum\",\n      \"western.museum\",\n      \"westfalen.museum\",\n      \"whaling.museum\",\n      \"wildlife.museum\",\n      \"williamsburg.museum\",\n      \"windmill.museum\",\n      \"workshop.museum\",\n      \"york.museum\",\n      \"yorkshire.museum\",\n      \"yosemite.museum\",\n      \"youth.museum\",\n      \"zoological.museum\",\n      \"zoology.museum\",\n      \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD.museum\",\n      \"\\u0438\\u043A\\u043E\\u043C.museum\",\n      \"mv\",\n      \"aero.mv\",\n      \"biz.mv\",\n      \"com.mv\",\n      \"coop.mv\",\n      \"edu.mv\",\n      \"gov.mv\",\n      \"info.mv\",\n      \"int.mv\",\n      \"mil.mv\",\n      \"museum.mv\",\n      \"name.mv\",\n      \"net.mv\",\n      \"org.mv\",\n      \"pro.mv\",\n      \"mw\",\n      \"ac.mw\",\n      \"biz.mw\",\n      \"co.mw\",\n      \"com.mw\",\n      \"coop.mw\",\n      \"edu.mw\",\n      \"gov.mw\",\n      \"int.mw\",\n      \"museum.mw\",\n      \"net.mw\",\n      \"org.mw\",\n      \"mx\",\n      \"com.mx\",\n      \"org.mx\",\n      \"gob.mx\",\n      \"edu.mx\",\n      \"net.mx\",\n      \"my\",\n      \"biz.my\",\n      \"com.my\",\n      \"edu.my\",\n      \"gov.my\",\n      \"mil.my\",\n      \"name.my\",\n      \"net.my\",\n      \"org.my\",\n      \"mz\",\n      \"ac.mz\",\n      \"adv.mz\",\n      \"co.mz\",\n      \"edu.mz\",\n      \"gov.mz\",\n      \"mil.mz\",\n      \"net.mz\",\n      \"org.mz\",\n      \"na\",\n      \"info.na\",\n      \"pro.na\",\n      \"name.na\",\n      \"school.na\",\n      \"or.na\",\n      \"dr.na\",\n      \"us.na\",\n      \"mx.na\",\n      \"ca.na\",\n      \"in.na\",\n      \"cc.na\",\n      \"tv.na\",\n      \"ws.na\",\n      \"mobi.na\",\n      \"co.na\",\n      \"com.na\",\n      \"org.na\",\n      \"name\",\n      \"nc\",\n      \"asso.nc\",\n      \"nom.nc\",\n      \"ne\",\n      \"net\",\n      \"nf\",\n      \"com.nf\",\n      \"net.nf\",\n      \"per.nf\",\n      \"rec.nf\",\n      \"web.nf\",\n      \"arts.nf\",\n      \"firm.nf\",\n      \"info.nf\",\n      \"other.nf\",\n      \"store.nf\",\n      \"ng\",\n      \"com.ng\",\n      \"edu.ng\",\n      \"gov.ng\",\n      \"i.ng\",\n      \"mil.ng\",\n      \"mobi.ng\",\n      \"name.ng\",\n      \"net.ng\",\n      \"org.ng\",\n      \"sch.ng\",\n      \"ni\",\n      \"ac.ni\",\n      \"biz.ni\",\n      \"co.ni\",\n      \"com.ni\",\n      \"edu.ni\",\n      \"gob.ni\",\n      \"in.ni\",\n      \"info.ni\",\n      \"int.ni\",\n      \"mil.ni\",\n      \"net.ni\",\n      \"nom.ni\",\n      \"org.ni\",\n      \"web.ni\",\n      \"nl\",\n      \"no\",\n      \"fhs.no\",\n      \"vgs.no\",\n      \"fylkesbibl.no\",\n      \"folkebibl.no\",\n      \"museum.no\",\n      \"idrett.no\",\n      \"priv.no\",\n      \"mil.no\",\n      \"stat.no\",\n      \"dep.no\",\n      \"kommune.no\",\n      \"herad.no\",\n      \"aa.no\",\n      \"ah.no\",\n      \"bu.no\",\n      \"fm.no\",\n      \"hl.no\",\n      \"hm.no\",\n      \"jan-mayen.no\",\n      \"mr.no\",\n      \"nl.no\",\n      \"nt.no\",\n      \"of.no\",\n      \"ol.no\",\n      \"oslo.no\",\n      \"rl.no\",\n      \"sf.no\",\n      \"st.no\",\n      \"svalbard.no\",\n      \"tm.no\",\n      \"tr.no\",\n      \"va.no\",\n      \"vf.no\",\n      \"gs.aa.no\",\n      \"gs.ah.no\",\n      \"gs.bu.no\",\n      \"gs.fm.no\",\n      \"gs.hl.no\",\n      \"gs.hm.no\",\n      \"gs.jan-mayen.no\",\n      \"gs.mr.no\",\n      \"gs.nl.no\",\n      \"gs.nt.no\",\n      \"gs.of.no\",\n      \"gs.ol.no\",\n      \"gs.oslo.no\",\n      \"gs.rl.no\",\n      \"gs.sf.no\",\n      \"gs.st.no\",\n      \"gs.svalbard.no\",\n      \"gs.tm.no\",\n      \"gs.tr.no\",\n      \"gs.va.no\",\n      \"gs.vf.no\",\n      \"akrehamn.no\",\n      \"\\xE5krehamn.no\",\n      \"algard.no\",\n      \"\\xE5lg\\xE5rd.no\",\n      \"arna.no\",\n      \"brumunddal.no\",\n      \"bryne.no\",\n      \"bronnoysund.no\",\n      \"br\\xF8nn\\xF8ysund.no\",\n      \"drobak.no\",\n      \"dr\\xF8bak.no\",\n      \"egersund.no\",\n      \"fetsund.no\",\n      \"floro.no\",\n      \"flor\\xF8.no\",\n      \"fredrikstad.no\",\n      \"hokksund.no\",\n      \"honefoss.no\",\n      \"h\\xF8nefoss.no\",\n      \"jessheim.no\",\n      \"jorpeland.no\",\n      \"j\\xF8rpeland.no\",\n      \"kirkenes.no\",\n      \"kopervik.no\",\n      \"krokstadelva.no\",\n      \"langevag.no\",\n      \"langev\\xE5g.no\",\n      \"leirvik.no\",\n      \"mjondalen.no\",\n      \"mj\\xF8ndalen.no\",\n      \"mo-i-rana.no\",\n      \"mosjoen.no\",\n      \"mosj\\xF8en.no\",\n      \"nesoddtangen.no\",\n      \"orkanger.no\",\n      \"osoyro.no\",\n      \"os\\xF8yro.no\",\n      \"raholt.no\",\n      \"r\\xE5holt.no\",\n      \"sandnessjoen.no\",\n      \"sandnessj\\xF8en.no\",\n      \"skedsmokorset.no\",\n      \"slattum.no\",\n      \"spjelkavik.no\",\n      \"stathelle.no\",\n      \"stavern.no\",\n      \"stjordalshalsen.no\",\n      \"stj\\xF8rdalshalsen.no\",\n      \"tananger.no\",\n      \"tranby.no\",\n      \"vossevangen.no\",\n      \"afjord.no\",\n      \"\\xE5fjord.no\",\n      \"agdenes.no\",\n      \"al.no\",\n      \"\\xE5l.no\",\n      \"alesund.no\",\n      \"\\xE5lesund.no\",\n      \"alstahaug.no\",\n      \"alta.no\",\n      \"\\xE1lt\\xE1.no\",\n      \"alaheadju.no\",\n      \"\\xE1laheadju.no\",\n      \"alvdal.no\",\n      \"amli.no\",\n      \"\\xE5mli.no\",\n      \"amot.no\",\n      \"\\xE5mot.no\",\n      \"andebu.no\",\n      \"andoy.no\",\n      \"and\\xF8y.no\",\n      \"andasuolo.no\",\n      \"ardal.no\",\n      \"\\xE5rdal.no\",\n      \"aremark.no\",\n      \"arendal.no\",\n      \"\\xE5s.no\",\n      \"aseral.no\",\n      \"\\xE5seral.no\",\n      \"asker.no\",\n      \"askim.no\",\n      \"askvoll.no\",\n      \"askoy.no\",\n      \"ask\\xF8y.no\",\n      \"asnes.no\",\n      \"\\xE5snes.no\",\n      \"audnedaln.no\",\n      \"aukra.no\",\n      \"aure.no\",\n      \"aurland.no\",\n      \"aurskog-holand.no\",\n      \"aurskog-h\\xF8land.no\",\n      \"austevoll.no\",\n      \"austrheim.no\",\n      \"averoy.no\",\n      \"aver\\xF8y.no\",\n      \"balestrand.no\",\n      \"ballangen.no\",\n      \"balat.no\",\n      \"b\\xE1l\\xE1t.no\",\n      \"balsfjord.no\",\n      \"bahccavuotna.no\",\n      \"b\\xE1hccavuotna.no\",\n      \"bamble.no\",\n      \"bardu.no\",\n      \"beardu.no\",\n      \"beiarn.no\",\n      \"bajddar.no\",\n      \"b\\xE1jddar.no\",\n      \"baidar.no\",\n      \"b\\xE1id\\xE1r.no\",\n      \"berg.no\",\n      \"bergen.no\",\n      \"berlevag.no\",\n      \"berlev\\xE5g.no\",\n      \"bearalvahki.no\",\n      \"bearalv\\xE1hki.no\",\n      \"bindal.no\",\n      \"birkenes.no\",\n      \"bjarkoy.no\",\n      \"bjark\\xF8y.no\",\n      \"bjerkreim.no\",\n      \"bjugn.no\",\n      \"bodo.no\",\n      \"bod\\xF8.no\",\n      \"badaddja.no\",\n      \"b\\xE5d\\xE5ddj\\xE5.no\",\n      \"budejju.no\",\n      \"bokn.no\",\n      \"bremanger.no\",\n      \"bronnoy.no\",\n      \"br\\xF8nn\\xF8y.no\",\n      \"bygland.no\",\n      \"bykle.no\",\n      \"barum.no\",\n      \"b\\xE6rum.no\",\n      \"bo.telemark.no\",\n      \"b\\xF8.telemark.no\",\n      \"bo.nordland.no\",\n      \"b\\xF8.nordland.no\",\n      \"bievat.no\",\n      \"biev\\xE1t.no\",\n      \"bomlo.no\",\n      \"b\\xF8mlo.no\",\n      \"batsfjord.no\",\n      \"b\\xE5tsfjord.no\",\n      \"bahcavuotna.no\",\n      \"b\\xE1hcavuotna.no\",\n      \"dovre.no\",\n      \"drammen.no\",\n      \"drangedal.no\",\n      \"dyroy.no\",\n      \"dyr\\xF8y.no\",\n      \"donna.no\",\n      \"d\\xF8nna.no\",\n      \"eid.no\",\n      \"eidfjord.no\",\n      \"eidsberg.no\",\n      \"eidskog.no\",\n      \"eidsvoll.no\",\n      \"eigersund.no\",\n      \"elverum.no\",\n      \"enebakk.no\",\n      \"engerdal.no\",\n      \"etne.no\",\n      \"etnedal.no\",\n      \"evenes.no\",\n      \"evenassi.no\",\n      \"even\\xE1\\u0161\\u0161i.no\",\n      \"evje-og-hornnes.no\",\n      \"farsund.no\",\n      \"fauske.no\",\n      \"fuossko.no\",\n      \"fuoisku.no\",\n      \"fedje.no\",\n      \"fet.no\",\n      \"finnoy.no\",\n      \"finn\\xF8y.no\",\n      \"fitjar.no\",\n      \"fjaler.no\",\n      \"fjell.no\",\n      \"flakstad.no\",\n      \"flatanger.no\",\n      \"flekkefjord.no\",\n      \"flesberg.no\",\n      \"flora.no\",\n      \"fla.no\",\n      \"fl\\xE5.no\",\n      \"folldal.no\",\n      \"forsand.no\",\n      \"fosnes.no\",\n      \"frei.no\",\n      \"frogn.no\",\n      \"froland.no\",\n      \"frosta.no\",\n      \"frana.no\",\n      \"fr\\xE6na.no\",\n      \"froya.no\",\n      \"fr\\xF8ya.no\",\n      \"fusa.no\",\n      \"fyresdal.no\",\n      \"forde.no\",\n      \"f\\xF8rde.no\",\n      \"gamvik.no\",\n      \"gangaviika.no\",\n      \"g\\xE1\\u014Bgaviika.no\",\n      \"gaular.no\",\n      \"gausdal.no\",\n      \"gildeskal.no\",\n      \"gildesk\\xE5l.no\",\n      \"giske.no\",\n      \"gjemnes.no\",\n      \"gjerdrum.no\",\n      \"gjerstad.no\",\n      \"gjesdal.no\",\n      \"gjovik.no\",\n      \"gj\\xF8vik.no\",\n      \"gloppen.no\",\n      \"gol.no\",\n      \"gran.no\",\n      \"grane.no\",\n      \"granvin.no\",\n      \"gratangen.no\",\n      \"grimstad.no\",\n      \"grong.no\",\n      \"kraanghke.no\",\n      \"kr\\xE5anghke.no\",\n      \"grue.no\",\n      \"gulen.no\",\n      \"hadsel.no\",\n      \"halden.no\",\n      \"halsa.no\",\n      \"hamar.no\",\n      \"hamaroy.no\",\n      \"habmer.no\",\n      \"h\\xE1bmer.no\",\n      \"hapmir.no\",\n      \"h\\xE1pmir.no\",\n      \"hammerfest.no\",\n      \"hammarfeasta.no\",\n      \"h\\xE1mm\\xE1rfeasta.no\",\n      \"haram.no\",\n      \"hareid.no\",\n      \"harstad.no\",\n      \"hasvik.no\",\n      \"aknoluokta.no\",\n      \"\\xE1k\\u014Boluokta.no\",\n      \"hattfjelldal.no\",\n      \"aarborte.no\",\n      \"haugesund.no\",\n      \"hemne.no\",\n      \"hemnes.no\",\n      \"hemsedal.no\",\n      \"heroy.more-og-romsdal.no\",\n      \"her\\xF8y.m\\xF8re-og-romsdal.no\",\n      \"heroy.nordland.no\",\n      \"her\\xF8y.nordland.no\",\n      \"hitra.no\",\n      \"hjartdal.no\",\n      \"hjelmeland.no\",\n      \"hobol.no\",\n      \"hob\\xF8l.no\",\n      \"hof.no\",\n      \"hol.no\",\n      \"hole.no\",\n      \"holmestrand.no\",\n      \"holtalen.no\",\n      \"holt\\xE5len.no\",\n      \"hornindal.no\",\n      \"horten.no\",\n      \"hurdal.no\",\n      \"hurum.no\",\n      \"hvaler.no\",\n      \"hyllestad.no\",\n      \"hagebostad.no\",\n      \"h\\xE6gebostad.no\",\n      \"hoyanger.no\",\n      \"h\\xF8yanger.no\",\n      \"hoylandet.no\",\n      \"h\\xF8ylandet.no\",\n      \"ha.no\",\n      \"h\\xE5.no\",\n      \"ibestad.no\",\n      \"inderoy.no\",\n      \"inder\\xF8y.no\",\n      \"iveland.no\",\n      \"jevnaker.no\",\n      \"jondal.no\",\n      \"jolster.no\",\n      \"j\\xF8lster.no\",\n      \"karasjok.no\",\n      \"karasjohka.no\",\n      \"k\\xE1r\\xE1\\u0161johka.no\",\n      \"karlsoy.no\",\n      \"galsa.no\",\n      \"g\\xE1ls\\xE1.no\",\n      \"karmoy.no\",\n      \"karm\\xF8y.no\",\n      \"kautokeino.no\",\n      \"guovdageaidnu.no\",\n      \"klepp.no\",\n      \"klabu.no\",\n      \"kl\\xE6bu.no\",\n      \"kongsberg.no\",\n      \"kongsvinger.no\",\n      \"kragero.no\",\n      \"krager\\xF8.no\",\n      \"kristiansand.no\",\n      \"kristiansund.no\",\n      \"krodsherad.no\",\n      \"kr\\xF8dsherad.no\",\n      \"kvalsund.no\",\n      \"rahkkeravju.no\",\n      \"r\\xE1hkker\\xE1vju.no\",\n      \"kvam.no\",\n      \"kvinesdal.no\",\n      \"kvinnherad.no\",\n      \"kviteseid.no\",\n      \"kvitsoy.no\",\n      \"kvits\\xF8y.no\",\n      \"kvafjord.no\",\n      \"kv\\xE6fjord.no\",\n      \"giehtavuoatna.no\",\n      \"kvanangen.no\",\n      \"kv\\xE6nangen.no\",\n      \"navuotna.no\",\n      \"n\\xE1vuotna.no\",\n      \"kafjord.no\",\n      \"k\\xE5fjord.no\",\n      \"gaivuotna.no\",\n      \"g\\xE1ivuotna.no\",\n      \"larvik.no\",\n      \"lavangen.no\",\n      \"lavagis.no\",\n      \"loabat.no\",\n      \"loab\\xE1t.no\",\n      \"lebesby.no\",\n      \"davvesiida.no\",\n      \"leikanger.no\",\n      \"leirfjord.no\",\n      \"leka.no\",\n      \"leksvik.no\",\n      \"lenvik.no\",\n      \"leangaviika.no\",\n      \"lea\\u014Bgaviika.no\",\n      \"lesja.no\",\n      \"levanger.no\",\n      \"lier.no\",\n      \"lierne.no\",\n      \"lillehammer.no\",\n      \"lillesand.no\",\n      \"lindesnes.no\",\n      \"lindas.no\",\n      \"lind\\xE5s.no\",\n      \"lom.no\",\n      \"loppa.no\",\n      \"lahppi.no\",\n      \"l\\xE1hppi.no\",\n      \"lund.no\",\n      \"lunner.no\",\n      \"luroy.no\",\n      \"lur\\xF8y.no\",\n      \"luster.no\",\n      \"lyngdal.no\",\n      \"lyngen.no\",\n      \"ivgu.no\",\n      \"lardal.no\",\n      \"lerdal.no\",\n      \"l\\xE6rdal.no\",\n      \"lodingen.no\",\n      \"l\\xF8dingen.no\",\n      \"lorenskog.no\",\n      \"l\\xF8renskog.no\",\n      \"loten.no\",\n      \"l\\xF8ten.no\",\n      \"malvik.no\",\n      \"masoy.no\",\n      \"m\\xE5s\\xF8y.no\",\n      \"muosat.no\",\n      \"muos\\xE1t.no\",\n      \"mandal.no\",\n      \"marker.no\",\n      \"marnardal.no\",\n      \"masfjorden.no\",\n      \"meland.no\",\n      \"meldal.no\",\n      \"melhus.no\",\n      \"meloy.no\",\n      \"mel\\xF8y.no\",\n      \"meraker.no\",\n      \"mer\\xE5ker.no\",\n      \"moareke.no\",\n      \"mo\\xE5reke.no\",\n      \"midsund.no\",\n      \"midtre-gauldal.no\",\n      \"modalen.no\",\n      \"modum.no\",\n      \"molde.no\",\n      \"moskenes.no\",\n      \"moss.no\",\n      \"mosvik.no\",\n      \"malselv.no\",\n      \"m\\xE5lselv.no\",\n      \"malatvuopmi.no\",\n      \"m\\xE1latvuopmi.no\",\n      \"namdalseid.no\",\n      \"aejrie.no\",\n      \"namsos.no\",\n      \"namsskogan.no\",\n      \"naamesjevuemie.no\",\n      \"n\\xE5\\xE5mesjevuemie.no\",\n      \"laakesvuemie.no\",\n      \"nannestad.no\",\n      \"narvik.no\",\n      \"narviika.no\",\n      \"naustdal.no\",\n      \"nedre-eiker.no\",\n      \"nes.akershus.no\",\n      \"nes.buskerud.no\",\n      \"nesna.no\",\n      \"nesodden.no\",\n      \"nesseby.no\",\n      \"unjarga.no\",\n      \"unj\\xE1rga.no\",\n      \"nesset.no\",\n      \"nissedal.no\",\n      \"nittedal.no\",\n      \"nord-aurdal.no\",\n      \"nord-fron.no\",\n      \"nord-odal.no\",\n      \"norddal.no\",\n      \"nordkapp.no\",\n      \"davvenjarga.no\",\n      \"davvenj\\xE1rga.no\",\n      \"nordre-land.no\",\n      \"nordreisa.no\",\n      \"raisa.no\",\n      \"r\\xE1isa.no\",\n      \"nore-og-uvdal.no\",\n      \"notodden.no\",\n      \"naroy.no\",\n      \"n\\xE6r\\xF8y.no\",\n      \"notteroy.no\",\n      \"n\\xF8tter\\xF8y.no\",\n      \"odda.no\",\n      \"oksnes.no\",\n      \"\\xF8ksnes.no\",\n      \"oppdal.no\",\n      \"oppegard.no\",\n      \"oppeg\\xE5rd.no\",\n      \"orkdal.no\",\n      \"orland.no\",\n      \"\\xF8rland.no\",\n      \"orskog.no\",\n      \"\\xF8rskog.no\",\n      \"orsta.no\",\n      \"\\xF8rsta.no\",\n      \"os.hedmark.no\",\n      \"os.hordaland.no\",\n      \"osen.no\",\n      \"osteroy.no\",\n      \"oster\\xF8y.no\",\n      \"ostre-toten.no\",\n      \"\\xF8stre-toten.no\",\n      \"overhalla.no\",\n      \"ovre-eiker.no\",\n      \"\\xF8vre-eiker.no\",\n      \"oyer.no\",\n      \"\\xF8yer.no\",\n      \"oygarden.no\",\n      \"\\xF8ygarden.no\",\n      \"oystre-slidre.no\",\n      \"\\xF8ystre-slidre.no\",\n      \"porsanger.no\",\n      \"porsangu.no\",\n      \"pors\\xE1\\u014Bgu.no\",\n      \"porsgrunn.no\",\n      \"radoy.no\",\n      \"rad\\xF8y.no\",\n      \"rakkestad.no\",\n      \"rana.no\",\n      \"ruovat.no\",\n      \"randaberg.no\",\n      \"rauma.no\",\n      \"rendalen.no\",\n      \"rennebu.no\",\n      \"rennesoy.no\",\n      \"rennes\\xF8y.no\",\n      \"rindal.no\",\n      \"ringebu.no\",\n      \"ringerike.no\",\n      \"ringsaker.no\",\n      \"rissa.no\",\n      \"risor.no\",\n      \"ris\\xF8r.no\",\n      \"roan.no\",\n      \"rollag.no\",\n      \"rygge.no\",\n      \"ralingen.no\",\n      \"r\\xE6lingen.no\",\n      \"rodoy.no\",\n      \"r\\xF8d\\xF8y.no\",\n      \"romskog.no\",\n      \"r\\xF8mskog.no\",\n      \"roros.no\",\n      \"r\\xF8ros.no\",\n      \"rost.no\",\n      \"r\\xF8st.no\",\n      \"royken.no\",\n      \"r\\xF8yken.no\",\n      \"royrvik.no\",\n      \"r\\xF8yrvik.no\",\n      \"rade.no\",\n      \"r\\xE5de.no\",\n      \"salangen.no\",\n      \"siellak.no\",\n      \"saltdal.no\",\n      \"salat.no\",\n      \"s\\xE1l\\xE1t.no\",\n      \"s\\xE1lat.no\",\n      \"samnanger.no\",\n      \"sande.more-og-romsdal.no\",\n      \"sande.m\\xF8re-og-romsdal.no\",\n      \"sande.vestfold.no\",\n      \"sandefjord.no\",\n      \"sandnes.no\",\n      \"sandoy.no\",\n      \"sand\\xF8y.no\",\n      \"sarpsborg.no\",\n      \"sauda.no\",\n      \"sauherad.no\",\n      \"sel.no\",\n      \"selbu.no\",\n      \"selje.no\",\n      \"seljord.no\",\n      \"sigdal.no\",\n      \"siljan.no\",\n      \"sirdal.no\",\n      \"skaun.no\",\n      \"skedsmo.no\",\n      \"ski.no\",\n      \"skien.no\",\n      \"skiptvet.no\",\n      \"skjervoy.no\",\n      \"skjerv\\xF8y.no\",\n      \"skierva.no\",\n      \"skierv\\xE1.no\",\n      \"skjak.no\",\n      \"skj\\xE5k.no\",\n      \"skodje.no\",\n      \"skanland.no\",\n      \"sk\\xE5nland.no\",\n      \"skanit.no\",\n      \"sk\\xE1nit.no\",\n      \"smola.no\",\n      \"sm\\xF8la.no\",\n      \"snillfjord.no\",\n      \"snasa.no\",\n      \"sn\\xE5sa.no\",\n      \"snoasa.no\",\n      \"snaase.no\",\n      \"sn\\xE5ase.no\",\n      \"sogndal.no\",\n      \"sokndal.no\",\n      \"sola.no\",\n      \"solund.no\",\n      \"songdalen.no\",\n      \"sortland.no\",\n      \"spydeberg.no\",\n      \"stange.no\",\n      \"stavanger.no\",\n      \"steigen.no\",\n      \"steinkjer.no\",\n      \"stjordal.no\",\n      \"stj\\xF8rdal.no\",\n      \"stokke.no\",\n      \"stor-elvdal.no\",\n      \"stord.no\",\n      \"stordal.no\",\n      \"storfjord.no\",\n      \"omasvuotna.no\",\n      \"strand.no\",\n      \"stranda.no\",\n      \"stryn.no\",\n      \"sula.no\",\n      \"suldal.no\",\n      \"sund.no\",\n      \"sunndal.no\",\n      \"surnadal.no\",\n      \"sveio.no\",\n      \"svelvik.no\",\n      \"sykkylven.no\",\n      \"sogne.no\",\n      \"s\\xF8gne.no\",\n      \"somna.no\",\n      \"s\\xF8mna.no\",\n      \"sondre-land.no\",\n      \"s\\xF8ndre-land.no\",\n      \"sor-aurdal.no\",\n      \"s\\xF8r-aurdal.no\",\n      \"sor-fron.no\",\n      \"s\\xF8r-fron.no\",\n      \"sor-odal.no\",\n      \"s\\xF8r-odal.no\",\n      \"sor-varanger.no\",\n      \"s\\xF8r-varanger.no\",\n      \"matta-varjjat.no\",\n      \"m\\xE1tta-v\\xE1rjjat.no\",\n      \"sorfold.no\",\n      \"s\\xF8rfold.no\",\n      \"sorreisa.no\",\n      \"s\\xF8rreisa.no\",\n      \"sorum.no\",\n      \"s\\xF8rum.no\",\n      \"tana.no\",\n      \"deatnu.no\",\n      \"time.no\",\n      \"tingvoll.no\",\n      \"tinn.no\",\n      \"tjeldsund.no\",\n      \"dielddanuorri.no\",\n      \"tjome.no\",\n      \"tj\\xF8me.no\",\n      \"tokke.no\",\n      \"tolga.no\",\n      \"torsken.no\",\n      \"tranoy.no\",\n      \"tran\\xF8y.no\",\n      \"tromso.no\",\n      \"troms\\xF8.no\",\n      \"tromsa.no\",\n      \"romsa.no\",\n      \"trondheim.no\",\n      \"troandin.no\",\n      \"trysil.no\",\n      \"trana.no\",\n      \"tr\\xE6na.no\",\n      \"trogstad.no\",\n      \"tr\\xF8gstad.no\",\n      \"tvedestrand.no\",\n      \"tydal.no\",\n      \"tynset.no\",\n      \"tysfjord.no\",\n      \"divtasvuodna.no\",\n      \"divttasvuotna.no\",\n      \"tysnes.no\",\n      \"tysvar.no\",\n      \"tysv\\xE6r.no\",\n      \"tonsberg.no\",\n      \"t\\xF8nsberg.no\",\n      \"ullensaker.no\",\n      \"ullensvang.no\",\n      \"ulvik.no\",\n      \"utsira.no\",\n      \"vadso.no\",\n      \"vads\\xF8.no\",\n      \"cahcesuolo.no\",\n      \"\\u010D\\xE1hcesuolo.no\",\n      \"vaksdal.no\",\n      \"valle.no\",\n      \"vang.no\",\n      \"vanylven.no\",\n      \"vardo.no\",\n      \"vard\\xF8.no\",\n      \"varggat.no\",\n      \"v\\xE1rgg\\xE1t.no\",\n      \"vefsn.no\",\n      \"vaapste.no\",\n      \"vega.no\",\n      \"vegarshei.no\",\n      \"veg\\xE5rshei.no\",\n      \"vennesla.no\",\n      \"verdal.no\",\n      \"verran.no\",\n      \"vestby.no\",\n      \"vestnes.no\",\n      \"vestre-slidre.no\",\n      \"vestre-toten.no\",\n      \"vestvagoy.no\",\n      \"vestv\\xE5g\\xF8y.no\",\n      \"vevelstad.no\",\n      \"vik.no\",\n      \"vikna.no\",\n      \"vindafjord.no\",\n      \"volda.no\",\n      \"voss.no\",\n      \"varoy.no\",\n      \"v\\xE6r\\xF8y.no\",\n      \"vagan.no\",\n      \"v\\xE5gan.no\",\n      \"voagat.no\",\n      \"vagsoy.no\",\n      \"v\\xE5gs\\xF8y.no\",\n      \"vaga.no\",\n      \"v\\xE5g\\xE5.no\",\n      \"valer.ostfold.no\",\n      \"v\\xE5ler.\\xF8stfold.no\",\n      \"valer.hedmark.no\",\n      \"v\\xE5ler.hedmark.no\",\n      \"*.np\",\n      \"nr\",\n      \"biz.nr\",\n      \"info.nr\",\n      \"gov.nr\",\n      \"edu.nr\",\n      \"org.nr\",\n      \"net.nr\",\n      \"com.nr\",\n      \"nu\",\n      \"nz\",\n      \"ac.nz\",\n      \"co.nz\",\n      \"cri.nz\",\n      \"geek.nz\",\n      \"gen.nz\",\n      \"govt.nz\",\n      \"health.nz\",\n      \"iwi.nz\",\n      \"kiwi.nz\",\n      \"maori.nz\",\n      \"mil.nz\",\n      \"m\\u0101ori.nz\",\n      \"net.nz\",\n      \"org.nz\",\n      \"parliament.nz\",\n      \"school.nz\",\n      \"om\",\n      \"co.om\",\n      \"com.om\",\n      \"edu.om\",\n      \"gov.om\",\n      \"med.om\",\n      \"museum.om\",\n      \"net.om\",\n      \"org.om\",\n      \"pro.om\",\n      \"onion\",\n      \"org\",\n      \"pa\",\n      \"ac.pa\",\n      \"gob.pa\",\n      \"com.pa\",\n      \"org.pa\",\n      \"sld.pa\",\n      \"edu.pa\",\n      \"net.pa\",\n      \"ing.pa\",\n      \"abo.pa\",\n      \"med.pa\",\n      \"nom.pa\",\n      \"pe\",\n      \"edu.pe\",\n      \"gob.pe\",\n      \"nom.pe\",\n      \"mil.pe\",\n      \"org.pe\",\n      \"com.pe\",\n      \"net.pe\",\n      \"pf\",\n      \"com.pf\",\n      \"org.pf\",\n      \"edu.pf\",\n      \"*.pg\",\n      \"ph\",\n      \"com.ph\",\n      \"net.ph\",\n      \"org.ph\",\n      \"gov.ph\",\n      \"edu.ph\",\n      \"ngo.ph\",\n      \"mil.ph\",\n      \"i.ph\",\n      \"pk\",\n      \"com.pk\",\n      \"net.pk\",\n      \"edu.pk\",\n      \"org.pk\",\n      \"fam.pk\",\n      \"biz.pk\",\n      \"web.pk\",\n      \"gov.pk\",\n      \"gob.pk\",\n      \"gok.pk\",\n      \"gon.pk\",\n      \"gop.pk\",\n      \"gos.pk\",\n      \"info.pk\",\n      \"pl\",\n      \"com.pl\",\n      \"net.pl\",\n      \"org.pl\",\n      \"aid.pl\",\n      \"agro.pl\",\n      \"atm.pl\",\n      \"auto.pl\",\n      \"biz.pl\",\n      \"edu.pl\",\n      \"gmina.pl\",\n      \"gsm.pl\",\n      \"info.pl\",\n      \"mail.pl\",\n      \"miasta.pl\",\n      \"media.pl\",\n      \"mil.pl\",\n      \"nieruchomosci.pl\",\n      \"nom.pl\",\n      \"pc.pl\",\n      \"powiat.pl\",\n      \"priv.pl\",\n      \"realestate.pl\",\n      \"rel.pl\",\n      \"sex.pl\",\n      \"shop.pl\",\n      \"sklep.pl\",\n      \"sos.pl\",\n      \"szkola.pl\",\n      \"targi.pl\",\n      \"tm.pl\",\n      \"tourism.pl\",\n      \"travel.pl\",\n      \"turystyka.pl\",\n      \"gov.pl\",\n      \"ap.gov.pl\",\n      \"ic.gov.pl\",\n      \"is.gov.pl\",\n      \"us.gov.pl\",\n      \"kmpsp.gov.pl\",\n      \"kppsp.gov.pl\",\n      \"kwpsp.gov.pl\",\n      \"psp.gov.pl\",\n      \"wskr.gov.pl\",\n      \"kwp.gov.pl\",\n      \"mw.gov.pl\",\n      \"ug.gov.pl\",\n      \"um.gov.pl\",\n      \"umig.gov.pl\",\n      \"ugim.gov.pl\",\n      \"upow.gov.pl\",\n      \"uw.gov.pl\",\n      \"starostwo.gov.pl\",\n      \"pa.gov.pl\",\n      \"po.gov.pl\",\n      \"psse.gov.pl\",\n      \"pup.gov.pl\",\n      \"rzgw.gov.pl\",\n      \"sa.gov.pl\",\n      \"so.gov.pl\",\n      \"sr.gov.pl\",\n      \"wsa.gov.pl\",\n      \"sko.gov.pl\",\n      \"uzs.gov.pl\",\n      \"wiih.gov.pl\",\n      \"winb.gov.pl\",\n      \"pinb.gov.pl\",\n      \"wios.gov.pl\",\n      \"witd.gov.pl\",\n      \"wzmiuw.gov.pl\",\n      \"piw.gov.pl\",\n      \"wiw.gov.pl\",\n      \"griw.gov.pl\",\n      \"wif.gov.pl\",\n      \"oum.gov.pl\",\n      \"sdn.gov.pl\",\n      \"zp.gov.pl\",\n      \"uppo.gov.pl\",\n      \"mup.gov.pl\",\n      \"wuoz.gov.pl\",\n      \"konsulat.gov.pl\",\n      \"oirm.gov.pl\",\n      \"augustow.pl\",\n      \"babia-gora.pl\",\n      \"bedzin.pl\",\n      \"beskidy.pl\",\n      \"bialowieza.pl\",\n      \"bialystok.pl\",\n      \"bielawa.pl\",\n      \"bieszczady.pl\",\n      \"boleslawiec.pl\",\n      \"bydgoszcz.pl\",\n      \"bytom.pl\",\n      \"cieszyn.pl\",\n      \"czeladz.pl\",\n      \"czest.pl\",\n      \"dlugoleka.pl\",\n      \"elblag.pl\",\n      \"elk.pl\",\n      \"glogow.pl\",\n      \"gniezno.pl\",\n      \"gorlice.pl\",\n      \"grajewo.pl\",\n      \"ilawa.pl\",\n      \"jaworzno.pl\",\n      \"jelenia-gora.pl\",\n      \"jgora.pl\",\n      \"kalisz.pl\",\n      \"kazimierz-dolny.pl\",\n      \"karpacz.pl\",\n      \"kartuzy.pl\",\n      \"kaszuby.pl\",\n      \"katowice.pl\",\n      \"kepno.pl\",\n      \"ketrzyn.pl\",\n      \"klodzko.pl\",\n      \"kobierzyce.pl\",\n      \"kolobrzeg.pl\",\n      \"konin.pl\",\n      \"konskowola.pl\",\n      \"kutno.pl\",\n      \"lapy.pl\",\n      \"lebork.pl\",\n      \"legnica.pl\",\n      \"lezajsk.pl\",\n      \"limanowa.pl\",\n      \"lomza.pl\",\n      \"lowicz.pl\",\n      \"lubin.pl\",\n      \"lukow.pl\",\n      \"malbork.pl\",\n      \"malopolska.pl\",\n      \"mazowsze.pl\",\n      \"mazury.pl\",\n      \"mielec.pl\",\n      \"mielno.pl\",\n      \"mragowo.pl\",\n      \"naklo.pl\",\n      \"nowaruda.pl\",\n      \"nysa.pl\",\n      \"olawa.pl\",\n      \"olecko.pl\",\n      \"olkusz.pl\",\n      \"olsztyn.pl\",\n      \"opoczno.pl\",\n      \"opole.pl\",\n      \"ostroda.pl\",\n      \"ostroleka.pl\",\n      \"ostrowiec.pl\",\n      \"ostrowwlkp.pl\",\n      \"pila.pl\",\n      \"pisz.pl\",\n      \"podhale.pl\",\n      \"podlasie.pl\",\n      \"polkowice.pl\",\n      \"pomorze.pl\",\n      \"pomorskie.pl\",\n      \"prochowice.pl\",\n      \"pruszkow.pl\",\n      \"przeworsk.pl\",\n      \"pulawy.pl\",\n      \"radom.pl\",\n      \"rawa-maz.pl\",\n      \"rybnik.pl\",\n      \"rzeszow.pl\",\n      \"sanok.pl\",\n      \"sejny.pl\",\n      \"slask.pl\",\n      \"slupsk.pl\",\n      \"sosnowiec.pl\",\n      \"stalowa-wola.pl\",\n      \"skoczow.pl\",\n      \"starachowice.pl\",\n      \"stargard.pl\",\n      \"suwalki.pl\",\n      \"swidnica.pl\",\n      \"swiebodzin.pl\",\n      \"swinoujscie.pl\",\n      \"szczecin.pl\",\n      \"szczytno.pl\",\n      \"tarnobrzeg.pl\",\n      \"tgory.pl\",\n      \"turek.pl\",\n      \"tychy.pl\",\n      \"ustka.pl\",\n      \"walbrzych.pl\",\n      \"warmia.pl\",\n      \"warszawa.pl\",\n      \"waw.pl\",\n      \"wegrow.pl\",\n      \"wielun.pl\",\n      \"wlocl.pl\",\n      \"wloclawek.pl\",\n      \"wodzislaw.pl\",\n      \"wolomin.pl\",\n      \"wroclaw.pl\",\n      \"zachpomor.pl\",\n      \"zagan.pl\",\n      \"zarow.pl\",\n      \"zgora.pl\",\n      \"zgorzelec.pl\",\n      \"pm\",\n      \"pn\",\n      \"gov.pn\",\n      \"co.pn\",\n      \"org.pn\",\n      \"edu.pn\",\n      \"net.pn\",\n      \"post\",\n      \"pr\",\n      \"com.pr\",\n      \"net.pr\",\n      \"org.pr\",\n      \"gov.pr\",\n      \"edu.pr\",\n      \"isla.pr\",\n      \"pro.pr\",\n      \"biz.pr\",\n      \"info.pr\",\n      \"name.pr\",\n      \"est.pr\",\n      \"prof.pr\",\n      \"ac.pr\",\n      \"pro\",\n      \"aaa.pro\",\n      \"aca.pro\",\n      \"acct.pro\",\n      \"avocat.pro\",\n      \"bar.pro\",\n      \"cpa.pro\",\n      \"eng.pro\",\n      \"jur.pro\",\n      \"law.pro\",\n      \"med.pro\",\n      \"recht.pro\",\n      \"ps\",\n      \"edu.ps\",\n      \"gov.ps\",\n      \"sec.ps\",\n      \"plo.ps\",\n      \"com.ps\",\n      \"org.ps\",\n      \"net.ps\",\n      \"pt\",\n      \"net.pt\",\n      \"gov.pt\",\n      \"org.pt\",\n      \"edu.pt\",\n      \"int.pt\",\n      \"publ.pt\",\n      \"com.pt\",\n      \"nome.pt\",\n      \"pw\",\n      \"co.pw\",\n      \"ne.pw\",\n      \"or.pw\",\n      \"ed.pw\",\n      \"go.pw\",\n      \"belau.pw\",\n      \"py\",\n      \"com.py\",\n      \"coop.py\",\n      \"edu.py\",\n      \"gov.py\",\n      \"mil.py\",\n      \"net.py\",\n      \"org.py\",\n      \"qa\",\n      \"com.qa\",\n      \"edu.qa\",\n      \"gov.qa\",\n      \"mil.qa\",\n      \"name.qa\",\n      \"net.qa\",\n      \"org.qa\",\n      \"sch.qa\",\n      \"re\",\n      \"asso.re\",\n      \"com.re\",\n      \"nom.re\",\n      \"ro\",\n      \"arts.ro\",\n      \"com.ro\",\n      \"firm.ro\",\n      \"info.ro\",\n      \"nom.ro\",\n      \"nt.ro\",\n      \"org.ro\",\n      \"rec.ro\",\n      \"store.ro\",\n      \"tm.ro\",\n      \"www.ro\",\n      \"rs\",\n      \"ac.rs\",\n      \"co.rs\",\n      \"edu.rs\",\n      \"gov.rs\",\n      \"in.rs\",\n      \"org.rs\",\n      \"ru\",\n      \"rw\",\n      \"ac.rw\",\n      \"co.rw\",\n      \"coop.rw\",\n      \"gov.rw\",\n      \"mil.rw\",\n      \"net.rw\",\n      \"org.rw\",\n      \"sa\",\n      \"com.sa\",\n      \"net.sa\",\n      \"org.sa\",\n      \"gov.sa\",\n      \"med.sa\",\n      \"pub.sa\",\n      \"edu.sa\",\n      \"sch.sa\",\n      \"sb\",\n      \"com.sb\",\n      \"edu.sb\",\n      \"gov.sb\",\n      \"net.sb\",\n      \"org.sb\",\n      \"sc\",\n      \"com.sc\",\n      \"gov.sc\",\n      \"net.sc\",\n      \"org.sc\",\n      \"edu.sc\",\n      \"sd\",\n      \"com.sd\",\n      \"net.sd\",\n      \"org.sd\",\n      \"edu.sd\",\n      \"med.sd\",\n      \"tv.sd\",\n      \"gov.sd\",\n      \"info.sd\",\n      \"se\",\n      \"a.se\",\n      \"ac.se\",\n      \"b.se\",\n      \"bd.se\",\n      \"brand.se\",\n      \"c.se\",\n      \"d.se\",\n      \"e.se\",\n      \"f.se\",\n      \"fh.se\",\n      \"fhsk.se\",\n      \"fhv.se\",\n      \"g.se\",\n      \"h.se\",\n      \"i.se\",\n      \"k.se\",\n      \"komforb.se\",\n      \"kommunalforbund.se\",\n      \"komvux.se\",\n      \"l.se\",\n      \"lanbib.se\",\n      \"m.se\",\n      \"n.se\",\n      \"naturbruksgymn.se\",\n      \"o.se\",\n      \"org.se\",\n      \"p.se\",\n      \"parti.se\",\n      \"pp.se\",\n      \"press.se\",\n      \"r.se\",\n      \"s.se\",\n      \"t.se\",\n      \"tm.se\",\n      \"u.se\",\n      \"w.se\",\n      \"x.se\",\n      \"y.se\",\n      \"z.se\",\n      \"sg\",\n      \"com.sg\",\n      \"net.sg\",\n      \"org.sg\",\n      \"gov.sg\",\n      \"edu.sg\",\n      \"per.sg\",\n      \"sh\",\n      \"com.sh\",\n      \"net.sh\",\n      \"gov.sh\",\n      \"org.sh\",\n      \"mil.sh\",\n      \"si\",\n      \"sj\",\n      \"sk\",\n      \"sl\",\n      \"com.sl\",\n      \"net.sl\",\n      \"edu.sl\",\n      \"gov.sl\",\n      \"org.sl\",\n      \"sm\",\n      \"sn\",\n      \"art.sn\",\n      \"com.sn\",\n      \"edu.sn\",\n      \"gouv.sn\",\n      \"org.sn\",\n      \"perso.sn\",\n      \"univ.sn\",\n      \"so\",\n      \"com.so\",\n      \"edu.so\",\n      \"gov.so\",\n      \"me.so\",\n      \"net.so\",\n      \"org.so\",\n      \"sr\",\n      \"ss\",\n      \"biz.ss\",\n      \"com.ss\",\n      \"edu.ss\",\n      \"gov.ss\",\n      \"me.ss\",\n      \"net.ss\",\n      \"org.ss\",\n      \"sch.ss\",\n      \"st\",\n      \"co.st\",\n      \"com.st\",\n      \"consulado.st\",\n      \"edu.st\",\n      \"embaixada.st\",\n      \"mil.st\",\n      \"net.st\",\n      \"org.st\",\n      \"principe.st\",\n      \"saotome.st\",\n      \"store.st\",\n      \"su\",\n      \"sv\",\n      \"com.sv\",\n      \"edu.sv\",\n      \"gob.sv\",\n      \"org.sv\",\n      \"red.sv\",\n      \"sx\",\n      \"gov.sx\",\n      \"sy\",\n      \"edu.sy\",\n      \"gov.sy\",\n      \"net.sy\",\n      \"mil.sy\",\n      \"com.sy\",\n      \"org.sy\",\n      \"sz\",\n      \"co.sz\",\n      \"ac.sz\",\n      \"org.sz\",\n      \"tc\",\n      \"td\",\n      \"tel\",\n      \"tf\",\n      \"tg\",\n      \"th\",\n      \"ac.th\",\n      \"co.th\",\n      \"go.th\",\n      \"in.th\",\n      \"mi.th\",\n      \"net.th\",\n      \"or.th\",\n      \"tj\",\n      \"ac.tj\",\n      \"biz.tj\",\n      \"co.tj\",\n      \"com.tj\",\n      \"edu.tj\",\n      \"go.tj\",\n      \"gov.tj\",\n      \"int.tj\",\n      \"mil.tj\",\n      \"name.tj\",\n      \"net.tj\",\n      \"nic.tj\",\n      \"org.tj\",\n      \"test.tj\",\n      \"web.tj\",\n      \"tk\",\n      \"tl\",\n      \"gov.tl\",\n      \"tm\",\n      \"com.tm\",\n      \"co.tm\",\n      \"org.tm\",\n      \"net.tm\",\n      \"nom.tm\",\n      \"gov.tm\",\n      \"mil.tm\",\n      \"edu.tm\",\n      \"tn\",\n      \"com.tn\",\n      \"ens.tn\",\n      \"fin.tn\",\n      \"gov.tn\",\n      \"ind.tn\",\n      \"info.tn\",\n      \"intl.tn\",\n      \"mincom.tn\",\n      \"nat.tn\",\n      \"net.tn\",\n      \"org.tn\",\n      \"perso.tn\",\n      \"tourism.tn\",\n      \"to\",\n      \"com.to\",\n      \"gov.to\",\n      \"net.to\",\n      \"org.to\",\n      \"edu.to\",\n      \"mil.to\",\n      \"tr\",\n      \"av.tr\",\n      \"bbs.tr\",\n      \"bel.tr\",\n      \"biz.tr\",\n      \"com.tr\",\n      \"dr.tr\",\n      \"edu.tr\",\n      \"gen.tr\",\n      \"gov.tr\",\n      \"info.tr\",\n      \"mil.tr\",\n      \"k12.tr\",\n      \"kep.tr\",\n      \"name.tr\",\n      \"net.tr\",\n      \"org.tr\",\n      \"pol.tr\",\n      \"tel.tr\",\n      \"tsk.tr\",\n      \"tv.tr\",\n      \"web.tr\",\n      \"nc.tr\",\n      \"gov.nc.tr\",\n      \"tt\",\n      \"co.tt\",\n      \"com.tt\",\n      \"org.tt\",\n      \"net.tt\",\n      \"biz.tt\",\n      \"info.tt\",\n      \"pro.tt\",\n      \"int.tt\",\n      \"coop.tt\",\n      \"jobs.tt\",\n      \"mobi.tt\",\n      \"travel.tt\",\n      \"museum.tt\",\n      \"aero.tt\",\n      \"name.tt\",\n      \"gov.tt\",\n      \"edu.tt\",\n      \"tv\",\n      \"tw\",\n      \"edu.tw\",\n      \"gov.tw\",\n      \"mil.tw\",\n      \"com.tw\",\n      \"net.tw\",\n      \"org.tw\",\n      \"idv.tw\",\n      \"game.tw\",\n      \"ebiz.tw\",\n      \"club.tw\",\n      \"\\u7DB2\\u8DEF.tw\",\n      \"\\u7D44\\u7E54.tw\",\n      \"\\u5546\\u696D.tw\",\n      \"tz\",\n      \"ac.tz\",\n      \"co.tz\",\n      \"go.tz\",\n      \"hotel.tz\",\n      \"info.tz\",\n      \"me.tz\",\n      \"mil.tz\",\n      \"mobi.tz\",\n      \"ne.tz\",\n      \"or.tz\",\n      \"sc.tz\",\n      \"tv.tz\",\n      \"ua\",\n      \"com.ua\",\n      \"edu.ua\",\n      \"gov.ua\",\n      \"in.ua\",\n      \"net.ua\",\n      \"org.ua\",\n      \"cherkassy.ua\",\n      \"cherkasy.ua\",\n      \"chernigov.ua\",\n      \"chernihiv.ua\",\n      \"chernivtsi.ua\",\n      \"chernovtsy.ua\",\n      \"ck.ua\",\n      \"cn.ua\",\n      \"cr.ua\",\n      \"crimea.ua\",\n      \"cv.ua\",\n      \"dn.ua\",\n      \"dnepropetrovsk.ua\",\n      \"dnipropetrovsk.ua\",\n      \"donetsk.ua\",\n      \"dp.ua\",\n      \"if.ua\",\n      \"ivano-frankivsk.ua\",\n      \"kh.ua\",\n      \"kharkiv.ua\",\n      \"kharkov.ua\",\n      \"kherson.ua\",\n      \"khmelnitskiy.ua\",\n      \"khmelnytskyi.ua\",\n      \"kiev.ua\",\n      \"kirovograd.ua\",\n      \"km.ua\",\n      \"kr.ua\",\n      \"krym.ua\",\n      \"ks.ua\",\n      \"kv.ua\",\n      \"kyiv.ua\",\n      \"lg.ua\",\n      \"lt.ua\",\n      \"lugansk.ua\",\n      \"lutsk.ua\",\n      \"lv.ua\",\n      \"lviv.ua\",\n      \"mk.ua\",\n      \"mykolaiv.ua\",\n      \"nikolaev.ua\",\n      \"od.ua\",\n      \"odesa.ua\",\n      \"odessa.ua\",\n      \"pl.ua\",\n      \"poltava.ua\",\n      \"rivne.ua\",\n      \"rovno.ua\",\n      \"rv.ua\",\n      \"sb.ua\",\n      \"sebastopol.ua\",\n      \"sevastopol.ua\",\n      \"sm.ua\",\n      \"sumy.ua\",\n      \"te.ua\",\n      \"ternopil.ua\",\n      \"uz.ua\",\n      \"uzhgorod.ua\",\n      \"vinnica.ua\",\n      \"vinnytsia.ua\",\n      \"vn.ua\",\n      \"volyn.ua\",\n      \"yalta.ua\",\n      \"zaporizhzhe.ua\",\n      \"zaporizhzhia.ua\",\n      \"zhitomir.ua\",\n      \"zhytomyr.ua\",\n      \"zp.ua\",\n      \"zt.ua\",\n      \"ug\",\n      \"co.ug\",\n      \"or.ug\",\n      \"ac.ug\",\n      \"sc.ug\",\n      \"go.ug\",\n      \"ne.ug\",\n      \"com.ug\",\n      \"org.ug\",\n      \"uk\",\n      \"ac.uk\",\n      \"co.uk\",\n      \"gov.uk\",\n      \"ltd.uk\",\n      \"me.uk\",\n      \"net.uk\",\n      \"nhs.uk\",\n      \"org.uk\",\n      \"plc.uk\",\n      \"police.uk\",\n      \"*.sch.uk\",\n      \"us\",\n      \"dni.us\",\n      \"fed.us\",\n      \"isa.us\",\n      \"kids.us\",\n      \"nsn.us\",\n      \"ak.us\",\n      \"al.us\",\n      \"ar.us\",\n      \"as.us\",\n      \"az.us\",\n      \"ca.us\",\n      \"co.us\",\n      \"ct.us\",\n      \"dc.us\",\n      \"de.us\",\n      \"fl.us\",\n      \"ga.us\",\n      \"gu.us\",\n      \"hi.us\",\n      \"ia.us\",\n      \"id.us\",\n      \"il.us\",\n      \"in.us\",\n      \"ks.us\",\n      \"ky.us\",\n      \"la.us\",\n      \"ma.us\",\n      \"md.us\",\n      \"me.us\",\n      \"mi.us\",\n      \"mn.us\",\n      \"mo.us\",\n      \"ms.us\",\n      \"mt.us\",\n      \"nc.us\",\n      \"nd.us\",\n      \"ne.us\",\n      \"nh.us\",\n      \"nj.us\",\n      \"nm.us\",\n      \"nv.us\",\n      \"ny.us\",\n      \"oh.us\",\n      \"ok.us\",\n      \"or.us\",\n      \"pa.us\",\n      \"pr.us\",\n      \"ri.us\",\n      \"sc.us\",\n      \"sd.us\",\n      \"tn.us\",\n      \"tx.us\",\n      \"ut.us\",\n      \"vi.us\",\n      \"vt.us\",\n      \"va.us\",\n      \"wa.us\",\n      \"wi.us\",\n      \"wv.us\",\n      \"wy.us\",\n      \"k12.ak.us\",\n      \"k12.al.us\",\n      \"k12.ar.us\",\n      \"k12.as.us\",\n      \"k12.az.us\",\n      \"k12.ca.us\",\n      \"k12.co.us\",\n      \"k12.ct.us\",\n      \"k12.dc.us\",\n      \"k12.de.us\",\n      \"k12.fl.us\",\n      \"k12.ga.us\",\n      \"k12.gu.us\",\n      \"k12.ia.us\",\n      \"k12.id.us\",\n      \"k12.il.us\",\n      \"k12.in.us\",\n      \"k12.ks.us\",\n      \"k12.ky.us\",\n      \"k12.la.us\",\n      \"k12.ma.us\",\n      \"k12.md.us\",\n      \"k12.me.us\",\n      \"k12.mi.us\",\n      \"k12.mn.us\",\n      \"k12.mo.us\",\n      \"k12.ms.us\",\n      \"k12.mt.us\",\n      \"k12.nc.us\",\n      \"k12.ne.us\",\n      \"k12.nh.us\",\n      \"k12.nj.us\",\n      \"k12.nm.us\",\n      \"k12.nv.us\",\n      \"k12.ny.us\",\n      \"k12.oh.us\",\n      \"k12.ok.us\",\n      \"k12.or.us\",\n      \"k12.pa.us\",\n      \"k12.pr.us\",\n      \"k12.sc.us\",\n      \"k12.tn.us\",\n      \"k12.tx.us\",\n      \"k12.ut.us\",\n      \"k12.vi.us\",\n      \"k12.vt.us\",\n      \"k12.va.us\",\n      \"k12.wa.us\",\n      \"k12.wi.us\",\n      \"k12.wy.us\",\n      \"cc.ak.us\",\n      \"cc.al.us\",\n      \"cc.ar.us\",\n      \"cc.as.us\",\n      \"cc.az.us\",\n      \"cc.ca.us\",\n      \"cc.co.us\",\n      \"cc.ct.us\",\n      \"cc.dc.us\",\n      \"cc.de.us\",\n      \"cc.fl.us\",\n      \"cc.ga.us\",\n      \"cc.gu.us\",\n      \"cc.hi.us\",\n      \"cc.ia.us\",\n      \"cc.id.us\",\n      \"cc.il.us\",\n      \"cc.in.us\",\n      \"cc.ks.us\",\n      \"cc.ky.us\",\n      \"cc.la.us\",\n      \"cc.ma.us\",\n      \"cc.md.us\",\n      \"cc.me.us\",\n      \"cc.mi.us\",\n      \"cc.mn.us\",\n      \"cc.mo.us\",\n      \"cc.ms.us\",\n      \"cc.mt.us\",\n      \"cc.nc.us\",\n      \"cc.nd.us\",\n      \"cc.ne.us\",\n      \"cc.nh.us\",\n      \"cc.nj.us\",\n      \"cc.nm.us\",\n      \"cc.nv.us\",\n      \"cc.ny.us\",\n      \"cc.oh.us\",\n      \"cc.ok.us\",\n      \"cc.or.us\",\n      \"cc.pa.us\",\n      \"cc.pr.us\",\n      \"cc.ri.us\",\n      \"cc.sc.us\",\n      \"cc.sd.us\",\n      \"cc.tn.us\",\n      \"cc.tx.us\",\n      \"cc.ut.us\",\n      \"cc.vi.us\",\n      \"cc.vt.us\",\n      \"cc.va.us\",\n      \"cc.wa.us\",\n      \"cc.wi.us\",\n      \"cc.wv.us\",\n      \"cc.wy.us\",\n      \"lib.ak.us\",\n      \"lib.al.us\",\n      \"lib.ar.us\",\n      \"lib.as.us\",\n      \"lib.az.us\",\n      \"lib.ca.us\",\n      \"lib.co.us\",\n      \"lib.ct.us\",\n      \"lib.dc.us\",\n      \"lib.fl.us\",\n      \"lib.ga.us\",\n      \"lib.gu.us\",\n      \"lib.hi.us\",\n      \"lib.ia.us\",\n      \"lib.id.us\",\n      \"lib.il.us\",\n      \"lib.in.us\",\n      \"lib.ks.us\",\n      \"lib.ky.us\",\n      \"lib.la.us\",\n      \"lib.ma.us\",\n      \"lib.md.us\",\n      \"lib.me.us\",\n      \"lib.mi.us\",\n      \"lib.mn.us\",\n      \"lib.mo.us\",\n      \"lib.ms.us\",\n      \"lib.mt.us\",\n      \"lib.nc.us\",\n      \"lib.nd.us\",\n      \"lib.ne.us\",\n      \"lib.nh.us\",\n      \"lib.nj.us\",\n      \"lib.nm.us\",\n      \"lib.nv.us\",\n      \"lib.ny.us\",\n      \"lib.oh.us\",\n      \"lib.ok.us\",\n      \"lib.or.us\",\n      \"lib.pa.us\",\n      \"lib.pr.us\",\n      \"lib.ri.us\",\n      \"lib.sc.us\",\n      \"lib.sd.us\",\n      \"lib.tn.us\",\n      \"lib.tx.us\",\n      \"lib.ut.us\",\n      \"lib.vi.us\",\n      \"lib.vt.us\",\n      \"lib.va.us\",\n      \"lib.wa.us\",\n      \"lib.wi.us\",\n      \"lib.wy.us\",\n      \"pvt.k12.ma.us\",\n      \"chtr.k12.ma.us\",\n      \"paroch.k12.ma.us\",\n      \"ann-arbor.mi.us\",\n      \"cog.mi.us\",\n      \"dst.mi.us\",\n      \"eaton.mi.us\",\n      \"gen.mi.us\",\n      \"mus.mi.us\",\n      \"tec.mi.us\",\n      \"washtenaw.mi.us\",\n      \"uy\",\n      \"com.uy\",\n      \"edu.uy\",\n      \"gub.uy\",\n      \"mil.uy\",\n      \"net.uy\",\n      \"org.uy\",\n      \"uz\",\n      \"co.uz\",\n      \"com.uz\",\n      \"net.uz\",\n      \"org.uz\",\n      \"va\",\n      \"vc\",\n      \"com.vc\",\n      \"net.vc\",\n      \"org.vc\",\n      \"gov.vc\",\n      \"mil.vc\",\n      \"edu.vc\",\n      \"ve\",\n      \"arts.ve\",\n      \"bib.ve\",\n      \"co.ve\",\n      \"com.ve\",\n      \"e12.ve\",\n      \"edu.ve\",\n      \"firm.ve\",\n      \"gob.ve\",\n      \"gov.ve\",\n      \"info.ve\",\n      \"int.ve\",\n      \"mil.ve\",\n      \"net.ve\",\n      \"nom.ve\",\n      \"org.ve\",\n      \"rar.ve\",\n      \"rec.ve\",\n      \"store.ve\",\n      \"tec.ve\",\n      \"web.ve\",\n      \"vg\",\n      \"vi\",\n      \"co.vi\",\n      \"com.vi\",\n      \"k12.vi\",\n      \"net.vi\",\n      \"org.vi\",\n      \"vn\",\n      \"com.vn\",\n      \"net.vn\",\n      \"org.vn\",\n      \"edu.vn\",\n      \"gov.vn\",\n      \"int.vn\",\n      \"ac.vn\",\n      \"biz.vn\",\n      \"info.vn\",\n      \"name.vn\",\n      \"pro.vn\",\n      \"health.vn\",\n      \"vu\",\n      \"com.vu\",\n      \"edu.vu\",\n      \"net.vu\",\n      \"org.vu\",\n      \"wf\",\n      \"ws\",\n      \"com.ws\",\n      \"net.ws\",\n      \"org.ws\",\n      \"gov.ws\",\n      \"edu.ws\",\n      \"yt\",\n      \"\\u0627\\u0645\\u0627\\u0631\\u0627\\u062A\",\n      \"\\u0570\\u0561\\u0575\",\n      \"\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\",\n      \"\\u0431\\u0433\",\n      \"\\u0627\\u0644\\u0628\\u062D\\u0631\\u064A\\u0646\",\n      \"\\u0431\\u0435\\u043B\",\n      \"\\u4E2D\\u56FD\",\n      \"\\u4E2D\\u570B\",\n      \"\\u0627\\u0644\\u062C\\u0632\\u0627\\u0626\\u0631\",\n      \"\\u0645\\u0635\\u0631\",\n      \"\\u0435\\u044E\",\n      \"\\u03B5\\u03C5\",\n      \"\\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0627\",\n      \"\\u10D2\\u10D4\",\n      \"\\u03B5\\u03BB\",\n      \"\\u9999\\u6E2F\",\n      \"\\u516C\\u53F8.\\u9999\\u6E2F\",\n      \"\\u6559\\u80B2.\\u9999\\u6E2F\",\n      \"\\u653F\\u5E9C.\\u9999\\u6E2F\",\n      \"\\u500B\\u4EBA.\\u9999\\u6E2F\",\n      \"\\u7DB2\\u7D61.\\u9999\\u6E2F\",\n      \"\\u7D44\\u7E54.\\u9999\\u6E2F\",\n      \"\\u0CAD\\u0CBE\\u0CB0\\u0CA4\",\n      \"\\u0B2D\\u0B3E\\u0B30\\u0B24\",\n      \"\\u09AD\\u09BE\\u09F0\\u09A4\",\n      \"\\u092D\\u093E\\u0930\\u0924\\u092E\\u094D\",\n      \"\\u092D\\u093E\\u0930\\u094B\\u0924\",\n      \"\\u0680\\u0627\\u0631\\u062A\",\n      \"\\u0D2D\\u0D3E\\u0D30\\u0D24\\u0D02\",\n      \"\\u092D\\u093E\\u0930\\u0924\",\n      \"\\u0628\\u0627\\u0631\\u062A\",\n      \"\\u0628\\u06BE\\u0627\\u0631\\u062A\",\n      \"\\u0C2D\\u0C3E\\u0C30\\u0C24\\u0C4D\",\n      \"\\u0AAD\\u0ABE\\u0AB0\\u0AA4\",\n      \"\\u0A2D\\u0A3E\\u0A30\\u0A24\",\n      \"\\u09AD\\u09BE\\u09B0\\u09A4\",\n      \"\\u0B87\\u0BA8\\u0BCD\\u0BA4\\u0BBF\\u0BAF\\u0BBE\",\n      \"\\u0627\\u06CC\\u0631\\u0627\\u0646\",\n      \"\\u0627\\u064A\\u0631\\u0627\\u0646\",\n      \"\\u0639\\u0631\\u0627\\u0642\",\n      \"\\u0627\\u0644\\u0627\\u0631\\u062F\\u0646\",\n      \"\\uD55C\\uAD6D\",\n      \"\\u049B\\u0430\\u0437\",\n      \"\\u0EA5\\u0EB2\\u0EA7\",\n      \"\\u0DBD\\u0D82\\u0D9A\\u0DCF\",\n      \"\\u0B87\\u0BB2\\u0B99\\u0BCD\\u0B95\\u0BC8\",\n      \"\\u0627\\u0644\\u0645\\u063A\\u0631\\u0628\",\n      \"\\u043C\\u043A\\u0434\",\n      \"\\u043C\\u043E\\u043D\",\n      \"\\u6FB3\\u9580\",\n      \"\\u6FB3\\u95E8\",\n      \"\\u0645\\u0644\\u064A\\u0633\\u064A\\u0627\",\n      \"\\u0639\\u0645\\u0627\\u0646\",\n      \"\\u067E\\u0627\\u06A9\\u0633\\u062A\\u0627\\u0646\",\n      \"\\u067E\\u0627\\u0643\\u0633\\u062A\\u0627\\u0646\",\n      \"\\u0641\\u0644\\u0633\\u0637\\u064A\\u0646\",\n      \"\\u0441\\u0440\\u0431\",\n      \"\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n      \"\\u043E\\u0440\\u0433.\\u0441\\u0440\\u0431\",\n      \"\\u043E\\u0431\\u0440.\\u0441\\u0440\\u0431\",\n      \"\\u043E\\u0434.\\u0441\\u0440\\u0431\",\n      \"\\u0443\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n      \"\\u0430\\u043A.\\u0441\\u0440\\u0431\",\n      \"\\u0440\\u0444\",\n      \"\\u0642\\u0637\\u0631\",\n      \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0629\",\n      \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u0629\",\n      \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u06C3\",\n      \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0647\",\n      \"\\u0633\\u0648\\u062F\\u0627\\u0646\",\n      \"\\u65B0\\u52A0\\u5761\",\n      \"\\u0B9A\\u0BBF\\u0B99\\u0BCD\\u0B95\\u0BAA\\u0BCD\\u0BAA\\u0BC2\\u0BB0\\u0BCD\",\n      \"\\u0633\\u0648\\u0631\\u064A\\u0629\",\n      \"\\u0633\\u0648\\u0631\\u064A\\u0627\",\n      \"\\u0E44\\u0E17\\u0E22\",\n      \"\\u0E28\\u0E36\\u0E01\\u0E29\\u0E32.\\u0E44\\u0E17\\u0E22\",\n      \"\\u0E18\\u0E38\\u0E23\\u0E01\\u0E34\\u0E08.\\u0E44\\u0E17\\u0E22\",\n      \"\\u0E23\\u0E31\\u0E10\\u0E1A\\u0E32\\u0E25.\\u0E44\\u0E17\\u0E22\",\n      \"\\u0E17\\u0E2B\\u0E32\\u0E23.\\u0E44\\u0E17\\u0E22\",\n      \"\\u0E40\\u0E19\\u0E47\\u0E15.\\u0E44\\u0E17\\u0E22\",\n      \"\\u0E2D\\u0E07\\u0E04\\u0E4C\\u0E01\\u0E23.\\u0E44\\u0E17\\u0E22\",\n      \"\\u062A\\u0648\\u0646\\u0633\",\n      \"\\u53F0\\u7063\",\n      \"\\u53F0\\u6E7E\",\n      \"\\u81FA\\u7063\",\n      \"\\u0443\\u043A\\u0440\",\n      \"\\u0627\\u0644\\u064A\\u0645\\u0646\",\n      \"xxx\",\n      \"ye\",\n      \"com.ye\",\n      \"edu.ye\",\n      \"gov.ye\",\n      \"net.ye\",\n      \"mil.ye\",\n      \"org.ye\",\n      \"ac.za\",\n      \"agric.za\",\n      \"alt.za\",\n      \"co.za\",\n      \"edu.za\",\n      \"gov.za\",\n      \"grondar.za\",\n      \"law.za\",\n      \"mil.za\",\n      \"net.za\",\n      \"ngo.za\",\n      \"nic.za\",\n      \"nis.za\",\n      \"nom.za\",\n      \"org.za\",\n      \"school.za\",\n      \"tm.za\",\n      \"web.za\",\n      \"zm\",\n      \"ac.zm\",\n      \"biz.zm\",\n      \"co.zm\",\n      \"com.zm\",\n      \"edu.zm\",\n      \"gov.zm\",\n      \"info.zm\",\n      \"mil.zm\",\n      \"net.zm\",\n      \"org.zm\",\n      \"sch.zm\",\n      \"zw\",\n      \"ac.zw\",\n      \"co.zw\",\n      \"gov.zw\",\n      \"mil.zw\",\n      \"org.zw\",\n      \"aaa\",\n      \"aarp\",\n      \"abarth\",\n      \"abb\",\n      \"abbott\",\n      \"abbvie\",\n      \"abc\",\n      \"able\",\n      \"abogado\",\n      \"abudhabi\",\n      \"academy\",\n      \"accenture\",\n      \"accountant\",\n      \"accountants\",\n      \"aco\",\n      \"actor\",\n      \"adac\",\n      \"ads\",\n      \"adult\",\n      \"aeg\",\n      \"aetna\",\n      \"afl\",\n      \"africa\",\n      \"agakhan\",\n      \"agency\",\n      \"aig\",\n      \"airbus\",\n      \"airforce\",\n      \"airtel\",\n      \"akdn\",\n      \"alfaromeo\",\n      \"alibaba\",\n      \"alipay\",\n      \"allfinanz\",\n      \"allstate\",\n      \"ally\",\n      \"alsace\",\n      \"alstom\",\n      \"amazon\",\n      \"americanexpress\",\n      \"americanfamily\",\n      \"amex\",\n      \"amfam\",\n      \"amica\",\n      \"amsterdam\",\n      \"analytics\",\n      \"android\",\n      \"anquan\",\n      \"anz\",\n      \"aol\",\n      \"apartments\",\n      \"app\",\n      \"apple\",\n      \"aquarelle\",\n      \"arab\",\n      \"aramco\",\n      \"archi\",\n      \"army\",\n      \"art\",\n      \"arte\",\n      \"asda\",\n      \"associates\",\n      \"athleta\",\n      \"attorney\",\n      \"auction\",\n      \"audi\",\n      \"audible\",\n      \"audio\",\n      \"auspost\",\n      \"author\",\n      \"auto\",\n      \"autos\",\n      \"avianca\",\n      \"aws\",\n      \"axa\",\n      \"azure\",\n      \"baby\",\n      \"baidu\",\n      \"banamex\",\n      \"bananarepublic\",\n      \"band\",\n      \"bank\",\n      \"bar\",\n      \"barcelona\",\n      \"barclaycard\",\n      \"barclays\",\n      \"barefoot\",\n      \"bargains\",\n      \"baseball\",\n      \"basketball\",\n      \"bauhaus\",\n      \"bayern\",\n      \"bbc\",\n      \"bbt\",\n      \"bbva\",\n      \"bcg\",\n      \"bcn\",\n      \"beats\",\n      \"beauty\",\n      \"beer\",\n      \"bentley\",\n      \"berlin\",\n      \"best\",\n      \"bestbuy\",\n      \"bet\",\n      \"bharti\",\n      \"bible\",\n      \"bid\",\n      \"bike\",\n      \"bing\",\n      \"bingo\",\n      \"bio\",\n      \"black\",\n      \"blackfriday\",\n      \"blockbuster\",\n      \"blog\",\n      \"bloomberg\",\n      \"blue\",\n      \"bms\",\n      \"bmw\",\n      \"bnpparibas\",\n      \"boats\",\n      \"boehringer\",\n      \"bofa\",\n      \"bom\",\n      \"bond\",\n      \"boo\",\n      \"book\",\n      \"booking\",\n      \"bosch\",\n      \"bostik\",\n      \"boston\",\n      \"bot\",\n      \"boutique\",\n      \"box\",\n      \"bradesco\",\n      \"bridgestone\",\n      \"broadway\",\n      \"broker\",\n      \"brother\",\n      \"brussels\",\n      \"bugatti\",\n      \"build\",\n      \"builders\",\n      \"business\",\n      \"buy\",\n      \"buzz\",\n      \"bzh\",\n      \"cab\",\n      \"cafe\",\n      \"cal\",\n      \"call\",\n      \"calvinklein\",\n      \"cam\",\n      \"camera\",\n      \"camp\",\n      \"cancerresearch\",\n      \"canon\",\n      \"capetown\",\n      \"capital\",\n      \"capitalone\",\n      \"car\",\n      \"caravan\",\n      \"cards\",\n      \"care\",\n      \"career\",\n      \"careers\",\n      \"cars\",\n      \"casa\",\n      \"case\",\n      \"cash\",\n      \"casino\",\n      \"catering\",\n      \"catholic\",\n      \"cba\",\n      \"cbn\",\n      \"cbre\",\n      \"cbs\",\n      \"center\",\n      \"ceo\",\n      \"cern\",\n      \"cfa\",\n      \"cfd\",\n      \"chanel\",\n      \"channel\",\n      \"charity\",\n      \"chase\",\n      \"chat\",\n      \"cheap\",\n      \"chintai\",\n      \"christmas\",\n      \"chrome\",\n      \"church\",\n      \"cipriani\",\n      \"circle\",\n      \"cisco\",\n      \"citadel\",\n      \"citi\",\n      \"citic\",\n      \"city\",\n      \"cityeats\",\n      \"claims\",\n      \"cleaning\",\n      \"click\",\n      \"clinic\",\n      \"clinique\",\n      \"clothing\",\n      \"cloud\",\n      \"club\",\n      \"clubmed\",\n      \"coach\",\n      \"codes\",\n      \"coffee\",\n      \"college\",\n      \"cologne\",\n      \"comcast\",\n      \"commbank\",\n      \"community\",\n      \"company\",\n      \"compare\",\n      \"computer\",\n      \"comsec\",\n      \"condos\",\n      \"construction\",\n      \"consulting\",\n      \"contact\",\n      \"contractors\",\n      \"cooking\",\n      \"cookingchannel\",\n      \"cool\",\n      \"corsica\",\n      \"country\",\n      \"coupon\",\n      \"coupons\",\n      \"courses\",\n      \"cpa\",\n      \"credit\",\n      \"creditcard\",\n      \"creditunion\",\n      \"cricket\",\n      \"crown\",\n      \"crs\",\n      \"cruise\",\n      \"cruises\",\n      \"cuisinella\",\n      \"cymru\",\n      \"cyou\",\n      \"dabur\",\n      \"dad\",\n      \"dance\",\n      \"data\",\n      \"date\",\n      \"dating\",\n      \"datsun\",\n      \"day\",\n      \"dclk\",\n      \"dds\",\n      \"deal\",\n      \"dealer\",\n      \"deals\",\n      \"degree\",\n      \"delivery\",\n      \"dell\",\n      \"deloitte\",\n      \"delta\",\n      \"democrat\",\n      \"dental\",\n      \"dentist\",\n      \"desi\",\n      \"design\",\n      \"dev\",\n      \"dhl\",\n      \"diamonds\",\n      \"diet\",\n      \"digital\",\n      \"direct\",\n      \"directory\",\n      \"discount\",\n      \"discover\",\n      \"dish\",\n      \"diy\",\n      \"dnp\",\n      \"docs\",\n      \"doctor\",\n      \"dog\",\n      \"domains\",\n      \"dot\",\n      \"download\",\n      \"drive\",\n      \"dtv\",\n      \"dubai\",\n      \"dunlop\",\n      \"dupont\",\n      \"durban\",\n      \"dvag\",\n      \"dvr\",\n      \"earth\",\n      \"eat\",\n      \"eco\",\n      \"edeka\",\n      \"education\",\n      \"email\",\n      \"emerck\",\n      \"energy\",\n      \"engineer\",\n      \"engineering\",\n      \"enterprises\",\n      \"epson\",\n      \"equipment\",\n      \"ericsson\",\n      \"erni\",\n      \"esq\",\n      \"estate\",\n      \"etisalat\",\n      \"eurovision\",\n      \"eus\",\n      \"events\",\n      \"exchange\",\n      \"expert\",\n      \"exposed\",\n      \"express\",\n      \"extraspace\",\n      \"fage\",\n      \"fail\",\n      \"fairwinds\",\n      \"faith\",\n      \"family\",\n      \"fan\",\n      \"fans\",\n      \"farm\",\n      \"farmers\",\n      \"fashion\",\n      \"fast\",\n      \"fedex\",\n      \"feedback\",\n      \"ferrari\",\n      \"ferrero\",\n      \"fiat\",\n      \"fidelity\",\n      \"fido\",\n      \"film\",\n      \"final\",\n      \"finance\",\n      \"financial\",\n      \"fire\",\n      \"firestone\",\n      \"firmdale\",\n      \"fish\",\n      \"fishing\",\n      \"fit\",\n      \"fitness\",\n      \"flickr\",\n      \"flights\",\n      \"flir\",\n      \"florist\",\n      \"flowers\",\n      \"fly\",\n      \"foo\",\n      \"food\",\n      \"foodnetwork\",\n      \"football\",\n      \"ford\",\n      \"forex\",\n      \"forsale\",\n      \"forum\",\n      \"foundation\",\n      \"fox\",\n      \"free\",\n      \"fresenius\",\n      \"frl\",\n      \"frogans\",\n      \"frontdoor\",\n      \"frontier\",\n      \"ftr\",\n      \"fujitsu\",\n      \"fun\",\n      \"fund\",\n      \"furniture\",\n      \"futbol\",\n      \"fyi\",\n      \"gal\",\n      \"gallery\",\n      \"gallo\",\n      \"gallup\",\n      \"game\",\n      \"games\",\n      \"gap\",\n      \"garden\",\n      \"gay\",\n      \"gbiz\",\n      \"gdn\",\n      \"gea\",\n      \"gent\",\n      \"genting\",\n      \"george\",\n      \"ggee\",\n      \"gift\",\n      \"gifts\",\n      \"gives\",\n      \"giving\",\n      \"glass\",\n      \"gle\",\n      \"global\",\n      \"globo\",\n      \"gmail\",\n      \"gmbh\",\n      \"gmo\",\n      \"gmx\",\n      \"godaddy\",\n      \"gold\",\n      \"goldpoint\",\n      \"golf\",\n      \"goo\",\n      \"goodyear\",\n      \"goog\",\n      \"google\",\n      \"gop\",\n      \"got\",\n      \"grainger\",\n      \"graphics\",\n      \"gratis\",\n      \"green\",\n      \"gripe\",\n      \"grocery\",\n      \"group\",\n      \"guardian\",\n      \"gucci\",\n      \"guge\",\n      \"guide\",\n      \"guitars\",\n      \"guru\",\n      \"hair\",\n      \"hamburg\",\n      \"hangout\",\n      \"haus\",\n      \"hbo\",\n      \"hdfc\",\n      \"hdfcbank\",\n      \"health\",\n      \"healthcare\",\n      \"help\",\n      \"helsinki\",\n      \"here\",\n      \"hermes\",\n      \"hgtv\",\n      \"hiphop\",\n      \"hisamitsu\",\n      \"hitachi\",\n      \"hiv\",\n      \"hkt\",\n      \"hockey\",\n      \"holdings\",\n      \"holiday\",\n      \"homedepot\",\n      \"homegoods\",\n      \"homes\",\n      \"homesense\",\n      \"honda\",\n      \"horse\",\n      \"hospital\",\n      \"host\",\n      \"hosting\",\n      \"hot\",\n      \"hoteles\",\n      \"hotels\",\n      \"hotmail\",\n      \"house\",\n      \"how\",\n      \"hsbc\",\n      \"hughes\",\n      \"hyatt\",\n      \"hyundai\",\n      \"ibm\",\n      \"icbc\",\n      \"ice\",\n      \"icu\",\n      \"ieee\",\n      \"ifm\",\n      \"ikano\",\n      \"imamat\",\n      \"imdb\",\n      \"immo\",\n      \"immobilien\",\n      \"inc\",\n      \"industries\",\n      \"infiniti\",\n      \"ing\",\n      \"ink\",\n      \"institute\",\n      \"insurance\",\n      \"insure\",\n      \"international\",\n      \"intuit\",\n      \"investments\",\n      \"ipiranga\",\n      \"irish\",\n      \"ismaili\",\n      \"ist\",\n      \"istanbul\",\n      \"itau\",\n      \"itv\",\n      \"jaguar\",\n      \"java\",\n      \"jcb\",\n      \"jeep\",\n      \"jetzt\",\n      \"jewelry\",\n      \"jio\",\n      \"jll\",\n      \"jmp\",\n      \"jnj\",\n      \"joburg\",\n      \"jot\",\n      \"joy\",\n      \"jpmorgan\",\n      \"jprs\",\n      \"juegos\",\n      \"juniper\",\n      \"kaufen\",\n      \"kddi\",\n      \"kerryhotels\",\n      \"kerrylogistics\",\n      \"kerryproperties\",\n      \"kfh\",\n      \"kia\",\n      \"kids\",\n      \"kim\",\n      \"kinder\",\n      \"kindle\",\n      \"kitchen\",\n      \"kiwi\",\n      \"koeln\",\n      \"komatsu\",\n      \"kosher\",\n      \"kpmg\",\n      \"kpn\",\n      \"krd\",\n      \"kred\",\n      \"kuokgroup\",\n      \"kyoto\",\n      \"lacaixa\",\n      \"lamborghini\",\n      \"lamer\",\n      \"lancaster\",\n      \"lancia\",\n      \"land\",\n      \"landrover\",\n      \"lanxess\",\n      \"lasalle\",\n      \"lat\",\n      \"latino\",\n      \"latrobe\",\n      \"law\",\n      \"lawyer\",\n      \"lds\",\n      \"lease\",\n      \"leclerc\",\n      \"lefrak\",\n      \"legal\",\n      \"lego\",\n      \"lexus\",\n      \"lgbt\",\n      \"lidl\",\n      \"life\",\n      \"lifeinsurance\",\n      \"lifestyle\",\n      \"lighting\",\n      \"like\",\n      \"lilly\",\n      \"limited\",\n      \"limo\",\n      \"lincoln\",\n      \"linde\",\n      \"link\",\n      \"lipsy\",\n      \"live\",\n      \"living\",\n      \"llc\",\n      \"llp\",\n      \"loan\",\n      \"loans\",\n      \"locker\",\n      \"locus\",\n      \"loft\",\n      \"lol\",\n      \"london\",\n      \"lotte\",\n      \"lotto\",\n      \"love\",\n      \"lpl\",\n      \"lplfinancial\",\n      \"ltd\",\n      \"ltda\",\n      \"lundbeck\",\n      \"luxe\",\n      \"luxury\",\n      \"macys\",\n      \"madrid\",\n      \"maif\",\n      \"maison\",\n      \"makeup\",\n      \"man\",\n      \"management\",\n      \"mango\",\n      \"map\",\n      \"market\",\n      \"marketing\",\n      \"markets\",\n      \"marriott\",\n      \"marshalls\",\n      \"maserati\",\n      \"mattel\",\n      \"mba\",\n      \"mckinsey\",\n      \"med\",\n      \"media\",\n      \"meet\",\n      \"melbourne\",\n      \"meme\",\n      \"memorial\",\n      \"men\",\n      \"menu\",\n      \"merckmsd\",\n      \"miami\",\n      \"microsoft\",\n      \"mini\",\n      \"mint\",\n      \"mit\",\n      \"mitsubishi\",\n      \"mlb\",\n      \"mls\",\n      \"mma\",\n      \"mobile\",\n      \"moda\",\n      \"moe\",\n      \"moi\",\n      \"mom\",\n      \"monash\",\n      \"money\",\n      \"monster\",\n      \"mormon\",\n      \"mortgage\",\n      \"moscow\",\n      \"moto\",\n      \"motorcycles\",\n      \"mov\",\n      \"movie\",\n      \"msd\",\n      \"mtn\",\n      \"mtr\",\n      \"music\",\n      \"mutual\",\n      \"nab\",\n      \"nagoya\",\n      \"natura\",\n      \"navy\",\n      \"nba\",\n      \"nec\",\n      \"netbank\",\n      \"netflix\",\n      \"network\",\n      \"neustar\",\n      \"new\",\n      \"news\",\n      \"next\",\n      \"nextdirect\",\n      \"nexus\",\n      \"nfl\",\n      \"ngo\",\n      \"nhk\",\n      \"nico\",\n      \"nike\",\n      \"nikon\",\n      \"ninja\",\n      \"nissan\",\n      \"nissay\",\n      \"nokia\",\n      \"northwesternmutual\",\n      \"norton\",\n      \"now\",\n      \"nowruz\",\n      \"nowtv\",\n      \"nra\",\n      \"nrw\",\n      \"ntt\",\n      \"nyc\",\n      \"obi\",\n      \"observer\",\n      \"office\",\n      \"okinawa\",\n      \"olayan\",\n      \"olayangroup\",\n      \"oldnavy\",\n      \"ollo\",\n      \"omega\",\n      \"one\",\n      \"ong\",\n      \"onl\",\n      \"online\",\n      \"ooo\",\n      \"open\",\n      \"oracle\",\n      \"orange\",\n      \"organic\",\n      \"origins\",\n      \"osaka\",\n      \"otsuka\",\n      \"ott\",\n      \"ovh\",\n      \"page\",\n      \"panasonic\",\n      \"paris\",\n      \"pars\",\n      \"partners\",\n      \"parts\",\n      \"party\",\n      \"passagens\",\n      \"pay\",\n      \"pccw\",\n      \"pet\",\n      \"pfizer\",\n      \"pharmacy\",\n      \"phd\",\n      \"philips\",\n      \"phone\",\n      \"photo\",\n      \"photography\",\n      \"photos\",\n      \"physio\",\n      \"pics\",\n      \"pictet\",\n      \"pictures\",\n      \"pid\",\n      \"pin\",\n      \"ping\",\n      \"pink\",\n      \"pioneer\",\n      \"pizza\",\n      \"place\",\n      \"play\",\n      \"playstation\",\n      \"plumbing\",\n      \"plus\",\n      \"pnc\",\n      \"pohl\",\n      \"poker\",\n      \"politie\",\n      \"porn\",\n      \"pramerica\",\n      \"praxi\",\n      \"press\",\n      \"prime\",\n      \"prod\",\n      \"productions\",\n      \"prof\",\n      \"progressive\",\n      \"promo\",\n      \"properties\",\n      \"property\",\n      \"protection\",\n      \"pru\",\n      \"prudential\",\n      \"pub\",\n      \"pwc\",\n      \"qpon\",\n      \"quebec\",\n      \"quest\",\n      \"racing\",\n      \"radio\",\n      \"read\",\n      \"realestate\",\n      \"realtor\",\n      \"realty\",\n      \"recipes\",\n      \"red\",\n      \"redstone\",\n      \"redumbrella\",\n      \"rehab\",\n      \"reise\",\n      \"reisen\",\n      \"reit\",\n      \"reliance\",\n      \"ren\",\n      \"rent\",\n      \"rentals\",\n      \"repair\",\n      \"report\",\n      \"republican\",\n      \"rest\",\n      \"restaurant\",\n      \"review\",\n      \"reviews\",\n      \"rexroth\",\n      \"rich\",\n      \"richardli\",\n      \"ricoh\",\n      \"ril\",\n      \"rio\",\n      \"rip\",\n      \"rocher\",\n      \"rocks\",\n      \"rodeo\",\n      \"rogers\",\n      \"room\",\n      \"rsvp\",\n      \"rugby\",\n      \"ruhr\",\n      \"run\",\n      \"rwe\",\n      \"ryukyu\",\n      \"saarland\",\n      \"safe\",\n      \"safety\",\n      \"sakura\",\n      \"sale\",\n      \"salon\",\n      \"samsclub\",\n      \"samsung\",\n      \"sandvik\",\n      \"sandvikcoromant\",\n      \"sanofi\",\n      \"sap\",\n      \"sarl\",\n      \"sas\",\n      \"save\",\n      \"saxo\",\n      \"sbi\",\n      \"sbs\",\n      \"sca\",\n      \"scb\",\n      \"schaeffler\",\n      \"schmidt\",\n      \"scholarships\",\n      \"school\",\n      \"schule\",\n      \"schwarz\",\n      \"science\",\n      \"scot\",\n      \"search\",\n      \"seat\",\n      \"secure\",\n      \"security\",\n      \"seek\",\n      \"select\",\n      \"sener\",\n      \"services\",\n      \"ses\",\n      \"seven\",\n      \"sew\",\n      \"sex\",\n      \"sexy\",\n      \"sfr\",\n      \"shangrila\",\n      \"sharp\",\n      \"shaw\",\n      \"shell\",\n      \"shia\",\n      \"shiksha\",\n      \"shoes\",\n      \"shop\",\n      \"shopping\",\n      \"shouji\",\n      \"show\",\n      \"showtime\",\n      \"silk\",\n      \"sina\",\n      \"singles\",\n      \"site\",\n      \"ski\",\n      \"skin\",\n      \"sky\",\n      \"skype\",\n      \"sling\",\n      \"smart\",\n      \"smile\",\n      \"sncf\",\n      \"soccer\",\n      \"social\",\n      \"softbank\",\n      \"software\",\n      \"sohu\",\n      \"solar\",\n      \"solutions\",\n      \"song\",\n      \"sony\",\n      \"soy\",\n      \"spa\",\n      \"space\",\n      \"sport\",\n      \"spot\",\n      \"srl\",\n      \"stada\",\n      \"staples\",\n      \"star\",\n      \"statebank\",\n      \"statefarm\",\n      \"stc\",\n      \"stcgroup\",\n      \"stockholm\",\n      \"storage\",\n      \"store\",\n      \"stream\",\n      \"studio\",\n      \"study\",\n      \"style\",\n      \"sucks\",\n      \"supplies\",\n      \"supply\",\n      \"support\",\n      \"surf\",\n      \"surgery\",\n      \"suzuki\",\n      \"swatch\",\n      \"swiss\",\n      \"sydney\",\n      \"systems\",\n      \"tab\",\n      \"taipei\",\n      \"talk\",\n      \"taobao\",\n      \"target\",\n      \"tatamotors\",\n      \"tatar\",\n      \"tattoo\",\n      \"tax\",\n      \"taxi\",\n      \"tci\",\n      \"tdk\",\n      \"team\",\n      \"tech\",\n      \"technology\",\n      \"temasek\",\n      \"tennis\",\n      \"teva\",\n      \"thd\",\n      \"theater\",\n      \"theatre\",\n      \"tiaa\",\n      \"tickets\",\n      \"tienda\",\n      \"tiffany\",\n      \"tips\",\n      \"tires\",\n      \"tirol\",\n      \"tjmaxx\",\n      \"tjx\",\n      \"tkmaxx\",\n      \"tmall\",\n      \"today\",\n      \"tokyo\",\n      \"tools\",\n      \"top\",\n      \"toray\",\n      \"toshiba\",\n      \"total\",\n      \"tours\",\n      \"town\",\n      \"toyota\",\n      \"toys\",\n      \"trade\",\n      \"trading\",\n      \"training\",\n      \"travel\",\n      \"travelchannel\",\n      \"travelers\",\n      \"travelersinsurance\",\n      \"trust\",\n      \"trv\",\n      \"tube\",\n      \"tui\",\n      \"tunes\",\n      \"tushu\",\n      \"tvs\",\n      \"ubank\",\n      \"ubs\",\n      \"unicom\",\n      \"university\",\n      \"uno\",\n      \"uol\",\n      \"ups\",\n      \"vacations\",\n      \"vana\",\n      \"vanguard\",\n      \"vegas\",\n      \"ventures\",\n      \"verisign\",\n      \"versicherung\",\n      \"vet\",\n      \"viajes\",\n      \"video\",\n      \"vig\",\n      \"viking\",\n      \"villas\",\n      \"vin\",\n      \"vip\",\n      \"virgin\",\n      \"visa\",\n      \"vision\",\n      \"viva\",\n      \"vivo\",\n      \"vlaanderen\",\n      \"vodka\",\n      \"volkswagen\",\n      \"volvo\",\n      \"vote\",\n      \"voting\",\n      \"voto\",\n      \"voyage\",\n      \"vuelos\",\n      \"wales\",\n      \"walmart\",\n      \"walter\",\n      \"wang\",\n      \"wanggou\",\n      \"watch\",\n      \"watches\",\n      \"weather\",\n      \"weatherchannel\",\n      \"webcam\",\n      \"weber\",\n      \"website\",\n      \"wedding\",\n      \"weibo\",\n      \"weir\",\n      \"whoswho\",\n      \"wien\",\n      \"wiki\",\n      \"williamhill\",\n      \"win\",\n      \"windows\",\n      \"wine\",\n      \"winners\",\n      \"wme\",\n      \"wolterskluwer\",\n      \"woodside\",\n      \"work\",\n      \"works\",\n      \"world\",\n      \"wow\",\n      \"wtc\",\n      \"wtf\",\n      \"xbox\",\n      \"xerox\",\n      \"xfinity\",\n      \"xihuan\",\n      \"xin\",\n      \"\\u0915\\u0949\\u092E\",\n      \"\\u30BB\\u30FC\\u30EB\",\n      \"\\u4F5B\\u5C71\",\n      \"\\u6148\\u5584\",\n      \"\\u96C6\\u56E2\",\n      \"\\u5728\\u7EBF\",\n      \"\\u70B9\\u770B\",\n      \"\\u0E04\\u0E2D\\u0E21\",\n      \"\\u516B\\u5366\",\n      \"\\u0645\\u0648\\u0642\\u0639\",\n      \"\\u516C\\u76CA\",\n      \"\\u516C\\u53F8\",\n      \"\\u9999\\u683C\\u91CC\\u62C9\",\n      \"\\u7F51\\u7AD9\",\n      \"\\u79FB\\u52A8\",\n      \"\\u6211\\u7231\\u4F60\",\n      \"\\u043C\\u043E\\u0441\\u043A\\u0432\\u0430\",\n      \"\\u043A\\u0430\\u0442\\u043E\\u043B\\u0438\\u043A\",\n      \"\\u043E\\u043D\\u043B\\u0430\\u0439\\u043D\",\n      \"\\u0441\\u0430\\u0439\\u0442\",\n      \"\\u8054\\u901A\",\n      \"\\u05E7\\u05D5\\u05DD\",\n      \"\\u65F6\\u5C1A\",\n      \"\\u5FAE\\u535A\",\n      \"\\u6DE1\\u9A6C\\u9521\",\n      \"\\u30D5\\u30A1\\u30C3\\u30B7\\u30E7\\u30F3\",\n      \"\\u043E\\u0440\\u0433\",\n      \"\\u0928\\u0947\\u091F\",\n      \"\\u30B9\\u30C8\\u30A2\",\n      \"\\u30A2\\u30DE\\u30BE\\u30F3\",\n      \"\\uC0BC\\uC131\",\n      \"\\u5546\\u6807\",\n      \"\\u5546\\u5E97\",\n      \"\\u5546\\u57CE\",\n      \"\\u0434\\u0435\\u0442\\u0438\",\n      \"\\u30DD\\u30A4\\u30F3\\u30C8\",\n      \"\\u65B0\\u95FB\",\n      \"\\u5BB6\\u96FB\",\n      \"\\u0643\\u0648\\u0645\",\n      \"\\u4E2D\\u6587\\u7F51\",\n      \"\\u4E2D\\u4FE1\",\n      \"\\u5A31\\u4E50\",\n      \"\\u8C37\\u6B4C\",\n      \"\\u96FB\\u8A0A\\u76C8\\u79D1\",\n      \"\\u8D2D\\u7269\",\n      \"\\u30AF\\u30E9\\u30A6\\u30C9\",\n      \"\\u901A\\u8CA9\",\n      \"\\u7F51\\u5E97\",\n      \"\\u0938\\u0902\\u0917\\u0920\\u0928\",\n      \"\\u9910\\u5385\",\n      \"\\u7F51\\u7EDC\",\n      \"\\u043A\\u043E\\u043C\",\n      \"\\u4E9A\\u9A6C\\u900A\",\n      \"\\u8BFA\\u57FA\\u4E9A\",\n      \"\\u98DF\\u54C1\",\n      \"\\u98DE\\u5229\\u6D66\",\n      \"\\u624B\\u673A\",\n      \"\\u0627\\u0631\\u0627\\u0645\\u0643\\u0648\",\n      \"\\u0627\\u0644\\u0639\\u0644\\u064A\\u0627\\u0646\",\n      \"\\u0627\\u062A\\u0635\\u0627\\u0644\\u0627\\u062A\",\n      \"\\u0628\\u0627\\u0632\\u0627\\u0631\",\n      \"\\u0627\\u0628\\u0648\\u0638\\u0628\\u064A\",\n      \"\\u0643\\u0627\\u062B\\u0648\\u0644\\u064A\\u0643\",\n      \"\\u0647\\u0645\\u0631\\u0627\\u0647\",\n      \"\\uB2F7\\uCEF4\",\n      \"\\u653F\\u5E9C\",\n      \"\\u0634\\u0628\\u0643\\u0629\",\n      \"\\u0628\\u064A\\u062A\\u0643\",\n      \"\\u0639\\u0631\\u0628\",\n      \"\\u673A\\u6784\",\n      \"\\u7EC4\\u7EC7\\u673A\\u6784\",\n      \"\\u5065\\u5EB7\",\n      \"\\u62DB\\u8058\",\n      \"\\u0440\\u0443\\u0441\",\n      \"\\u5927\\u62FF\",\n      \"\\u307F\\u3093\\u306A\",\n      \"\\u30B0\\u30FC\\u30B0\\u30EB\",\n      \"\\u4E16\\u754C\",\n      \"\\u66F8\\u7C4D\",\n      \"\\u7F51\\u5740\",\n      \"\\uB2F7\\uB137\",\n      \"\\u30B3\\u30E0\",\n      \"\\u5929\\u4E3B\\u6559\",\n      \"\\u6E38\\u620F\",\n      \"verm\\xF6gensberater\",\n      \"verm\\xF6gensberatung\",\n      \"\\u4F01\\u4E1A\",\n      \"\\u4FE1\\u606F\",\n      \"\\u5609\\u91CC\\u5927\\u9152\\u5E97\",\n      \"\\u5609\\u91CC\",\n      \"\\u5E7F\\u4E1C\",\n      \"\\u653F\\u52A1\",\n      \"xyz\",\n      \"yachts\",\n      \"yahoo\",\n      \"yamaxun\",\n      \"yandex\",\n      \"yodobashi\",\n      \"yoga\",\n      \"yokohama\",\n      \"you\",\n      \"youtube\",\n      \"yun\",\n      \"zappos\",\n      \"zara\",\n      \"zero\",\n      \"zip\",\n      \"zone\",\n      \"zuerich\",\n      \"cc.ua\",\n      \"inf.ua\",\n      \"ltd.ua\",\n      \"611.to\",\n      \"graphox.us\",\n      \"*.devcdnaccesso.com\",\n      \"adobeaemcloud.com\",\n      \"*.dev.adobeaemcloud.com\",\n      \"hlx.live\",\n      \"adobeaemcloud.net\",\n      \"hlx.page\",\n      \"hlx3.page\",\n      \"beep.pl\",\n      \"airkitapps.com\",\n      \"airkitapps-au.com\",\n      \"airkitapps.eu\",\n      \"aivencloud.com\",\n      \"barsy.ca\",\n      \"*.compute.estate\",\n      \"*.alces.network\",\n      \"kasserver.com\",\n      \"altervista.org\",\n      \"alwaysdata.net\",\n      \"cloudfront.net\",\n      \"*.compute.amazonaws.com\",\n      \"*.compute-1.amazonaws.com\",\n      \"*.compute.amazonaws.com.cn\",\n      \"us-east-1.amazonaws.com\",\n      \"cn-north-1.eb.amazonaws.com.cn\",\n      \"cn-northwest-1.eb.amazonaws.com.cn\",\n      \"elasticbeanstalk.com\",\n      \"ap-northeast-1.elasticbeanstalk.com\",\n      \"ap-northeast-2.elasticbeanstalk.com\",\n      \"ap-northeast-3.elasticbeanstalk.com\",\n      \"ap-south-1.elasticbeanstalk.com\",\n      \"ap-southeast-1.elasticbeanstalk.com\",\n      \"ap-southeast-2.elasticbeanstalk.com\",\n      \"ca-central-1.elasticbeanstalk.com\",\n      \"eu-central-1.elasticbeanstalk.com\",\n      \"eu-west-1.elasticbeanstalk.com\",\n      \"eu-west-2.elasticbeanstalk.com\",\n      \"eu-west-3.elasticbeanstalk.com\",\n      \"sa-east-1.elasticbeanstalk.com\",\n      \"us-east-1.elasticbeanstalk.com\",\n      \"us-east-2.elasticbeanstalk.com\",\n      \"us-gov-west-1.elasticbeanstalk.com\",\n      \"us-west-1.elasticbeanstalk.com\",\n      \"us-west-2.elasticbeanstalk.com\",\n      \"*.elb.amazonaws.com\",\n      \"*.elb.amazonaws.com.cn\",\n      \"awsglobalaccelerator.com\",\n      \"s3.amazonaws.com\",\n      \"s3-ap-northeast-1.amazonaws.com\",\n      \"s3-ap-northeast-2.amazonaws.com\",\n      \"s3-ap-south-1.amazonaws.com\",\n      \"s3-ap-southeast-1.amazonaws.com\",\n      \"s3-ap-southeast-2.amazonaws.com\",\n      \"s3-ca-central-1.amazonaws.com\",\n      \"s3-eu-central-1.amazonaws.com\",\n      \"s3-eu-west-1.amazonaws.com\",\n      \"s3-eu-west-2.amazonaws.com\",\n      \"s3-eu-west-3.amazonaws.com\",\n      \"s3-external-1.amazonaws.com\",\n      \"s3-fips-us-gov-west-1.amazonaws.com\",\n      \"s3-sa-east-1.amazonaws.com\",\n      \"s3-us-gov-west-1.amazonaws.com\",\n      \"s3-us-east-2.amazonaws.com\",\n      \"s3-us-west-1.amazonaws.com\",\n      \"s3-us-west-2.amazonaws.com\",\n      \"s3.ap-northeast-2.amazonaws.com\",\n      \"s3.ap-south-1.amazonaws.com\",\n      \"s3.cn-north-1.amazonaws.com.cn\",\n      \"s3.ca-central-1.amazonaws.com\",\n      \"s3.eu-central-1.amazonaws.com\",\n      \"s3.eu-west-2.amazonaws.com\",\n      \"s3.eu-west-3.amazonaws.com\",\n      \"s3.us-east-2.amazonaws.com\",\n      \"s3.dualstack.ap-northeast-1.amazonaws.com\",\n      \"s3.dualstack.ap-northeast-2.amazonaws.com\",\n      \"s3.dualstack.ap-south-1.amazonaws.com\",\n      \"s3.dualstack.ap-southeast-1.amazonaws.com\",\n      \"s3.dualstack.ap-southeast-2.amazonaws.com\",\n      \"s3.dualstack.ca-central-1.amazonaws.com\",\n      \"s3.dualstack.eu-central-1.amazonaws.com\",\n      \"s3.dualstack.eu-west-1.amazonaws.com\",\n      \"s3.dualstack.eu-west-2.amazonaws.com\",\n      \"s3.dualstack.eu-west-3.amazonaws.com\",\n      \"s3.dualstack.sa-east-1.amazonaws.com\",\n      \"s3.dualstack.us-east-1.amazonaws.com\",\n      \"s3.dualstack.us-east-2.amazonaws.com\",\n      \"s3-website-us-east-1.amazonaws.com\",\n      \"s3-website-us-west-1.amazonaws.com\",\n      \"s3-website-us-west-2.amazonaws.com\",\n      \"s3-website-ap-northeast-1.amazonaws.com\",\n      \"s3-website-ap-southeast-1.amazonaws.com\",\n      \"s3-website-ap-southeast-2.amazonaws.com\",\n      \"s3-website-eu-west-1.amazonaws.com\",\n      \"s3-website-sa-east-1.amazonaws.com\",\n      \"s3-website.ap-northeast-2.amazonaws.com\",\n      \"s3-website.ap-south-1.amazonaws.com\",\n      \"s3-website.ca-central-1.amazonaws.com\",\n      \"s3-website.eu-central-1.amazonaws.com\",\n      \"s3-website.eu-west-2.amazonaws.com\",\n      \"s3-website.eu-west-3.amazonaws.com\",\n      \"s3-website.us-east-2.amazonaws.com\",\n      \"t3l3p0rt.net\",\n      \"tele.amune.org\",\n      \"apigee.io\",\n      \"siiites.com\",\n      \"appspacehosted.com\",\n      \"appspaceusercontent.com\",\n      \"appudo.net\",\n      \"on-aptible.com\",\n      \"user.aseinet.ne.jp\",\n      \"gv.vc\",\n      \"d.gv.vc\",\n      \"user.party.eus\",\n      \"pimienta.org\",\n      \"poivron.org\",\n      \"potager.org\",\n      \"sweetpepper.org\",\n      \"myasustor.com\",\n      \"cdn.prod.atlassian-dev.net\",\n      \"translated.page\",\n      \"myfritz.net\",\n      \"onavstack.net\",\n      \"*.awdev.ca\",\n      \"*.advisor.ws\",\n      \"ecommerce-shop.pl\",\n      \"b-data.io\",\n      \"backplaneapp.io\",\n      \"balena-devices.com\",\n      \"rs.ba\",\n      \"*.banzai.cloud\",\n      \"app.banzaicloud.io\",\n      \"*.backyards.banzaicloud.io\",\n      \"base.ec\",\n      \"official.ec\",\n      \"buyshop.jp\",\n      \"fashionstore.jp\",\n      \"handcrafted.jp\",\n      \"kawaiishop.jp\",\n      \"supersale.jp\",\n      \"theshop.jp\",\n      \"shopselect.net\",\n      \"base.shop\",\n      \"*.beget.app\",\n      \"betainabox.com\",\n      \"bnr.la\",\n      \"bitbucket.io\",\n      \"blackbaudcdn.net\",\n      \"of.je\",\n      \"bluebite.io\",\n      \"boomla.net\",\n      \"boutir.com\",\n      \"boxfuse.io\",\n      \"square7.ch\",\n      \"bplaced.com\",\n      \"bplaced.de\",\n      \"square7.de\",\n      \"bplaced.net\",\n      \"square7.net\",\n      \"shop.brendly.rs\",\n      \"browsersafetymark.io\",\n      \"uk0.bigv.io\",\n      \"dh.bytemark.co.uk\",\n      \"vm.bytemark.co.uk\",\n      \"cafjs.com\",\n      \"mycd.eu\",\n      \"drr.ac\",\n      \"uwu.ai\",\n      \"carrd.co\",\n      \"crd.co\",\n      \"ju.mp\",\n      \"ae.org\",\n      \"br.com\",\n      \"cn.com\",\n      \"com.de\",\n      \"com.se\",\n      \"de.com\",\n      \"eu.com\",\n      \"gb.net\",\n      \"hu.net\",\n      \"jp.net\",\n      \"jpn.com\",\n      \"mex.com\",\n      \"ru.com\",\n      \"sa.com\",\n      \"se.net\",\n      \"uk.com\",\n      \"uk.net\",\n      \"us.com\",\n      \"za.bz\",\n      \"za.com\",\n      \"ar.com\",\n      \"hu.com\",\n      \"kr.com\",\n      \"no.com\",\n      \"qc.com\",\n      \"uy.com\",\n      \"africa.com\",\n      \"gr.com\",\n      \"in.net\",\n      \"web.in\",\n      \"us.org\",\n      \"co.com\",\n      \"aus.basketball\",\n      \"nz.basketball\",\n      \"radio.am\",\n      \"radio.fm\",\n      \"c.la\",\n      \"certmgr.org\",\n      \"cx.ua\",\n      \"discourse.group\",\n      \"discourse.team\",\n      \"cleverapps.io\",\n      \"clerk.app\",\n      \"clerkstage.app\",\n      \"*.lcl.dev\",\n      \"*.lclstage.dev\",\n      \"*.stg.dev\",\n      \"*.stgstage.dev\",\n      \"clickrising.net\",\n      \"c66.me\",\n      \"cloud66.ws\",\n      \"cloud66.zone\",\n      \"jdevcloud.com\",\n      \"wpdevcloud.com\",\n      \"cloudaccess.host\",\n      \"freesite.host\",\n      \"cloudaccess.net\",\n      \"cloudcontrolled.com\",\n      \"cloudcontrolapp.com\",\n      \"*.cloudera.site\",\n      \"pages.dev\",\n      \"trycloudflare.com\",\n      \"workers.dev\",\n      \"wnext.app\",\n      \"co.ca\",\n      \"*.otap.co\",\n      \"co.cz\",\n      \"c.cdn77.org\",\n      \"cdn77-ssl.net\",\n      \"r.cdn77.net\",\n      \"rsc.cdn77.org\",\n      \"ssl.origin.cdn77-secure.org\",\n      \"cloudns.asia\",\n      \"cloudns.biz\",\n      \"cloudns.club\",\n      \"cloudns.cc\",\n      \"cloudns.eu\",\n      \"cloudns.in\",\n      \"cloudns.info\",\n      \"cloudns.org\",\n      \"cloudns.pro\",\n      \"cloudns.pw\",\n      \"cloudns.us\",\n      \"cnpy.gdn\",\n      \"codeberg.page\",\n      \"co.nl\",\n      \"co.no\",\n      \"webhosting.be\",\n      \"hosting-cluster.nl\",\n      \"ac.ru\",\n      \"edu.ru\",\n      \"gov.ru\",\n      \"int.ru\",\n      \"mil.ru\",\n      \"test.ru\",\n      \"dyn.cosidns.de\",\n      \"dynamisches-dns.de\",\n      \"dnsupdater.de\",\n      \"internet-dns.de\",\n      \"l-o-g-i-n.de\",\n      \"dynamic-dns.info\",\n      \"feste-ip.net\",\n      \"knx-server.net\",\n      \"static-access.net\",\n      \"realm.cz\",\n      \"*.cryptonomic.net\",\n      \"cupcake.is\",\n      \"curv.dev\",\n      \"*.customer-oci.com\",\n      \"*.oci.customer-oci.com\",\n      \"*.ocp.customer-oci.com\",\n      \"*.ocs.customer-oci.com\",\n      \"cyon.link\",\n      \"cyon.site\",\n      \"fnwk.site\",\n      \"folionetwork.site\",\n      \"platform0.app\",\n      \"daplie.me\",\n      \"localhost.daplie.me\",\n      \"dattolocal.com\",\n      \"dattorelay.com\",\n      \"dattoweb.com\",\n      \"mydatto.com\",\n      \"dattolocal.net\",\n      \"mydatto.net\",\n      \"biz.dk\",\n      \"co.dk\",\n      \"firm.dk\",\n      \"reg.dk\",\n      \"store.dk\",\n      \"dyndns.dappnode.io\",\n      \"*.dapps.earth\",\n      \"*.bzz.dapps.earth\",\n      \"builtwithdark.com\",\n      \"demo.datadetect.com\",\n      \"instance.datadetect.com\",\n      \"edgestack.me\",\n      \"ddns5.com\",\n      \"debian.net\",\n      \"deno.dev\",\n      \"deno-staging.dev\",\n      \"dedyn.io\",\n      \"deta.app\",\n      \"deta.dev\",\n      \"*.rss.my.id\",\n      \"*.diher.solutions\",\n      \"discordsays.com\",\n      \"discordsez.com\",\n      \"jozi.biz\",\n      \"dnshome.de\",\n      \"online.th\",\n      \"shop.th\",\n      \"drayddns.com\",\n      \"shoparena.pl\",\n      \"dreamhosters.com\",\n      \"mydrobo.com\",\n      \"drud.io\",\n      \"drud.us\",\n      \"duckdns.org\",\n      \"bip.sh\",\n      \"bitbridge.net\",\n      \"dy.fi\",\n      \"tunk.org\",\n      \"dyndns-at-home.com\",\n      \"dyndns-at-work.com\",\n      \"dyndns-blog.com\",\n      \"dyndns-free.com\",\n      \"dyndns-home.com\",\n      \"dyndns-ip.com\",\n      \"dyndns-mail.com\",\n      \"dyndns-office.com\",\n      \"dyndns-pics.com\",\n      \"dyndns-remote.com\",\n      \"dyndns-server.com\",\n      \"dyndns-web.com\",\n      \"dyndns-wiki.com\",\n      \"dyndns-work.com\",\n      \"dyndns.biz\",\n      \"dyndns.info\",\n      \"dyndns.org\",\n      \"dyndns.tv\",\n      \"at-band-camp.net\",\n      \"ath.cx\",\n      \"barrel-of-knowledge.info\",\n      \"barrell-of-knowledge.info\",\n      \"better-than.tv\",\n      \"blogdns.com\",\n      \"blogdns.net\",\n      \"blogdns.org\",\n      \"blogsite.org\",\n      \"boldlygoingnowhere.org\",\n      \"broke-it.net\",\n      \"buyshouses.net\",\n      \"cechire.com\",\n      \"dnsalias.com\",\n      \"dnsalias.net\",\n      \"dnsalias.org\",\n      \"dnsdojo.com\",\n      \"dnsdojo.net\",\n      \"dnsdojo.org\",\n      \"does-it.net\",\n      \"doesntexist.com\",\n      \"doesntexist.org\",\n      \"dontexist.com\",\n      \"dontexist.net\",\n      \"dontexist.org\",\n      \"doomdns.com\",\n      \"doomdns.org\",\n      \"dvrdns.org\",\n      \"dyn-o-saur.com\",\n      \"dynalias.com\",\n      \"dynalias.net\",\n      \"dynalias.org\",\n      \"dynathome.net\",\n      \"dyndns.ws\",\n      \"endofinternet.net\",\n      \"endofinternet.org\",\n      \"endoftheinternet.org\",\n      \"est-a-la-maison.com\",\n      \"est-a-la-masion.com\",\n      \"est-le-patron.com\",\n      \"est-mon-blogueur.com\",\n      \"for-better.biz\",\n      \"for-more.biz\",\n      \"for-our.info\",\n      \"for-some.biz\",\n      \"for-the.biz\",\n      \"forgot.her.name\",\n      \"forgot.his.name\",\n      \"from-ak.com\",\n      \"from-al.com\",\n      \"from-ar.com\",\n      \"from-az.net\",\n      \"from-ca.com\",\n      \"from-co.net\",\n      \"from-ct.com\",\n      \"from-dc.com\",\n      \"from-de.com\",\n      \"from-fl.com\",\n      \"from-ga.com\",\n      \"from-hi.com\",\n      \"from-ia.com\",\n      \"from-id.com\",\n      \"from-il.com\",\n      \"from-in.com\",\n      \"from-ks.com\",\n      \"from-ky.com\",\n      \"from-la.net\",\n      \"from-ma.com\",\n      \"from-md.com\",\n      \"from-me.org\",\n      \"from-mi.com\",\n      \"from-mn.com\",\n      \"from-mo.com\",\n      \"from-ms.com\",\n      \"from-mt.com\",\n      \"from-nc.com\",\n      \"from-nd.com\",\n      \"from-ne.com\",\n      \"from-nh.com\",\n      \"from-nj.com\",\n      \"from-nm.com\",\n      \"from-nv.com\",\n      \"from-ny.net\",\n      \"from-oh.com\",\n      \"from-ok.com\",\n      \"from-or.com\",\n      \"from-pa.com\",\n      \"from-pr.com\",\n      \"from-ri.com\",\n      \"from-sc.com\",\n      \"from-sd.com\",\n      \"from-tn.com\",\n      \"from-tx.com\",\n      \"from-ut.com\",\n      \"from-va.com\",\n      \"from-vt.com\",\n      \"from-wa.com\",\n      \"from-wi.com\",\n      \"from-wv.com\",\n      \"from-wy.com\",\n      \"ftpaccess.cc\",\n      \"fuettertdasnetz.de\",\n      \"game-host.org\",\n      \"game-server.cc\",\n      \"getmyip.com\",\n      \"gets-it.net\",\n      \"go.dyndns.org\",\n      \"gotdns.com\",\n      \"gotdns.org\",\n      \"groks-the.info\",\n      \"groks-this.info\",\n      \"ham-radio-op.net\",\n      \"here-for-more.info\",\n      \"hobby-site.com\",\n      \"hobby-site.org\",\n      \"home.dyndns.org\",\n      \"homedns.org\",\n      \"homeftp.net\",\n      \"homeftp.org\",\n      \"homeip.net\",\n      \"homelinux.com\",\n      \"homelinux.net\",\n      \"homelinux.org\",\n      \"homeunix.com\",\n      \"homeunix.net\",\n      \"homeunix.org\",\n      \"iamallama.com\",\n      \"in-the-band.net\",\n      \"is-a-anarchist.com\",\n      \"is-a-blogger.com\",\n      \"is-a-bookkeeper.com\",\n      \"is-a-bruinsfan.org\",\n      \"is-a-bulls-fan.com\",\n      \"is-a-candidate.org\",\n      \"is-a-caterer.com\",\n      \"is-a-celticsfan.org\",\n      \"is-a-chef.com\",\n      \"is-a-chef.net\",\n      \"is-a-chef.org\",\n      \"is-a-conservative.com\",\n      \"is-a-cpa.com\",\n      \"is-a-cubicle-slave.com\",\n      \"is-a-democrat.com\",\n      \"is-a-designer.com\",\n      \"is-a-doctor.com\",\n      \"is-a-financialadvisor.com\",\n      \"is-a-geek.com\",\n      \"is-a-geek.net\",\n      \"is-a-geek.org\",\n      \"is-a-green.com\",\n      \"is-a-guru.com\",\n      \"is-a-hard-worker.com\",\n      \"is-a-hunter.com\",\n      \"is-a-knight.org\",\n      \"is-a-landscaper.com\",\n      \"is-a-lawyer.com\",\n      \"is-a-liberal.com\",\n      \"is-a-libertarian.com\",\n      \"is-a-linux-user.org\",\n      \"is-a-llama.com\",\n      \"is-a-musician.com\",\n      \"is-a-nascarfan.com\",\n      \"is-a-nurse.com\",\n      \"is-a-painter.com\",\n      \"is-a-patsfan.org\",\n      \"is-a-personaltrainer.com\",\n      \"is-a-photographer.com\",\n      \"is-a-player.com\",\n      \"is-a-republican.com\",\n      \"is-a-rockstar.com\",\n      \"is-a-socialist.com\",\n      \"is-a-soxfan.org\",\n      \"is-a-student.com\",\n      \"is-a-teacher.com\",\n      \"is-a-techie.com\",\n      \"is-a-therapist.com\",\n      \"is-an-accountant.com\",\n      \"is-an-actor.com\",\n      \"is-an-actress.com\",\n      \"is-an-anarchist.com\",\n      \"is-an-artist.com\",\n      \"is-an-engineer.com\",\n      \"is-an-entertainer.com\",\n      \"is-by.us\",\n      \"is-certified.com\",\n      \"is-found.org\",\n      \"is-gone.com\",\n      \"is-into-anime.com\",\n      \"is-into-cars.com\",\n      \"is-into-cartoons.com\",\n      \"is-into-games.com\",\n      \"is-leet.com\",\n      \"is-lost.org\",\n      \"is-not-certified.com\",\n      \"is-saved.org\",\n      \"is-slick.com\",\n      \"is-uberleet.com\",\n      \"is-very-bad.org\",\n      \"is-very-evil.org\",\n      \"is-very-good.org\",\n      \"is-very-nice.org\",\n      \"is-very-sweet.org\",\n      \"is-with-theband.com\",\n      \"isa-geek.com\",\n      \"isa-geek.net\",\n      \"isa-geek.org\",\n      \"isa-hockeynut.com\",\n      \"issmarterthanyou.com\",\n      \"isteingeek.de\",\n      \"istmein.de\",\n      \"kicks-ass.net\",\n      \"kicks-ass.org\",\n      \"knowsitall.info\",\n      \"land-4-sale.us\",\n      \"lebtimnetz.de\",\n      \"leitungsen.de\",\n      \"likes-pie.com\",\n      \"likescandy.com\",\n      \"merseine.nu\",\n      \"mine.nu\",\n      \"misconfused.org\",\n      \"mypets.ws\",\n      \"myphotos.cc\",\n      \"neat-url.com\",\n      \"office-on-the.net\",\n      \"on-the-web.tv\",\n      \"podzone.net\",\n      \"podzone.org\",\n      \"readmyblog.org\",\n      \"saves-the-whales.com\",\n      \"scrapper-site.net\",\n      \"scrapping.cc\",\n      \"selfip.biz\",\n      \"selfip.com\",\n      \"selfip.info\",\n      \"selfip.net\",\n      \"selfip.org\",\n      \"sells-for-less.com\",\n      \"sells-for-u.com\",\n      \"sells-it.net\",\n      \"sellsyourhome.org\",\n      \"servebbs.com\",\n      \"servebbs.net\",\n      \"servebbs.org\",\n      \"serveftp.net\",\n      \"serveftp.org\",\n      \"servegame.org\",\n      \"shacknet.nu\",\n      \"simple-url.com\",\n      \"space-to-rent.com\",\n      \"stuff-4-sale.org\",\n      \"stuff-4-sale.us\",\n      \"teaches-yoga.com\",\n      \"thruhere.net\",\n      \"traeumtgerade.de\",\n      \"webhop.biz\",\n      \"webhop.info\",\n      \"webhop.net\",\n      \"webhop.org\",\n      \"worse-than.tv\",\n      \"writesthisblog.com\",\n      \"ddnss.de\",\n      \"dyn.ddnss.de\",\n      \"dyndns.ddnss.de\",\n      \"dyndns1.de\",\n      \"dyn-ip24.de\",\n      \"home-webserver.de\",\n      \"dyn.home-webserver.de\",\n      \"myhome-server.de\",\n      \"ddnss.org\",\n      \"definima.net\",\n      \"definima.io\",\n      \"ondigitalocean.app\",\n      \"*.digitaloceanspaces.com\",\n      \"bci.dnstrace.pro\",\n      \"ddnsfree.com\",\n      \"ddnsgeek.com\",\n      \"giize.com\",\n      \"gleeze.com\",\n      \"kozow.com\",\n      \"loseyourip.com\",\n      \"ooguy.com\",\n      \"theworkpc.com\",\n      \"casacam.net\",\n      \"dynu.net\",\n      \"accesscam.org\",\n      \"camdvr.org\",\n      \"freeddns.org\",\n      \"mywire.org\",\n      \"webredirect.org\",\n      \"myddns.rocks\",\n      \"blogsite.xyz\",\n      \"dynv6.net\",\n      \"e4.cz\",\n      \"eero.online\",\n      \"eero-stage.online\",\n      \"elementor.cloud\",\n      \"elementor.cool\",\n      \"en-root.fr\",\n      \"mytuleap.com\",\n      \"tuleap-partners.com\",\n      \"encr.app\",\n      \"encoreapi.com\",\n      \"onred.one\",\n      \"staging.onred.one\",\n      \"eu.encoway.cloud\",\n      \"eu.org\",\n      \"al.eu.org\",\n      \"asso.eu.org\",\n      \"at.eu.org\",\n      \"au.eu.org\",\n      \"be.eu.org\",\n      \"bg.eu.org\",\n      \"ca.eu.org\",\n      \"cd.eu.org\",\n      \"ch.eu.org\",\n      \"cn.eu.org\",\n      \"cy.eu.org\",\n      \"cz.eu.org\",\n      \"de.eu.org\",\n      \"dk.eu.org\",\n      \"edu.eu.org\",\n      \"ee.eu.org\",\n      \"es.eu.org\",\n      \"fi.eu.org\",\n      \"fr.eu.org\",\n      \"gr.eu.org\",\n      \"hr.eu.org\",\n      \"hu.eu.org\",\n      \"ie.eu.org\",\n      \"il.eu.org\",\n      \"in.eu.org\",\n      \"int.eu.org\",\n      \"is.eu.org\",\n      \"it.eu.org\",\n      \"jp.eu.org\",\n      \"kr.eu.org\",\n      \"lt.eu.org\",\n      \"lu.eu.org\",\n      \"lv.eu.org\",\n      \"mc.eu.org\",\n      \"me.eu.org\",\n      \"mk.eu.org\",\n      \"mt.eu.org\",\n      \"my.eu.org\",\n      \"net.eu.org\",\n      \"ng.eu.org\",\n      \"nl.eu.org\",\n      \"no.eu.org\",\n      \"nz.eu.org\",\n      \"paris.eu.org\",\n      \"pl.eu.org\",\n      \"pt.eu.org\",\n      \"q-a.eu.org\",\n      \"ro.eu.org\",\n      \"ru.eu.org\",\n      \"se.eu.org\",\n      \"si.eu.org\",\n      \"sk.eu.org\",\n      \"tr.eu.org\",\n      \"uk.eu.org\",\n      \"us.eu.org\",\n      \"eurodir.ru\",\n      \"eu-1.evennode.com\",\n      \"eu-2.evennode.com\",\n      \"eu-3.evennode.com\",\n      \"eu-4.evennode.com\",\n      \"us-1.evennode.com\",\n      \"us-2.evennode.com\",\n      \"us-3.evennode.com\",\n      \"us-4.evennode.com\",\n      \"twmail.cc\",\n      \"twmail.net\",\n      \"twmail.org\",\n      \"mymailer.com.tw\",\n      \"url.tw\",\n      \"onfabrica.com\",\n      \"apps.fbsbx.com\",\n      \"ru.net\",\n      \"adygeya.ru\",\n      \"bashkiria.ru\",\n      \"bir.ru\",\n      \"cbg.ru\",\n      \"com.ru\",\n      \"dagestan.ru\",\n      \"grozny.ru\",\n      \"kalmykia.ru\",\n      \"kustanai.ru\",\n      \"marine.ru\",\n      \"mordovia.ru\",\n      \"msk.ru\",\n      \"mytis.ru\",\n      \"nalchik.ru\",\n      \"nov.ru\",\n      \"pyatigorsk.ru\",\n      \"spb.ru\",\n      \"vladikavkaz.ru\",\n      \"vladimir.ru\",\n      \"abkhazia.su\",\n      \"adygeya.su\",\n      \"aktyubinsk.su\",\n      \"arkhangelsk.su\",\n      \"armenia.su\",\n      \"ashgabad.su\",\n      \"azerbaijan.su\",\n      \"balashov.su\",\n      \"bashkiria.su\",\n      \"bryansk.su\",\n      \"bukhara.su\",\n      \"chimkent.su\",\n      \"dagestan.su\",\n      \"east-kazakhstan.su\",\n      \"exnet.su\",\n      \"georgia.su\",\n      \"grozny.su\",\n      \"ivanovo.su\",\n      \"jambyl.su\",\n      \"kalmykia.su\",\n      \"kaluga.su\",\n      \"karacol.su\",\n      \"karaganda.su\",\n      \"karelia.su\",\n      \"khakassia.su\",\n      \"krasnodar.su\",\n      \"kurgan.su\",\n      \"kustanai.su\",\n      \"lenug.su\",\n      \"mangyshlak.su\",\n      \"mordovia.su\",\n      \"msk.su\",\n      \"murmansk.su\",\n      \"nalchik.su\",\n      \"navoi.su\",\n      \"north-kazakhstan.su\",\n      \"nov.su\",\n      \"obninsk.su\",\n      \"penza.su\",\n      \"pokrovsk.su\",\n      \"sochi.su\",\n      \"spb.su\",\n      \"tashkent.su\",\n      \"termez.su\",\n      \"togliatti.su\",\n      \"troitsk.su\",\n      \"tselinograd.su\",\n      \"tula.su\",\n      \"tuva.su\",\n      \"vladikavkaz.su\",\n      \"vladimir.su\",\n      \"vologda.su\",\n      \"channelsdvr.net\",\n      \"u.channelsdvr.net\",\n      \"edgecompute.app\",\n      \"fastly-terrarium.com\",\n      \"fastlylb.net\",\n      \"map.fastlylb.net\",\n      \"freetls.fastly.net\",\n      \"map.fastly.net\",\n      \"a.prod.fastly.net\",\n      \"global.prod.fastly.net\",\n      \"a.ssl.fastly.net\",\n      \"b.ssl.fastly.net\",\n      \"global.ssl.fastly.net\",\n      \"fastvps-server.com\",\n      \"fastvps.host\",\n      \"myfast.host\",\n      \"fastvps.site\",\n      \"myfast.space\",\n      \"fedorainfracloud.org\",\n      \"fedorapeople.org\",\n      \"cloud.fedoraproject.org\",\n      \"app.os.fedoraproject.org\",\n      \"app.os.stg.fedoraproject.org\",\n      \"conn.uk\",\n      \"copro.uk\",\n      \"hosp.uk\",\n      \"mydobiss.com\",\n      \"fh-muenster.io\",\n      \"filegear.me\",\n      \"filegear-au.me\",\n      \"filegear-de.me\",\n      \"filegear-gb.me\",\n      \"filegear-ie.me\",\n      \"filegear-jp.me\",\n      \"filegear-sg.me\",\n      \"firebaseapp.com\",\n      \"fireweb.app\",\n      \"flap.id\",\n      \"onflashdrive.app\",\n      \"fldrv.com\",\n      \"fly.dev\",\n      \"edgeapp.net\",\n      \"shw.io\",\n      \"flynnhosting.net\",\n      \"forgeblocks.com\",\n      \"id.forgerock.io\",\n      \"framer.app\",\n      \"framercanvas.com\",\n      \"*.frusky.de\",\n      \"ravpage.co.il\",\n      \"0e.vc\",\n      \"freebox-os.com\",\n      \"freeboxos.com\",\n      \"fbx-os.fr\",\n      \"fbxos.fr\",\n      \"freebox-os.fr\",\n      \"freeboxos.fr\",\n      \"freedesktop.org\",\n      \"freemyip.com\",\n      \"wien.funkfeuer.at\",\n      \"*.futurecms.at\",\n      \"*.ex.futurecms.at\",\n      \"*.in.futurecms.at\",\n      \"futurehosting.at\",\n      \"futuremailing.at\",\n      \"*.ex.ortsinfo.at\",\n      \"*.kunden.ortsinfo.at\",\n      \"*.statics.cloud\",\n      \"independent-commission.uk\",\n      \"independent-inquest.uk\",\n      \"independent-inquiry.uk\",\n      \"independent-panel.uk\",\n      \"independent-review.uk\",\n      \"public-inquiry.uk\",\n      \"royal-commission.uk\",\n      \"campaign.gov.uk\",\n      \"service.gov.uk\",\n      \"api.gov.uk\",\n      \"gehirn.ne.jp\",\n      \"usercontent.jp\",\n      \"gentapps.com\",\n      \"gentlentapis.com\",\n      \"lab.ms\",\n      \"cdn-edges.net\",\n      \"ghost.io\",\n      \"gsj.bz\",\n      \"githubusercontent.com\",\n      \"githubpreview.dev\",\n      \"github.io\",\n      \"gitlab.io\",\n      \"gitapp.si\",\n      \"gitpage.si\",\n      \"glitch.me\",\n      \"nog.community\",\n      \"co.ro\",\n      \"shop.ro\",\n      \"lolipop.io\",\n      \"angry.jp\",\n      \"babyblue.jp\",\n      \"babymilk.jp\",\n      \"backdrop.jp\",\n      \"bambina.jp\",\n      \"bitter.jp\",\n      \"blush.jp\",\n      \"boo.jp\",\n      \"boy.jp\",\n      \"boyfriend.jp\",\n      \"but.jp\",\n      \"candypop.jp\",\n      \"capoo.jp\",\n      \"catfood.jp\",\n      \"cheap.jp\",\n      \"chicappa.jp\",\n      \"chillout.jp\",\n      \"chips.jp\",\n      \"chowder.jp\",\n      \"chu.jp\",\n      \"ciao.jp\",\n      \"cocotte.jp\",\n      \"coolblog.jp\",\n      \"cranky.jp\",\n      \"cutegirl.jp\",\n      \"daa.jp\",\n      \"deca.jp\",\n      \"deci.jp\",\n      \"digick.jp\",\n      \"egoism.jp\",\n      \"fakefur.jp\",\n      \"fem.jp\",\n      \"flier.jp\",\n      \"floppy.jp\",\n      \"fool.jp\",\n      \"frenchkiss.jp\",\n      \"girlfriend.jp\",\n      \"girly.jp\",\n      \"gloomy.jp\",\n      \"gonna.jp\",\n      \"greater.jp\",\n      \"hacca.jp\",\n      \"heavy.jp\",\n      \"her.jp\",\n      \"hiho.jp\",\n      \"hippy.jp\",\n      \"holy.jp\",\n      \"hungry.jp\",\n      \"icurus.jp\",\n      \"itigo.jp\",\n      \"jellybean.jp\",\n      \"kikirara.jp\",\n      \"kill.jp\",\n      \"kilo.jp\",\n      \"kuron.jp\",\n      \"littlestar.jp\",\n      \"lolipopmc.jp\",\n      \"lolitapunk.jp\",\n      \"lomo.jp\",\n      \"lovepop.jp\",\n      \"lovesick.jp\",\n      \"main.jp\",\n      \"mods.jp\",\n      \"mond.jp\",\n      \"mongolian.jp\",\n      \"moo.jp\",\n      \"namaste.jp\",\n      \"nikita.jp\",\n      \"nobushi.jp\",\n      \"noor.jp\",\n      \"oops.jp\",\n      \"parallel.jp\",\n      \"parasite.jp\",\n      \"pecori.jp\",\n      \"peewee.jp\",\n      \"penne.jp\",\n      \"pepper.jp\",\n      \"perma.jp\",\n      \"pigboat.jp\",\n      \"pinoko.jp\",\n      \"punyu.jp\",\n      \"pupu.jp\",\n      \"pussycat.jp\",\n      \"pya.jp\",\n      \"raindrop.jp\",\n      \"readymade.jp\",\n      \"sadist.jp\",\n      \"schoolbus.jp\",\n      \"secret.jp\",\n      \"staba.jp\",\n      \"stripper.jp\",\n      \"sub.jp\",\n      \"sunnyday.jp\",\n      \"thick.jp\",\n      \"tonkotsu.jp\",\n      \"under.jp\",\n      \"upper.jp\",\n      \"velvet.jp\",\n      \"verse.jp\",\n      \"versus.jp\",\n      \"vivian.jp\",\n      \"watson.jp\",\n      \"weblike.jp\",\n      \"whitesnow.jp\",\n      \"zombie.jp\",\n      \"heteml.net\",\n      \"cloudapps.digital\",\n      \"london.cloudapps.digital\",\n      \"pymnt.uk\",\n      \"homeoffice.gov.uk\",\n      \"ro.im\",\n      \"goip.de\",\n      \"run.app\",\n      \"a.run.app\",\n      \"web.app\",\n      \"*.0emm.com\",\n      \"appspot.com\",\n      \"*.r.appspot.com\",\n      \"codespot.com\",\n      \"googleapis.com\",\n      \"googlecode.com\",\n      \"pagespeedmobilizer.com\",\n      \"publishproxy.com\",\n      \"withgoogle.com\",\n      \"withyoutube.com\",\n      \"*.gateway.dev\",\n      \"cloud.goog\",\n      \"translate.goog\",\n      \"*.usercontent.goog\",\n      \"cloudfunctions.net\",\n      \"blogspot.ae\",\n      \"blogspot.al\",\n      \"blogspot.am\",\n      \"blogspot.ba\",\n      \"blogspot.be\",\n      \"blogspot.bg\",\n      \"blogspot.bj\",\n      \"blogspot.ca\",\n      \"blogspot.cf\",\n      \"blogspot.ch\",\n      \"blogspot.cl\",\n      \"blogspot.co.at\",\n      \"blogspot.co.id\",\n      \"blogspot.co.il\",\n      \"blogspot.co.ke\",\n      \"blogspot.co.nz\",\n      \"blogspot.co.uk\",\n      \"blogspot.co.za\",\n      \"blogspot.com\",\n      \"blogspot.com.ar\",\n      \"blogspot.com.au\",\n      \"blogspot.com.br\",\n      \"blogspot.com.by\",\n      \"blogspot.com.co\",\n      \"blogspot.com.cy\",\n      \"blogspot.com.ee\",\n      \"blogspot.com.eg\",\n      \"blogspot.com.es\",\n      \"blogspot.com.mt\",\n      \"blogspot.com.ng\",\n      \"blogspot.com.tr\",\n      \"blogspot.com.uy\",\n      \"blogspot.cv\",\n      \"blogspot.cz\",\n      \"blogspot.de\",\n      \"blogspot.dk\",\n      \"blogspot.fi\",\n      \"blogspot.fr\",\n      \"blogspot.gr\",\n      \"blogspot.hk\",\n      \"blogspot.hr\",\n      \"blogspot.hu\",\n      \"blogspot.ie\",\n      \"blogspot.in\",\n      \"blogspot.is\",\n      \"blogspot.it\",\n      \"blogspot.jp\",\n      \"blogspot.kr\",\n      \"blogspot.li\",\n      \"blogspot.lt\",\n      \"blogspot.lu\",\n      \"blogspot.md\",\n      \"blogspot.mk\",\n      \"blogspot.mr\",\n      \"blogspot.mx\",\n      \"blogspot.my\",\n      \"blogspot.nl\",\n      \"blogspot.no\",\n      \"blogspot.pe\",\n      \"blogspot.pt\",\n      \"blogspot.qa\",\n      \"blogspot.re\",\n      \"blogspot.ro\",\n      \"blogspot.rs\",\n      \"blogspot.ru\",\n      \"blogspot.se\",\n      \"blogspot.sg\",\n      \"blogspot.si\",\n      \"blogspot.sk\",\n      \"blogspot.sn\",\n      \"blogspot.td\",\n      \"blogspot.tw\",\n      \"blogspot.ug\",\n      \"blogspot.vn\",\n      \"goupile.fr\",\n      \"gov.nl\",\n      \"awsmppl.com\",\n      \"g\\xFCnstigbestellen.de\",\n      \"g\\xFCnstigliefern.de\",\n      \"fin.ci\",\n      \"free.hr\",\n      \"caa.li\",\n      \"ua.rs\",\n      \"conf.se\",\n      \"hs.zone\",\n      \"hs.run\",\n      \"hashbang.sh\",\n      \"hasura.app\",\n      \"hasura-app.io\",\n      \"pages.it.hs-heilbronn.de\",\n      \"hepforge.org\",\n      \"herokuapp.com\",\n      \"herokussl.com\",\n      \"ravendb.cloud\",\n      \"myravendb.com\",\n      \"ravendb.community\",\n      \"ravendb.me\",\n      \"development.run\",\n      \"ravendb.run\",\n      \"homesklep.pl\",\n      \"secaas.hk\",\n      \"hoplix.shop\",\n      \"orx.biz\",\n      \"biz.gl\",\n      \"col.ng\",\n      \"firm.ng\",\n      \"gen.ng\",\n      \"ltd.ng\",\n      \"ngo.ng\",\n      \"edu.scot\",\n      \"sch.so\",\n      \"hostyhosting.io\",\n      \"h\\xE4kkinen.fi\",\n      \"*.moonscale.io\",\n      \"moonscale.net\",\n      \"iki.fi\",\n      \"ibxos.it\",\n      \"iliadboxos.it\",\n      \"impertrixcdn.com\",\n      \"impertrix.com\",\n      \"smushcdn.com\",\n      \"wphostedmail.com\",\n      \"wpmucdn.com\",\n      \"tempurl.host\",\n      \"wpmudev.host\",\n      \"dyn-berlin.de\",\n      \"in-berlin.de\",\n      \"in-brb.de\",\n      \"in-butter.de\",\n      \"in-dsl.de\",\n      \"in-dsl.net\",\n      \"in-dsl.org\",\n      \"in-vpn.de\",\n      \"in-vpn.net\",\n      \"in-vpn.org\",\n      \"biz.at\",\n      \"info.at\",\n      \"info.cx\",\n      \"ac.leg.br\",\n      \"al.leg.br\",\n      \"am.leg.br\",\n      \"ap.leg.br\",\n      \"ba.leg.br\",\n      \"ce.leg.br\",\n      \"df.leg.br\",\n      \"es.leg.br\",\n      \"go.leg.br\",\n      \"ma.leg.br\",\n      \"mg.leg.br\",\n      \"ms.leg.br\",\n      \"mt.leg.br\",\n      \"pa.leg.br\",\n      \"pb.leg.br\",\n      \"pe.leg.br\",\n      \"pi.leg.br\",\n      \"pr.leg.br\",\n      \"rj.leg.br\",\n      \"rn.leg.br\",\n      \"ro.leg.br\",\n      \"rr.leg.br\",\n      \"rs.leg.br\",\n      \"sc.leg.br\",\n      \"se.leg.br\",\n      \"sp.leg.br\",\n      \"to.leg.br\",\n      \"pixolino.com\",\n      \"na4u.ru\",\n      \"iopsys.se\",\n      \"ipifony.net\",\n      \"iservschule.de\",\n      \"mein-iserv.de\",\n      \"schulplattform.de\",\n      \"schulserver.de\",\n      \"test-iserv.de\",\n      \"iserv.dev\",\n      \"iobb.net\",\n      \"mel.cloudlets.com.au\",\n      \"cloud.interhostsolutions.be\",\n      \"users.scale.virtualcloud.com.br\",\n      \"mycloud.by\",\n      \"alp1.ae.flow.ch\",\n      \"appengine.flow.ch\",\n      \"es-1.axarnet.cloud\",\n      \"diadem.cloud\",\n      \"vip.jelastic.cloud\",\n      \"jele.cloud\",\n      \"it1.eur.aruba.jenv-aruba.cloud\",\n      \"it1.jenv-aruba.cloud\",\n      \"keliweb.cloud\",\n      \"cs.keliweb.cloud\",\n      \"oxa.cloud\",\n      \"tn.oxa.cloud\",\n      \"uk.oxa.cloud\",\n      \"primetel.cloud\",\n      \"uk.primetel.cloud\",\n      \"ca.reclaim.cloud\",\n      \"uk.reclaim.cloud\",\n      \"us.reclaim.cloud\",\n      \"ch.trendhosting.cloud\",\n      \"de.trendhosting.cloud\",\n      \"jele.club\",\n      \"amscompute.com\",\n      \"clicketcloud.com\",\n      \"dopaas.com\",\n      \"hidora.com\",\n      \"paas.hosted-by-previder.com\",\n      \"rag-cloud.hosteur.com\",\n      \"rag-cloud-ch.hosteur.com\",\n      \"jcloud.ik-server.com\",\n      \"jcloud-ver-jpc.ik-server.com\",\n      \"demo.jelastic.com\",\n      \"kilatiron.com\",\n      \"paas.massivegrid.com\",\n      \"jed.wafaicloud.com\",\n      \"lon.wafaicloud.com\",\n      \"ryd.wafaicloud.com\",\n      \"j.scaleforce.com.cy\",\n      \"jelastic.dogado.eu\",\n      \"fi.cloudplatform.fi\",\n      \"demo.datacenter.fi\",\n      \"paas.datacenter.fi\",\n      \"jele.host\",\n      \"mircloud.host\",\n      \"paas.beebyte.io\",\n      \"sekd1.beebyteapp.io\",\n      \"jele.io\",\n      \"cloud-fr1.unispace.io\",\n      \"jc.neen.it\",\n      \"cloud.jelastic.open.tim.it\",\n      \"jcloud.kz\",\n      \"upaas.kazteleport.kz\",\n      \"cloudjiffy.net\",\n      \"fra1-de.cloudjiffy.net\",\n      \"west1-us.cloudjiffy.net\",\n      \"jls-sto1.elastx.net\",\n      \"jls-sto2.elastx.net\",\n      \"jls-sto3.elastx.net\",\n      \"faststacks.net\",\n      \"fr-1.paas.massivegrid.net\",\n      \"lon-1.paas.massivegrid.net\",\n      \"lon-2.paas.massivegrid.net\",\n      \"ny-1.paas.massivegrid.net\",\n      \"ny-2.paas.massivegrid.net\",\n      \"sg-1.paas.massivegrid.net\",\n      \"jelastic.saveincloud.net\",\n      \"nordeste-idc.saveincloud.net\",\n      \"j.scaleforce.net\",\n      \"jelastic.tsukaeru.net\",\n      \"sdscloud.pl\",\n      \"unicloud.pl\",\n      \"mircloud.ru\",\n      \"jelastic.regruhosting.ru\",\n      \"enscaled.sg\",\n      \"jele.site\",\n      \"jelastic.team\",\n      \"orangecloud.tn\",\n      \"j.layershift.co.uk\",\n      \"phx.enscaled.us\",\n      \"mircloud.us\",\n      \"myjino.ru\",\n      \"*.hosting.myjino.ru\",\n      \"*.landing.myjino.ru\",\n      \"*.spectrum.myjino.ru\",\n      \"*.vps.myjino.ru\",\n      \"jotelulu.cloud\",\n      \"*.triton.zone\",\n      \"*.cns.joyent.com\",\n      \"js.org\",\n      \"kaas.gg\",\n      \"khplay.nl\",\n      \"ktistory.com\",\n      \"kapsi.fi\",\n      \"keymachine.de\",\n      \"kinghost.net\",\n      \"uni5.net\",\n      \"knightpoint.systems\",\n      \"koobin.events\",\n      \"oya.to\",\n      \"kuleuven.cloud\",\n      \"ezproxy.kuleuven.be\",\n      \"co.krd\",\n      \"edu.krd\",\n      \"krellian.net\",\n      \"webthings.io\",\n      \"git-repos.de\",\n      \"lcube-server.de\",\n      \"svn-repos.de\",\n      \"leadpages.co\",\n      \"lpages.co\",\n      \"lpusercontent.com\",\n      \"lelux.site\",\n      \"co.business\",\n      \"co.education\",\n      \"co.events\",\n      \"co.financial\",\n      \"co.network\",\n      \"co.place\",\n      \"co.technology\",\n      \"app.lmpm.com\",\n      \"linkyard.cloud\",\n      \"linkyard-cloud.ch\",\n      \"members.linode.com\",\n      \"*.nodebalancer.linode.com\",\n      \"*.linodeobjects.com\",\n      \"ip.linodeusercontent.com\",\n      \"we.bs\",\n      \"*.user.localcert.dev\",\n      \"localzone.xyz\",\n      \"loginline.app\",\n      \"loginline.dev\",\n      \"loginline.io\",\n      \"loginline.services\",\n      \"loginline.site\",\n      \"servers.run\",\n      \"lohmus.me\",\n      \"krasnik.pl\",\n      \"leczna.pl\",\n      \"lubartow.pl\",\n      \"lublin.pl\",\n      \"poniatowa.pl\",\n      \"swidnik.pl\",\n      \"glug.org.uk\",\n      \"lug.org.uk\",\n      \"lugs.org.uk\",\n      \"barsy.bg\",\n      \"barsy.co.uk\",\n      \"barsyonline.co.uk\",\n      \"barsycenter.com\",\n      \"barsyonline.com\",\n      \"barsy.club\",\n      \"barsy.de\",\n      \"barsy.eu\",\n      \"barsy.in\",\n      \"barsy.info\",\n      \"barsy.io\",\n      \"barsy.me\",\n      \"barsy.menu\",\n      \"barsy.mobi\",\n      \"barsy.net\",\n      \"barsy.online\",\n      \"barsy.org\",\n      \"barsy.pro\",\n      \"barsy.pub\",\n      \"barsy.ro\",\n      \"barsy.shop\",\n      \"barsy.site\",\n      \"barsy.support\",\n      \"barsy.uk\",\n      \"*.magentosite.cloud\",\n      \"mayfirst.info\",\n      \"mayfirst.org\",\n      \"hb.cldmail.ru\",\n      \"cn.vu\",\n      \"mazeplay.com\",\n      \"mcpe.me\",\n      \"mcdir.me\",\n      \"mcdir.ru\",\n      \"mcpre.ru\",\n      \"vps.mcdir.ru\",\n      \"mediatech.by\",\n      \"mediatech.dev\",\n      \"hra.health\",\n      \"miniserver.com\",\n      \"memset.net\",\n      \"messerli.app\",\n      \"*.cloud.metacentrum.cz\",\n      \"custom.metacentrum.cz\",\n      \"flt.cloud.muni.cz\",\n      \"usr.cloud.muni.cz\",\n      \"meteorapp.com\",\n      \"eu.meteorapp.com\",\n      \"co.pl\",\n      \"*.azurecontainer.io\",\n      \"azurewebsites.net\",\n      \"azure-mobile.net\",\n      \"cloudapp.net\",\n      \"azurestaticapps.net\",\n      \"1.azurestaticapps.net\",\n      \"centralus.azurestaticapps.net\",\n      \"eastasia.azurestaticapps.net\",\n      \"eastus2.azurestaticapps.net\",\n      \"westeurope.azurestaticapps.net\",\n      \"westus2.azurestaticapps.net\",\n      \"csx.cc\",\n      \"mintere.site\",\n      \"forte.id\",\n      \"mozilla-iot.org\",\n      \"bmoattachments.org\",\n      \"net.ru\",\n      \"org.ru\",\n      \"pp.ru\",\n      \"hostedpi.com\",\n      \"customer.mythic-beasts.com\",\n      \"caracal.mythic-beasts.com\",\n      \"fentiger.mythic-beasts.com\",\n      \"lynx.mythic-beasts.com\",\n      \"ocelot.mythic-beasts.com\",\n      \"oncilla.mythic-beasts.com\",\n      \"onza.mythic-beasts.com\",\n      \"sphinx.mythic-beasts.com\",\n      \"vs.mythic-beasts.com\",\n      \"x.mythic-beasts.com\",\n      \"yali.mythic-beasts.com\",\n      \"cust.retrosnub.co.uk\",\n      \"ui.nabu.casa\",\n      \"pony.club\",\n      \"of.fashion\",\n      \"in.london\",\n      \"of.london\",\n      \"from.marketing\",\n      \"with.marketing\",\n      \"for.men\",\n      \"repair.men\",\n      \"and.mom\",\n      \"for.mom\",\n      \"for.one\",\n      \"under.one\",\n      \"for.sale\",\n      \"that.win\",\n      \"from.work\",\n      \"to.work\",\n      \"cloud.nospamproxy.com\",\n      \"netlify.app\",\n      \"4u.com\",\n      \"ngrok.io\",\n      \"nh-serv.co.uk\",\n      \"nfshost.com\",\n      \"*.developer.app\",\n      \"noop.app\",\n      \"*.northflank.app\",\n      \"*.build.run\",\n      \"*.code.run\",\n      \"*.database.run\",\n      \"*.migration.run\",\n      \"noticeable.news\",\n      \"dnsking.ch\",\n      \"mypi.co\",\n      \"n4t.co\",\n      \"001www.com\",\n      \"ddnslive.com\",\n      \"myiphost.com\",\n      \"forumz.info\",\n      \"16-b.it\",\n      \"32-b.it\",\n      \"64-b.it\",\n      \"soundcast.me\",\n      \"tcp4.me\",\n      \"dnsup.net\",\n      \"hicam.net\",\n      \"now-dns.net\",\n      \"ownip.net\",\n      \"vpndns.net\",\n      \"dynserv.org\",\n      \"now-dns.org\",\n      \"x443.pw\",\n      \"now-dns.top\",\n      \"ntdll.top\",\n      \"freeddns.us\",\n      \"crafting.xyz\",\n      \"zapto.xyz\",\n      \"nsupdate.info\",\n      \"nerdpol.ovh\",\n      \"blogsyte.com\",\n      \"brasilia.me\",\n      \"cable-modem.org\",\n      \"ciscofreak.com\",\n      \"collegefan.org\",\n      \"couchpotatofries.org\",\n      \"damnserver.com\",\n      \"ddns.me\",\n      \"ditchyourip.com\",\n      \"dnsfor.me\",\n      \"dnsiskinky.com\",\n      \"dvrcam.info\",\n      \"dynns.com\",\n      \"eating-organic.net\",\n      \"fantasyleague.cc\",\n      \"geekgalaxy.com\",\n      \"golffan.us\",\n      \"health-carereform.com\",\n      \"homesecuritymac.com\",\n      \"homesecuritypc.com\",\n      \"hopto.me\",\n      \"ilovecollege.info\",\n      \"loginto.me\",\n      \"mlbfan.org\",\n      \"mmafan.biz\",\n      \"myactivedirectory.com\",\n      \"mydissent.net\",\n      \"myeffect.net\",\n      \"mymediapc.net\",\n      \"mypsx.net\",\n      \"mysecuritycamera.com\",\n      \"mysecuritycamera.net\",\n      \"mysecuritycamera.org\",\n      \"net-freaks.com\",\n      \"nflfan.org\",\n      \"nhlfan.net\",\n      \"no-ip.ca\",\n      \"no-ip.co.uk\",\n      \"no-ip.net\",\n      \"noip.us\",\n      \"onthewifi.com\",\n      \"pgafan.net\",\n      \"point2this.com\",\n      \"pointto.us\",\n      \"privatizehealthinsurance.net\",\n      \"quicksytes.com\",\n      \"read-books.org\",\n      \"securitytactics.com\",\n      \"serveexchange.com\",\n      \"servehumour.com\",\n      \"servep2p.com\",\n      \"servesarcasm.com\",\n      \"stufftoread.com\",\n      \"ufcfan.org\",\n      \"unusualperson.com\",\n      \"workisboring.com\",\n      \"3utilities.com\",\n      \"bounceme.net\",\n      \"ddns.net\",\n      \"ddnsking.com\",\n      \"gotdns.ch\",\n      \"hopto.org\",\n      \"myftp.biz\",\n      \"myftp.org\",\n      \"myvnc.com\",\n      \"no-ip.biz\",\n      \"no-ip.info\",\n      \"no-ip.org\",\n      \"noip.me\",\n      \"redirectme.net\",\n      \"servebeer.com\",\n      \"serveblog.net\",\n      \"servecounterstrike.com\",\n      \"serveftp.com\",\n      \"servegame.com\",\n      \"servehalflife.com\",\n      \"servehttp.com\",\n      \"serveirc.com\",\n      \"serveminecraft.net\",\n      \"servemp3.com\",\n      \"servepics.com\",\n      \"servequake.com\",\n      \"sytes.net\",\n      \"webhop.me\",\n      \"zapto.org\",\n      \"stage.nodeart.io\",\n      \"pcloud.host\",\n      \"nyc.mn\",\n      \"static.observableusercontent.com\",\n      \"cya.gg\",\n      \"omg.lol\",\n      \"cloudycluster.net\",\n      \"omniwe.site\",\n      \"service.one\",\n      \"nid.io\",\n      \"opensocial.site\",\n      \"opencraft.hosting\",\n      \"orsites.com\",\n      \"operaunite.com\",\n      \"tech.orange\",\n      \"authgear-staging.com\",\n      \"authgearapps.com\",\n      \"skygearapp.com\",\n      \"outsystemscloud.com\",\n      \"*.webpaas.ovh.net\",\n      \"*.hosting.ovh.net\",\n      \"ownprovider.com\",\n      \"own.pm\",\n      \"*.owo.codes\",\n      \"ox.rs\",\n      \"oy.lc\",\n      \"pgfog.com\",\n      \"pagefrontapp.com\",\n      \"pagexl.com\",\n      \"*.paywhirl.com\",\n      \"bar0.net\",\n      \"bar1.net\",\n      \"bar2.net\",\n      \"rdv.to\",\n      \"art.pl\",\n      \"gliwice.pl\",\n      \"krakow.pl\",\n      \"poznan.pl\",\n      \"wroc.pl\",\n      \"zakopane.pl\",\n      \"pantheonsite.io\",\n      \"gotpantheon.com\",\n      \"mypep.link\",\n      \"perspecta.cloud\",\n      \"lk3.ru\",\n      \"on-web.fr\",\n      \"bc.platform.sh\",\n      \"ent.platform.sh\",\n      \"eu.platform.sh\",\n      \"us.platform.sh\",\n      \"*.platformsh.site\",\n      \"*.tst.site\",\n      \"platter-app.com\",\n      \"platter-app.dev\",\n      \"platterp.us\",\n      \"pdns.page\",\n      \"plesk.page\",\n      \"pleskns.com\",\n      \"dyn53.io\",\n      \"onporter.run\",\n      \"co.bn\",\n      \"postman-echo.com\",\n      \"pstmn.io\",\n      \"mock.pstmn.io\",\n      \"httpbin.org\",\n      \"prequalifyme.today\",\n      \"xen.prgmr.com\",\n      \"priv.at\",\n      \"prvcy.page\",\n      \"*.dweb.link\",\n      \"protonet.io\",\n      \"chirurgiens-dentistes-en-france.fr\",\n      \"byen.site\",\n      \"pubtls.org\",\n      \"pythonanywhere.com\",\n      \"eu.pythonanywhere.com\",\n      \"qoto.io\",\n      \"qualifioapp.com\",\n      \"qbuser.com\",\n      \"cloudsite.builders\",\n      \"instances.spawn.cc\",\n      \"instantcloud.cn\",\n      \"ras.ru\",\n      \"qa2.com\",\n      \"qcx.io\",\n      \"*.sys.qcx.io\",\n      \"dev-myqnapcloud.com\",\n      \"alpha-myqnapcloud.com\",\n      \"myqnapcloud.com\",\n      \"*.quipelements.com\",\n      \"vapor.cloud\",\n      \"vaporcloud.io\",\n      \"rackmaze.com\",\n      \"rackmaze.net\",\n      \"g.vbrplsbx.io\",\n      \"*.on-k3s.io\",\n      \"*.on-rancher.cloud\",\n      \"*.on-rio.io\",\n      \"readthedocs.io\",\n      \"rhcloud.com\",\n      \"app.render.com\",\n      \"onrender.com\",\n      \"repl.co\",\n      \"id.repl.co\",\n      \"repl.run\",\n      \"resindevice.io\",\n      \"devices.resinstaging.io\",\n      \"hzc.io\",\n      \"wellbeingzone.eu\",\n      \"wellbeingzone.co.uk\",\n      \"adimo.co.uk\",\n      \"itcouldbewor.se\",\n      \"git-pages.rit.edu\",\n      \"rocky.page\",\n      \"\\u0431\\u0438\\u0437.\\u0440\\u0443\\u0441\",\n      \"\\u043A\\u043E\\u043C.\\u0440\\u0443\\u0441\",\n      \"\\u043A\\u0440\\u044B\\u043C.\\u0440\\u0443\\u0441\",\n      \"\\u043C\\u0438\\u0440.\\u0440\\u0443\\u0441\",\n      \"\\u043C\\u0441\\u043A.\\u0440\\u0443\\u0441\",\n      \"\\u043E\\u0440\\u0433.\\u0440\\u0443\\u0441\",\n      \"\\u0441\\u0430\\u043C\\u0430\\u0440\\u0430.\\u0440\\u0443\\u0441\",\n      \"\\u0441\\u043E\\u0447\\u0438.\\u0440\\u0443\\u0441\",\n      \"\\u0441\\u043F\\u0431.\\u0440\\u0443\\u0441\",\n      \"\\u044F.\\u0440\\u0443\\u0441\",\n      \"*.builder.code.com\",\n      \"*.dev-builder.code.com\",\n      \"*.stg-builder.code.com\",\n      \"sandcats.io\",\n      \"logoip.de\",\n      \"logoip.com\",\n      \"fr-par-1.baremetal.scw.cloud\",\n      \"fr-par-2.baremetal.scw.cloud\",\n      \"nl-ams-1.baremetal.scw.cloud\",\n      \"fnc.fr-par.scw.cloud\",\n      \"functions.fnc.fr-par.scw.cloud\",\n      \"k8s.fr-par.scw.cloud\",\n      \"nodes.k8s.fr-par.scw.cloud\",\n      \"s3.fr-par.scw.cloud\",\n      \"s3-website.fr-par.scw.cloud\",\n      \"whm.fr-par.scw.cloud\",\n      \"priv.instances.scw.cloud\",\n      \"pub.instances.scw.cloud\",\n      \"k8s.scw.cloud\",\n      \"k8s.nl-ams.scw.cloud\",\n      \"nodes.k8s.nl-ams.scw.cloud\",\n      \"s3.nl-ams.scw.cloud\",\n      \"s3-website.nl-ams.scw.cloud\",\n      \"whm.nl-ams.scw.cloud\",\n      \"k8s.pl-waw.scw.cloud\",\n      \"nodes.k8s.pl-waw.scw.cloud\",\n      \"s3.pl-waw.scw.cloud\",\n      \"s3-website.pl-waw.scw.cloud\",\n      \"scalebook.scw.cloud\",\n      \"smartlabeling.scw.cloud\",\n      \"dedibox.fr\",\n      \"schokokeks.net\",\n      \"gov.scot\",\n      \"service.gov.scot\",\n      \"scrysec.com\",\n      \"firewall-gateway.com\",\n      \"firewall-gateway.de\",\n      \"my-gateway.de\",\n      \"my-router.de\",\n      \"spdns.de\",\n      \"spdns.eu\",\n      \"firewall-gateway.net\",\n      \"my-firewall.org\",\n      \"myfirewall.org\",\n      \"spdns.org\",\n      \"seidat.net\",\n      \"sellfy.store\",\n      \"senseering.net\",\n      \"minisite.ms\",\n      \"magnet.page\",\n      \"biz.ua\",\n      \"co.ua\",\n      \"pp.ua\",\n      \"shiftcrypto.dev\",\n      \"shiftcrypto.io\",\n      \"shiftedit.io\",\n      \"myshopblocks.com\",\n      \"myshopify.com\",\n      \"shopitsite.com\",\n      \"shopware.store\",\n      \"mo-siemens.io\",\n      \"1kapp.com\",\n      \"appchizi.com\",\n      \"applinzi.com\",\n      \"sinaapp.com\",\n      \"vipsinaapp.com\",\n      \"siteleaf.net\",\n      \"bounty-full.com\",\n      \"alpha.bounty-full.com\",\n      \"beta.bounty-full.com\",\n      \"small-web.org\",\n      \"vp4.me\",\n      \"try-snowplow.com\",\n      \"srht.site\",\n      \"stackhero-network.com\",\n      \"musician.io\",\n      \"novecore.site\",\n      \"static.land\",\n      \"dev.static.land\",\n      \"sites.static.land\",\n      \"storebase.store\",\n      \"vps-host.net\",\n      \"atl.jelastic.vps-host.net\",\n      \"njs.jelastic.vps-host.net\",\n      \"ric.jelastic.vps-host.net\",\n      \"playstation-cloud.com\",\n      \"apps.lair.io\",\n      \"*.stolos.io\",\n      \"spacekit.io\",\n      \"customer.speedpartner.de\",\n      \"myspreadshop.at\",\n      \"myspreadshop.com.au\",\n      \"myspreadshop.be\",\n      \"myspreadshop.ca\",\n      \"myspreadshop.ch\",\n      \"myspreadshop.com\",\n      \"myspreadshop.de\",\n      \"myspreadshop.dk\",\n      \"myspreadshop.es\",\n      \"myspreadshop.fi\",\n      \"myspreadshop.fr\",\n      \"myspreadshop.ie\",\n      \"myspreadshop.it\",\n      \"myspreadshop.net\",\n      \"myspreadshop.nl\",\n      \"myspreadshop.no\",\n      \"myspreadshop.pl\",\n      \"myspreadshop.se\",\n      \"myspreadshop.co.uk\",\n      \"api.stdlib.com\",\n      \"storj.farm\",\n      \"utwente.io\",\n      \"soc.srcf.net\",\n      \"user.srcf.net\",\n      \"temp-dns.com\",\n      \"supabase.co\",\n      \"supabase.in\",\n      \"supabase.net\",\n      \"su.paba.se\",\n      \"*.s5y.io\",\n      \"*.sensiosite.cloud\",\n      \"syncloud.it\",\n      \"dscloud.biz\",\n      \"direct.quickconnect.cn\",\n      \"dsmynas.com\",\n      \"familyds.com\",\n      \"diskstation.me\",\n      \"dscloud.me\",\n      \"i234.me\",\n      \"myds.me\",\n      \"synology.me\",\n      \"dscloud.mobi\",\n      \"dsmynas.net\",\n      \"familyds.net\",\n      \"dsmynas.org\",\n      \"familyds.org\",\n      \"vpnplus.to\",\n      \"direct.quickconnect.to\",\n      \"tabitorder.co.il\",\n      \"taifun-dns.de\",\n      \"beta.tailscale.net\",\n      \"ts.net\",\n      \"gda.pl\",\n      \"gdansk.pl\",\n      \"gdynia.pl\",\n      \"med.pl\",\n      \"sopot.pl\",\n      \"site.tb-hosting.com\",\n      \"edugit.io\",\n      \"s3.teckids.org\",\n      \"telebit.app\",\n      \"telebit.io\",\n      \"*.telebit.xyz\",\n      \"gwiddle.co.uk\",\n      \"*.firenet.ch\",\n      \"*.svc.firenet.ch\",\n      \"reservd.com\",\n      \"thingdustdata.com\",\n      \"cust.dev.thingdust.io\",\n      \"cust.disrec.thingdust.io\",\n      \"cust.prod.thingdust.io\",\n      \"cust.testing.thingdust.io\",\n      \"reservd.dev.thingdust.io\",\n      \"reservd.disrec.thingdust.io\",\n      \"reservd.testing.thingdust.io\",\n      \"tickets.io\",\n      \"arvo.network\",\n      \"azimuth.network\",\n      \"tlon.network\",\n      \"torproject.net\",\n      \"pages.torproject.net\",\n      \"bloxcms.com\",\n      \"townnews-staging.com\",\n      \"tbits.me\",\n      \"12hp.at\",\n      \"2ix.at\",\n      \"4lima.at\",\n      \"lima-city.at\",\n      \"12hp.ch\",\n      \"2ix.ch\",\n      \"4lima.ch\",\n      \"lima-city.ch\",\n      \"trafficplex.cloud\",\n      \"de.cool\",\n      \"12hp.de\",\n      \"2ix.de\",\n      \"4lima.de\",\n      \"lima-city.de\",\n      \"1337.pictures\",\n      \"clan.rip\",\n      \"lima-city.rocks\",\n      \"webspace.rocks\",\n      \"lima.zone\",\n      \"*.transurl.be\",\n      \"*.transurl.eu\",\n      \"*.transurl.nl\",\n      \"site.transip.me\",\n      \"tuxfamily.org\",\n      \"dd-dns.de\",\n      \"diskstation.eu\",\n      \"diskstation.org\",\n      \"dray-dns.de\",\n      \"draydns.de\",\n      \"dyn-vpn.de\",\n      \"dynvpn.de\",\n      \"mein-vigor.de\",\n      \"my-vigor.de\",\n      \"my-wan.de\",\n      \"syno-ds.de\",\n      \"synology-diskstation.de\",\n      \"synology-ds.de\",\n      \"typedream.app\",\n      \"pro.typeform.com\",\n      \"uber.space\",\n      \"*.uberspace.de\",\n      \"hk.com\",\n      \"hk.org\",\n      \"ltd.hk\",\n      \"inc.hk\",\n      \"name.pm\",\n      \"sch.tf\",\n      \"biz.wf\",\n      \"sch.wf\",\n      \"org.yt\",\n      \"virtualuser.de\",\n      \"virtual-user.de\",\n      \"upli.io\",\n      \"urown.cloud\",\n      \"dnsupdate.info\",\n      \"lib.de.us\",\n      \"2038.io\",\n      \"vercel.app\",\n      \"vercel.dev\",\n      \"now.sh\",\n      \"router.management\",\n      \"v-info.info\",\n      \"voorloper.cloud\",\n      \"neko.am\",\n      \"nyaa.am\",\n      \"be.ax\",\n      \"cat.ax\",\n      \"es.ax\",\n      \"eu.ax\",\n      \"gg.ax\",\n      \"mc.ax\",\n      \"us.ax\",\n      \"xy.ax\",\n      \"nl.ci\",\n      \"xx.gl\",\n      \"app.gp\",\n      \"blog.gt\",\n      \"de.gt\",\n      \"to.gt\",\n      \"be.gy\",\n      \"cc.hn\",\n      \"blog.kg\",\n      \"io.kg\",\n      \"jp.kg\",\n      \"tv.kg\",\n      \"uk.kg\",\n      \"us.kg\",\n      \"de.ls\",\n      \"at.md\",\n      \"de.md\",\n      \"jp.md\",\n      \"to.md\",\n      \"indie.porn\",\n      \"vxl.sh\",\n      \"ch.tc\",\n      \"me.tc\",\n      \"we.tc\",\n      \"nyan.to\",\n      \"at.vg\",\n      \"blog.vu\",\n      \"dev.vu\",\n      \"me.vu\",\n      \"v.ua\",\n      \"*.vultrobjects.com\",\n      \"wafflecell.com\",\n      \"*.webhare.dev\",\n      \"reserve-online.net\",\n      \"reserve-online.com\",\n      \"bookonline.app\",\n      \"hotelwithflight.com\",\n      \"wedeploy.io\",\n      \"wedeploy.me\",\n      \"wedeploy.sh\",\n      \"remotewd.com\",\n      \"pages.wiardweb.com\",\n      \"wmflabs.org\",\n      \"toolforge.org\",\n      \"wmcloud.org\",\n      \"panel.gg\",\n      \"daemon.panel.gg\",\n      \"messwithdns.com\",\n      \"woltlab-demo.com\",\n      \"myforum.community\",\n      \"community-pro.de\",\n      \"diskussionsbereich.de\",\n      \"community-pro.net\",\n      \"meinforum.net\",\n      \"affinitylottery.org.uk\",\n      \"raffleentry.org.uk\",\n      \"weeklylottery.org.uk\",\n      \"wpenginepowered.com\",\n      \"js.wpenginepowered.com\",\n      \"wixsite.com\",\n      \"editorx.io\",\n      \"half.host\",\n      \"xnbay.com\",\n      \"u2.xnbay.com\",\n      \"u2-local.xnbay.com\",\n      \"cistron.nl\",\n      \"demon.nl\",\n      \"xs4all.space\",\n      \"yandexcloud.net\",\n      \"storage.yandexcloud.net\",\n      \"website.yandexcloud.net\",\n      \"official.academy\",\n      \"yolasite.com\",\n      \"ybo.faith\",\n      \"yombo.me\",\n      \"homelink.one\",\n      \"ybo.party\",\n      \"ybo.review\",\n      \"ybo.science\",\n      \"ybo.trade\",\n      \"ynh.fr\",\n      \"nohost.me\",\n      \"noho.st\",\n      \"za.net\",\n      \"za.org\",\n      \"bss.design\",\n      \"basicserver.io\",\n      \"virtualserver.io\",\n      \"enterprisecloud.nu\"\n    ];\n  }\n});\n\n// node_modules/psl/index.js\nvar require_psl = __commonJS({\n  \"node_modules/psl/index.js\"(exports) {\n    \"use strict\";\n    var Punycode = require_punycode();\n    var internals = {};\n    internals.rules = require_rules().map(function(rule) {\n      return {\n        rule,\n        suffix: rule.replace(/^(\\*\\.|\\!)/, \"\"),\n        punySuffix: -1,\n        wildcard: rule.charAt(0) === \"*\",\n        exception: rule.charAt(0) === \"!\"\n      };\n    });\n    internals.endsWith = function(str, suffix) {\n      return str.indexOf(suffix, str.length - suffix.length) !== -1;\n    };\n    internals.findRule = function(domain) {\n      var punyDomain = Punycode.toASCII(domain);\n      return internals.rules.reduce(function(memo, rule) {\n        if (rule.punySuffix === -1) {\n          rule.punySuffix = Punycode.toASCII(rule.suffix);\n        }\n        if (!internals.endsWith(punyDomain, \".\" + rule.punySuffix) && punyDomain !== rule.punySuffix) {\n          return memo;\n        }\n        return rule;\n      }, null);\n    };\n    exports.errorCodes = {\n      DOMAIN_TOO_SHORT: \"Domain name too short.\",\n      DOMAIN_TOO_LONG: \"Domain name too long. It should be no more than 255 chars.\",\n      LABEL_STARTS_WITH_DASH: \"Domain name label can not start with a dash.\",\n      LABEL_ENDS_WITH_DASH: \"Domain name label can not end with a dash.\",\n      LABEL_TOO_LONG: \"Domain name label should be at most 63 chars long.\",\n      LABEL_TOO_SHORT: \"Domain name label should be at least 1 character long.\",\n      LABEL_INVALID_CHARS: \"Domain name label can only contain alphanumeric characters or dashes.\"\n    };\n    internals.validate = function(input) {\n      var ascii = Punycode.toASCII(input);\n      if (ascii.length < 1) {\n        return \"DOMAIN_TOO_SHORT\";\n      }\n      if (ascii.length > 255) {\n        return \"DOMAIN_TOO_LONG\";\n      }\n      var labels = ascii.split(\".\");\n      var label;\n      for (var i = 0; i < labels.length; ++i) {\n        label = labels[i];\n        if (!label.length) {\n          return \"LABEL_TOO_SHORT\";\n        }\n        if (label.length > 63) {\n          return \"LABEL_TOO_LONG\";\n        }\n        if (label.charAt(0) === \"-\") {\n          return \"LABEL_STARTS_WITH_DASH\";\n        }\n        if (label.charAt(label.length - 1) === \"-\") {\n          return \"LABEL_ENDS_WITH_DASH\";\n        }\n        if (!/^[a-z0-9\\-]+$/.test(label)) {\n          return \"LABEL_INVALID_CHARS\";\n        }\n      }\n    };\n    exports.parse = function(input) {\n      if (typeof input !== \"string\") {\n        throw new TypeError(\"Domain name must be a string.\");\n      }\n      var domain = input.slice(0).toLowerCase();\n      if (domain.charAt(domain.length - 1) === \".\") {\n        domain = domain.slice(0, domain.length - 1);\n      }\n      var error = internals.validate(domain);\n      if (error) {\n        return {\n          input,\n          error: {\n            message: exports.errorCodes[error],\n            code: error\n          }\n        };\n      }\n      var parsed = {\n        input,\n        tld: null,\n        sld: null,\n        domain: null,\n        subdomain: null,\n        listed: false\n      };\n      var domainParts = domain.split(\".\");\n      if (domainParts[domainParts.length - 1] === \"local\") {\n        return parsed;\n      }\n      var handlePunycode = function() {\n        if (!/xn--/.test(domain)) {\n          return parsed;\n        }\n        if (parsed.domain) {\n          parsed.domain = Punycode.toASCII(parsed.domain);\n        }\n        if (parsed.subdomain) {\n          parsed.subdomain = Punycode.toASCII(parsed.subdomain);\n        }\n        return parsed;\n      };\n      var rule = internals.findRule(domain);\n      if (!rule) {\n        if (domainParts.length < 2) {\n          return parsed;\n        }\n        parsed.tld = domainParts.pop();\n        parsed.sld = domainParts.pop();\n        parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n        if (domainParts.length) {\n          parsed.subdomain = domainParts.pop();\n        }\n        return handlePunycode();\n      }\n      parsed.listed = true;\n      var tldParts = rule.suffix.split(\".\");\n      var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);\n      if (rule.exception) {\n        privateParts.push(tldParts.shift());\n      }\n      parsed.tld = tldParts.join(\".\");\n      if (!privateParts.length) {\n        return handlePunycode();\n      }\n      if (rule.wildcard) {\n        tldParts.unshift(privateParts.pop());\n        parsed.tld = tldParts.join(\".\");\n      }\n      if (!privateParts.length) {\n        return handlePunycode();\n      }\n      parsed.sld = privateParts.pop();\n      parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n      if (privateParts.length) {\n        parsed.subdomain = privateParts.join(\".\");\n      }\n      return handlePunycode();\n    };\n    exports.get = function(domain) {\n      if (!domain) {\n        return null;\n      }\n      return exports.parse(domain).domain || null;\n    };\n    exports.isValid = function(domain) {\n      var parsed = exports.parse(domain);\n      return Boolean(parsed.domain && parsed.listed);\n    };\n  }\n});\n\n// node_modules/tough-cookie/lib/pubsuffix-psl.js\nvar require_pubsuffix_psl = __commonJS({\n  \"node_modules/tough-cookie/lib/pubsuffix-psl.js\"(exports) {\n    \"use strict\";\n    var psl = require_psl();\n    var SPECIAL_USE_DOMAINS = [\n      \"local\",\n      \"example\",\n      \"invalid\",\n      \"localhost\",\n      \"test\"\n    ];\n    var SPECIAL_TREATMENT_DOMAINS = [\"localhost\", \"invalid\"];\n    function getPublicSuffix(domain, options = {}) {\n      const domainParts = domain.split(\".\");\n      const topLevelDomain = domainParts[domainParts.length - 1];\n      const allowSpecialUseDomain = !!options.allowSpecialUseDomain;\n      const ignoreError = !!options.ignoreError;\n      if (allowSpecialUseDomain && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n        if (domainParts.length > 1) {\n          const secondLevelDomain = domainParts[domainParts.length - 2];\n          return `${secondLevelDomain}.${topLevelDomain}`;\n        } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {\n          return `${topLevelDomain}`;\n        }\n      }\n      if (!ignoreError && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n        throw new Error(\n          `Cookie has domain set to the public suffix \"${topLevelDomain}\" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`\n        );\n      }\n      return psl.get(domain);\n    }\n    exports.getPublicSuffix = getPublicSuffix;\n  }\n});\n\n// node_modules/tough-cookie/lib/store.js\nvar require_store = __commonJS({\n  \"node_modules/tough-cookie/lib/store.js\"(exports) {\n    \"use strict\";\n    var Store = class {\n      constructor() {\n        this.synchronous = false;\n      }\n      findCookie(domain, path, key, cb) {\n        throw new Error(\"findCookie is not implemented\");\n      }\n      findCookies(domain, path, allowSpecialUseDomain, cb) {\n        throw new Error(\"findCookies is not implemented\");\n      }\n      putCookie(cookie, cb) {\n        throw new Error(\"putCookie is not implemented\");\n      }\n      updateCookie(oldCookie, newCookie, cb) {\n        throw new Error(\"updateCookie is not implemented\");\n      }\n      removeCookie(domain, path, key, cb) {\n        throw new Error(\"removeCookie is not implemented\");\n      }\n      removeCookies(domain, path, cb) {\n        throw new Error(\"removeCookies is not implemented\");\n      }\n      removeAllCookies(cb) {\n        throw new Error(\"removeAllCookies is not implemented\");\n      }\n      getAllCookies(cb) {\n        throw new Error(\n          \"getAllCookies is not implemented (therefore jar cannot be serialized)\"\n        );\n      }\n    };\n    exports.Store = Store;\n  }\n});\n\n// node_modules/universalify/index.js\nvar require_universalify = __commonJS({\n  \"node_modules/universalify/index.js\"(exports) {\n    \"use strict\";\n    exports.fromCallback = function(fn) {\n      return Object.defineProperty(function() {\n        if (typeof arguments[arguments.length - 1] === \"function\") fn.apply(this, arguments);\n        else {\n          return new Promise((resolve, reject) => {\n            arguments[arguments.length] = (err, res) => {\n              if (err) return reject(err);\n              resolve(res);\n            };\n            arguments.length++;\n            fn.apply(this, arguments);\n          });\n        }\n      }, \"name\", { value: fn.name });\n    };\n    exports.fromPromise = function(fn) {\n      return Object.defineProperty(function() {\n        const cb = arguments[arguments.length - 1];\n        if (typeof cb !== \"function\") return fn.apply(this, arguments);\n        else {\n          delete arguments[arguments.length - 1];\n          arguments.length--;\n          fn.apply(this, arguments).then((r) => cb(null, r), cb);\n        }\n      }, \"name\", { value: fn.name });\n    };\n  }\n});\n\n// node_modules/tough-cookie/lib/permuteDomain.js\nvar require_permuteDomain = __commonJS({\n  \"node_modules/tough-cookie/lib/permuteDomain.js\"(exports) {\n    \"use strict\";\n    var pubsuffix = require_pubsuffix_psl();\n    function permuteDomain(domain, allowSpecialUseDomain) {\n      const pubSuf = pubsuffix.getPublicSuffix(domain, {\n        allowSpecialUseDomain\n      });\n      if (!pubSuf) {\n        return null;\n      }\n      if (pubSuf == domain) {\n        return [domain];\n      }\n      if (domain.slice(-1) == \".\") {\n        domain = domain.slice(0, -1);\n      }\n      const prefix = domain.slice(0, -(pubSuf.length + 1));\n      const parts = prefix.split(\".\").reverse();\n      let cur = pubSuf;\n      const permutations = [cur];\n      while (parts.length) {\n        cur = `${parts.shift()}.${cur}`;\n        permutations.push(cur);\n      }\n      return permutations;\n    }\n    exports.permuteDomain = permuteDomain;\n  }\n});\n\n// node_modules/tough-cookie/lib/pathMatch.js\nvar require_pathMatch = __commonJS({\n  \"node_modules/tough-cookie/lib/pathMatch.js\"(exports) {\n    \"use strict\";\n    function pathMatch(reqPath, cookiePath) {\n      if (cookiePath === reqPath) {\n        return true;\n      }\n      const idx = reqPath.indexOf(cookiePath);\n      if (idx === 0) {\n        if (cookiePath.substr(-1) === \"/\") {\n          return true;\n        }\n        if (reqPath.substr(cookiePath.length, 1) === \"/\") {\n          return true;\n        }\n      }\n      return false;\n    }\n    exports.pathMatch = pathMatch;\n  }\n});\n\n// node_modules/tough-cookie/lib/utilHelper.js\nvar require_utilHelper = __commonJS({\n  \"node_modules/tough-cookie/lib/utilHelper.js\"(exports) {\n    function requireUtil() {\n      try {\n        return __require(\"util\");\n      } catch (e) {\n        return null;\n      }\n    }\n    function lookupCustomInspectSymbol() {\n      return Symbol.for(\"nodejs.util.inspect.custom\");\n    }\n    function tryReadingCustomSymbolFromUtilInspect(options) {\n      const _requireUtil = options.requireUtil || requireUtil;\n      const util = _requireUtil();\n      return util ? util.inspect.custom : null;\n    }\n    exports.getUtilInspect = function getUtilInspect(fallback, options = {}) {\n      const _requireUtil = options.requireUtil || requireUtil;\n      const util = _requireUtil();\n      return function inspect(value, showHidden, depth) {\n        return util ? util.inspect(value, showHidden, depth) : fallback(value);\n      };\n    };\n    exports.getCustomInspectSymbol = function getCustomInspectSymbol(options = {}) {\n      const _lookupCustomInspectSymbol = options.lookupCustomInspectSymbol || lookupCustomInspectSymbol;\n      return _lookupCustomInspectSymbol() || tryReadingCustomSymbolFromUtilInspect(options);\n    };\n  }\n});\n\n// node_modules/tough-cookie/lib/memstore.js\nvar require_memstore = __commonJS({\n  \"node_modules/tough-cookie/lib/memstore.js\"(exports) {\n    \"use strict\";\n    var { fromCallback } = require_universalify();\n    var Store = require_store().Store;\n    var permuteDomain = require_permuteDomain().permuteDomain;\n    var pathMatch = require_pathMatch().pathMatch;\n    var { getCustomInspectSymbol, getUtilInspect } = require_utilHelper();\n    var MemoryCookieStore = class extends Store {\n      constructor() {\n        super();\n        this.synchronous = true;\n        this.idx = /* @__PURE__ */ Object.create(null);\n        const customInspectSymbol = getCustomInspectSymbol();\n        if (customInspectSymbol) {\n          this[customInspectSymbol] = this.inspect;\n        }\n      }\n      inspect() {\n        const util = { inspect: getUtilInspect(inspectFallback) };\n        return `{ idx: ${util.inspect(this.idx, false, 2)} }`;\n      }\n      findCookie(domain, path, key, cb) {\n        if (!this.idx[domain]) {\n          return cb(null, void 0);\n        }\n        if (!this.idx[domain][path]) {\n          return cb(null, void 0);\n        }\n        return cb(null, this.idx[domain][path][key] || null);\n      }\n      findCookies(domain, path, allowSpecialUseDomain, cb) {\n        const results = [];\n        if (typeof allowSpecialUseDomain === \"function\") {\n          cb = allowSpecialUseDomain;\n          allowSpecialUseDomain = true;\n        }\n        if (!domain) {\n          return cb(null, []);\n        }\n        let pathMatcher;\n        if (!path) {\n          pathMatcher = function matchAll(domainIndex) {\n            for (const curPath in domainIndex) {\n              const pathIndex = domainIndex[curPath];\n              for (const key in pathIndex) {\n                results.push(pathIndex[key]);\n              }\n            }\n          };\n        } else {\n          pathMatcher = function matchRFC(domainIndex) {\n            Object.keys(domainIndex).forEach((cookiePath) => {\n              if (pathMatch(path, cookiePath)) {\n                const pathIndex = domainIndex[cookiePath];\n                for (const key in pathIndex) {\n                  results.push(pathIndex[key]);\n                }\n              }\n            });\n          };\n        }\n        const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];\n        const idx = this.idx;\n        domains.forEach((curDomain) => {\n          const domainIndex = idx[curDomain];\n          if (!domainIndex) {\n            return;\n          }\n          pathMatcher(domainIndex);\n        });\n        cb(null, results);\n      }\n      putCookie(cookie, cb) {\n        if (!this.idx[cookie.domain]) {\n          this.idx[cookie.domain] = /* @__PURE__ */ Object.create(null);\n        }\n        if (!this.idx[cookie.domain][cookie.path]) {\n          this.idx[cookie.domain][cookie.path] = /* @__PURE__ */ Object.create(null);\n        }\n        this.idx[cookie.domain][cookie.path][cookie.key] = cookie;\n        cb(null);\n      }\n      updateCookie(oldCookie, newCookie, cb) {\n        this.putCookie(newCookie, cb);\n      }\n      removeCookie(domain, path, key, cb) {\n        if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) {\n          delete this.idx[domain][path][key];\n        }\n        cb(null);\n      }\n      removeCookies(domain, path, cb) {\n        if (this.idx[domain]) {\n          if (path) {\n            delete this.idx[domain][path];\n          } else {\n            delete this.idx[domain];\n          }\n        }\n        return cb(null);\n      }\n      removeAllCookies(cb) {\n        this.idx = /* @__PURE__ */ Object.create(null);\n        return cb(null);\n      }\n      getAllCookies(cb) {\n        const cookies = [];\n        const idx = this.idx;\n        const domains = Object.keys(idx);\n        domains.forEach((domain) => {\n          const paths = Object.keys(idx[domain]);\n          paths.forEach((path) => {\n            const keys = Object.keys(idx[domain][path]);\n            keys.forEach((key) => {\n              if (key !== null) {\n                cookies.push(idx[domain][path][key]);\n              }\n            });\n          });\n        });\n        cookies.sort((a, b) => {\n          return (a.creationIndex || 0) - (b.creationIndex || 0);\n        });\n        cb(null, cookies);\n      }\n    };\n    [\n      \"findCookie\",\n      \"findCookies\",\n      \"putCookie\",\n      \"updateCookie\",\n      \"removeCookie\",\n      \"removeCookies\",\n      \"removeAllCookies\",\n      \"getAllCookies\"\n    ].forEach((name) => {\n      MemoryCookieStore.prototype[name] = fromCallback(\n        MemoryCookieStore.prototype[name]\n      );\n    });\n    exports.MemoryCookieStore = MemoryCookieStore;\n    function inspectFallback(val) {\n      const domains = Object.keys(val);\n      if (domains.length === 0) {\n        return \"[Object: null prototype] {}\";\n      }\n      let result = \"[Object: null prototype] {\\n\";\n      Object.keys(val).forEach((domain, i) => {\n        result += formatDomain(domain, val[domain]);\n        if (i < domains.length - 1) {\n          result += \",\";\n        }\n        result += \"\\n\";\n      });\n      result += \"}\";\n      return result;\n    }\n    function formatDomain(domainName, domainValue) {\n      const indent = \"  \";\n      let result = `${indent}'${domainName}': [Object: null prototype] {\n`;\n      Object.keys(domainValue).forEach((path, i, paths) => {\n        result += formatPath(path, domainValue[path]);\n        if (i < paths.length - 1) {\n          result += \",\";\n        }\n        result += \"\\n\";\n      });\n      result += `${indent}}`;\n      return result;\n    }\n    function formatPath(pathName, pathValue) {\n      const indent = \"    \";\n      let result = `${indent}'${pathName}': [Object: null prototype] {\n`;\n      Object.keys(pathValue).forEach((cookieName, i, cookieNames) => {\n        const cookie = pathValue[cookieName];\n        result += `      ${cookieName}: ${cookie.inspect()}`;\n        if (i < cookieNames.length - 1) {\n          result += \",\";\n        }\n        result += \"\\n\";\n      });\n      result += `${indent}}`;\n      return result;\n    }\n    exports.inspectFallback = inspectFallback;\n  }\n});\n\n// node_modules/tough-cookie/lib/validators.js\nvar require_validators = __commonJS({\n  \"node_modules/tough-cookie/lib/validators.js\"(exports) {\n    \"use strict\";\n    var toString = Object.prototype.toString;\n    function isFunction(data) {\n      return typeof data === \"function\";\n    }\n    function isNonEmptyString(data) {\n      return isString(data) && data !== \"\";\n    }\n    function isDate(data) {\n      return isInstanceStrict(data, Date) && isInteger(data.getTime());\n    }\n    function isEmptyString(data) {\n      return data === \"\" || data instanceof String && data.toString() === \"\";\n    }\n    function isString(data) {\n      return typeof data === \"string\" || data instanceof String;\n    }\n    function isObject(data) {\n      return toString.call(data) === \"[object Object]\";\n    }\n    function isInstanceStrict(data, prototype) {\n      try {\n        return data instanceof prototype;\n      } catch (error) {\n        return false;\n      }\n    }\n    function isUrlStringOrObject(data) {\n      return isNonEmptyString(data) || isObject(data) && \"hostname\" in data && \"pathname\" in data && \"protocol\" in data || isInstanceStrict(data, URL);\n    }\n    function isInteger(data) {\n      return typeof data === \"number\" && data % 1 === 0;\n    }\n    function validate(bool, cb, options) {\n      if (!isFunction(cb)) {\n        options = cb;\n        cb = null;\n      }\n      if (!isObject(options)) options = { Error: \"Failed Check\" };\n      if (!bool) {\n        if (cb) {\n          cb(new ParameterError(options));\n        } else {\n          throw new ParameterError(options);\n        }\n      }\n    }\n    var ParameterError = class extends Error {\n      constructor(...params) {\n        super(...params);\n      }\n    };\n    exports.ParameterError = ParameterError;\n    exports.isFunction = isFunction;\n    exports.isNonEmptyString = isNonEmptyString;\n    exports.isDate = isDate;\n    exports.isEmptyString = isEmptyString;\n    exports.isString = isString;\n    exports.isObject = isObject;\n    exports.isUrlStringOrObject = isUrlStringOrObject;\n    exports.validate = validate;\n  }\n});\n\n// node_modules/tough-cookie/lib/version.js\nvar require_version = __commonJS({\n  \"node_modules/tough-cookie/lib/version.js\"(exports, module) {\n    module.exports = \"4.1.4\";\n  }\n});\n\n// node_modules/tough-cookie/lib/cookie.js\nvar require_cookie = __commonJS({\n  \"node_modules/tough-cookie/lib/cookie.js\"(exports) {\n    \"use strict\";\n    var punycode = require_punycode();\n    var urlParse = require_url_parse();\n    var pubsuffix = require_pubsuffix_psl();\n    var Store = require_store().Store;\n    var MemoryCookieStore = require_memstore().MemoryCookieStore;\n    var pathMatch = require_pathMatch().pathMatch;\n    var validators = require_validators();\n    var VERSION = require_version();\n    var { fromCallback } = require_universalify();\n    var { getCustomInspectSymbol } = require_utilHelper();\n    var COOKIE_OCTETS = /^[\\x21\\x23-\\x2B\\x2D-\\x3A\\x3C-\\x5B\\x5D-\\x7E]+$/;\n    var CONTROL_CHARS = /[\\x00-\\x1F]/;\n    var TERMINATORS = [\"\\n\", \"\\r\", \"\\0\"];\n    var PATH_VALUE = /[\\x20-\\x3A\\x3C-\\x7E]+/;\n    var DATE_DELIM = /[\\x09\\x20-\\x2F\\x3B-\\x40\\x5B-\\x60\\x7B-\\x7E]/;\n    var MONTH_TO_NUM = {\n      jan: 0,\n      feb: 1,\n      mar: 2,\n      apr: 3,\n      may: 4,\n      jun: 5,\n      jul: 6,\n      aug: 7,\n      sep: 8,\n      oct: 9,\n      nov: 10,\n      dec: 11\n    };\n    var MAX_TIME = 2147483647e3;\n    var MIN_TIME = 0;\n    var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of \"strict\", \"lax\", or \"none\"';\n    function checkSameSiteContext(value) {\n      validators.validate(validators.isNonEmptyString(value), value);\n      const context = String(value).toLowerCase();\n      if (context === \"none\" || context === \"lax\" || context === \"strict\") {\n        return context;\n      } else {\n        return null;\n      }\n    }\n    var PrefixSecurityEnum = Object.freeze({\n      SILENT: \"silent\",\n      STRICT: \"strict\",\n      DISABLED: \"unsafe-disabled\"\n    });\n    var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-f\\d]{1,4}:){7}(?:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,2}|:)|(?:[a-f\\d]{1,4}:){4}(?:(?::[a-f\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,3}|:)|(?:[a-f\\d]{1,4}:){3}(?:(?::[a-f\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,4}|:)|(?:[a-f\\d]{1,4}:){2}(?:(?::[a-f\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,5}|:)|(?:[a-f\\d]{1,4}:){1}(?:(?::[a-f\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,7}|:)))$)/;\n    var IP_V6_REGEX = `\n\\\\[?(?:\n(?:[a-fA-F\\\\d]{1,4}:){7}(?:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,2}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){4}(?:(?::[a-fA-F\\\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,3}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){3}(?:(?::[a-fA-F\\\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){2}(?:(?::[a-fA-F\\\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,5}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){1}(?:(?::[a-fA-F\\\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,6}|:)|\n(?::(?:(?::[a-fA-F\\\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,7}|:))\n)(?:%[0-9a-zA-Z]{1,})?\\\\]?\n`.replace(/\\s*\\/\\/.*$/gm, \"\").replace(/\\n/g, \"\").trim();\n    var IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);\n    function parseDigits(token, minDigits, maxDigits, trailingOK) {\n      let count = 0;\n      while (count < token.length) {\n        const c = token.charCodeAt(count);\n        if (c <= 47 || c >= 58) {\n          break;\n        }\n        count++;\n      }\n      if (count < minDigits || count > maxDigits) {\n        return null;\n      }\n      if (!trailingOK && count != token.length) {\n        return null;\n      }\n      return parseInt(token.substr(0, count), 10);\n    }\n    function parseTime(token) {\n      const parts = token.split(\":\");\n      const result = [0, 0, 0];\n      if (parts.length !== 3) {\n        return null;\n      }\n      for (let i = 0; i < 3; i++) {\n        const trailingOK = i == 2;\n        const num = parseDigits(parts[i], 1, 2, trailingOK);\n        if (num === null) {\n          return null;\n        }\n        result[i] = num;\n      }\n      return result;\n    }\n    function parseMonth(token) {\n      token = String(token).substr(0, 3).toLowerCase();\n      const num = MONTH_TO_NUM[token];\n      return num >= 0 ? num : null;\n    }\n    function parseDate(str) {\n      if (!str) {\n        return;\n      }\n      const tokens = str.split(DATE_DELIM);\n      if (!tokens) {\n        return;\n      }\n      let hour = null;\n      let minute = null;\n      let second = null;\n      let dayOfMonth = null;\n      let month = null;\n      let year = null;\n      for (let i = 0; i < tokens.length; i++) {\n        const token = tokens[i].trim();\n        if (!token.length) {\n          continue;\n        }\n        let result;\n        if (second === null) {\n          result = parseTime(token);\n          if (result) {\n            hour = result[0];\n            minute = result[1];\n            second = result[2];\n            continue;\n          }\n        }\n        if (dayOfMonth === null) {\n          result = parseDigits(token, 1, 2, true);\n          if (result !== null) {\n            dayOfMonth = result;\n            continue;\n          }\n        }\n        if (month === null) {\n          result = parseMonth(token);\n          if (result !== null) {\n            month = result;\n            continue;\n          }\n        }\n        if (year === null) {\n          result = parseDigits(token, 2, 4, true);\n          if (result !== null) {\n            year = result;\n            if (year >= 70 && year <= 99) {\n              year += 1900;\n            } else if (year >= 0 && year <= 69) {\n              year += 2e3;\n            }\n          }\n        }\n      }\n      if (dayOfMonth === null || month === null || year === null || second === null || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {\n        return;\n      }\n      return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));\n    }\n    function formatDate(date) {\n      validators.validate(validators.isDate(date), date);\n      return date.toUTCString();\n    }\n    function canonicalDomain(str) {\n      if (str == null) {\n        return null;\n      }\n      str = str.trim().replace(/^\\./, \"\");\n      if (IP_V6_REGEX_OBJECT.test(str)) {\n        str = str.replace(\"[\", \"\").replace(\"]\", \"\");\n      }\n      if (punycode && /[^\\u0001-\\u007f]/.test(str)) {\n        str = punycode.toASCII(str);\n      }\n      return str.toLowerCase();\n    }\n    function domainMatch(str, domStr, canonicalize) {\n      if (str == null || domStr == null) {\n        return null;\n      }\n      if (canonicalize !== false) {\n        str = canonicalDomain(str);\n        domStr = canonicalDomain(domStr);\n      }\n      if (str == domStr) {\n        return true;\n      }\n      const idx = str.lastIndexOf(domStr);\n      if (idx <= 0) {\n        return false;\n      }\n      if (str.length !== domStr.length + idx) {\n        return false;\n      }\n      if (str.substr(idx - 1, 1) !== \".\") {\n        return false;\n      }\n      if (IP_REGEX_LOWERCASE.test(str)) {\n        return false;\n      }\n      return true;\n    }\n    function defaultPath(path) {\n      if (!path || path.substr(0, 1) !== \"/\") {\n        return \"/\";\n      }\n      if (path === \"/\") {\n        return path;\n      }\n      const rightSlash = path.lastIndexOf(\"/\");\n      if (rightSlash === 0) {\n        return \"/\";\n      }\n      return path.slice(0, rightSlash);\n    }\n    function trimTerminator(str) {\n      if (validators.isEmptyString(str)) return str;\n      for (let t = 0; t < TERMINATORS.length; t++) {\n        const terminatorIdx = str.indexOf(TERMINATORS[t]);\n        if (terminatorIdx !== -1) {\n          str = str.substr(0, terminatorIdx);\n        }\n      }\n      return str;\n    }\n    function parseCookiePair(cookiePair, looseMode) {\n      cookiePair = trimTerminator(cookiePair);\n      validators.validate(validators.isString(cookiePair), cookiePair);\n      let firstEq = cookiePair.indexOf(\"=\");\n      if (looseMode) {\n        if (firstEq === 0) {\n          cookiePair = cookiePair.substr(1);\n          firstEq = cookiePair.indexOf(\"=\");\n        }\n      } else {\n        if (firstEq <= 0) {\n          return;\n        }\n      }\n      let cookieName, cookieValue;\n      if (firstEq <= 0) {\n        cookieName = \"\";\n        cookieValue = cookiePair.trim();\n      } else {\n        cookieName = cookiePair.substr(0, firstEq).trim();\n        cookieValue = cookiePair.substr(firstEq + 1).trim();\n      }\n      if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {\n        return;\n      }\n      const c = new Cookie();\n      c.key = cookieName;\n      c.value = cookieValue;\n      return c;\n    }\n    function parse(str, options) {\n      if (!options || typeof options !== \"object\") {\n        options = {};\n      }\n      if (validators.isEmptyString(str) || !validators.isString(str)) {\n        return null;\n      }\n      str = str.trim();\n      const firstSemi = str.indexOf(\";\");\n      const cookiePair = firstSemi === -1 ? str : str.substr(0, firstSemi);\n      const c = parseCookiePair(cookiePair, !!options.loose);\n      if (!c) {\n        return;\n      }\n      if (firstSemi === -1) {\n        return c;\n      }\n      const unparsed = str.slice(firstSemi + 1).trim();\n      if (unparsed.length === 0) {\n        return c;\n      }\n      const cookie_avs = unparsed.split(\";\");\n      while (cookie_avs.length) {\n        const av = cookie_avs.shift().trim();\n        if (av.length === 0) {\n          continue;\n        }\n        const av_sep = av.indexOf(\"=\");\n        let av_key, av_value;\n        if (av_sep === -1) {\n          av_key = av;\n          av_value = null;\n        } else {\n          av_key = av.substr(0, av_sep);\n          av_value = av.substr(av_sep + 1);\n        }\n        av_key = av_key.trim().toLowerCase();\n        if (av_value) {\n          av_value = av_value.trim();\n        }\n        switch (av_key) {\n          case \"expires\":\n            if (av_value) {\n              const exp = parseDate(av_value);\n              if (exp) {\n                c.expires = exp;\n              }\n            }\n            break;\n          case \"max-age\":\n            if (av_value) {\n              if (/^-?[0-9]+$/.test(av_value)) {\n                const delta = parseInt(av_value, 10);\n                c.setMaxAge(delta);\n              }\n            }\n            break;\n          case \"domain\":\n            if (av_value) {\n              const domain = av_value.trim().replace(/^\\./, \"\");\n              if (domain) {\n                c.domain = domain.toLowerCase();\n              }\n            }\n            break;\n          case \"path\":\n            c.path = av_value && av_value[0] === \"/\" ? av_value : null;\n            break;\n          case \"secure\":\n            c.secure = true;\n            break;\n          case \"httponly\":\n            c.httpOnly = true;\n            break;\n          case \"samesite\":\n            const enforcement = av_value ? av_value.toLowerCase() : \"\";\n            switch (enforcement) {\n              case \"strict\":\n                c.sameSite = \"strict\";\n                break;\n              case \"lax\":\n                c.sameSite = \"lax\";\n                break;\n              case \"none\":\n                c.sameSite = \"none\";\n                break;\n              default:\n                c.sameSite = void 0;\n                break;\n            }\n            break;\n          default:\n            c.extensions = c.extensions || [];\n            c.extensions.push(av);\n            break;\n        }\n      }\n      return c;\n    }\n    function isSecurePrefixConditionMet(cookie) {\n      validators.validate(validators.isObject(cookie), cookie);\n      return !cookie.key.startsWith(\"__Secure-\") || cookie.secure;\n    }\n    function isHostPrefixConditionMet(cookie) {\n      validators.validate(validators.isObject(cookie));\n      return !cookie.key.startsWith(\"__Host-\") || cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === \"/\";\n    }\n    function jsonParse(str) {\n      let obj;\n      try {\n        obj = JSON.parse(str);\n      } catch (e) {\n        return e;\n      }\n      return obj;\n    }\n    function fromJSON(str) {\n      if (!str || validators.isEmptyString(str)) {\n        return null;\n      }\n      let obj;\n      if (typeof str === \"string\") {\n        obj = jsonParse(str);\n        if (obj instanceof Error) {\n          return null;\n        }\n      } else {\n        obj = str;\n      }\n      const c = new Cookie();\n      for (let i = 0; i < Cookie.serializableProperties.length; i++) {\n        const prop = Cookie.serializableProperties[i];\n        if (obj[prop] === void 0 || obj[prop] === cookieDefaults[prop]) {\n          continue;\n        }\n        if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n          if (obj[prop] === null) {\n            c[prop] = null;\n          } else {\n            c[prop] = obj[prop] == \"Infinity\" ? \"Infinity\" : new Date(obj[prop]);\n          }\n        } else {\n          c[prop] = obj[prop];\n        }\n      }\n      return c;\n    }\n    function cookieCompare(a, b) {\n      validators.validate(validators.isObject(a), a);\n      validators.validate(validators.isObject(b), b);\n      let cmp = 0;\n      const aPathLen = a.path ? a.path.length : 0;\n      const bPathLen = b.path ? b.path.length : 0;\n      cmp = bPathLen - aPathLen;\n      if (cmp !== 0) {\n        return cmp;\n      }\n      const aTime = a.creation ? a.creation.getTime() : MAX_TIME;\n      const bTime = b.creation ? b.creation.getTime() : MAX_TIME;\n      cmp = aTime - bTime;\n      if (cmp !== 0) {\n        return cmp;\n      }\n      cmp = a.creationIndex - b.creationIndex;\n      return cmp;\n    }\n    function permutePath(path) {\n      validators.validate(validators.isString(path));\n      if (path === \"/\") {\n        return [\"/\"];\n      }\n      const permutations = [path];\n      while (path.length > 1) {\n        const lindex = path.lastIndexOf(\"/\");\n        if (lindex === 0) {\n          break;\n        }\n        path = path.substr(0, lindex);\n        permutations.push(path);\n      }\n      permutations.push(\"/\");\n      return permutations;\n    }\n    function getCookieContext(url) {\n      if (url instanceof Object) {\n        return url;\n      }\n      try {\n        url = decodeURI(url);\n      } catch (err) {\n      }\n      return urlParse(url);\n    }\n    var cookieDefaults = {\n      // the order in which the RFC has them:\n      key: \"\",\n      value: \"\",\n      expires: \"Infinity\",\n      maxAge: null,\n      domain: null,\n      path: null,\n      secure: false,\n      httpOnly: false,\n      extensions: null,\n      // set by the CookieJar:\n      hostOnly: null,\n      pathIsDefault: null,\n      creation: null,\n      lastAccessed: null,\n      sameSite: void 0\n    };\n    var Cookie = class _Cookie {\n      constructor(options = {}) {\n        const customInspectSymbol = getCustomInspectSymbol();\n        if (customInspectSymbol) {\n          this[customInspectSymbol] = this.inspect;\n        }\n        Object.assign(this, cookieDefaults, options);\n        this.creation = this.creation || /* @__PURE__ */ new Date();\n        Object.defineProperty(this, \"creationIndex\", {\n          configurable: false,\n          enumerable: false,\n          // important for assert.deepEqual checks\n          writable: true,\n          value: ++_Cookie.cookiesCreated\n        });\n      }\n      inspect() {\n        const now = Date.now();\n        const hostOnly = this.hostOnly != null ? this.hostOnly : \"?\";\n        const createAge = this.creation ? `${now - this.creation.getTime()}ms` : \"?\";\n        const accessAge = this.lastAccessed ? `${now - this.lastAccessed.getTime()}ms` : \"?\";\n        return `Cookie=\"${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}\"`;\n      }\n      toJSON() {\n        const obj = {};\n        for (const prop of _Cookie.serializableProperties) {\n          if (this[prop] === cookieDefaults[prop]) {\n            continue;\n          }\n          if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n            if (this[prop] === null) {\n              obj[prop] = null;\n            } else {\n              obj[prop] = this[prop] == \"Infinity\" ? \"Infinity\" : this[prop].toISOString();\n            }\n          } else if (prop === \"maxAge\") {\n            if (this[prop] !== null) {\n              obj[prop] = this[prop] == Infinity || this[prop] == -Infinity ? this[prop].toString() : this[prop];\n            }\n          } else {\n            if (this[prop] !== cookieDefaults[prop]) {\n              obj[prop] = this[prop];\n            }\n          }\n        }\n        return obj;\n      }\n      clone() {\n        return fromJSON(this.toJSON());\n      }\n      validate() {\n        if (!COOKIE_OCTETS.test(this.value)) {\n          return false;\n        }\n        if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires)) {\n          return false;\n        }\n        if (this.maxAge != null && this.maxAge <= 0) {\n          return false;\n        }\n        if (this.path != null && !PATH_VALUE.test(this.path)) {\n          return false;\n        }\n        const cdomain = this.cdomain();\n        if (cdomain) {\n          if (cdomain.match(/\\.$/)) {\n            return false;\n          }\n          const suffix = pubsuffix.getPublicSuffix(cdomain);\n          if (suffix == null) {\n            return false;\n          }\n        }\n        return true;\n      }\n      setExpires(exp) {\n        if (exp instanceof Date) {\n          this.expires = exp;\n        } else {\n          this.expires = parseDate(exp) || \"Infinity\";\n        }\n      }\n      setMaxAge(age) {\n        if (age === Infinity || age === -Infinity) {\n          this.maxAge = age.toString();\n        } else {\n          this.maxAge = age;\n        }\n      }\n      cookieString() {\n        let val = this.value;\n        if (val == null) {\n          val = \"\";\n        }\n        if (this.key === \"\") {\n          return val;\n        }\n        return `${this.key}=${val}`;\n      }\n      // gives Set-Cookie header format\n      toString() {\n        let str = this.cookieString();\n        if (this.expires != Infinity) {\n          if (this.expires instanceof Date) {\n            str += `; Expires=${formatDate(this.expires)}`;\n          } else {\n            str += `; Expires=${this.expires}`;\n          }\n        }\n        if (this.maxAge != null && this.maxAge != Infinity) {\n          str += `; Max-Age=${this.maxAge}`;\n        }\n        if (this.domain && !this.hostOnly) {\n          str += `; Domain=${this.domain}`;\n        }\n        if (this.path) {\n          str += `; Path=${this.path}`;\n        }\n        if (this.secure) {\n          str += \"; Secure\";\n        }\n        if (this.httpOnly) {\n          str += \"; HttpOnly\";\n        }\n        if (this.sameSite && this.sameSite !== \"none\") {\n          const ssCanon = _Cookie.sameSiteCanonical[this.sameSite.toLowerCase()];\n          str += `; SameSite=${ssCanon ? ssCanon : this.sameSite}`;\n        }\n        if (this.extensions) {\n          this.extensions.forEach((ext) => {\n            str += `; ${ext}`;\n          });\n        }\n        return str;\n      }\n      // TTL() partially replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n      // elsewhere)\n      // S5.3 says to give the \"latest representable date\" for which we use Infinity\n      // For \"expired\" we use 0\n      TTL(now) {\n        if (this.maxAge != null) {\n          return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;\n        }\n        let expires = this.expires;\n        if (expires != Infinity) {\n          if (!(expires instanceof Date)) {\n            expires = parseDate(expires) || Infinity;\n          }\n          if (expires == Infinity) {\n            return Infinity;\n          }\n          return expires.getTime() - (now || Date.now());\n        }\n        return Infinity;\n      }\n      // expiryTime() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n      // elsewhere)\n      expiryTime(now) {\n        if (this.maxAge != null) {\n          const relativeTo = now || this.creation || /* @__PURE__ */ new Date();\n          const age = this.maxAge <= 0 ? -Infinity : this.maxAge * 1e3;\n          return relativeTo.getTime() + age;\n        }\n        if (this.expires == Infinity) {\n          return Infinity;\n        }\n        return this.expires.getTime();\n      }\n      // expiryDate() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n      // elsewhere), except it returns a Date\n      expiryDate(now) {\n        const millisec = this.expiryTime(now);\n        if (millisec == Infinity) {\n          return new Date(MAX_TIME);\n        } else if (millisec == -Infinity) {\n          return new Date(MIN_TIME);\n        } else {\n          return new Date(millisec);\n        }\n      }\n      // This replaces the \"persistent-flag\" parts of S5.3 step 3\n      isPersistent() {\n        return this.maxAge != null || this.expires != Infinity;\n      }\n      // Mostly S5.1.2 and S5.2.3:\n      canonicalizedDomain() {\n        if (this.domain == null) {\n          return null;\n        }\n        return canonicalDomain(this.domain);\n      }\n      cdomain() {\n        return this.canonicalizedDomain();\n      }\n    };\n    Cookie.cookiesCreated = 0;\n    Cookie.parse = parse;\n    Cookie.fromJSON = fromJSON;\n    Cookie.serializableProperties = Object.keys(cookieDefaults);\n    Cookie.sameSiteLevel = {\n      strict: 3,\n      lax: 2,\n      none: 1\n    };\n    Cookie.sameSiteCanonical = {\n      strict: \"Strict\",\n      lax: \"Lax\"\n    };\n    function getNormalizedPrefixSecurity(prefixSecurity) {\n      if (prefixSecurity != null) {\n        const normalizedPrefixSecurity = prefixSecurity.toLowerCase();\n        switch (normalizedPrefixSecurity) {\n          case PrefixSecurityEnum.STRICT:\n          case PrefixSecurityEnum.SILENT:\n          case PrefixSecurityEnum.DISABLED:\n            return normalizedPrefixSecurity;\n        }\n      }\n      return PrefixSecurityEnum.SILENT;\n    }\n    var CookieJar = class _CookieJar {\n      constructor(store, options = { rejectPublicSuffixes: true }) {\n        if (typeof options === \"boolean\") {\n          options = { rejectPublicSuffixes: options };\n        }\n        validators.validate(validators.isObject(options), options);\n        this.rejectPublicSuffixes = options.rejectPublicSuffixes;\n        this.enableLooseMode = !!options.looseMode;\n        this.allowSpecialUseDomain = typeof options.allowSpecialUseDomain === \"boolean\" ? options.allowSpecialUseDomain : true;\n        this.store = store || new MemoryCookieStore();\n        this.prefixSecurity = getNormalizedPrefixSecurity(options.prefixSecurity);\n        this._cloneSync = syncWrap(\"clone\");\n        this._importCookiesSync = syncWrap(\"_importCookies\");\n        this.getCookiesSync = syncWrap(\"getCookies\");\n        this.getCookieStringSync = syncWrap(\"getCookieString\");\n        this.getSetCookieStringsSync = syncWrap(\"getSetCookieStrings\");\n        this.removeAllCookiesSync = syncWrap(\"removeAllCookies\");\n        this.setCookieSync = syncWrap(\"setCookie\");\n        this.serializeSync = syncWrap(\"serialize\");\n      }\n      setCookie(cookie, url, options, cb) {\n        validators.validate(validators.isUrlStringOrObject(url), cb, options);\n        let err;\n        if (validators.isFunction(url)) {\n          cb = url;\n          return cb(new Error(\"No URL was specified\"));\n        }\n        const context = getCookieContext(url);\n        if (validators.isFunction(options)) {\n          cb = options;\n          options = {};\n        }\n        validators.validate(validators.isFunction(cb), cb);\n        if (!validators.isNonEmptyString(cookie) && !validators.isObject(cookie) && cookie instanceof String && cookie.length == 0) {\n          return cb(null);\n        }\n        const host = canonicalDomain(context.hostname);\n        const loose = options.loose || this.enableLooseMode;\n        let sameSiteContext = null;\n        if (options.sameSiteContext) {\n          sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n          if (!sameSiteContext) {\n            return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n          }\n        }\n        if (typeof cookie === \"string\" || cookie instanceof String) {\n          cookie = Cookie.parse(cookie, { loose });\n          if (!cookie) {\n            err = new Error(\"Cookie failed to parse\");\n            return cb(options.ignoreError ? null : err);\n          }\n        } else if (!(cookie instanceof Cookie)) {\n          err = new Error(\n            \"First argument to setCookie must be a Cookie object or string\"\n          );\n          return cb(options.ignoreError ? null : err);\n        }\n        const now = options.now || /* @__PURE__ */ new Date();\n        if (this.rejectPublicSuffixes && cookie.domain) {\n          const suffix = pubsuffix.getPublicSuffix(cookie.cdomain(), {\n            allowSpecialUseDomain: this.allowSpecialUseDomain,\n            ignoreError: options.ignoreError\n          });\n          if (suffix == null && !IP_V6_REGEX_OBJECT.test(cookie.domain)) {\n            err = new Error(\"Cookie has domain set to a public suffix\");\n            return cb(options.ignoreError ? null : err);\n          }\n        }\n        if (cookie.domain) {\n          if (!domainMatch(host, cookie.cdomain(), false)) {\n            err = new Error(\n              `Cookie not in this host's domain. Cookie:${cookie.cdomain()} Request:${host}`\n            );\n            return cb(options.ignoreError ? null : err);\n          }\n          if (cookie.hostOnly == null) {\n            cookie.hostOnly = false;\n          }\n        } else {\n          cookie.hostOnly = true;\n          cookie.domain = host;\n        }\n        if (!cookie.path || cookie.path[0] !== \"/\") {\n          cookie.path = defaultPath(context.pathname);\n          cookie.pathIsDefault = true;\n        }\n        if (options.http === false && cookie.httpOnly) {\n          err = new Error(\"Cookie is HttpOnly and this isn't an HTTP API\");\n          return cb(options.ignoreError ? null : err);\n        }\n        if (cookie.sameSite !== \"none\" && cookie.sameSite !== void 0 && sameSiteContext) {\n          if (sameSiteContext === \"none\") {\n            err = new Error(\n              \"Cookie is SameSite but this is a cross-origin request\"\n            );\n            return cb(options.ignoreError ? null : err);\n          }\n        }\n        const ignoreErrorForPrefixSecurity = this.prefixSecurity === PrefixSecurityEnum.SILENT;\n        const prefixSecurityDisabled = this.prefixSecurity === PrefixSecurityEnum.DISABLED;\n        if (!prefixSecurityDisabled) {\n          let errorFound = false;\n          let errorMsg;\n          if (!isSecurePrefixConditionMet(cookie)) {\n            errorFound = true;\n            errorMsg = \"Cookie has __Secure prefix but Secure attribute is not set\";\n          } else if (!isHostPrefixConditionMet(cookie)) {\n            errorFound = true;\n            errorMsg = \"Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'\";\n          }\n          if (errorFound) {\n            return cb(\n              options.ignoreError || ignoreErrorForPrefixSecurity ? null : new Error(errorMsg)\n            );\n          }\n        }\n        const store = this.store;\n        if (!store.updateCookie) {\n          store.updateCookie = function(oldCookie, newCookie, cb2) {\n            this.putCookie(newCookie, cb2);\n          };\n        }\n        function withCookie(err2, oldCookie) {\n          if (err2) {\n            return cb(err2);\n          }\n          const next = function(err3) {\n            if (err3) {\n              return cb(err3);\n            } else {\n              cb(null, cookie);\n            }\n          };\n          if (oldCookie) {\n            if (options.http === false && oldCookie.httpOnly) {\n              err2 = new Error(\"old Cookie is HttpOnly and this isn't an HTTP API\");\n              return cb(options.ignoreError ? null : err2);\n            }\n            cookie.creation = oldCookie.creation;\n            cookie.creationIndex = oldCookie.creationIndex;\n            cookie.lastAccessed = now;\n            store.updateCookie(oldCookie, cookie, next);\n          } else {\n            cookie.creation = cookie.lastAccessed = now;\n            store.putCookie(cookie, next);\n          }\n        }\n        store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);\n      }\n      // RFC6365 S5.4\n      getCookies(url, options, cb) {\n        validators.validate(validators.isUrlStringOrObject(url), cb, url);\n        const context = getCookieContext(url);\n        if (validators.isFunction(options)) {\n          cb = options;\n          options = {};\n        }\n        validators.validate(validators.isObject(options), cb, options);\n        validators.validate(validators.isFunction(cb), cb);\n        const host = canonicalDomain(context.hostname);\n        const path = context.pathname || \"/\";\n        let secure = options.secure;\n        if (secure == null && context.protocol && (context.protocol == \"https:\" || context.protocol == \"wss:\")) {\n          secure = true;\n        }\n        let sameSiteLevel = 0;\n        if (options.sameSiteContext) {\n          const sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n          sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];\n          if (!sameSiteLevel) {\n            return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n          }\n        }\n        let http = options.http;\n        if (http == null) {\n          http = true;\n        }\n        const now = options.now || Date.now();\n        const expireCheck = options.expire !== false;\n        const allPaths = !!options.allPaths;\n        const store = this.store;\n        function matchingCookie(c) {\n          if (c.hostOnly) {\n            if (c.domain != host) {\n              return false;\n            }\n          } else {\n            if (!domainMatch(host, c.domain, false)) {\n              return false;\n            }\n          }\n          if (!allPaths && !pathMatch(path, c.path)) {\n            return false;\n          }\n          if (c.secure && !secure) {\n            return false;\n          }\n          if (c.httpOnly && !http) {\n            return false;\n          }\n          if (sameSiteLevel) {\n            const cookieLevel = Cookie.sameSiteLevel[c.sameSite || \"none\"];\n            if (cookieLevel > sameSiteLevel) {\n              return false;\n            }\n          }\n          if (expireCheck && c.expiryTime() <= now) {\n            store.removeCookie(c.domain, c.path, c.key, () => {\n            });\n            return false;\n          }\n          return true;\n        }\n        store.findCookies(\n          host,\n          allPaths ? null : path,\n          this.allowSpecialUseDomain,\n          (err, cookies) => {\n            if (err) {\n              return cb(err);\n            }\n            cookies = cookies.filter(matchingCookie);\n            if (options.sort !== false) {\n              cookies = cookies.sort(cookieCompare);\n            }\n            const now2 = /* @__PURE__ */ new Date();\n            for (const cookie of cookies) {\n              cookie.lastAccessed = now2;\n            }\n            cb(null, cookies);\n          }\n        );\n      }\n      getCookieString(...args) {\n        const cb = args.pop();\n        validators.validate(validators.isFunction(cb), cb);\n        const next = function(err, cookies) {\n          if (err) {\n            cb(err);\n          } else {\n            cb(\n              null,\n              cookies.sort(cookieCompare).map((c) => c.cookieString()).join(\"; \")\n            );\n          }\n        };\n        args.push(next);\n        this.getCookies.apply(this, args);\n      }\n      getSetCookieStrings(...args) {\n        const cb = args.pop();\n        validators.validate(validators.isFunction(cb), cb);\n        const next = function(err, cookies) {\n          if (err) {\n            cb(err);\n          } else {\n            cb(\n              null,\n              cookies.map((c) => {\n                return c.toString();\n              })\n            );\n          }\n        };\n        args.push(next);\n        this.getCookies.apply(this, args);\n      }\n      serialize(cb) {\n        validators.validate(validators.isFunction(cb), cb);\n        let type = this.store.constructor.name;\n        if (validators.isObject(type)) {\n          type = null;\n        }\n        const serialized = {\n          // The version of tough-cookie that serialized this jar. Generally a good\n          // practice since future versions can make data import decisions based on\n          // known past behavior. When/if this matters, use `semver`.\n          version: `tough-cookie@${VERSION}`,\n          // add the store type, to make humans happy:\n          storeType: type,\n          // CookieJar configuration:\n          rejectPublicSuffixes: !!this.rejectPublicSuffixes,\n          enableLooseMode: !!this.enableLooseMode,\n          allowSpecialUseDomain: !!this.allowSpecialUseDomain,\n          prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),\n          // this gets filled from getAllCookies:\n          cookies: []\n        };\n        if (!(this.store.getAllCookies && typeof this.store.getAllCookies === \"function\")) {\n          return cb(\n            new Error(\n              \"store does not support getAllCookies and cannot be serialized\"\n            )\n          );\n        }\n        this.store.getAllCookies((err, cookies) => {\n          if (err) {\n            return cb(err);\n          }\n          serialized.cookies = cookies.map((cookie) => {\n            cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie;\n            delete cookie.creationIndex;\n            return cookie;\n          });\n          return cb(null, serialized);\n        });\n      }\n      toJSON() {\n        return this.serializeSync();\n      }\n      // use the class method CookieJar.deserialize instead of calling this directly\n      _importCookies(serialized, cb) {\n        let cookies = serialized.cookies;\n        if (!cookies || !Array.isArray(cookies)) {\n          return cb(new Error(\"serialized jar has no cookies array\"));\n        }\n        cookies = cookies.slice();\n        const putNext = (err) => {\n          if (err) {\n            return cb(err);\n          }\n          if (!cookies.length) {\n            return cb(err, this);\n          }\n          let cookie;\n          try {\n            cookie = fromJSON(cookies.shift());\n          } catch (e) {\n            return cb(e);\n          }\n          if (cookie === null) {\n            return putNext(null);\n          }\n          this.store.putCookie(cookie, putNext);\n        };\n        putNext();\n      }\n      clone(newStore, cb) {\n        if (arguments.length === 1) {\n          cb = newStore;\n          newStore = null;\n        }\n        this.serialize((err, serialized) => {\n          if (err) {\n            return cb(err);\n          }\n          _CookieJar.deserialize(serialized, newStore, cb);\n        });\n      }\n      cloneSync(newStore) {\n        if (arguments.length === 0) {\n          return this._cloneSync();\n        }\n        if (!newStore.synchronous) {\n          throw new Error(\n            \"CookieJar clone destination store is not synchronous; use async API instead.\"\n          );\n        }\n        return this._cloneSync(newStore);\n      }\n      removeAllCookies(cb) {\n        validators.validate(validators.isFunction(cb), cb);\n        const store = this.store;\n        if (typeof store.removeAllCookies === \"function\" && store.removeAllCookies !== Store.prototype.removeAllCookies) {\n          return store.removeAllCookies(cb);\n        }\n        store.getAllCookies((err, cookies) => {\n          if (err) {\n            return cb(err);\n          }\n          if (cookies.length === 0) {\n            return cb(null);\n          }\n          let completedCount = 0;\n          const removeErrors = [];\n          function removeCookieCb(removeErr) {\n            if (removeErr) {\n              removeErrors.push(removeErr);\n            }\n            completedCount++;\n            if (completedCount === cookies.length) {\n              return cb(removeErrors.length ? removeErrors[0] : null);\n            }\n          }\n          cookies.forEach((cookie) => {\n            store.removeCookie(\n              cookie.domain,\n              cookie.path,\n              cookie.key,\n              removeCookieCb\n            );\n          });\n        });\n      }\n      static deserialize(strOrObj, store, cb) {\n        if (arguments.length !== 3) {\n          cb = store;\n          store = null;\n        }\n        validators.validate(validators.isFunction(cb), cb);\n        let serialized;\n        if (typeof strOrObj === \"string\") {\n          serialized = jsonParse(strOrObj);\n          if (serialized instanceof Error) {\n            return cb(serialized);\n          }\n        } else {\n          serialized = strOrObj;\n        }\n        const jar = new _CookieJar(store, {\n          rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n          looseMode: serialized.enableLooseMode,\n          allowSpecialUseDomain: serialized.allowSpecialUseDomain,\n          prefixSecurity: serialized.prefixSecurity\n        });\n        jar._importCookies(serialized, (err) => {\n          if (err) {\n            return cb(err);\n          }\n          cb(null, jar);\n        });\n      }\n      static deserializeSync(strOrObj, store) {\n        const serialized = typeof strOrObj === \"string\" ? JSON.parse(strOrObj) : strOrObj;\n        const jar = new _CookieJar(store, {\n          rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n          looseMode: serialized.enableLooseMode\n        });\n        if (!jar.store.synchronous) {\n          throw new Error(\n            \"CookieJar store is not synchronous; use async API instead.\"\n          );\n        }\n        jar._importCookiesSync(serialized);\n        return jar;\n      }\n    };\n    CookieJar.fromJSON = CookieJar.deserializeSync;\n    [\n      \"_importCookies\",\n      \"clone\",\n      \"getCookies\",\n      \"getCookieString\",\n      \"getSetCookieStrings\",\n      \"removeAllCookies\",\n      \"serialize\",\n      \"setCookie\"\n    ].forEach((name) => {\n      CookieJar.prototype[name] = fromCallback(CookieJar.prototype[name]);\n    });\n    CookieJar.deserialize = fromCallback(CookieJar.deserialize);\n    function syncWrap(method) {\n      return function(...args) {\n        if (!this.store.synchronous) {\n          throw new Error(\n            \"CookieJar store is not synchronous; use async API instead.\"\n          );\n        }\n        let syncErr, syncResult;\n        this[method](...args, (err, result) => {\n          syncErr = err;\n          syncResult = result;\n        });\n        if (syncErr) {\n          throw syncErr;\n        }\n        return syncResult;\n      };\n    }\n    exports.version = VERSION;\n    exports.CookieJar = CookieJar;\n    exports.Cookie = Cookie;\n    exports.Store = Store;\n    exports.MemoryCookieStore = MemoryCookieStore;\n    exports.parseDate = parseDate;\n    exports.formatDate = formatDate;\n    exports.parse = parse;\n    exports.fromJSON = fromJSON;\n    exports.domainMatch = domainMatch;\n    exports.defaultPath = defaultPath;\n    exports.pathMatch = pathMatch;\n    exports.getPublicSuffix = pubsuffix.getPublicSuffix;\n    exports.cookieCompare = cookieCompare;\n    exports.permuteDomain = require_permuteDomain().permuteDomain;\n    exports.permutePath = permutePath;\n    exports.canonicalDomain = canonicalDomain;\n    exports.PrefixSecurityEnum = PrefixSecurityEnum;\n    exports.ParameterError = validators.ParameterError;\n  }\n});\n\n// source.js\nvar import_tough_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_tough_cookie.default;\nexport {\n  source_default as default\n};\n/*! Bundled license information:\n\ntough-cookie/lib/pubsuffix-psl.js:\n  (*!\n   * Copyright (c) 2018, Salesforce.com, Inc.\n   * All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without\n   * modification, are permitted provided that the following conditions are met:\n   *\n   * 1. Redistributions of source code must retain the above copyright notice,\n   * this list of conditions and the following disclaimer.\n   *\n   * 2. Redistributions in binary form must reproduce the above copyright notice,\n   * this list of conditions and the following disclaimer in the documentation\n   * and/or other materials provided with the distribution.\n   *\n   * 3. Neither the name of Salesforce.com nor the names of its contributors may\n   * be used to endorse or promote products derived from this software without\n   * specific prior written permission.\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n   * POSSIBILITY OF SUCH DAMAGE.\n   *)\n\ntough-cookie/lib/store.js:\n  (*!\n   * Copyright (c) 2015, Salesforce.com, Inc.\n   * All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without\n   * modification, are permitted provided that the following conditions are met:\n   *\n   * 1. Redistributions of source code must retain the above copyright notice,\n   * this list of conditions and the following disclaimer.\n   *\n   * 2. Redistributions in binary form must reproduce the above copyright notice,\n   * this list of conditions and the following disclaimer in the documentation\n   * and/or other materials provided with the distribution.\n   *\n   * 3. Neither the name of Salesforce.com nor the names of its contributors may\n   * be used to endorse or promote products derived from this software without\n   * specific prior written permission.\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n   * POSSIBILITY OF SUCH DAMAGE.\n   *)\n\ntough-cookie/lib/permuteDomain.js:\n  (*!\n   * Copyright (c) 2015, Salesforce.com, Inc.\n   * All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without\n   * modification, are permitted provided that the following conditions are met:\n   *\n   * 1. Redistributions of source code must retain the above copyright notice,\n   * this list of conditions and the following disclaimer.\n   *\n   * 2. Redistributions in binary form must reproduce the above copyright notice,\n   * this list of conditions and the following disclaimer in the documentation\n   * and/or other materials provided with the distribution.\n   *\n   * 3. Neither the name of Salesforce.com nor the names of its contributors may\n   * be used to endorse or promote products derived from this software without\n   * specific prior written permission.\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n   * POSSIBILITY OF SUCH DAMAGE.\n   *)\n\ntough-cookie/lib/pathMatch.js:\n  (*!\n   * Copyright (c) 2015, Salesforce.com, Inc.\n   * All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without\n   * modification, are permitted provided that the following conditions are met:\n   *\n   * 1. Redistributions of source code must retain the above copyright notice,\n   * this list of conditions and the following disclaimer.\n   *\n   * 2. Redistributions in binary form must reproduce the above copyright notice,\n   * this list of conditions and the following disclaimer in the documentation\n   * and/or other materials provided with the distribution.\n   *\n   * 3. Neither the name of Salesforce.com nor the names of its contributors may\n   * be used to endorse or promote products derived from this software without\n   * specific prior written permission.\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n   * POSSIBILITY OF SUCH DAMAGE.\n   *)\n\ntough-cookie/lib/memstore.js:\n  (*!\n   * Copyright (c) 2015, Salesforce.com, Inc.\n   * All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without\n   * modification, are permitted provided that the following conditions are met:\n   *\n   * 1. Redistributions of source code must retain the above copyright notice,\n   * this list of conditions and the following disclaimer.\n   *\n   * 2. Redistributions in binary form must reproduce the above copyright notice,\n   * this list of conditions and the following disclaimer in the documentation\n   * and/or other materials provided with the distribution.\n   *\n   * 3. Neither the name of Salesforce.com nor the names of its contributors may\n   * be used to endorse or promote products derived from this software without\n   * specific prior written permission.\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n   * POSSIBILITY OF SUCH DAMAGE.\n   *)\n\ntough-cookie/lib/cookie.js:\n  (*!\n   * Copyright (c) 2015-2020, Salesforce.com, Inc.\n   * All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without\n   * modification, are permitted provided that the following conditions are met:\n   *\n   * 1. Redistributions of source code must retain the above copyright notice,\n   * this list of conditions and the following disclaimer.\n   *\n   * 2. Redistributions in binary form must reproduce the above copyright notice,\n   * this list of conditions and the following disclaimer in the documentation\n   * and/or other materials provided with the distribution.\n   *\n   * 3. Neither the name of Salesforce.com nor the names of its contributors may\n   * be used to endorse or promote products derived from this software without\n   * specific prior written permission.\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n   * POSSIBILITY OF SUCH DAMAGE.\n   *)\n*/\n","import { invariant } from 'outvariant'\nimport { isNodeProcess } from 'is-node-process'\nimport toughCookie, {\n  type Cookie as CookieInstance,\n} from '@bundled-es-modules/tough-cookie'\n\nconst { Cookie, CookieJar, Store, MemoryCookieStore, domainMatch, pathMatch } =\n  toughCookie\n\n/**\n * Custom cookie store that uses the Web Storage API.\n * @see https://github.com/expo/tough-cookie-web-storage-store\n */\nclass WebStorageCookieStore extends Store {\n  private storage: Storage\n  private storageKey: string\n\n  constructor() {\n    super()\n\n    invariant(\n      typeof localStorage !== 'undefined',\n      'Failed to create a WebStorageCookieStore: `localStorage` is not available in this environment. This is likely an issue with MSW. Please report it on GitHub: https://github.com/mswjs/msw/issues',\n    )\n\n    this.synchronous = true\n    this.storage = localStorage\n    this.storageKey = '__msw-cookie-store__'\n  }\n\n  findCookie(\n    domain: string,\n    path: string,\n    key: string,\n    callback: (error: Error | null, cookie: CookieInstance | null) => void,\n  ): void {\n    try {\n      const store = this.getStore()\n      const cookies = this.filterCookiesFromList(store, { domain, path, key })\n      callback(null, cookies[0] || null)\n    } catch (error) {\n      if (error instanceof Error) {\n        callback(error, null)\n      }\n    }\n  }\n\n  findCookies(\n    domain: string,\n    path: string,\n    allowSpecialUseDomain: boolean,\n    callback: (error: Error | null, cookie: Array<CookieInstance>) => void,\n  ): void {\n    if (!domain) {\n      callback(null, [])\n      return\n    }\n\n    try {\n      const store = this.getStore()\n      const results = this.filterCookiesFromList(store, {\n        domain,\n        path,\n      })\n      callback(null, results)\n    } catch (error) {\n      if (error instanceof Error) {\n        callback(error, [])\n      }\n    }\n  }\n\n  putCookie(\n    cookie: CookieInstance,\n    callback: (error: Error | null) => void,\n  ): void {\n    try {\n      // Never set cookies with `maxAge` of `0`.\n      if (cookie.maxAge === 0) {\n        return\n      }\n\n      const store = this.getStore()\n      store.push(cookie)\n      this.updateStore(store)\n    } catch (error) {\n      if (error instanceof Error) {\n        callback(error)\n      }\n    }\n  }\n\n  updateCookie(\n    oldCookie: CookieInstance,\n    newCookie: CookieInstance,\n    callback: (error: Error | null) => void,\n  ): void {\n    /**\n     * If updating a cookie with `maxAge` of `0`, remove it from the store.\n     * Otherwise, two cookie entries will be created.\n     * @see https://github.com/mswjs/msw/issues/2272\n     */\n    if (newCookie.maxAge === 0) {\n      this.removeCookie(\n        newCookie.domain || '',\n        newCookie.path || '',\n        newCookie.key,\n        callback,\n      )\n      return\n    }\n\n    this.putCookie(newCookie, callback)\n  }\n\n  removeCookie(\n    domain: string,\n    path: string,\n    key: string,\n    callback: (error: Error | null) => void,\n  ): void {\n    try {\n      const store = this.getStore()\n      const nextStore = this.deleteCookiesFromList(store, { domain, path, key })\n      this.updateStore(nextStore)\n      callback(null)\n    } catch (error) {\n      if (error instanceof Error) {\n        callback(error)\n      }\n    }\n  }\n\n  removeCookies(\n    domain: string,\n    path: string,\n    callback: (error: Error | null) => void,\n  ): void {\n    try {\n      const store = this.getStore()\n      const nextStore = this.deleteCookiesFromList(store, { domain, path })\n      this.updateStore(nextStore)\n      callback(null)\n    } catch (error) {\n      if (error instanceof Error) {\n        callback(error)\n      }\n    }\n  }\n\n  getAllCookies(\n    callback: (error: Error | null, cookie: Array<CookieInstance>) => void,\n  ): void {\n    try {\n      callback(null, this.getStore())\n    } catch (error) {\n      if (error instanceof Error) {\n        callback(error, [])\n      }\n    }\n  }\n\n  private getStore(): Array<CookieInstance> {\n    try {\n      const json = this.storage.getItem(this.storageKey)\n\n      if (json == null) {\n        return []\n      }\n\n      const rawCookies = JSON.parse(json) as Array<Record<string, any>>\n      const cookies: Array<CookieInstance> = []\n      for (const rawCookie of rawCookies) {\n        const cookie = Cookie.fromJSON(rawCookie)\n        if (cookie != null) {\n          cookies.push(cookie)\n        }\n      }\n      return cookies\n    } catch {\n      return []\n    }\n  }\n\n  private updateStore(nextStore: Array<CookieInstance>) {\n    this.storage.setItem(\n      this.storageKey,\n      JSON.stringify(nextStore.map((cookie) => cookie.toJSON())),\n    )\n  }\n\n  private filterCookiesFromList(\n    cookies: Array<CookieInstance>,\n    matches: { domain?: string; path?: string; key?: string },\n  ): Array<CookieInstance> {\n    const result: Array<CookieInstance> = []\n\n    for (const cookie of cookies) {\n      if (matches.domain && !domainMatch(matches.domain, cookie.domain || '')) {\n        continue\n      }\n\n      if (matches.path && !pathMatch(matches.path, cookie.path || '')) {\n        continue\n      }\n\n      if (matches.key && cookie.key !== matches.key) {\n        continue\n      }\n\n      result.push(cookie)\n    }\n\n    return result\n  }\n\n  private deleteCookiesFromList(\n    cookies: Array<CookieInstance>,\n    matches: { domain?: string; path?: string; key?: string },\n  ) {\n    const matchingCookies = this.filterCookiesFromList(cookies, matches)\n    return cookies.filter((cookie) => !matchingCookies.includes(cookie))\n  }\n}\n\nconst store = isNodeProcess()\n  ? new MemoryCookieStore()\n  : new WebStorageCookieStore()\n\nexport const cookieStore = new CookieJar(store)\n","\"use strict\";\n\nvar defaultParseOptions = {\n  decodeValues: true,\n  map: false,\n  silent: false,\n};\n\nfunction isNonEmptyString(str) {\n  return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n  var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n  var nameValuePairStr = parts.shift();\n  var parsed = parseNameValuePair(nameValuePairStr);\n  var name = parsed.name;\n  var value = parsed.value;\n\n  options = options\n    ? Object.assign({}, defaultParseOptions, options)\n    : defaultParseOptions;\n\n  try {\n    value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n  } catch (e) {\n    console.error(\n      \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n        value +\n        \"'. Set options.decodeValues to false to disable this feature.\",\n      e\n    );\n  }\n\n  var cookie = {\n    name: name,\n    value: value,\n  };\n\n  parts.forEach(function (part) {\n    var sides = part.split(\"=\");\n    var key = sides.shift().trimLeft().toLowerCase();\n    var value = sides.join(\"=\");\n    if (key === \"expires\") {\n      cookie.expires = new Date(value);\n    } else if (key === \"max-age\") {\n      cookie.maxAge = parseInt(value, 10);\n    } else if (key === \"secure\") {\n      cookie.secure = true;\n    } else if (key === \"httponly\") {\n      cookie.httpOnly = true;\n    } else if (key === \"samesite\") {\n      cookie.sameSite = value;\n    } else {\n      cookie[key] = value;\n    }\n  });\n\n  return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n  // Parses name-value-pair according to rfc6265bis draft\n\n  var name = \"\";\n  var value = \"\";\n  var nameValueArr = nameValuePairStr.split(\"=\");\n  if (nameValueArr.length > 1) {\n    name = nameValueArr.shift();\n    value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n  } else {\n    value = nameValuePairStr;\n  }\n\n  return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n  options = options\n    ? Object.assign({}, defaultParseOptions, options)\n    : defaultParseOptions;\n\n  if (!input) {\n    if (!options.map) {\n      return [];\n    } else {\n      return {};\n    }\n  }\n\n  if (input.headers) {\n    if (typeof input.headers.getSetCookie === \"function\") {\n      // for fetch responses - they combine headers of the same type in the headers array,\n      // but getSetCookie returns an uncombined array\n      input = input.headers.getSetCookie();\n    } else if (input.headers[\"set-cookie\"]) {\n      // fast-path for node.js (which automatically normalizes header names to lower-case\n      input = input.headers[\"set-cookie\"];\n    } else {\n      // slow-path for other environments - see #25\n      var sch =\n        input.headers[\n          Object.keys(input.headers).find(function (key) {\n            return key.toLowerCase() === \"set-cookie\";\n          })\n        ];\n      // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n      if (!sch && input.headers.cookie && !options.silent) {\n        console.warn(\n          \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n        );\n      }\n      input = sch;\n    }\n  }\n  if (!Array.isArray(input)) {\n    input = [input];\n  }\n\n  options = options\n    ? Object.assign({}, defaultParseOptions, options)\n    : defaultParseOptions;\n\n  if (!options.map) {\n    return input.filter(isNonEmptyString).map(function (str) {\n      return parseString(str, options);\n    });\n  } else {\n    var cookies = {};\n    return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n      var cookie = parseString(str, options);\n      cookies[cookie.name] = cookie;\n      return cookies;\n    }, cookies);\n  }\n}\n\n/*\n  Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n  that are within a single set-cookie field-value, such as in the Expires portion.\n\n  This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n  Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n  React Native's fetch does this for *every* header, including set-cookie.\n\n  Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n  Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n  if (Array.isArray(cookiesString)) {\n    return cookiesString;\n  }\n  if (typeof cookiesString !== \"string\") {\n    return [];\n  }\n\n  var cookiesStrings = [];\n  var pos = 0;\n  var start;\n  var ch;\n  var lastComma;\n  var nextStart;\n  var cookiesSeparatorFound;\n\n  function skipWhitespace() {\n    while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n      pos += 1;\n    }\n    return pos < cookiesString.length;\n  }\n\n  function notSpecialChar() {\n    ch = cookiesString.charAt(pos);\n\n    return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n  }\n\n  while (pos < cookiesString.length) {\n    start = pos;\n    cookiesSeparatorFound = false;\n\n    while (skipWhitespace()) {\n      ch = cookiesString.charAt(pos);\n      if (ch === \",\") {\n        // ',' is a cookie separator if we have later first '=', not ';' or ','\n        lastComma = pos;\n        pos += 1;\n\n        skipWhitespace();\n        nextStart = pos;\n\n        while (pos < cookiesString.length && notSpecialChar()) {\n          pos += 1;\n        }\n\n        // currently special character\n        if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n          // we found cookies separator\n          cookiesSeparatorFound = true;\n          // pos is inside the next cookie, so back up and return it.\n          pos = nextStart;\n          cookiesStrings.push(cookiesString.substring(start, lastComma));\n          start = pos;\n        } else {\n          // in param ',' or param separator ';',\n          // we continue from that comma\n          pos = lastComma + 1;\n        }\n      } else {\n        pos += 1;\n      }\n    }\n\n    if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n      cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n    }\n  }\n\n  return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","import { splitCookiesString } from 'set-cookie-parser'\nimport { HeadersList, HeadersObject } from './glossary'\nimport { normalizeHeaderName } from './utils/normalizeHeaderName'\nimport { normalizeHeaderValue } from './utils/normalizeHeaderValue'\nimport { isValidHeaderName } from './utils/isValidHeaderName'\nimport { isValidHeaderValue } from './utils/isValidHeaderValue'\n\nexport const NORMALIZED_HEADERS: unique symbol = Symbol('normalizedHeaders')\n\nexport const RAW_HEADER_NAMES: unique symbol = Symbol('rawHeaderNames')\n\nconst HEADER_VALUE_DELIMITER = ', ' as const\n\nexport class Headers {\n  // Normalized header {\"name\":\"a, b\"} storage.\n  private [NORMALIZED_HEADERS]: Record<string, string> = {}\n\n  // Keeps the mapping between the raw header name\n  // and the normalized header name to ease the lookup.\n  private [RAW_HEADER_NAMES]: Map<string, string> = new Map()\n\n  constructor(init?: HeadersInit | HeadersObject | HeadersList) {\n    /**\n     * @note Cannot necessarily check if the `init` is an instance of the\n     * `Headers` because that class may not be defined in Node or jsdom.\n     */\n    if (\n      ['Headers', 'HeadersPolyfill'].includes(init?.constructor.name) ||\n      init instanceof Headers ||\n      (typeof globalThis.Headers !== 'undefined' &&\n        init instanceof globalThis.Headers)\n    ) {\n      const initialHeaders = init as Headers\n      initialHeaders.forEach((value, name) => {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(init)) {\n      init.forEach(([name, value]) => {\n        this.append(\n          name,\n          Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n        )\n      })\n    } else if (init) {\n      Object.getOwnPropertyNames(init).forEach((name) => {\n        const value = init[name]\n        this.append(\n          name,\n          Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n        )\n      })\n    }\n  }\n\n  [Symbol.toStringTag] = 'Headers';\n\n  [Symbol.iterator]() {\n    return this.entries()\n  }\n\n  *keys(): IterableIterator<string> {\n    for (const [name] of this.entries()) {\n      yield name\n    }\n  }\n\n  *values(): IterableIterator<string> {\n    for (const [, value] of this.entries()) {\n      yield value\n    }\n  }\n\n  *entries(): IterableIterator<[string, string]> {\n    // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n    let sortedKeys = Object.keys(this[NORMALIZED_HEADERS]).sort((a, b) =>\n      a.localeCompare(b)\n    )\n    for (const name of sortedKeys) {\n      if (name === 'set-cookie') {\n        for (const value of this.getSetCookie()) {\n          yield [name, value]\n        }\n      } else {\n        yield [name, this.get(name)]\n      }\n    }\n  }\n\n  /**\n   * Returns a boolean stating whether a `Headers` object contains a certain header.\n   */\n  has(name: string): boolean {\n    if (!isValidHeaderName(name)) {\n      throw new TypeError(`Invalid header name \"${name}\"`)\n    }\n\n    return this[NORMALIZED_HEADERS].hasOwnProperty(normalizeHeaderName(name))\n  }\n\n  /**\n   * Returns a `ByteString` sequence of all the values of a header with a given name.\n   */\n  get(name: string): string | null {\n    if (!isValidHeaderName(name)) {\n      throw TypeError(`Invalid header name \"${name}\"`)\n    }\n\n    return this[NORMALIZED_HEADERS][normalizeHeaderName(name)] ?? null\n  }\n\n  /**\n   * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.\n   */\n  set(name: string, value: string): void {\n    if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n      return\n    }\n\n    const normalizedName = normalizeHeaderName(name)\n    const normalizedValue = normalizeHeaderValue(value)\n\n    this[NORMALIZED_HEADERS][normalizedName] =\n      normalizeHeaderValue(normalizedValue)\n    this[RAW_HEADER_NAMES].set(normalizedName, name)\n  }\n\n  /**\n   * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.\n   */\n  append(name: string, value: string): void {\n    if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n      return\n    }\n\n    const normalizedName = normalizeHeaderName(name)\n    const normalizedValue = normalizeHeaderValue(value)\n\n    let resolvedValue = this.has(normalizedName)\n      ? `${this.get(normalizedName)}, ${normalizedValue}`\n      : normalizedValue\n\n    this.set(name, resolvedValue)\n  }\n\n  /**\n   * Deletes a header from the `Headers` object.\n   */\n  delete(name: string): void {\n    if (!isValidHeaderName(name)) {\n      return\n    }\n\n    if (!this.has(name)) {\n      return\n    }\n\n    const normalizedName = normalizeHeaderName(name)\n    delete this[NORMALIZED_HEADERS][normalizedName]\n    this[RAW_HEADER_NAMES].delete(normalizedName)\n  }\n\n  /**\n   * Traverses the `Headers` object,\n   * calling the given callback for each header.\n   */\n  forEach<ThisArg = this>(\n    callback: (\n      this: ThisArg,\n      value: string,\n      name: string,\n      parent: this\n    ) => void,\n    thisArg?: ThisArg\n  ) {\n    for (const [name, value] of this.entries()) {\n      callback.call(thisArg, value, name, this)\n    }\n  }\n\n  /**\n   * Returns an array containing the values\n   * of all Set-Cookie headers associated\n   * with a response\n   */\n  getSetCookie(): string[] {\n    const setCookieHeader = this.get('set-cookie')\n\n    if (setCookieHeader === null) {\n      return []\n    }\n\n    if (setCookieHeader === '') {\n      return ['']\n    }\n\n    return splitCookiesString(setCookieHeader)\n  }\n}\n","export type PromiseState = 'pending' | 'fulfilled' | 'rejected'\n\nexport type Executor<Value> = ConstructorParameters<typeof Promise<Value>>[0]\nexport type ResolveFunction<Value> = Parameters<Executor<Value>>[0]\nexport type RejectFunction<Reason> = Parameters<Executor<Reason>>[1]\n\nexport type DeferredPromiseExecutor<Input = never, Output = Input> = {\n  (resolve?: ResolveFunction<Input>, reject?: RejectFunction<any>): void\n\n  resolve: ResolveFunction<Input>\n  reject: RejectFunction<any>\n  result?: Output\n  state: PromiseState\n  rejectionReason?: unknown\n}\nexport function createDeferredExecutor<\n  Input = never,\n  Output = Input\n>(): DeferredPromiseExecutor<Input, Output> {\n  const executor = <DeferredPromiseExecutor<Input, Output>>((\n    resolve,\n    reject\n  ) => {\n    executor.state = 'pending'\n\n    executor.resolve = (data) => {\n      if (executor.state !== 'pending') {\n        return\n      }\n\n      executor.result = data as Output\n\n      const onFulfilled = <Value>(value: Value) => {\n        executor.state = 'fulfilled'\n        return value\n      }\n\n      return resolve(\n        data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)\n      )\n    }\n\n    executor.reject = (reason) => {\n      if (executor.state !== 'pending') {\n        return\n      }\n\n      queueMicrotask(() => {\n        executor.state = 'rejected'\n      })\n\n      return reject((executor.rejectionReason = reason))\n    }\n  })\n\n  return executor\n}\n","import {\n  type Executor,\n  type RejectFunction,\n  type ResolveFunction,\n  type DeferredPromiseExecutor,\n  createDeferredExecutor,\n} from './createDeferredExecutor'\n\nexport class DeferredPromise<Input, Output = Input> extends Promise<Input> {\n  #executor: DeferredPromiseExecutor\n\n  public resolve: ResolveFunction<Output>\n  public reject: RejectFunction<Output>\n\n  constructor(executor: Executor<Input> | null = null) {\n    const deferredExecutor = createDeferredExecutor()\n    super((originalResolve, originalReject) => {\n      deferredExecutor(originalResolve, originalReject)\n      executor?.(deferredExecutor.resolve, deferredExecutor.reject)\n    })\n\n    this.#executor = deferredExecutor\n    this.resolve = this.#executor.resolve\n    this.reject = this.#executor.reject\n  }\n\n  public get state() {\n    return this.#executor.state\n  }\n\n  public get rejectionReason() {\n    return this.#executor.rejectionReason\n  }\n\n  public then<ThenResult = Input, CatchResult = never>(\n    onFulfilled?: (value: Input) => ThenResult | PromiseLike<ThenResult>,\n    onRejected?: (reason: any) => CatchResult | PromiseLike<CatchResult>\n  ) {\n    return this.#decorate(super.then(onFulfilled, onRejected))\n  }\n\n  public catch<CatchResult = never>(\n    onRejected?: (reason: any) => CatchResult | PromiseLike<CatchResult>\n  ) {\n    return this.#decorate(super.catch(onRejected))\n  }\n\n  public finally(onfinally?: () => void | Promise<any>) {\n    return this.#decorate(super.finally(onfinally))\n  }\n\n  #decorate<ChildInput>(\n    promise: Promise<ChildInput>\n  ): DeferredPromise<ChildInput, Output> {\n    return Object.defineProperties(promise, {\n      resolve: { configurable: true, value: this.resolve },\n      reject: { configurable: true, value: this.reject },\n    }) as DeferredPromise<ChildInput, Output>\n  }\n}\n","import { checkGlobals } from './utils/internal/checkGlobals'\n\nexport { SetupApi } from './SetupApi'\n\n/* HTTP handlers */\nexport { RequestHandler } from './handlers/RequestHandler'\nexport { http } from './http'\nexport { HttpHandler, HttpMethods } from './handlers/HttpHandler'\nexport { graphql } from './graphql'\nexport { GraphQLHandler } from './handlers/GraphQLHandler'\n\n/* WebSocket handler */\nexport { ws, type WebSocketLink } from './ws'\nexport {\n  WebSocketHandler,\n  type WebSocketHandlerEventMap,\n  type WebSocketHandlerConnection,\n} from './handlers/WebSocketHandler'\n\n/* Utils */\nexport { matchRequestUrl } from './utils/matching/matchRequestUrl'\nexport * from './utils/handleRequest'\nexport { getResponse } from './getResponse'\nexport { cleanUrl } from './utils/url/cleanUrl'\n\n/**\n * Type definitions.\n */\n\nexport type { SharedOptions, LifeCycleEventsMap } from './sharedOptions'\n\nexport type {\n  ResponseResolver,\n  ResponseResolverReturnType,\n  AsyncResponseResolverReturnType,\n  RequestHandlerOptions,\n  DefaultBodyType,\n  DefaultRequestMultipartBody,\n  JsonBodyType,\n} from './handlers/RequestHandler'\n\nexport type {\n  RequestQuery,\n  HttpRequestParsedResult,\n} from './handlers/HttpHandler'\nexport type { HttpRequestHandler, HttpResponseResolver } from './http'\n\nexport type {\n  GraphQLQuery,\n  GraphQLVariables,\n  GraphQLRequestBody,\n  GraphQLJsonRequestBody,\n} from './handlers/GraphQLHandler'\nexport type { GraphQLRequestHandler, GraphQLResponseResolver } from './graphql'\n\nexport type { WebSocketData, WebSocketEventListener } from './ws'\n\nexport type { Path, PathParams, Match } from './utils/matching/matchRequestUrl'\nexport type { ParsedGraphQLRequest } from './utils/internal/parseGraphQLRequest'\n\nexport * from './HttpResponse'\nexport * from './delay'\nexport { bypass } from './bypass'\nexport { passthrough } from './passthrough'\n\n// Validate environmental globals before executing any code.\n// This ensures that the library gives user-friendly errors\n// when ran in the environments that require additional polyfills\n// from the end user.\ncheckGlobals()\n","import { Agent } from 'http'\nimport { RequestOptions, Agent as HttpsAgent } from 'https'\nimport { Logger } from '@open-draft/logger'\n\nconst logger = new Logger('utils getUrlByRequestOptions')\n\n// Request instance constructed by the \"request\" library\n// has a \"self\" property that has a \"uri\" field. This is\n// reproducible by performing a \"XMLHttpRequest\" request in JSDOM.\nexport interface RequestSelf {\n  uri?: URL\n}\n\nexport type ResolvedRequestOptions = RequestOptions & RequestSelf\n\nexport const DEFAULT_PATH = '/'\nconst DEFAULT_PROTOCOL = 'http:'\nconst DEFAULT_HOSTNAME = 'localhost'\nconst SSL_PORT = 443\n\nfunction getAgent(\n  options: ResolvedRequestOptions\n): Agent | HttpsAgent | undefined {\n  return options.agent instanceof Agent ? options.agent : undefined\n}\n\nfunction getProtocolByRequestOptions(options: ResolvedRequestOptions): string {\n  if (options.protocol) {\n    return options.protocol\n  }\n\n  const agent = getAgent(options)\n  const agentProtocol = (agent as RequestOptions)?.protocol\n\n  if (agentProtocol) {\n    return agentProtocol\n  }\n\n  const port = getPortByRequestOptions(options)\n  const isSecureRequest = options.cert || port === SSL_PORT\n\n  return isSecureRequest ? 'https:' : options.uri?.protocol || DEFAULT_PROTOCOL\n}\n\nfunction getPortByRequestOptions(\n  options: ResolvedRequestOptions\n): number | undefined {\n  // Use the explicitly provided port.\n  if (options.port) {\n    return Number(options.port)\n  }\n\n  // Otherwise, try to resolve port from the agent.\n  const agent = getAgent(options)\n\n  if ((agent as HttpsAgent)?.options.port) {\n    return Number((agent as HttpsAgent).options.port)\n  }\n\n  if ((agent as RequestOptions)?.defaultPort) {\n    return Number((agent as RequestOptions).defaultPort)\n  }\n\n  // Lastly, return undefined indicating that the port\n  // must inferred from the protocol. Do not infer it here.\n  return undefined\n}\n\ninterface RequestAuth {\n  username: string\n  password: string\n}\n\nfunction getAuthByRequestOptions(\n  options: ResolvedRequestOptions\n): RequestAuth | undefined {\n  if (options.auth) {\n    const [username, password] = options.auth.split(':')\n    return { username, password }\n  }\n}\n\n/**\n * Returns true if host looks like an IPv6 address without surrounding brackets\n * It assumes any host containing `:` is definitely not IPv4 and probably IPv6,\n * but note that this could include invalid IPv6 addresses as well.\n */\nfunction isRawIPv6Address(host: string): boolean {\n  return host.includes(':') && !host.startsWith('[') && !host.endsWith(']')\n}\n\nfunction getHostname(options: ResolvedRequestOptions): string | undefined {\n  let host = options.hostname || options.host\n\n  if (host) {\n    if (isRawIPv6Address(host)) {\n       host = `[${host}]`\n    }\n\n    // Check the presence of the port, and if it's present,\n    // remove it from the host, returning a hostname.\n    return new URL(`http://${host}`).hostname\n  }\n\n  return DEFAULT_HOSTNAME\n}\n\n/**\n * Creates a `URL` instance from a given `RequestOptions` object.\n */\nexport function getUrlByRequestOptions(options: ResolvedRequestOptions): URL {\n  logger.info('request options', options)\n\n  if (options.uri) {\n    logger.info(\n      'constructing url from explicitly provided \"options.uri\": %s',\n      options.uri\n    )\n    return new URL(options.uri.href)\n  }\n\n  logger.info('figuring out url from request options...')\n\n  const protocol = getProtocolByRequestOptions(options)\n  logger.info('protocol', protocol)\n\n  const port = getPortByRequestOptions(options)\n  logger.info('port', port)\n\n  const hostname = getHostname(options)\n  logger.info('hostname', hostname)\n\n  const path = options.path || DEFAULT_PATH\n  logger.info('path', path)\n\n  const credentials = getAuthByRequestOptions(options)\n  logger.info('credentials', credentials)\n\n  const authString = credentials\n    ? `${credentials.username}:${credentials.password}@`\n    : ''\n  logger.info('auth string:', authString)\n\n  const portString = typeof port !== 'undefined' ? `:${port}` : ''\n  const url = new URL(`${protocol}//${hostname}${portString}${path}`)\n  url.username = credentials?.username || ''\n  url.password = credentials?.password || ''\n\n  logger.info('created url:', url)\n\n  return url\n}\n","import { Logger } from '@open-draft/logger'\n\nconst logger = new Logger('cloneObject')\n\nfunction isPlainObject(obj?: Record<string, any>): boolean {\n  logger.info('is plain object?', obj)\n\n  if (obj == null || !obj.constructor?.name) {\n    logger.info('given object is undefined, not a plain object...')\n    return false\n  }\n\n  logger.info('checking the object constructor:', obj.constructor.name)\n  return obj.constructor.name === 'Object'\n}\n\nexport function cloneObject<ObjectType extends Record<string, any>>(\n  obj: ObjectType\n): ObjectType {\n  logger.info('cloning object:', obj)\n\n  const enumerableProperties = Object.entries(obj).reduce<Record<string, any>>(\n    (acc, [key, value]) => {\n      logger.info('analyzing key-value pair:', key, value)\n\n      // Recursively clone only plain objects, omitting class instances.\n      acc[key] = isPlainObject(value) ? cloneObject(value) : value\n      return acc\n    },\n    {}\n  )\n\n  return isPlainObject(obj)\n    ? enumerableProperties\n    : Object.assign(Object.getPrototypeOf(obj), enumerableProperties)\n}\n","import { urlToHttpOptions } from 'node:url'\nimport {\n  Agent as HttpAgent,\n  globalAgent as httpGlobalAgent,\n  IncomingMessage,\n} from 'node:http'\nimport {\n  RequestOptions,\n  Agent as HttpsAgent,\n  globalAgent as httpsGlobalAgent,\n} from 'node:https'\nimport {\n  /**\n   * @note Use the Node.js URL instead of the global URL\n   * because environments like JSDOM may override the global,\n   * breaking the compatibility with Node.js.\n   * @see https://github.com/node-fetch/node-fetch/issues/1376#issuecomment-966435555\n   */\n  URL,\n  Url as LegacyURL,\n  parse as parseUrl,\n} from 'node:url'\nimport { Logger } from '@open-draft/logger'\nimport {\n  ResolvedRequestOptions,\n  getUrlByRequestOptions,\n} from '../../../utils/getUrlByRequestOptions'\nimport { cloneObject } from '../../../utils/cloneObject'\nimport { isObject } from '../../../utils/isObject'\n\nconst logger = new Logger('http normalizeClientRequestArgs')\n\nexport type HttpRequestCallback = (response: IncomingMessage) => void\n\nexport type ClientRequestArgs =\n  // Request without any arguments is also possible.\n  | []\n  | [string | URL | LegacyURL, HttpRequestCallback?]\n  | [string | URL | LegacyURL, RequestOptions, HttpRequestCallback?]\n  | [RequestOptions, HttpRequestCallback?]\n\nfunction resolveRequestOptions(\n  args: ClientRequestArgs,\n  url: URL\n): RequestOptions {\n  // Calling `fetch` provides only URL to `ClientRequest`\n  // without any `RequestOptions` or callback.\n  if (typeof args[1] === 'undefined' || typeof args[1] === 'function') {\n    logger.info('request options not provided, deriving from the url', url)\n    return urlToHttpOptions(url)\n  }\n\n  if (args[1]) {\n    logger.info('has custom RequestOptions!', args[1])\n    const requestOptionsFromUrl = urlToHttpOptions(url)\n\n    logger.info('derived RequestOptions from the URL:', requestOptionsFromUrl)\n\n    /**\n     * Clone the request options to lock their state\n     * at the moment they are provided to `ClientRequest`.\n     * @see https://github.com/mswjs/interceptors/issues/86\n     */\n    logger.info('cloning RequestOptions...')\n    const clonedRequestOptions = cloneObject(args[1])\n    logger.info('successfully cloned RequestOptions!', clonedRequestOptions)\n\n    return {\n      ...requestOptionsFromUrl,\n      ...clonedRequestOptions,\n    }\n  }\n\n  logger.info('using an empty object as request options')\n  return {} as RequestOptions\n}\n\n/**\n * Overrides the given `URL` instance with the explicit properties provided\n * on the `RequestOptions` object. The options object takes precedence,\n * and will replace URL properties like \"host\", \"path\", and \"port\", if specified.\n */\nfunction overrideUrlByRequestOptions(url: URL, options: RequestOptions): URL {\n  url.host = options.host || url.host\n  url.hostname = options.hostname || url.hostname\n  url.port = options.port ? options.port.toString() : url.port\n\n  if (options.path) {\n    const parsedOptionsPath = parseUrl(options.path, false)\n    url.pathname = parsedOptionsPath.pathname || ''\n    url.search = parsedOptionsPath.search || ''\n  }\n\n  return url\n}\n\nfunction resolveCallback(\n  args: ClientRequestArgs\n): HttpRequestCallback | undefined {\n  return typeof args[1] === 'function' ? args[1] : args[2]\n}\n\nexport type NormalizedClientRequestArgs = [\n  url: URL,\n  options: ResolvedRequestOptions,\n  callback?: HttpRequestCallback\n]\n\n/**\n * Normalizes parameters given to a `http.request` call\n * so it always has a `URL` and `RequestOptions`.\n */\nexport function normalizeClientRequestArgs(\n  defaultProtocol: string,\n  args: ClientRequestArgs\n): NormalizedClientRequestArgs {\n  let url: URL\n  let options: ResolvedRequestOptions\n  let callback: HttpRequestCallback | undefined\n\n  logger.info('arguments', args)\n  logger.info('using default protocol:', defaultProtocol)\n\n  // Support \"http.request()\" calls without any arguments.\n  // That call results in a \"GET http://localhost\" request.\n  if (args.length === 0) {\n    const url = new URL('http://localhost')\n    const options = resolveRequestOptions(args, url)\n    return [url, options]\n  }\n\n  // Convert a url string into a URL instance\n  // and derive request options from it.\n  if (typeof args[0] === 'string') {\n    logger.info('first argument is a location string:', args[0])\n\n    url = new URL(args[0])\n    logger.info('created a url:', url)\n\n    const requestOptionsFromUrl = urlToHttpOptions(url)\n    logger.info('request options from url:', requestOptionsFromUrl)\n\n    options = resolveRequestOptions(args, url)\n    logger.info('resolved request options:', options)\n\n    callback = resolveCallback(args)\n  }\n  // Handle a given URL instance as-is\n  // and derive request options from it.\n  else if (args[0] instanceof URL) {\n    url = args[0]\n    logger.info('first argument is a URL:', url)\n\n    // Check if the second provided argument is RequestOptions.\n    // If it is, check if \"options.path\" was set and rewrite it\n    // on the input URL.\n    // Do this before resolving options from the URL below\n    // to prevent query string from being duplicated in the path.\n    if (typeof args[1] !== 'undefined' && isObject<RequestOptions>(args[1])) {\n      url = overrideUrlByRequestOptions(url, args[1])\n    }\n\n    options = resolveRequestOptions(args, url)\n    logger.info('derived request options:', options)\n\n    callback = resolveCallback(args)\n  }\n  // Handle a legacy URL instance and re-normalize from either a RequestOptions object\n  // or a WHATWG URL.\n  else if ('hash' in args[0] && !('method' in args[0])) {\n    const [legacyUrl] = args\n    logger.info('first argument is a legacy URL:', legacyUrl)\n\n    if (legacyUrl.hostname === null) {\n      /**\n       * We are dealing with a relative url, so use the path as an \"option\" and\n       * merge in any existing options, giving priority to exising options -- i.e. a path in any\n       * existing options will take precedence over the one contained in the url. This is consistent\n       * with the behaviour in ClientRequest.\n       * @see https://github.com/nodejs/node/blob/d84f1312915fe45fe0febe888db692c74894c382/lib/_http_client.js#L122\n       */\n      logger.info('given legacy URL is relative (no hostname)')\n\n      return isObject(args[1])\n        ? normalizeClientRequestArgs(defaultProtocol, [\n            { path: legacyUrl.path, ...args[1] },\n            args[2],\n          ])\n        : normalizeClientRequestArgs(defaultProtocol, [\n            { path: legacyUrl.path },\n            args[1] as HttpRequestCallback,\n          ])\n    }\n\n    logger.info('given legacy url is absolute')\n\n    // We are dealing with an absolute URL, so convert to WHATWG and try again.\n    const resolvedUrl = new URL(legacyUrl.href)\n\n    return args[1] === undefined\n      ? normalizeClientRequestArgs(defaultProtocol, [resolvedUrl])\n      : typeof args[1] === 'function'\n      ? normalizeClientRequestArgs(defaultProtocol, [resolvedUrl, args[1]])\n      : normalizeClientRequestArgs(defaultProtocol, [\n          resolvedUrl,\n          args[1],\n          args[2],\n        ])\n  }\n  // Handle a given \"RequestOptions\" object as-is\n  // and derive the URL instance from it.\n  else if (isObject(args[0])) {\n    options = { ...(args[0] as any) }\n    logger.info('first argument is RequestOptions:', options)\n\n    // When handling a \"RequestOptions\" object without an explicit \"protocol\",\n    // infer the protocol from the request issuing module (http/https).\n    options.protocol = options.protocol || defaultProtocol\n    logger.info('normalized request options:', options)\n\n    url = getUrlByRequestOptions(options)\n    logger.info('created a URL from RequestOptions:', url.href)\n\n    callback = resolveCallback(args)\n  } else {\n    throw new Error(\n      `Failed to construct ClientRequest with these parameters: ${args}`\n    )\n  }\n\n  options.protocol = options.protocol || url.protocol\n  options.method = options.method || 'GET'\n\n  /**\n   * Infer a fallback agent from the URL protocol.\n   * The interception is done on the \"ClientRequest\" level (\"NodeClientRequest\")\n   * and it may miss the correct agent. Always align the agent\n   * with the URL protocol, if not provided.\n   *\n   * @note Respect the \"agent: false\" value.\n   */\n  if (typeof options.agent === 'undefined') {\n    const agent =\n      options.protocol === 'https:'\n        ? new HttpsAgent({\n            rejectUnauthorized: options.rejectUnauthorized,\n          })\n        : new HttpAgent()\n\n    options.agent = agent\n    logger.info('resolved fallback agent:', agent)\n  }\n\n  /**\n   * Ensure that the default Agent is always set.\n   * This prevents the protocol mismatch for requests with { agent: false },\n   * where the global Agent is inferred.\n   * @see https://github.com/mswjs/msw/issues/1150\n   * @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L130\n   * @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L157-L159\n   */\n  if (!options._defaultAgent) {\n    logger.info(\n      'has no default agent, setting the default agent for \"%s\"',\n      options.protocol\n    )\n\n    options._defaultAgent =\n      options.protocol === 'https:' ? httpsGlobalAgent : httpGlobalAgent\n  }\n\n  logger.info('successfully resolved url:', url.href)\n  logger.info('successfully resolved options:', options)\n  logger.info('successfully resolved callback:', callback)\n\n  /**\n   * @note If the user-provided URL is not a valid URL in Node.js,\n   * (e.g. the one provided by the JSDOM polyfills), case it to\n   * string. Otherwise, this throws on Node.js incompatibility\n   * (`ERR_INVALID_ARG_TYPE` on the connection listener)\n   * @see https://github.com/node-fetch/node-fetch/issues/1376#issuecomment-966435555\n   */\n  if (!(url instanceof URL)) {\n    url = (url as any).toString()\n  }\n\n  return [url, options, callback]\n}\n","/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n  const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n  // The property is not set at all.\n  if (typeof descriptor === 'undefined') {\n    return false\n  }\n\n  // The property is set to a getter that returns undefined.\n  if (\n    typeof descriptor.get === 'function' &&\n    typeof descriptor.get() === 'undefined'\n  ) {\n    return false\n  }\n\n  // The property is set to a value equal to undefined.\n  if (typeof descriptor.get === 'undefined' && descriptor.value == null) {\n    return false\n  }\n\n  if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n    console.error(\n      `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n    )\n    return false\n  }\n\n  return true\n}\n","import { Logger } from '@open-draft/logger'\nimport { Emitter, Listener } from 'strict-event-emitter'\n\nexport type InterceptorEventMap = Record<string, any>\nexport type InterceptorSubscription = () => void\n\n/**\n * Request header name to detect when a single request\n * is being handled by nested interceptors (XHR -> ClientRequest).\n * Obscure by design to prevent collisions with user-defined headers.\n * Ideally, come up with the Interceptor-level mechanism for this.\n * @see https://github.com/mswjs/interceptors/issues/378\n */\nexport const INTERNAL_REQUEST_ID_HEADER_NAME =\n  'x-interceptors-internal-request-id'\n\nexport function getGlobalSymbol<V>(symbol: Symbol): V | undefined {\n  return (\n    // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n    globalThis[symbol] || undefined\n  )\n}\n\nfunction setGlobalSymbol(symbol: Symbol, value: any): void {\n  // @ts-ignore\n  globalThis[symbol] = value\n}\n\nexport function deleteGlobalSymbol(symbol: Symbol): void {\n  // @ts-ignore\n  delete globalThis[symbol]\n}\n\nexport enum InterceptorReadyState {\n  INACTIVE = 'INACTIVE',\n  APPLYING = 'APPLYING',\n  APPLIED = 'APPLIED',\n  DISPOSING = 'DISPOSING',\n  DISPOSED = 'DISPOSED',\n}\n\nexport type ExtractEventNames<Events extends Record<string, any>> =\n  Events extends Record<infer EventName, any> ? EventName : never\n\nexport class Interceptor<Events extends InterceptorEventMap> {\n  protected emitter: Emitter<Events>\n  protected subscriptions: Array<InterceptorSubscription>\n  protected logger: Logger\n\n  public readyState: InterceptorReadyState\n\n  constructor(private readonly symbol: symbol) {\n    this.readyState = InterceptorReadyState.INACTIVE\n\n    this.emitter = new Emitter()\n    this.subscriptions = []\n    this.logger = new Logger(symbol.description!)\n\n    // Do not limit the maximum number of listeners\n    // so not to limit the maximum amount of parallel events emitted.\n    this.emitter.setMaxListeners(0)\n\n    this.logger.info('constructing the interceptor...')\n  }\n\n  /**\n   * Determine if this interceptor can be applied\n   * in the current environment.\n   */\n  protected checkEnvironment(): boolean {\n    return true\n  }\n\n  /**\n   * Apply this interceptor to the current process.\n   * Returns an already running interceptor instance if it's present.\n   */\n  public apply(): void {\n    const logger = this.logger.extend('apply')\n    logger.info('applying the interceptor...')\n\n    if (this.readyState === InterceptorReadyState.APPLIED) {\n      logger.info('intercepted already applied!')\n      return\n    }\n\n    const shouldApply = this.checkEnvironment()\n\n    if (!shouldApply) {\n      logger.info('the interceptor cannot be applied in this environment!')\n      return\n    }\n\n    this.readyState = InterceptorReadyState.APPLYING\n\n    // Whenever applying a new interceptor, check if it hasn't been applied already.\n    // This enables to apply the same interceptor multiple times, for example from a different\n    // interceptor, only proxying events but keeping the stubs in a single place.\n    const runningInstance = this.getInstance()\n\n    if (runningInstance) {\n      logger.info('found a running instance, reusing...')\n\n      // Proxy any listeners you set on this instance to the running instance.\n      this.on = (event, listener) => {\n        logger.info('proxying the \"%s\" listener', event)\n\n        // Add listeners to the running instance so they appear\n        // at the top of the event listeners list and are executed first.\n        runningInstance.emitter.addListener(event, listener)\n\n        // Ensure that once this interceptor instance is disposed,\n        // it removes all listeners it has appended to the running interceptor instance.\n        this.subscriptions.push(() => {\n          runningInstance.emitter.removeListener(event, listener)\n          logger.info('removed proxied \"%s\" listener!', event)\n        })\n\n        return this\n      }\n\n      this.readyState = InterceptorReadyState.APPLIED\n\n      return\n    }\n\n    logger.info('no running instance found, setting up a new instance...')\n\n    // Setup the interceptor.\n    this.setup()\n\n    // Store the newly applied interceptor instance globally.\n    this.setInstance()\n\n    this.readyState = InterceptorReadyState.APPLIED\n  }\n\n  /**\n   * Setup the module augments and stubs necessary for this interceptor.\n   * This method is not run if there's a running interceptor instance\n   * to prevent instantiating an interceptor multiple times.\n   */\n  protected setup(): void {}\n\n  /**\n   * Listen to the interceptor's public events.\n   */\n  public on<EventName extends ExtractEventNames<Events>>(\n    event: EventName,\n    listener: Listener<Events[EventName]>\n  ): this {\n    const logger = this.logger.extend('on')\n\n    if (\n      this.readyState === InterceptorReadyState.DISPOSING ||\n      this.readyState === InterceptorReadyState.DISPOSED\n    ) {\n      logger.info('cannot listen to events, already disposed!')\n      return this\n    }\n\n    logger.info('adding \"%s\" event listener:', event, listener)\n\n    this.emitter.on(event, listener)\n    return this\n  }\n\n  public once<EventName extends ExtractEventNames<Events>>(\n    event: EventName,\n    listener: Listener<Events[EventName]>\n  ): this {\n    this.emitter.once(event, listener)\n    return this\n  }\n\n  public off<EventName extends ExtractEventNames<Events>>(\n    event: EventName,\n    listener: Listener<Events[EventName]>\n  ): this {\n    this.emitter.off(event, listener)\n    return this\n  }\n\n  public removeAllListeners<EventName extends ExtractEventNames<Events>>(\n    event?: EventName\n  ): this {\n    this.emitter.removeAllListeners(event)\n    return this\n  }\n\n  /**\n   * Disposes of any side-effects this interceptor has introduced.\n   */\n  public dispose(): void {\n    const logger = this.logger.extend('dispose')\n\n    if (this.readyState === InterceptorReadyState.DISPOSED) {\n      logger.info('cannot dispose, already disposed!')\n      return\n    }\n\n    logger.info('disposing the interceptor...')\n    this.readyState = InterceptorReadyState.DISPOSING\n\n    if (!this.getInstance()) {\n      logger.info('no interceptors running, skipping dispose...')\n      return\n    }\n\n    // Delete the global symbol as soon as possible,\n    // indicating that the interceptor is no longer running.\n    this.clearInstance()\n\n    logger.info('global symbol deleted:', getGlobalSymbol(this.symbol))\n\n    if (this.subscriptions.length > 0) {\n      logger.info('disposing of %d subscriptions...', this.subscriptions.length)\n\n      for (const dispose of this.subscriptions) {\n        dispose()\n      }\n\n      this.subscriptions = []\n\n      logger.info('disposed of all subscriptions!', this.subscriptions.length)\n    }\n\n    this.emitter.removeAllListeners()\n    logger.info('destroyed the listener!')\n\n    this.readyState = InterceptorReadyState.DISPOSED\n  }\n\n  private getInstance(): this | undefined {\n    const instance = getGlobalSymbol<this>(this.symbol)\n    this.logger.info('retrieved global instance:', instance?.constructor?.name)\n    return instance\n  }\n\n  private setInstance(): void {\n    setGlobalSymbol(this.symbol, this)\n    this.logger.info('set global instance!', this.symbol.description)\n  }\n\n  private clearInstance(): void {\n    deleteGlobalSymbol(this.symbol)\n    this.logger.info('cleared global instance!', this.symbol.description)\n  }\n}\n","/**\n * Generate a random ID string to represent a request.\n * @example\n * createRequestId()\n * // \"f774b6c9c600f\"\n */\nexport function createRequestId(): string {\n  return Math.random().toString(16).slice(2)\n}\n","type EventWithTarget<E extends Event, T> = E & { target: T }\n\nexport function bindEvent<E extends Event, T>(\n  target: T,\n  event: E\n): EventWithTarget<E, T> {\n  Object.defineProperties(event, {\n    target: {\n      value: target,\n      enumerable: true,\n      writable: true,\n    },\n    currentTarget: {\n      value: target,\n      enumerable: true,\n      writable: true,\n    },\n  })\n\n  return event as EventWithTarget<E, T>\n}\n","const kCancelable = Symbol('kCancelable')\nconst kDefaultPrevented = Symbol('kDefaultPrevented')\n\n/**\n * A `MessageEvent` superset that supports event cancellation\n * in Node.js. It's rather non-intrusive so it can be safely\n * used in the browser as well.\n *\n * @see https://github.com/nodejs/node/issues/51767\n */\nexport class CancelableMessageEvent<T = any> extends MessageEvent<T> {\n  [kCancelable]: boolean;\n  [kDefaultPrevented]: boolean\n\n  constructor(type: string, init: MessageEventInit<T>) {\n    super(type, init)\n    this[kCancelable] = !!init.cancelable\n    this[kDefaultPrevented] = false\n  }\n\n  get cancelable() {\n    return this[kCancelable]\n  }\n\n  set cancelable(nextCancelable) {\n    this[kCancelable] = nextCancelable\n  }\n\n  get defaultPrevented() {\n    return this[kDefaultPrevented]\n  }\n\n  set defaultPrevented(nextDefaultPrevented) {\n    this[kDefaultPrevented] = nextDefaultPrevented\n  }\n\n  public preventDefault(): void {\n    if (this.cancelable && !this[kDefaultPrevented]) {\n      this[kDefaultPrevented] = true\n    }\n  }\n}\n\ninterface CloseEventInit extends EventInit {\n  code?: number\n  reason?: string\n  wasClean?: boolean\n}\n\nexport class CloseEvent extends Event {\n  public code: number\n  public reason: string\n  public wasClean: boolean\n\n  constructor(type: string, init: CloseEventInit = {}) {\n    super(type, init)\n    this.code = init.code === undefined ? 0 : init.code\n    this.reason = init.reason === undefined ? '' : init.reason\n    this.wasClean = init.wasClean === undefined ? false : init.wasClean\n  }\n}\n\nexport class CancelableCloseEvent extends CloseEvent {\n  [kCancelable]: boolean;\n  [kDefaultPrevented]: boolean\n\n  constructor(type: string, init: CloseEventInit = {}) {\n    super(type, init)\n    this[kCancelable] = !!init.cancelable\n    this[kDefaultPrevented] = false\n  }\n\n  get cancelable() {\n    return this[kCancelable]\n  }\n\n  set cancelable(nextCancelable) {\n    this[kCancelable] = nextCancelable\n  }\n\n  get defaultPrevented() {\n    return this[kDefaultPrevented]\n  }\n\n  set defaultPrevented(nextDefaultPrevented) {\n    this[kDefaultPrevented] = nextDefaultPrevented\n  }\n\n  public preventDefault(): void {\n    if (this.cancelable && !this[kDefaultPrevented]) {\n      this[kDefaultPrevented] = true\n    }\n  }\n}\n","import type { WebSocketData, WebSocketTransport } from './WebSocketTransport'\nimport type { WebSocketEventListener } from './WebSocketOverride'\nimport { bindEvent } from './utils/bindEvent'\nimport { CancelableMessageEvent, CloseEvent } from './utils/events'\nimport { createRequestId } from '../../createRequestId'\n\nconst kEmitter = Symbol('kEmitter')\nconst kBoundListener = Symbol('kBoundListener')\n\ninterface WebSocketClientEventMap {\n  message: MessageEvent<WebSocketData>\n  close: CloseEvent\n}\n\nexport interface WebSocketClientConnectionProtocol {\n  id: string\n  url: URL\n  send(data: WebSocketData): void\n  close(code?: number, reason?: string): void\n}\n\n/**\n * The WebSocket client instance represents an incoming\n * client connection. The user can control the connection,\n * send and receive events.\n */\nexport class WebSocketClientConnection\n  implements WebSocketClientConnectionProtocol\n{\n  public readonly id: string\n  public readonly url: URL\n\n  private [kEmitter]: EventTarget\n\n  constructor(\n    public readonly socket: WebSocket,\n    private readonly transport: WebSocketTransport\n  ) {\n    this.id = createRequestId()\n    this.url = new URL(socket.url)\n    this[kEmitter] = new EventTarget()\n\n    // Emit outgoing client data (\"ws.send()\") as \"message\"\n    // events on the \"client\" connection.\n    this.transport.addEventListener('outgoing', (event) => {\n      const message = bindEvent(\n        this.socket,\n        new CancelableMessageEvent('message', {\n          data: event.data,\n          origin: event.origin,\n          cancelable: true,\n        })\n      )\n\n      this[kEmitter].dispatchEvent(message)\n\n      // This is a bit silly but forward the cancellation state\n      // of the \"client\" message event to the \"outgoing\" transport event.\n      // This way, other agens (like \"server\" connection) can know\n      // whether the client listener has pervented the default.\n      if (message.defaultPrevented) {\n        event.preventDefault()\n      }\n    })\n\n    /**\n     * Emit the \"close\" event on the \"client\" connection\n     * whenever the underlying transport is closed.\n     * @note \"client.close()\" does NOT dispatch the \"close\"\n     * event on the WebSocket because it uses non-configurable\n     * close status code. Thus, we listen to the transport\n     * instead of the WebSocket's \"close\" event.\n     */\n    this.transport.addEventListener('close', (event) => {\n      this[kEmitter].dispatchEvent(\n        bindEvent(this.socket, new CloseEvent('close', event))\n      )\n    })\n  }\n\n  /**\n   * Listen for the outgoing events from the connected WebSocket client.\n   */\n  public addEventListener<EventType extends keyof WebSocketClientEventMap>(\n    type: EventType,\n    listener: WebSocketEventListener<WebSocketClientEventMap[EventType]>,\n    options?: AddEventListenerOptions | boolean\n  ): void {\n    if (!Reflect.has(listener, kBoundListener)) {\n      const boundListener = listener.bind(this.socket)\n\n      // Store the bound listener on the original listener\n      // so the exact bound function can be accessed in \"removeEventListener()\".\n      Object.defineProperty(listener, kBoundListener, {\n        value: boundListener,\n        enumerable: false,\n        configurable: false,\n      })\n    }\n\n    this[kEmitter].addEventListener(\n      type,\n      Reflect.get(listener, kBoundListener) as EventListener,\n      options\n    )\n  }\n\n  /**\n   * Removes the listener for the given event.\n   */\n  public removeEventListener<EventType extends keyof WebSocketClientEventMap>(\n    event: EventType,\n    listener: WebSocketEventListener<WebSocketClientEventMap[EventType]>,\n    options?: EventListenerOptions | boolean\n  ): void {\n    this[kEmitter].removeEventListener(\n      event,\n      Reflect.get(listener, kBoundListener) as EventListener,\n      options\n    )\n  }\n\n  /**\n   * Send data to the connected client.\n   */\n  public send(data: WebSocketData): void {\n    this.transport.send(data)\n  }\n\n  /**\n   * Close the WebSocket connection.\n   * @param {number} code A status code (see https://www.rfc-editor.org/rfc/rfc6455#section-7.4.1).\n   * @param {string} reason A custom connection close reason.\n   */\n  public close(code?: number, reason?: string): void {\n    this.transport.close(code, reason)\n  }\n}\n","import { invariant } from 'outvariant'\nimport type { WebSocketData } from './WebSocketTransport'\nimport { bindEvent } from './utils/bindEvent'\nimport { CloseEvent } from './utils/events'\nimport { DeferredPromise } from '@open-draft/deferred-promise'\n\nexport type WebSocketEventListener<\n  EventType extends WebSocketEventMap[keyof WebSocketEventMap] = Event\n> = (this: WebSocket, event: EventType) => void\n\nconst WEBSOCKET_CLOSE_CODE_RANGE_ERROR =\n  'InvalidAccessError: close code out of user configurable range'\n\nexport const kPassthroughPromise = Symbol('kPassthroughPromise')\nexport const kOnSend = Symbol('kOnSend')\nexport const kClose = Symbol('kClose')\n\nexport class WebSocketOverride extends EventTarget implements WebSocket {\n  static readonly CONNECTING = 0\n  static readonly OPEN = 1\n  static readonly CLOSING = 2\n  static readonly CLOSED = 3\n  readonly CONNECTING = 0\n  readonly OPEN = 1\n  readonly CLOSING = 2\n  readonly CLOSED = 3\n\n  public url: string\n  public protocol: string\n  public extensions: string\n  public binaryType: BinaryType\n  public readyState: number\n  public bufferedAmount: number\n\n  private _onopen: WebSocketEventListener | null = null\n  private _onmessage: WebSocketEventListener<\n    MessageEvent<WebSocketData>\n  > | null = null\n  private _onerror: WebSocketEventListener | null = null\n  private _onclose: WebSocketEventListener<CloseEvent> | null = null\n\n  private [kPassthroughPromise]: DeferredPromise<boolean>\n  private [kOnSend]?: (data: WebSocketData) => void\n\n  constructor(url: string | URL, protocols?: string | Array<string>) {\n    super()\n    this.url = url.toString()\n    this.protocol = ''\n    this.extensions = ''\n    this.binaryType = 'blob'\n    this.readyState = this.CONNECTING\n    this.bufferedAmount = 0\n\n    this[kPassthroughPromise] = new DeferredPromise<boolean>()\n\n    queueMicrotask(async () => {\n      if (await this[kPassthroughPromise]) {\n        return\n      }\n\n      this.protocol =\n        typeof protocols === 'string'\n          ? protocols\n          : Array.isArray(protocols) && protocols.length > 0\n          ? protocols[0]\n          : ''\n\n      /**\n       * @note Check that nothing has prevented this connection\n       * (e.g. called `client.close()` in the connection listener).\n       * If the connection has been prevented, never dispatch the open event,.\n       */\n      if (this.readyState === this.CONNECTING) {\n        this.readyState = this.OPEN\n        this.dispatchEvent(bindEvent(this, new Event('open')))\n      }\n    })\n  }\n\n  set onopen(listener: WebSocketEventListener | null) {\n    this.removeEventListener('open', this._onopen)\n    this._onopen = listener\n    if (listener !== null) {\n      this.addEventListener('open', listener)\n    }\n  }\n  get onopen(): WebSocketEventListener | null {\n    return this._onopen\n  }\n\n  set onmessage(\n    listener: WebSocketEventListener<MessageEvent<WebSocketData>> | null\n  ) {\n    this.removeEventListener(\n      'message',\n      this._onmessage as WebSocketEventListener\n    )\n    this._onmessage = listener\n    if (listener !== null) {\n      this.addEventListener('message', listener)\n    }\n  }\n  get onmessage(): WebSocketEventListener<MessageEvent<WebSocketData>> | null {\n    return this._onmessage\n  }\n\n  set onerror(listener: WebSocketEventListener | null) {\n    this.removeEventListener('error', this._onerror)\n    this._onerror = listener\n    if (listener !== null) {\n      this.addEventListener('error', listener)\n    }\n  }\n  get onerror(): WebSocketEventListener | null {\n    return this._onerror\n  }\n\n  set onclose(listener: WebSocketEventListener<CloseEvent> | null) {\n    this.removeEventListener('close', this._onclose as WebSocketEventListener)\n    this._onclose = listener\n    if (listener !== null) {\n      this.addEventListener('close', listener)\n    }\n  }\n  get onclose(): WebSocketEventListener<CloseEvent> | null {\n    return this._onclose\n  }\n\n  /**\n   * @see https://websockets.spec.whatwg.org/#ref-for-dom-websocket-send%E2%91%A0\n   */\n  public send(data: WebSocketData): void {\n    if (this.readyState === this.CONNECTING) {\n      this.close()\n      throw new DOMException('InvalidStateError')\n    }\n\n    // Sending when the socket is about to close\n    // discards the sent data.\n    if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n      return\n    }\n\n    // Buffer the data to send in this even loop\n    // but send it in the next.\n    this.bufferedAmount += getDataSize(data)\n\n    queueMicrotask(() => {\n      // This is a bit optimistic but since no actual data transfer\n      // is involved, all the data will be \"sent\" on the next tick.\n      this.bufferedAmount = 0\n\n      /**\n       * @note Notify the parent about outgoing data.\n       * This notifies the transport and the connection\n       * listens to the outgoing data to emit the \"message\" event.\n       */\n      this[kOnSend]?.(data)\n    })\n  }\n\n  public close(code: number = 1000, reason?: string): void {\n    invariant(code, WEBSOCKET_CLOSE_CODE_RANGE_ERROR)\n    invariant(\n      code === 1000 || (code >= 3000 && code <= 4999),\n      WEBSOCKET_CLOSE_CODE_RANGE_ERROR\n    )\n\n    this[kClose](code, reason)\n  }\n\n  private [kClose](\n    code: number = 1000,\n    reason?: string,\n    wasClean = true\n  ): void {\n    /**\n     * @note Move this check here so that even internall closures,\n     * like those triggered by the `server` connection, are not\n     * performed twice.\n     */\n    if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n      return\n    }\n\n    this.readyState = this.CLOSING\n\n    queueMicrotask(() => {\n      this.readyState = this.CLOSED\n\n      this.dispatchEvent(\n        bindEvent(\n          this,\n          new CloseEvent('close', {\n            code,\n            reason,\n            wasClean,\n          })\n        )\n      )\n\n      // Remove all event listeners once the socket is closed.\n      this._onopen = null\n      this._onmessage = null\n      this._onerror = null\n      this._onclose = null\n    })\n  }\n\n  public addEventListener<K extends keyof WebSocketEventMap>(\n    type: K,\n    listener: (this: WebSocket, event: WebSocketEventMap[K]) => void,\n    options?: boolean | AddEventListenerOptions\n  ): void\n  public addEventListener(\n    type: string,\n    listener: EventListenerOrEventListenerObject,\n    options?: boolean | AddEventListenerOptions\n  ): void\n  public addEventListener(\n    type: unknown,\n    listener: unknown,\n    options?: unknown\n  ): void {\n    return super.addEventListener(\n      type as string,\n      listener as EventListener,\n      options as AddEventListenerOptions\n    )\n  }\n\n  removeEventListener<K extends keyof WebSocketEventMap>(\n    type: K,\n    callback: EventListenerOrEventListenerObject | null,\n    options?: boolean | EventListenerOptions\n  ): void {\n    return super.removeEventListener(type, callback, options)\n  }\n}\n\nfunction getDataSize(data: WebSocketData): number {\n  if (typeof data === 'string') {\n    return data.length\n  }\n\n  if (data instanceof Blob) {\n    return data.size\n  }\n\n  return data.byteLength\n}\n","import { invariant } from 'outvariant'\nimport {\n  kClose,\n  WebSocketEventListener,\n  WebSocketOverride,\n} from './WebSocketOverride'\nimport type { WebSocketData } from './WebSocketTransport'\nimport type { WebSocketClassTransport } from './WebSocketClassTransport'\nimport { bindEvent } from './utils/bindEvent'\nimport {\n  CancelableMessageEvent,\n  CancelableCloseEvent,\n  CloseEvent,\n} from './utils/events'\n\nconst kEmitter = Symbol('kEmitter')\nconst kBoundListener = Symbol('kBoundListener')\nconst kSend = Symbol('kSend')\n\ninterface WebSocketServerEventMap {\n  open: Event\n  message: MessageEvent<WebSocketData>\n  error: Event\n  close: CloseEvent\n}\n\n/**\n * The WebSocket server instance represents the actual production\n * WebSocket server connection. It's idle by default but you can\n * establish it by calling `server.connect()`.\n */\nexport class WebSocketServerConnection {\n  /**\n   * A WebSocket instance connected to the original server.\n   */\n  private realWebSocket?: WebSocket\n  private mockCloseController: AbortController\n  private realCloseController: AbortController\n  private [kEmitter]: EventTarget\n\n  constructor(\n    private readonly client: WebSocketOverride,\n    private readonly transport: WebSocketClassTransport,\n    private readonly createConnection: () => WebSocket\n  ) {\n    this[kEmitter] = new EventTarget()\n    this.mockCloseController = new AbortController()\n    this.realCloseController = new AbortController()\n\n    // Automatically forward outgoing client events\n    // to the actual server unless the outgoing message event\n    // has been prevented. The \"outgoing\" transport event it\n    // dispatched by the \"client\" connection.\n    this.transport.addEventListener('outgoing', (event) => {\n      // Ignore client messages if the server connection\n      // hasn't been established yet. Nowhere to forward.\n      if (typeof this.realWebSocket === 'undefined') {\n        return\n      }\n\n      // Every outgoing client message can prevent this forwarding\n      // by preventing the default of the outgoing message event.\n      // This listener will be added before user-defined listeners,\n      // so execute the logic on the next tick.\n      queueMicrotask(() => {\n        if (!event.defaultPrevented) {\n          /**\n           * @note Use the internal send mechanism so consumers can tell\n           * apart direct user calls to `server.send()` and internal calls.\n           * E.g. MSW has to ignore this internal call to log out messages correctly.\n           */\n          this[kSend](event.data)\n        }\n      })\n    })\n\n    this.transport.addEventListener(\n      'incoming',\n      this.handleIncomingMessage.bind(this)\n    )\n  }\n\n  /**\n   * The `WebSocket` instance connected to the original server.\n   * Accessing this before calling `server.connect()` will throw.\n   */\n  public get socket(): WebSocket {\n    invariant(\n      this.realWebSocket,\n      'Cannot access \"socket\" on the original WebSocket server object: the connection is not open. Did you forget to call `server.connect()`?'\n    )\n\n    return this.realWebSocket\n  }\n\n  /**\n   * Open connection to the original WebSocket server.\n   */\n  public connect(): void {\n    invariant(\n      !this.realWebSocket || this.realWebSocket.readyState !== WebSocket.OPEN,\n      'Failed to call \"connect()\" on the original WebSocket instance: the connection already open'\n    )\n\n    const realWebSocket = this.createConnection()\n\n    // Inherit the binary type from the mock WebSocket client.\n    realWebSocket.binaryType = this.client.binaryType\n\n    // Allow the interceptor to listen to when the server connection\n    // has been established. This isn't necessary to operate with the connection\n    // but may be beneficial in some cases (like conditionally adding logging).\n    realWebSocket.addEventListener(\n      'open',\n      (event) => {\n        this[kEmitter].dispatchEvent(\n          bindEvent(this.realWebSocket!, new Event('open', event))\n        )\n      },\n      { once: true }\n    )\n\n    realWebSocket.addEventListener('message', (event) => {\n      // Dispatch the \"incoming\" transport event instead of\n      // invoking the internal handler directly. This way,\n      // anyone can listen to the \"incoming\" event but this\n      // class is the one resulting in it.\n      this.transport.dispatchEvent(\n        bindEvent(\n          this.realWebSocket!,\n          new MessageEvent('incoming', {\n            data: event.data,\n            origin: event.origin,\n          })\n        )\n      )\n    })\n\n    // Close the original connection when the mock client closes.\n    // E.g. \"client.close()\" was called. This is never forwarded anywhere.\n    this.client.addEventListener(\n      'close',\n      (event) => {\n        this.handleMockClose(event)\n      },\n      {\n        signal: this.mockCloseController.signal,\n      }\n    )\n\n    // Forward the \"close\" event to let the interceptor handle\n    // closures initiated by the original server.\n    realWebSocket.addEventListener(\n      'close',\n      (event) => {\n        this.handleRealClose(event)\n      },\n      {\n        signal: this.realCloseController.signal,\n      }\n    )\n\n    realWebSocket.addEventListener('error', () => {\n      const errorEvent = bindEvent(\n        realWebSocket,\n        new Event('error', { cancelable: true })\n      )\n\n      // Emit the \"error\" event on the `server` connection\n      // to let the interceptor react to original server errors.\n      this[kEmitter].dispatchEvent(errorEvent)\n\n      // If the error event from the original server hasn't been prevented,\n      // forward it to the underlying client.\n      if (!errorEvent.defaultPrevented) {\n        this.client.dispatchEvent(bindEvent(this.client, new Event('error')))\n      }\n    })\n\n    this.realWebSocket = realWebSocket\n  }\n\n  /**\n   * Listen for the incoming events from the original WebSocket server.\n   */\n  public addEventListener<EventType extends keyof WebSocketServerEventMap>(\n    event: EventType,\n    listener: WebSocketEventListener<WebSocketServerEventMap[EventType]>,\n    options?: AddEventListenerOptions | boolean\n  ): void {\n    if (!Reflect.has(listener, kBoundListener)) {\n      const boundListener = listener.bind(this.client)\n\n      // Store the bound listener on the original listener\n      // so the exact bound function can be accessed in \"removeEventListener()\".\n      Object.defineProperty(listener, kBoundListener, {\n        value: boundListener,\n        enumerable: false,\n      })\n    }\n\n    this[kEmitter].addEventListener(\n      event,\n      Reflect.get(listener, kBoundListener) as EventListener,\n      options\n    )\n  }\n\n  /**\n   * Remove the listener for the given event.\n   */\n  public removeEventListener<EventType extends keyof WebSocketServerEventMap>(\n    event: EventType,\n    listener: WebSocketEventListener<WebSocketServerEventMap[EventType]>,\n    options?: EventListenerOptions | boolean\n  ): void {\n    this[kEmitter].removeEventListener(\n      event,\n      Reflect.get(listener, kBoundListener) as EventListener,\n      options\n    )\n  }\n\n  /**\n   * Send data to the original WebSocket server.\n   * @example\n   * server.send('hello')\n   * server.send(new Blob(['hello']))\n   * server.send(new TextEncoder().encode('hello'))\n   */\n  public send(data: WebSocketData): void {\n    this[kSend](data)\n  }\n\n  private [kSend](data: WebSocketData): void {\n    const { realWebSocket } = this\n\n    invariant(\n      realWebSocket,\n      'Failed to call \"server.send()\" for \"%s\": the connection is not open. Did you forget to call \"server.connect()\"?',\n      this.client.url\n    )\n\n    // Silently ignore writes on the closed original WebSocket.\n    if (\n      realWebSocket.readyState === WebSocket.CLOSING ||\n      realWebSocket.readyState === WebSocket.CLOSED\n    ) {\n      return\n    }\n\n    // Delegate the send to when the original connection is open.\n    // Unlike the mock, connecting to the original server may take time\n    // so we cannot call this on the next tick.\n    if (realWebSocket.readyState === WebSocket.CONNECTING) {\n      realWebSocket.addEventListener(\n        'open',\n        () => {\n          realWebSocket.send(data)\n        },\n        { once: true }\n      )\n      return\n    }\n\n    // Send the data to the original WebSocket server.\n    realWebSocket.send(data)\n  }\n\n  /**\n   * Close the actual server connection.\n   */\n  public close(): void {\n    const { realWebSocket } = this\n\n    invariant(\n      realWebSocket,\n      'Failed to close server connection for \"%s\": the connection is not open. Did you forget to call \"server.connect()\"?',\n      this.client.url\n    )\n\n    // Remove the \"close\" event listener from the server\n    // so it doesn't close the underlying WebSocket client\n    // when you call \"server.close()\". This also prevents the\n    // `close` event on the `server` connection from being dispatched twice.\n    this.realCloseController.abort()\n\n    if (\n      realWebSocket.readyState === WebSocket.CLOSING ||\n      realWebSocket.readyState === WebSocket.CLOSED\n    ) {\n      return\n    }\n\n    // Close the actual client connection.\n    realWebSocket.close()\n\n    // Dispatch the \"close\" event on the `server` connection.\n    queueMicrotask(() => {\n      this[kEmitter].dispatchEvent(\n        bindEvent(\n          this.realWebSocket,\n          new CancelableCloseEvent('close', {\n            /**\n             * @note `server.close()` in the interceptor\n             * always results in clean closures.\n             */\n            code: 1000,\n            cancelable: true,\n          })\n        )\n      )\n    })\n  }\n\n  private handleIncomingMessage(event: MessageEvent<WebSocketData>): void {\n    // Clone the event to dispatch it on this class\n    // once again and prevent the \"already being dispatched\"\n    // exception. Clone it here so we can observe this event\n    // being prevented in the \"server.on()\" listeners.\n    const messageEvent = bindEvent(\n      event.target,\n      new CancelableMessageEvent('message', {\n        data: event.data,\n        origin: event.origin,\n        cancelable: true,\n      })\n    )\n\n    /**\n     * @note Emit \"message\" event on the server connection\n     * instance to let the interceptor know about these\n     * incoming events from the original server. In that listener,\n     * the interceptor can modify or skip the event forwarding\n     * to the mock WebSocket instance.\n     */\n    this[kEmitter].dispatchEvent(messageEvent)\n\n    /**\n     * @note Forward the incoming server events to the client.\n     * Preventing the default on the message event stops this.\n     */\n    if (!messageEvent.defaultPrevented) {\n      this.client.dispatchEvent(\n        bindEvent(\n          /**\n           * @note Bind the forwarded original server events\n           * to the mock WebSocket instance so it would\n           * dispatch them straight away.\n           */\n          this.client,\n          // Clone the message event again to prevent\n          // the \"already being dispatched\" exception.\n          new MessageEvent('message', {\n            data: event.data,\n            origin: event.origin,\n          })\n        )\n      )\n    }\n  }\n\n  private handleMockClose(_event: Event): void {\n    // Close the original connection if the mock client closes.\n    if (this.realWebSocket) {\n      this.realWebSocket.close()\n    }\n  }\n\n  private handleRealClose(event: CloseEvent): void {\n    // For closures originating from the original server,\n    // remove the \"close\" listener from the mock client.\n    // original close -> (?) client[kClose]() --X--> \"close\" (again).\n    this.mockCloseController.abort()\n\n    const closeEvent = bindEvent(\n      this.realWebSocket,\n      new CancelableCloseEvent('close', {\n        code: event.code,\n        reason: event.reason,\n        wasClean: event.wasClean,\n        cancelable: true,\n      })\n    )\n\n    this[kEmitter].dispatchEvent(closeEvent)\n\n    // If the close event from the server hasn't been prevented,\n    // forward the closure to the mock client.\n    if (!closeEvent.defaultPrevented) {\n      // Close the intercepted client forcefully to\n      // allow non-configurable status codes from the server.\n      // If the socket has been closed by now, no harm calling\n      // this again—it will have no effect.\n      this.client[kClose](event.code, event.reason)\n    }\n  }\n}\n","import { bindEvent } from './utils/bindEvent'\nimport {\n  StrictEventListenerOrEventListenerObject,\n  WebSocketData,\n  WebSocketTransport,\n  WebSocketTransportEventMap,\n} from './WebSocketTransport'\nimport { kOnSend, kClose, WebSocketOverride } from './WebSocketOverride'\nimport { CancelableMessageEvent, CloseEvent } from './utils/events'\n\n/**\n * Abstraction over the given mock `WebSocket` instance that allows\n * for controlling that instance (e.g. sending and receiving messages).\n */\nexport class WebSocketClassTransport\n  extends EventTarget\n  implements WebSocketTransport\n{\n  constructor(protected readonly socket: WebSocketOverride) {\n    super()\n\n    // Emit the \"close\" event on the transport if the close\n    // originates from the WebSocket client. E.g. the application\n    // calls \"ws.close()\", not the interceptor.\n    this.socket.addEventListener('close', (event) => {\n      this.dispatchEvent(bindEvent(this.socket, new CloseEvent('close', event)))\n    })\n\n    /**\n     * Emit the \"outgoing\" event on the transport\n     * whenever the WebSocket client sends data (\"ws.send()\").\n     */\n    this.socket[kOnSend] = (data) => {\n      this.dispatchEvent(\n        bindEvent(\n          this.socket,\n          // Dispatch this as cancelable because \"client\" connection\n          // re-creates this message event (cannot dispatch the same event).\n          new CancelableMessageEvent('outgoing', {\n            data,\n            origin: this.socket.url,\n            cancelable: true,\n          })\n        )\n      )\n    }\n  }\n\n  public addEventListener<EventType extends keyof WebSocketTransportEventMap>(\n    type: EventType,\n    callback: StrictEventListenerOrEventListenerObject<\n      WebSocketTransportEventMap[EventType]\n    > | null,\n    options?: boolean | AddEventListenerOptions\n  ): void {\n    return super.addEventListener(type, callback as EventListener, options)\n  }\n\n  public dispatchEvent<EventType extends keyof WebSocketTransportEventMap>(\n    event: WebSocketTransportEventMap[EventType]\n  ): boolean {\n    return super.dispatchEvent(event)\n  }\n\n  public send(data: WebSocketData): void {\n    queueMicrotask(() => {\n      if (\n        this.socket.readyState === this.socket.CLOSING ||\n        this.socket.readyState === this.socket.CLOSED\n      ) {\n        return\n      }\n\n      const dispatchEvent = () => {\n        this.socket.dispatchEvent(\n          bindEvent(\n            /**\n             * @note Setting this event's \"target\" to the\n             * WebSocket override instance is important.\n             * This way it can tell apart original incoming events\n             * (must be forwarded to the transport) from the\n             * mocked message events like the one below\n             * (must be dispatched on the client instance).\n             */\n            this.socket,\n            new MessageEvent('message', {\n              data,\n              origin: this.socket.url,\n            })\n          )\n        )\n      }\n\n      if (this.socket.readyState === this.socket.CONNECTING) {\n        this.socket.addEventListener(\n          'open',\n          () => {\n            dispatchEvent()\n          },\n          { once: true }\n        )\n      } else {\n        dispatchEvent()\n      }\n    })\n  }\n\n  public close(code: number, reason?: string): void {\n    /**\n     * @note Call the internal close method directly\n     * to allow closing the connection with the status codes\n     * that are non-configurable by the user (> 1000 <= 1015).\n     */\n    this.socket[kClose](code, reason)\n  }\n}\n","import { Interceptor } from '../../Interceptor'\nimport {\n  type WebSocketClientConnectionProtocol,\n  WebSocketClientConnection,\n} from './WebSocketClientConnection'\nimport { WebSocketServerConnection } from './WebSocketServerConnection'\nimport { WebSocketClassTransport } from './WebSocketClassTransport'\nimport {\n  kClose,\n  kPassthroughPromise,\n  WebSocketOverride,\n} from './WebSocketOverride'\nimport { bindEvent } from './utils/bindEvent'\nimport { hasConfigurableGlobal } from '../../utils/hasConfigurableGlobal'\n\nexport { type WebSocketData, WebSocketTransport } from './WebSocketTransport'\nexport {\n  WebSocketClientConnection,\n  WebSocketClientConnectionProtocol,\n  WebSocketServerConnection,\n}\n\nexport type WebSocketEventMap = {\n  connection: [args: WebSocketConnectionData]\n}\n\nexport type WebSocketConnectionData = {\n  /**\n   * The incoming WebSocket client connection.\n   */\n  client: WebSocketClientConnection\n\n  /**\n   * The original WebSocket server connection.\n   */\n  server: WebSocketServerConnection\n\n  /**\n   * The connection information.\n   */\n  info: {\n    /**\n     * The protocols supported by the WebSocket client.\n     */\n    protocols: string | Array<string> | undefined\n  }\n}\n\n/**\n * Intercept the outgoing WebSocket connections created using\n * the global `WebSocket` class.\n */\nexport class WebSocketInterceptor extends Interceptor<WebSocketEventMap> {\n  static symbol = Symbol('websocket')\n\n  constructor() {\n    super(WebSocketInterceptor.symbol)\n  }\n\n  protected checkEnvironment(): boolean {\n    return hasConfigurableGlobal('WebSocket')\n  }\n\n  protected setup(): void {\n    const originalWebSocketDescriptor = Object.getOwnPropertyDescriptor(\n      globalThis,\n      'WebSocket'\n    )\n\n    const WebSocketProxy = new Proxy(globalThis.WebSocket, {\n      construct: (\n        target,\n        args: ConstructorParameters<typeof globalThis.WebSocket>,\n        newTarget\n      ) => {\n        const [url, protocols] = args\n\n        const createConnection = (): WebSocket => {\n          return Reflect.construct(target, args, newTarget)\n        }\n\n        // All WebSocket instances are mocked and don't forward\n        // any events to the original server (no connection established).\n        // To forward the events, the user must use the \"server.send()\" API.\n        const socket = new WebSocketOverride(url, protocols)\n        const transport = new WebSocketClassTransport(socket)\n\n        // Emit the \"connection\" event to the interceptor on the next tick\n        // so the client can modify WebSocket options, like \"binaryType\"\n        // while the connection is already pending.\n        queueMicrotask(() => {\n          try {\n            const server = new WebSocketServerConnection(\n              socket,\n              transport,\n              createConnection\n            )\n\n            // The \"globalThis.WebSocket\" class stands for\n            // the client-side connection. Assume it's established\n            // as soon as the WebSocket instance is constructed.\n            const hasConnectionListeners = this.emitter.emit('connection', {\n              client: new WebSocketClientConnection(socket, transport),\n              server,\n              info: {\n                protocols,\n              },\n            })\n\n            if (hasConnectionListeners) {\n              socket[kPassthroughPromise].resolve(false)\n            } else {\n              socket[kPassthroughPromise].resolve(true)\n\n              server.connect()\n\n              // Forward the \"open\" event from the original server\n              // to the mock WebSocket client in the case of a passthrough connection.\n              server.addEventListener('open', () => {\n                socket.dispatchEvent(bindEvent(socket, new Event('open')))\n\n                // Forward the original connection protocol to the\n                // mock WebSocket client.\n                if (server['realWebSocket']) {\n                  socket.protocol = server['realWebSocket'].protocol\n                }\n              })\n            }\n          } catch (error) {\n            /**\n             * @note Translate unhandled exceptions during the connection\n             * handling (i.e. interceptor exceptions) as WebSocket connection\n             * closures with error. This prevents from the exceptions occurring\n             * in `queueMicrotask` from being process-wide and uncatchable.\n             */\n            if (error instanceof Error) {\n              socket.dispatchEvent(new Event('error'))\n\n              // No need to close the connection if it's already being closed.\n              // E.g. the interceptor called `client.close()` and then threw an error.\n              if (\n                socket.readyState !== WebSocket.CLOSING &&\n                socket.readyState !== WebSocket.CLOSED\n              ) {\n                socket[kClose](1011, error.message, false)\n              }\n\n              console.error(error)\n            }\n          }\n        })\n\n        return socket\n      },\n    })\n\n    Object.defineProperty(globalThis, 'WebSocket', {\n      value: WebSocketProxy,\n      configurable: true,\n    })\n\n    this.subscriptions.push(() => {\n      Object.defineProperty(\n        globalThis,\n        'WebSocket',\n        originalWebSocketDescriptor!\n      )\n    })\n  }\n}\n","import { WebSocketInterceptor } from '@mswjs/interceptors/WebSocket'\n\nexport const webSocketInterceptor = new WebSocketInterceptor()\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'\nimport { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'\nimport { FetchInterceptor } from '@mswjs/interceptors/fetch'\nimport { HandlersController } from '~/core/SetupApi'\nimport type { RequestHandler } from '~/core/handlers/RequestHandler'\nimport type { WebSocketHandler } from '~/core/handlers/WebSocketHandler'\nimport type { SetupServer } from './glossary'\nimport { SetupServerCommonApi } from './SetupServerCommonApi'\n\nconst store = new AsyncLocalStorage<RequestHandlersContext>()\n\ntype RequestHandlersContext = {\n  initialHandlers: Array<RequestHandler | WebSocketHandler>\n  handlers: Array<RequestHandler | WebSocketHandler>\n}\n\n/**\n * A handlers controller that utilizes `AsyncLocalStorage` in Node.js\n * to prevent the request handlers list from being a shared state\n * across mutliple tests.\n */\nclass AsyncHandlersController implements HandlersController {\n  private rootContext: RequestHandlersContext\n\n  constructor(initialHandlers: Array<RequestHandler | WebSocketHandler>) {\n    this.rootContext = { initialHandlers, handlers: [] }\n  }\n\n  get context(): RequestHandlersContext {\n    return store.getStore() || this.rootContext\n  }\n\n  public prepend(runtimeHandlers: Array<RequestHandler | WebSocketHandler>) {\n    this.context.handlers.unshift(...runtimeHandlers)\n  }\n\n  public reset(nextHandlers: Array<RequestHandler | WebSocketHandler>) {\n    const context = this.context\n    context.handlers = []\n    context.initialHandlers =\n      nextHandlers.length > 0 ? nextHandlers : context.initialHandlers\n  }\n\n  public currentHandlers(): Array<RequestHandler | WebSocketHandler> {\n    const { initialHandlers, handlers } = this.context\n    return handlers.concat(initialHandlers)\n  }\n}\n\nexport class SetupServerApi\n  extends SetupServerCommonApi\n  implements SetupServer\n{\n  constructor(handlers: Array<RequestHandler | WebSocketHandler>) {\n    super(\n      [ClientRequestInterceptor, XMLHttpRequestInterceptor, FetchInterceptor],\n      handlers,\n    )\n\n    this.handlersController = new AsyncHandlersController(handlers)\n  }\n\n  public boundary<Args extends Array<any>, R>(\n    callback: (...args: Args) => R,\n  ): (...args: Args) => R {\n    return (...args: Args): R => {\n      return store.run<any, any>(\n        {\n          initialHandlers: this.handlersController.currentHandlers(),\n          handlers: [],\n        },\n        callback,\n        ...args,\n      )\n    }\n  }\n\n  public close(): void {\n    super.close()\n    store.disable()\n  }\n}\n","export function notImplemented(): never {\n  throw new Error('Not implemented');\n}\n","import { LanguageModelV1 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV1 implements LanguageModelV1 {\n  readonly specificationVersion = 'v1';\n\n  readonly provider: LanguageModelV1['provider'];\n  readonly modelId: LanguageModelV1['modelId'];\n\n  supportsUrl: LanguageModelV1['supportsUrl'];\n  doGenerate: LanguageModelV1['doGenerate'];\n  doStream: LanguageModelV1['doStream'];\n\n  readonly defaultObjectGenerationMode: LanguageModelV1['defaultObjectGenerationMode'];\n  readonly supportsStructuredOutputs: LanguageModelV1['supportsStructuredOutputs'];\n  constructor({\n    provider = 'mock-provider',\n    modelId = 'mock-model-id',\n    supportsUrl = undefined,\n    doGenerate = notImplemented,\n    doStream = notImplemented,\n    defaultObjectGenerationMode = undefined,\n    supportsStructuredOutputs = undefined,\n  }: {\n    provider?: LanguageModelV1['provider'];\n    modelId?: LanguageModelV1['modelId'];\n    supportsUrl?: LanguageModelV1['supportsUrl'];\n    doGenerate?: LanguageModelV1['doGenerate'];\n    doStream?: LanguageModelV1['doStream'];\n    defaultObjectGenerationMode?: LanguageModelV1['defaultObjectGenerationMode'];\n    supportsStructuredOutputs?: LanguageModelV1['supportsStructuredOutputs'];\n  } = {}) {\n    this.provider = provider;\n    this.modelId = modelId;\n    this.doGenerate = doGenerate;\n    this.doStream = doStream;\n    this.supportsUrl = supportsUrl;\n\n    this.defaultObjectGenerationMode = defaultObjectGenerationMode;\n    this.supportsStructuredOutputs = supportsStructuredOutputs;\n  }\n}\n","export function convertArrayToReadableStream<T>(\n  values: T[],\n): ReadableStream<T> {\n  return new ReadableStream({\n    start(controller) {\n      try {\n        for (const value of values) {\n          controller.enqueue(value);\n        }\n      } finally {\n        controller.close();\n      }\n    },\n  });\n}\n","export function notImplemented(): never {\n  throw new Error('Not implemented');\n}\n","import { LanguageModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV2 implements LanguageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  private _supportedUrls: () => LanguageModelV2['supportedUrls'];\n\n  readonly provider: LanguageModelV2['provider'];\n  readonly modelId: LanguageModelV2['modelId'];\n\n  doGenerate: LanguageModelV2['doGenerate'];\n  doStream: LanguageModelV2['doStream'];\n\n  doGenerateCalls: Parameters<LanguageModelV2['doGenerate']>[0][] = [];\n  doStreamCalls: Parameters<LanguageModelV2['doStream']>[0][] = [];\n\n  constructor({\n    provider = 'mock-provider',\n    modelId = 'mock-model-id',\n    supportedUrls = {},\n    doGenerate = notImplemented,\n    doStream = notImplemented,\n  }: {\n    provider?: LanguageModelV2['provider'];\n    modelId?: LanguageModelV2['modelId'];\n    supportedUrls?:\n      | LanguageModelV2['supportedUrls']\n      | (() => LanguageModelV2['supportedUrls']);\n    doGenerate?:\n      | LanguageModelV2['doGenerate']\n      | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n      | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n    doStream?:\n      | LanguageModelV2['doStream']\n      | Awaited<ReturnType<LanguageModelV2['doStream']>>\n      | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n  } = {}) {\n    this.provider = provider;\n    this.modelId = modelId;\n    this.doGenerate = async options => {\n      this.doGenerateCalls.push(options);\n\n      if (typeof doGenerate === 'function') {\n        return doGenerate(options);\n      } else if (Array.isArray(doGenerate)) {\n        return doGenerate[this.doGenerateCalls.length];\n      } else {\n        return doGenerate;\n      }\n    };\n    this.doStream = async options => {\n      this.doStreamCalls.push(options);\n\n      if (typeof doStream === 'function') {\n        return doStream(options);\n      } else if (Array.isArray(doStream)) {\n        return doStream[this.doStreamCalls.length];\n      } else {\n        return doStream;\n      }\n    };\n    this._supportedUrls =\n      typeof supportedUrls === 'function'\n        ? supportedUrls\n        : async () => supportedUrls;\n  }\n\n  get supportedUrls() {\n    return this._supportedUrls();\n  }\n}\n","import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport { MockLanguageModelV2 } from '@internal/ai-sdk-v5/test';\nimport type { MastraLanguageModelV2 } from '../../llm/model/shared.types';\nimport { AISDKV5LanguageModel } from '../../llm/model/aisdk/v5/model';\n\nexport class MastraLanguageModelV2Mock implements MastraLanguageModelV2 {\n  readonly specificationVersion = 'v2' as const;\n  readonly provider: LanguageModelV2['provider'];\n  readonly modelId: LanguageModelV2['modelId'];\n  readonly supportedUrls: LanguageModelV2['supportedUrls'];\n  #model: MockLanguageModelV2;\n\n  constructor(config: {\n    provider?: LanguageModelV2['provider'];\n    modelId?: LanguageModelV2['modelId'];\n    supportedUrls?: LanguageModelV2['supportedUrls'] | (() => LanguageModelV2['supportedUrls']);\n    doGenerate?:\n      | LanguageModelV2['doGenerate']\n      | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n      | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n    doStream?:\n      | LanguageModelV2['doStream']\n      | Awaited<ReturnType<LanguageModelV2['doStream']>>\n      | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n  }) {\n    this.#model = new MockLanguageModelV2(config);\n    this.provider = this.#model.provider;\n    this.modelId = this.#model.modelId;\n    this.supportedUrls = this.#model.supportedUrls;\n  }\n\n  doGenerate(options: LanguageModelV2CallOptions) {\n    const aiSDKModel = new AISDKV5LanguageModel(this.#model);\n    return aiSDKModel.doGenerate(options);\n  }\n\n  doStream(options: LanguageModelV2CallOptions) {\n    const aiSDKModel = new AISDKV5LanguageModel(this.#model);\n    return aiSDKModel.doStream(options);\n  }\n\n  get doGenerateCalls(): LanguageModelV2CallOptions[] {\n    return this.#model.doGenerateCalls;\n  }\n  get doStreamCalls(): LanguageModelV2CallOptions[] {\n    return this.#model.doStreamCalls;\n  }\n}\n","import { simulateReadableStream } from '@internal/ai-sdk-v4';\nimport { MockLanguageModelV1 } from '@internal/ai-sdk-v4/test';\nimport { convertArrayToReadableStream, MockLanguageModelV2 } from '@internal/ai-sdk-v5/test';\n\nimport type { StreamObjectResult, StreamReturn } from '../llm/model/base.types';\nimport { MastraLLMV1 } from '../llm/model/model';\nimport { MastraLanguageModelV2Mock } from '../loop/test-utils/MastraLanguageModelV2Mock';\n\n// Re-export for external use\nexport { simulateReadableStream, MastraLanguageModelV2Mock };\n\nexport function createMockModel({\n  objectGenerationMode,\n  mockText,\n  spyGenerate,\n  spyStream,\n  version = 'v2',\n}: {\n  objectGenerationMode?: 'json';\n  mockText: string | Record<string, any>;\n  spyGenerate?: (props: any) => void;\n  spyStream?: (props: any) => void;\n  version?: 'v1' | 'v2';\n}) {\n  const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n  const finalText = objectGenerationMode === 'json' ? JSON.stringify(mockText) : text;\n\n  if (version === 'v1') {\n    // Return a v1 model\n    const mockModel = new MockLanguageModelV1({\n      defaultObjectGenerationMode: objectGenerationMode,\n      doGenerate: async props => {\n        if (spyGenerate) {\n          spyGenerate(props);\n        }\n\n        return {\n          rawCall: { rawPrompt: null, rawSettings: {} },\n          finishReason: 'stop',\n          usage: { promptTokens: 10, completionTokens: 20 },\n          text: finalText,\n        };\n      },\n      doStream: async props => {\n        if (spyStream) {\n          spyStream(props);\n        }\n\n        // Split the mock text into chunks for streaming\n        const chunks = finalText.split(' ').map(word => ({\n          type: 'text-delta' as const,\n          textDelta: word + ' ',\n        }));\n\n        return {\n          stream: simulateReadableStream({\n            chunks: [\n              ...chunks,\n              {\n                type: 'finish',\n                finishReason: 'stop',\n                logprobs: undefined,\n                usage: { completionTokens: 10, promptTokens: 3 },\n              },\n            ],\n          }),\n          rawCall: { rawPrompt: null, rawSettings: {} },\n        };\n      },\n    });\n\n    return mockModel;\n  }\n\n  // Return a v2 model (default)\n  const mockModel = new MockLanguageModelV2({\n    doGenerate: async props => {\n      if (spyGenerate) {\n        spyGenerate(props);\n      }\n\n      return {\n        rawCall: { rawPrompt: null, rawSettings: {} },\n        finishReason: 'stop',\n        usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n        content: [\n          {\n            type: 'text',\n            text: finalText,\n          },\n        ],\n        warnings: [],\n      };\n    },\n    doStream: async props => {\n      if (spyStream) {\n        spyStream(props);\n      }\n\n      return {\n        rawCall: { rawPrompt: null, rawSettings: {} },\n        warnings: [],\n        stream: convertArrayToReadableStream([\n          { type: 'stream-start', warnings: [] },\n          { type: 'response-metadata', id: 'id-0', modelId: 'mock-model-id', timestamp: new Date(0) },\n          { type: 'text-start', id: 'text-1' },\n          { type: 'text-delta', id: 'text-1', delta: finalText },\n          { type: 'text-end', id: 'text-1' },\n          {\n            type: 'finish',\n            finishReason: 'stop',\n            usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n          },\n        ]),\n      };\n    },\n  });\n\n  return mockModel;\n}\n\nexport class MockProvider extends MastraLLMV1 {\n  constructor({\n    spyGenerate,\n    spyStream,\n    objectGenerationMode,\n    mockText = 'Hello, world!',\n  }: {\n    spyGenerate?: (props: any) => void;\n    spyStream?: (props: any) => void;\n    objectGenerationMode?: 'json';\n    mockText?: string | Record<string, any>;\n  }) {\n    const mockModel = new MockLanguageModelV1({\n      defaultObjectGenerationMode: objectGenerationMode,\n      doGenerate: async props => {\n        if (spyGenerate) {\n          spyGenerate(props);\n        }\n\n        if (objectGenerationMode === 'json') {\n          return {\n            rawCall: { rawPrompt: null, rawSettings: {} },\n            finishReason: 'stop',\n            usage: { promptTokens: 10, completionTokens: 20 },\n            text: JSON.stringify(mockText),\n          };\n        }\n\n        return {\n          rawCall: { rawPrompt: null, rawSettings: {} },\n          finishReason: 'stop',\n          usage: { promptTokens: 10, completionTokens: 20 },\n          text: typeof mockText === 'string' ? mockText : JSON.stringify(mockText),\n        };\n      },\n      doStream: async props => {\n        if (spyStream) {\n          spyStream(props);\n        }\n\n        const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n        // Split the mock text into chunks for streaming\n        const chunks = text.split(' ').map(word => ({\n          type: 'text-delta' as const,\n          textDelta: word + ' ',\n        }));\n\n        return {\n          stream: simulateReadableStream({\n            chunks: [\n              ...chunks,\n              {\n                type: 'finish',\n                finishReason: 'stop',\n                logprobs: undefined,\n                usage: { completionTokens: 10, promptTokens: 3 },\n              },\n            ],\n          }),\n          rawCall: { rawPrompt: null, rawSettings: {} },\n        };\n      },\n    });\n\n    super({ model: mockModel });\n  }\n\n  // @ts-expect-error\n  stream(...args: any): PromiseLike<StreamReturn<any, any, any>> {\n    // @ts-expect-error\n    const result = super.stream(...args);\n\n    return {\n      ...result,\n      then: (onfulfilled, onrejected) => {\n        // @ts-expect-error\n        return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n      },\n    };\n  }\n\n  // @ts-expect-error\n  __streamObject(...args): PromiseLike<StreamObjectResult<any>> {\n    // @ts-expect-error\n    const result = super.__streamObject(...args);\n\n    return {\n      ...result,\n      then: (onfulfilled, onrejected) => {\n        // @ts-expect-error\n        return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n      },\n    };\n  }\n}\n"]}