{ "version": 3, "sources": ["../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/index.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/src/util.js", "../../../node_modules/preact/src/options.js", "../../../node_modules/preact/src/create-element.js", "../../../node_modules/preact/src/component.js", "../../../node_modules/preact/src/diff/props.js", "../../../node_modules/preact/src/create-context.js", "../../../node_modules/preact/src/diff/children.js", "../../../node_modules/preact/src/diff/index.js", "../../../node_modules/preact/src/render.js", "../../../node_modules/preact/src/clone-element.js", "../../../node_modules/preact/src/diff/catch-error.js", "../../../node_modules/preact/hooks/src/index.js", "../../../node_modules/preact/compat/src/util.js", "../../../node_modules/preact/compat/src/PureComponent.js", "../../../node_modules/preact/compat/src/memo.js", "../../../node_modules/preact/compat/src/forwardRef.js", "../../../node_modules/preact/compat/src/Children.js", "../../../node_modules/preact/compat/src/suspense.js", "../../../node_modules/preact/compat/src/suspense-list.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/compat/src/portals.js", "../../../node_modules/preact/compat/src/render.js", "../../../node_modules/preact/compat/src/index.js", "../../../node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/lib/ReactPropTypesSecret.js", "../../../node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/factoryWithThrowingShims.js", "../../../node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/index.js", "../../../node_modules/react/index.js", "../../../node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js", "../../../node_modules/intl-tel-input/build/js/intlTelInput.js", "../../../node_modules/intl-tel-input/index.js", "../../../node_modules/flubber/build/flubber.min.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/turbo_power/dist/turbo_power.js", "../../javascript/components/application.js", "../../javascript/components/landing_page.jsx", "../../../node_modules/@preact/signals/src/index.ts", "../../../node_modules/@preact/signals-core/src/index.ts", "../../javascript/components/landing_pages/sign_up.jsx", "../../javascript/components/lead_capture_form.jsx", "../../javascript/components/address_field.jsx", "../../javascript/components/phone_field.jsx", "../../../node_modules/@fortawesome/fontawesome-svg-core/index.mjs", "../../../node_modules/@fortawesome/react-fontawesome/index.es.js", "../../../node_modules/react/index.mjs", "../../javascript/components/landing_pages/error.jsx", "../../javascript/components/select.jsx", "../../javascript/components/landing_pages/membership.jsx", "../../javascript/components/landing_pages/collapsible.jsx", "../../javascript/components/landing_pages/cart.jsx", "../../javascript/components/landing_pages/classes.jsx", "../../javascript/helpers/fetch_helper.js", "../../javascript/components/landing_pages/merchandise.jsx", "../../javascript/components/landing_pages/confirmation.jsx", "../../javascript/components/landing_pages/submission.js", "../../javascript/components/landing_pages/confirmation/generic.jsx", "../../javascript/components/landing_pages/confirmation/members.jsx", "../../javascript/components/landing_pages/confirmation/cart.jsx", "../../javascript/components/landing_pages/confirmation/payment.jsx", "../../javascript/components/landing_pages/confirmation/basys.jsx", "../../javascript/components/landing_pages/tokenizers/basys.js", "../../javascript/components/landing_pages/confirmation/stripe.jsx", "../../javascript/components/landing_pages/confirmation/usa_epay.jsx", "../../javascript/components/landing_pages/tokenizers/usa_epay.js", "../../javascript/components/landing_pages/step_tracker.jsx", "../../javascript/components/agreements.jsx", "../../javascript/components/index.js", "../../../vendor/assets/javascripts/intl-tel-input/utils.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../components/phone_field/component_controller.js", "../../components/address_field/component_controller.js", "../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", "../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs", "../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", "../../../node_modules/tabbable/src/index.js", "../../../node_modules/focus-trap/index.js", "../../components/popover/component_controller.js", "../../../node_modules/d3-dispatch/src/dispatch.js", "../../../node_modules/d3-selection/src/namespaces.js", "../../../node_modules/d3-selection/src/namespace.js", "../../../node_modules/d3-selection/src/creator.js", "../../../node_modules/d3-selection/src/selector.js", "../../../node_modules/d3-selection/src/selection/select.js", "../../../node_modules/d3-selection/src/array.js", "../../../node_modules/d3-selection/src/selectorAll.js", "../../../node_modules/d3-selection/src/selection/selectAll.js", "../../../node_modules/d3-selection/src/matcher.js", "../../../node_modules/d3-selection/src/selection/selectChild.js", "../../../node_modules/d3-selection/src/selection/selectChildren.js", "../../../node_modules/d3-selection/src/selection/filter.js", "../../../node_modules/d3-selection/src/selection/sparse.js", "../../../node_modules/d3-selection/src/selection/enter.js", "../../../node_modules/d3-selection/src/constant.js", "../../../node_modules/d3-selection/src/selection/data.js", "../../../node_modules/d3-selection/src/selection/exit.js", "../../../node_modules/d3-selection/src/selection/join.js", "../../../node_modules/d3-selection/src/selection/merge.js", "../../../node_modules/d3-selection/src/selection/order.js", "../../../node_modules/d3-selection/src/selection/sort.js", "../../../node_modules/d3-selection/src/selection/call.js", "../../../node_modules/d3-selection/src/selection/nodes.js", "../../../node_modules/d3-selection/src/selection/node.js", "../../../node_modules/d3-selection/src/selection/size.js", "../../../node_modules/d3-selection/src/selection/empty.js", "../../../node_modules/d3-selection/src/selection/each.js", "../../../node_modules/d3-selection/src/selection/attr.js", "../../../node_modules/d3-selection/src/window.js", "../../../node_modules/d3-selection/src/selection/style.js", "../../../node_modules/d3-selection/src/selection/property.js", "../../../node_modules/d3-selection/src/selection/classed.js", "../../../node_modules/d3-selection/src/selection/text.js", "../../../node_modules/d3-selection/src/selection/html.js", "../../../node_modules/d3-selection/src/selection/raise.js", "../../../node_modules/d3-selection/src/selection/lower.js", "../../../node_modules/d3-selection/src/selection/append.js", "../../../node_modules/d3-selection/src/selection/insert.js", "../../../node_modules/d3-selection/src/selection/remove.js", "../../../node_modules/d3-selection/src/selection/clone.js", "../../../node_modules/d3-selection/src/selection/datum.js", "../../../node_modules/d3-selection/src/selection/on.js", "../../../node_modules/d3-selection/src/selection/dispatch.js", "../../../node_modules/d3-selection/src/selection/iterator.js", "../../../node_modules/d3-selection/src/selection/index.js", "../../../node_modules/d3-selection/src/select.js", "../../../node_modules/d3-color/src/define.js", "../../../node_modules/d3-color/src/color.js", "../../../node_modules/d3-interpolate/src/basis.js", "../../../node_modules/d3-interpolate/src/basisClosed.js", "../../../node_modules/d3-interpolate/src/constant.js", "../../../node_modules/d3-interpolate/src/color.js", "../../../node_modules/d3-interpolate/src/rgb.js", "../../../node_modules/d3-interpolate/src/number.js", "../../../node_modules/d3-interpolate/src/string.js", "../../../node_modules/d3-interpolate/src/transform/decompose.js", "../../../node_modules/d3-interpolate/src/transform/parse.js", "../../../node_modules/d3-interpolate/src/transform/index.js", "../../../node_modules/d3-timer/src/timer.js", "../../../node_modules/d3-timer/src/timeout.js", "../../../node_modules/d3-transition/src/transition/schedule.js", "../../../node_modules/d3-transition/src/interrupt.js", "../../../node_modules/d3-transition/src/selection/interrupt.js", "../../../node_modules/d3-transition/src/transition/tween.js", "../../../node_modules/d3-transition/src/transition/interpolate.js", "../../../node_modules/d3-transition/src/transition/attr.js", "../../../node_modules/d3-transition/src/transition/attrTween.js", "../../../node_modules/d3-transition/src/transition/delay.js", "../../../node_modules/d3-transition/src/transition/duration.js", "../../../node_modules/d3-transition/src/transition/ease.js", "../../../node_modules/d3-transition/src/transition/easeVarying.js", "../../../node_modules/d3-transition/src/transition/filter.js", "../../../node_modules/d3-transition/src/transition/merge.js", "../../../node_modules/d3-transition/src/transition/on.js", "../../../node_modules/d3-transition/src/transition/remove.js", "../../../node_modules/d3-transition/src/transition/select.js", "../../../node_modules/d3-transition/src/transition/selectAll.js", "../../../node_modules/d3-transition/src/transition/selection.js", "../../../node_modules/d3-transition/src/transition/style.js", "../../../node_modules/d3-transition/src/transition/styleTween.js", "../../../node_modules/d3-transition/src/transition/text.js", "../../../node_modules/d3-transition/src/transition/textTween.js", "../../../node_modules/d3-transition/src/transition/transition.js", "../../../node_modules/d3-transition/src/transition/end.js", "../../../node_modules/d3-transition/src/transition/index.js", "../../../node_modules/d3-ease/src/cubic.js", "../../../node_modules/d3-transition/src/selection/transition.js", "../../../node_modules/d3-transition/src/selection/index.js", "../../../node_modules/d3-brush/src/brush.js", "../../../node_modules/d3-zoom/src/transform.js", "../../components/signature/full_name/component_controller.js", "../../../node_modules/signature_pad/src/point.ts", "../../../node_modules/signature_pad/src/bezier.ts", "../../../node_modules/signature_pad/src/signature_event_target.ts", "../../../node_modules/signature_pad/src/throttle.ts", "../../../node_modules/signature_pad/src/signature_pad.ts", "../../components/signature/checkbox/component_controller.js", "../../javascript/controllers/application_controller.js", "../../javascript/controllers/agreement_signatures_controller.js", "../../javascript/controllers/public/marketing_tools.js", "../../javascript/marketing_tools.js"], "sourcesContent": ["export default {\n logger: self.console,\n WebSocket: self.WebSocket\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n// ActionCable.logger.enabled = true\n//\n// Example:\n//\n// import * as ActionCable from '@rails/actioncable'\n//\n// ActionCable.logger.enabled = true\n// ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now())\n adapters.logger.log(\"[ActionCable]\", ...messages)\n }\n },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this)\n this.connection = connection\n this.reconnectAttempts = 0\n }\n\n start() {\n if (!this.isRunning()) {\n this.startedAt = now()\n delete this.stoppedAt\n this.startPolling()\n addEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n }\n }\n\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now()\n this.stopPolling()\n removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(\"ConnectionMonitor stopped\")\n }\n }\n\n isRunning() {\n return this.startedAt && !this.stoppedAt\n }\n\n recordPing() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n this.recordPing()\n delete this.disconnectedAt\n logger.log(\"ConnectionMonitor recorded connect\")\n }\n\n recordDisconnect() {\n this.disconnectedAt = now()\n logger.log(\"ConnectionMonitor recorded disconnect\")\n }\n\n // Private\n\n startPolling() {\n this.stopPolling()\n this.poll()\n }\n\n stopPolling() {\n clearTimeout(this.pollTimeout)\n }\n\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale()\n this.poll()\n }\n , this.getPollInterval())\n }\n\n getPollInterval() {\n const { staleThreshold, reconnectionBackoffRate } = this.constructor\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n const jitter = jitterMax * Math.random()\n return staleThreshold * 1000 * backoff * (1 + jitter)\n }\n\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n this.reconnectAttempts++\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n } else {\n logger.log(\"ConnectionMonitor reopening\")\n this.connection.reopen()\n }\n }\n }\n\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt\n }\n\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n }\n\n disconnectedRecently() {\n return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n }\n\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n this.connection.reopen()\n }\n }\n , 200)\n }\n }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"disconnect\": \"disconnect\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"disconnect_reasons\": {\n \"unauthorized\": \"unauthorized\",\n \"invalid_request\": \"invalid_request\",\n \"server_restart\": \"server_restart\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\n \"actioncable-v1-json\",\n \"actioncable-unsupported\"\n ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this)\n this.consumer = consumer\n this.subscriptions = this.consumer.subscriptions\n this.monitor = new ConnectionMonitor(this)\n this.disconnected = true\n }\n\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data))\n return true\n } else {\n return false\n }\n }\n\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n return false\n } else {\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols)\n this.installEventHandlers()\n this.monitor.start()\n return true\n }\n }\n\n close({allowReconnect} = {allowReconnect: true}) {\n if (!allowReconnect) { this.monitor.stop() }\n // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n if (this.isOpen()) {\n return this.webSocket.close()\n }\n }\n\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n if (this.isActive()) {\n try {\n return this.close()\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error)\n }\n finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n setTimeout(this.open, this.constructor.reopenDelay)\n }\n } else {\n return this.open()\n }\n }\n\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol\n }\n }\n\n isOpen() {\n return this.isState(\"open\")\n }\n\n isActive() {\n return this.isState(\"open\", \"connecting\")\n }\n\n // Private\n\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n }\n\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0\n }\n\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase()\n }\n }\n }\n return null\n }\n\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this)\n this.webSocket[`on${eventName}`] = handler\n }\n }\n\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {}\n }\n }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) { return }\n const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect()\n return this.subscriptions.reload()\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`)\n return this.close({allowReconnect: reconnect})\n case message_types.ping:\n return this.monitor.recordPing()\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n return this.subscriptions.notify(identifier, \"connected\")\n case message_types.rejection:\n return this.subscriptions.reject(identifier)\n default:\n return this.subscriptions.notify(identifier, \"received\", message)\n }\n },\n\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n this.disconnected = false\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n return this.close({allowReconnect: false})\n }\n },\n\n close(event) {\n logger.log(\"WebSocket onclose event\")\n if (this.disconnected) { return }\n this.disconnected = true\n this.monitor.recordDisconnect()\n return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n },\n\n error() {\n logger.log(\"WebSocket onerror event\")\n }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n// connected() {\n// // Called once the subscription has been successfully completed\n// },\n//\n// disconnected({ willAttemptReconnect: boolean }) {\n// // Called when the client has disconnected with the server.\n// // The object will have an `willAttemptReconnect` property which\n// // says whether the client has the intention of attempting\n// // to reconnect.\n// },\n//\n// appear() {\n// this.perform('appear', {appearing_on: this.appearingOn()})\n// },\n//\n// away() {\n// this.perform('away')\n// },\n//\n// appearingOn() {\n// $('main').data('appearing-on')\n// }\n// })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n// class AppearanceChannel < ApplicationActionCable::Channel\n// def subscribed\n// current_user.appear\n// end\n//\n// def unsubscribed\n// current_user.disappear\n// end\n//\n// def appear(data)\n// current_user.appear on: data['appearing_on']\n// end\n//\n// def away\n// current_user.away\n// end\n// end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key]\n object[key] = value\n }\n }\n return object\n}\n\nexport default class Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer\n this.identifier = JSON.stringify(params)\n extend(this, mixin)\n }\n\n // Perform a channel action with the optional data passed as an attribute\n perform(action, data = {}) {\n data.action = action\n return this.send(data)\n }\n\n send(data) {\n return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n }\n\n unsubscribe() {\n return this.consumer.subscriptions.remove(this)\n }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions\n this.pendingSubscriptions = []\n }\n\n guarantee(subscription) {\n if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n this.pendingSubscriptions.push(subscription) \n }\n else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n }\n this.startGuaranteeing()\n }\n\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n }\n\n startGuaranteeing() {\n this.stopGuaranteeing()\n this.retrySubscribing()\n }\n \n stopGuaranteeing() {\n clearTimeout(this.retryTimeout)\n }\n\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n this.pendingSubscriptions.map((subscription) => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n this.subscriptions.subscribe(subscription)\n })\n }\n }\n , 500)\n }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n constructor(consumer) {\n this.consumer = consumer\n this.guarantor = new SubscriptionGuarantor(this)\n this.subscriptions = []\n }\n\n create(channelName, mixin) {\n const channel = channelName\n const params = typeof channel === \"object\" ? channel : {channel}\n const subscription = new Subscription(this.consumer, params, mixin)\n return this.add(subscription)\n }\n\n // Private\n\n add(subscription) {\n this.subscriptions.push(subscription)\n this.consumer.ensureActiveConnection()\n this.notify(subscription, \"initialized\")\n this.subscribe(subscription)\n return subscription\n }\n\n remove(subscription) {\n this.forget(subscription)\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\")\n }\n return subscription\n }\n\n reject(identifier) {\n return this.findAll(identifier).map((subscription) => {\n this.forget(subscription)\n this.notify(subscription, \"rejected\")\n return subscription\n })\n }\n\n forget(subscription) {\n this.guarantor.forget(subscription)\n this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n return subscription\n }\n\n findAll(identifier) {\n return this.subscriptions.filter((s) => s.identifier === identifier)\n }\n\n reload() {\n return this.subscriptions.map((subscription) =>\n this.subscribe(subscription))\n }\n\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription) =>\n this.notify(subscription, callbackName, ...args))\n }\n\n notify(subscription, callbackName, ...args) {\n let subscriptions\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription)\n } else {\n subscriptions = [subscription]\n }\n\n return subscriptions.map((subscription) =>\n (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n }\n\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription)\n }\n }\n\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`)\n this.findAll(identifier).map((subscription) =>\n this.guarantor.forget(subscription))\n }\n\n sendCommand(subscription, command) {\n const {identifier} = subscription\n return this.consumer.send({command, identifier})\n }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n// App.cable.disconnect()\n//\n// and to restart the connection:\n//\n// App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n constructor(url) {\n this._url = url\n this.subscriptions = new Subscriptions(this)\n this.connection = new Connection(this)\n }\n\n get url() {\n return createWebSocketURL(this._url)\n }\n\n send(data) {\n return this.connection.send(data)\n }\n\n connect() {\n return this.connection.open()\n }\n\n disconnect() {\n return this.connection.close({allowReconnect: false})\n }\n\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open()\n }\n }\n}\n\nexport function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url()\n }\n\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\")\n a.href = url\n // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n a.href = a.href\n a.protocol = a.protocol.replace(\"http\", \"ws\")\n return a.href\n } else {\n return url\n }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n Connection,\n ConnectionMonitor,\n Consumer,\n INTERNAL,\n Subscription,\n Subscriptions,\n SubscriptionGuarantor,\n adapters,\n createWebSocketURL,\n logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url)\n}\n\nexport function getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n if (element) {\n return element.getAttribute(\"content\")\n }\n}\n", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {preact.ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node && node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the\n * virtual node\n * @returns {VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor == undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {Component} a\n * @param {Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n", "import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture =\n\t\t\tname !== (name = name.replace(/(PointerCapture)$|Capture$/i, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname === 'onFocusOut' ||\n\t\t\tname === 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == 'http://www.w3.org/2000/svg') {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] === '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == null) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched < eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Set<Component> | null} */\n\t\t\t\tlet subs = new Set();\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.componentWillUnmount = () => {\n\t\t\t\t\tsubs = null;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.forEach(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.add(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tif (subs) {\n\t\t\t\t\t\t\tsubs.delete(c);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType =\n\t\tcontext);\n}\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR, INSERT_VNODE, MATCHED } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\tnewParentVNode._nextDom = oldDom;\n\tconstructNewChildrenArray(newParentVNode, renderResult, oldChildren);\n\toldDom = newParentVNode._nextDom;\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == null) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (\n\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\tchildVNode._nextDom !== undefined\n\t\t) {\n\t\t\t// Since Fragments or components that return Fragment like VNodes can\n\t\t\t// contain multiple DOM nodes as the same level, continue the diff from\n\t\t\t// the sibling of last DOM child of this child VNode\n\t\t\toldDom = childVNode._nextDom;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because it\n\t\t// is only used by `diffChildren` to determine where to resume the diff\n\t\t// after diffing Components and Fragments. Once we store it the nextDOM\n\t\t// local var, we can clean up the property. Also prevents us hanging on to\n\t\t// DOM nodes that may have been unmounted.\n\t\tchildVNode._nextDom = undefined;\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\t// TODO: With new child diffing algo, consider alt ways to diff Fragments.\n\t// Such as dropping oldDom and moving fragments in place\n\t//\n\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t// _nextDom property to the nextSibling of its last child DOM node.\n\t//\n\t// `oldDom` contains the correct value here because if the last child\n\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t// node's nextSibling.\n\tnewParentVNode._nextDom = oldDom;\n\tnewParentVNode._dom = firstChildDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(newParentVNode, renderResult, oldChildren) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tconst newChildrenLength = renderResult.length;\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === undefined && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --> [1, 0, 2]\n\t\t\t// --> we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t// we set the skew to 1 as we found an offset.\n\t\t\t// --> we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t// this makes us increase the skew again.\n\t\t\t// --> we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --> [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex > skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) === 0) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom && parentVNode.type && !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom && oldDom.nextSibling;\n\t} while (oldDom != null && oldDom.nodeType === 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet x = skewedIndex - 1;\n\tlet y = skewedIndex + 1;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\tlet shouldSearch =\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) === 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode &&\n\t\t\tkey == oldVNode.key &&\n\t\t\ttype === oldVNode.type &&\n\t\t\t(oldVNode._flags & MATCHED) === 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n", "import {\n\tEMPTY_OBJ,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType && newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent && c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent && newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original === oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent && !isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t: MODE_SUSPENDED;\n\n\t\t\t\twhile (oldDom && oldDom.nodeType === 8 && oldDom.nextSibling) {\n\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t}\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original === oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\tnewVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n}\n\n/**\n * @param {Array<Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\troot._nextDom = undefined;\n\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType === 'svg') namespace = 'http://www.w3.org/2000/svg';\n\telse if (nodeType === 'math')\n\t\tnamespace = 'http://www.w3.org/1998/Math/MathML';\n\telse if (!namespace) namespace = 'http://www.w3.org/1999/xhtml';\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value === !!nodeType &&\n\t\t\t\t(nodeType ? value.localName === nodeType : value.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is && newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' && 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' && 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, null, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType === 'foreignObject'\n\t\t\t\t\t? 'http://www.w3.org/1999/xhtml'\n\t\t\t\t\t: namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType === 'progress' && inputValue == null) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType === 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && inputValue !== oldProps[i]))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, inputValue, oldProps[i], namespace);\n\t\t\t}\n\n\t\t\ti = 'checked';\n\t\t\tif (checked !== undefined && checked !== dom[i]) {\n\t\t\t\tsetProperty(dom, i, checked, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {Ref<any> & { _unmount?: unknown }} ref\n * @param {any} value\n * @param {VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') {\n\t\t\tlet hasRefUnmount = typeof ref._unmount == 'function';\n\t\t\tif (hasRefUnmount) {\n\t\t\t\t// @ts-ignore TS doesn't like moving narrowing checks into variables\n\t\t\t\tref._unmount();\n\t\t\t}\n\n\t\t\tif (!hasRefUnmount || value != null) {\n\t\t\t\t// Store the cleanup function on the function\n\t\t\t\t// instance object itself to avoid shape\n\t\t\t\t// transitioning vnode\n\t\t\t\tref._unmount = ref(value);\n\t\t\t}\n\t\t} else ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {VNode} vnode The virtual node to unmount\n * @param {VNode} parentVNode The parent of the VNode that initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type != 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._component = vnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n", "import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to render into\n * @param {PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating && replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.namespaceURI,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t\t? null\n\t\t\t\t: parentDom.firstChild\n\t\t\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t\t? oldVNode._dom\n\t\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n", "import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<ComponentChildren>} rest Any additional arguments will be used\n * as replacement children.\n * @returns {VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\n\tlet defaultProps;\n\n\tif (vnode.type && vnode.type.defaultProps) {\n\t\tdefaultProps = vnode.type.defaultProps;\n\t}\n\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse if (props[i] === undefined && defaultProps !== undefined) {\n\t\t\tnormalizedProps[i] = defaultProps[i];\n\t\t} else {\n\t\t\tnormalizedProps[i] = props[i];\n\t\t}\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n", "/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {VNode} [oldVNode]\n * @param {ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {Component} */\n\tlet component,\n\t\t/** @type {ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n", "import { options as _options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\n// Cast to use internal Options type\nconst options = /** @type {import('./internal').Options} */ (_options);\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\nlet oldRoot = options._root;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._root = (vnode, parentDom) => {\n\tif (vnode && parentDom._children && parentDom._children._mask) {\n\t\tvnode._mask = parentDom._children._mask;\n\t}\n\n\tif (oldRoot) oldRoot(vnode, parentDom);\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingArgs = hookItem._nextValue = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentIndex = 0;\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\n// TODO: Improve typing of commitQueue parameter\n/** @type {(vnode: import('./internal').VNode, commitQueue: any) => void} */\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\n\treturn hooks._list[index];\n}\n\n/**\n * @template {unknown} S\n * @param {import('./index').Dispatch<import('./index').StateUpdater<S>>} [initialState]\n * @returns {[S, (state: S) => void]}\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @template {unknown} S\n * @template {unknown} A\n * @param {import('./index').Reducer<S, A>} reducer\n * @param {import('./index').Dispatch<import('./index').StateUpdater<S>>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ S, (state: S) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tlet prevScu = currentComponent.shouldComponentUpdate;\n\t\t\tconst prevCWU = currentComponent.componentWillUpdate;\n\n\t\t\t// If we're dealing with a forced update `shouldComponentUpdate` will\n\t\t\t// not be called. But we use that to update the hook values, so we\n\t\t\t// need to call it.\n\t\t\tcurrentComponent.componentWillUpdate = function (p, s, c) {\n\t\t\t\tif (this._force) {\n\t\t\t\t\tlet tmp = prevScu;\n\t\t\t\t\t// Clear to avoid other sCU hooks from being called\n\t\t\t\t\tprevScu = undefined;\n\t\t\t\t\tupdateHookState(p, s, c);\n\t\t\t\t\tprevScu = tmp;\n\t\t\t\t}\n\n\t\t\t\tif (prevCWU) prevCWU.call(this, p, s, c);\n\t\t\t};\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\t/**\n\t\t\t *\n\t\t\t * @type {import('./internal').Component[\"shouldComponentUpdate\"]}\n\t\t\t */\n\t\t\t// @ts-ignore - We don't use TS to downtranspile\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction updateHookState(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\t/** @type {(x: import('./internal').HookState) => x is import('./internal').ReducerHookState} */\n\t\t\t\tconst isStateHook = x => !!x._component;\n\t\t\t\tconst stateHooks =\n\t\t\t\t\thookState._component.__hooks._list.filter(isStateHook);\n\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\tcurrentComponent.shouldComponentUpdate = updateHookState;\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\n/** @type {(initialValue: unknown) => unknown} */\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @template {unknown} T\n * @param {() => T} factory\n * @param {unknown[]} args\n * @returns {T}\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState<T>} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {unknown[]} args\n * @returns {() => void}\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(\n\t\t\tformatter ? formatter(value) : /** @type {any}*/ (value)\n\t\t);\n\t}\n}\n\n/**\n * @param {(error: unknown, errorInfo: import('preact').ErrorInfo) => void} cb\n * @returns {[unknown, () => void]}\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/** @type {() => string} */\nexport function useId() {\n\t/** @type {import('./internal').IdHookState} */\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n * @returns {void}\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').HookState} hook\n * @returns {void}\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n * @returns {void}\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {unknown[]} oldArgs\n * @param {unknown[]} newArgs\n * @returns {boolean}\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\n/**\n * @template Arg\n * @param {Arg} arg\n * @param {(arg: Arg) => any} f\n * @returns {any}\n */\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n", "/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n", "import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p, c) {\n\tthis.props = p;\n\tthis.context = c;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function (props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n", "import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n", "import { options } from 'preact';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tif (!('ref' in props)) return fn(props, null);\n\n\t\tlet ref = props.ref;\n\t\tdelete props.ref;\n\t\tconst result = fn(props, ref);\n\t\tprops.ref = ref;\n\t\treturn result;\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n", "import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n", "import { Component, createElement, options, Fragment } from 'preact';\nimport { MODE_HYDRATE } from '../../src/constants';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function (error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function (vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._flags & MODE_HYDRATE) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode && originalParent) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.appendChild(vnode._dom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function (promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tif (\n\t\t!c._pendingSuspensionCount++ &&\n\t\t!(suspendingVNode._flags & MODE_HYDRATE)\n\t) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function () {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function (props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._flags &= ~MODE_HYDRATE;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n", "import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function (child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function (props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate =\n\tSuspenseList.prototype.componentDidMount = function () {\n\t\t// Iterate through all children after mounting for two reasons:\n\t\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t\t// The nodes can now be completely consumed from the linked list.\n\t\t// 2. Handle nodes that might have gotten resolved between render and\n\t\t// componentDidMount.\n\t\tthis._map.forEach((node, child) => {\n\t\t\tresolve(this, child, node);\n\t\t});\n\t};\n", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function () {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\tif (!_this._temp) {\n\t\t_this._container = container;\n\n\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t_this._temp = {\n\t\t\tnodeType: 1,\n\t\t\tparentNode: container,\n\t\t\tchildNodes: [],\n\t\t\tcontains: () => true,\n\t\t\tappendChild(child) {\n\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t_this._container.appendChild(child);\n\t\t\t},\n\t\t\tinsertBefore(child, before) {\n\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t_this._container.appendChild(child);\n\t\t\t},\n\t\t\tremoveChild(child) {\n\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t_this._container.removeChild(child);\n\t\t\t}\n\t\t};\n\t}\n\n\t// Render our wrapping element into temp.\n\trender(\n\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t_this._temp\n\t);\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n", "import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\nimport {\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tuseEffect,\n\tuseId,\n\tuseImperativeHandle,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseReducer,\n\tuseRef,\n\tuseState\n} from 'preact/hooks';\nimport {\n\tuseDeferredValue,\n\tuseInsertionEffect,\n\tuseSyncExternalStore,\n\tuseTransition\n} from './index';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS =\n\t/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\nconst ON_ANI = /^on(Ani|Tra|Tou|BeforeInp|Compo)/;\nconst CAMEL_REPLACE = /[A-Z0-9]/g;\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/\n\t\t: /fil|che|ra/\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nconst classNameDescriptorNonEnumberable = {\n\tenumerable: false,\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nfunction handleDomVNode(vnode) {\n\tlet props = vnode.props,\n\t\ttype = vnode.type,\n\t\tnormalizedProps = {};\n\n\tlet isNonDashedType = type.indexOf('-') === -1;\n\tfor (let i in props) {\n\t\tlet value = props[i];\n\n\t\tif (\n\t\t\t(i === 'value' && 'defaultValue' in props && value == null) ||\n\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t(IS_DOM && i === 'children' && type === 'noscript') ||\n\t\t\ti === 'class' ||\n\t\t\ti === 'className'\n\t\t) {\n\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t// a default value\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet lowerCased = i.toLowerCase();\n\t\tif (i === 'defaultValue' && 'value' in props && props.value == null) {\n\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\ti = 'value';\n\t\t} else if (i === 'download' && value === true) {\n\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t// value will be used as the file name and the file will be called\n\t\t\t// \"true\" upon downloading it.\n\t\t\tvalue = '';\n\t\t} else if (lowerCased === 'translate' && value === 'no') {\n\t\t\tvalue = false;\n\t\t} else if (lowerCased[0] === 'o' && lowerCased[1] === 'n') {\n\t\t\tif (lowerCased === 'ondoubleclick') {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\tlowerCased === 'onchange' &&\n\t\t\t\t(type === 'input' || type === 'textarea') &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\tlowerCased = i = 'oninput';\n\t\t\t} else if (lowerCased === 'onfocus') {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (lowerCased === 'onblur') {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (ON_ANI.test(i)) {\n\t\t\t\ti = lowerCased;\n\t\t\t}\n\t\t} else if (isNonDashedType && CAMEL_PROPS.test(i)) {\n\t\t\ti = i.replace(CAMEL_REPLACE, '-$&').toLowerCase();\n\t\t} else if (value === null) {\n\t\t\tvalue = undefined;\n\t\t}\n\n\t\t// Add support for onInput and onChange, see #3561\n\t\t// if we have an oninput prop already change it to oninputCapture\n\t\tif (lowerCased === 'oninput') {\n\t\t\ti = lowerCased;\n\t\t\tif (normalizedProps[i]) {\n\t\t\t\ti = 'oninputCapture';\n\t\t\t}\n\t\t}\n\n\t\tnormalizedProps[i] = value;\n\t}\n\n\t// Add support for array select values: <select multiple value={[]} />\n\tif (\n\t\ttype == 'select' &&\n\t\tnormalizedProps.multiple &&\n\t\tArray.isArray(normalizedProps.value)\n\t) {\n\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\tchild.props.selected =\n\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t});\n\t}\n\n\t// Adding support for defaultValue in select tag\n\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\tif (normalizedProps.multiple) {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t} else {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t}\n\t\t});\n\t}\n\n\tif (props.class && !props.className) {\n\t\tnormalizedProps.class = props.class;\n\t\tObject.defineProperty(\n\t\t\tnormalizedProps,\n\t\t\t'className',\n\t\t\tclassNameDescriptorNonEnumberable\n\t\t);\n\t} else if (props.className && !props.class) {\n\t\tnormalizedProps.class = normalizedProps.className = props.className;\n\t} else if (props.class && props.className) {\n\t\tnormalizedProps.class = normalizedProps.className = props.className;\n\t}\n\n\tvnode.props = normalizedProps;\n}\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\t// only normalize props on Element nodes\n\tif (typeof vnode.type === 'string') {\n\t\thandleDomVNode(vnode);\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function (vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\nconst oldDiffed = options.diffed;\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.diffed = function (vnode) {\n\tif (oldDiffed) {\n\t\toldDiffed(vnode);\n\t}\n\n\tconst props = vnode.props;\n\tconst dom = vnode._dom;\n\n\tif (\n\t\tdom != null &&\n\t\tvnode.type === 'textarea' &&\n\t\t'value' in props &&\n\t\tprops.value !== dom.value\n\t) {\n\t\tdom.value = props.value == null ? '' : props.value;\n\t}\n\n\tcurrentComponent = null;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t},\n\t\t\tuseCallback,\n\t\t\tuseContext,\n\t\t\tuseDebugValue,\n\t\t\tuseDeferredValue,\n\t\t\tuseEffect,\n\t\t\tuseId,\n\t\t\tuseImperativeHandle,\n\t\t\tuseInsertionEffect,\n\t\t\tuseLayoutEffect,\n\t\t\tuseMemo,\n\t\t\t// useMutableSource, // experimental-only and replaced by uSES, likely not worth supporting\n\t\t\tuseReducer,\n\t\t\tuseRef,\n\t\t\tuseState,\n\t\t\tuseSyncExternalStore,\n\t\t\tuseTransition\n\t\t}\n\t}\n};\n", "import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport { is } from './util';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '18.3.1'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Check if the passed element is a Fragment node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isFragment(element) {\n\treturn isValidElement(element) && element.type === Fragment;\n}\n\n/**\n * Check if the passed element is a Memo node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isMemo(element) {\n\treturn (\n\t\t!!element &&\n\t\t!!element.displayName &&\n\t\t(typeof element.displayName === 'string' ||\n\t\t\telement.displayName instanceof String) &&\n\t\telement.displayName.startsWith('Memo(')\n\t);\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n// compat to react-is\nexport const isElement = isValidElement;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n * @typedef {{ _value: any; _getSnapshot: () => any }} Store\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\t/**\n\t * @typedef {{ _instance: Store }} StoreRef\n\t * @type {[StoreRef, (store: StoreRef) => void]}\n\t */\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (didSnapshotChange(_instance)) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (didSnapshotChange(_instance)) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (didSnapshotChange(_instance)) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\n/** @type {(inst: Store) => boolean} */\nfunction didSnapshotChange(inst) {\n\tconst latestGetSnapshot = inst._getSnapshot;\n\tconst prevValue = inst._value;\n\ttry {\n\t\tconst nextValue = latestGetSnapshot();\n\t\treturn !is(prevValue, nextValue);\n\t} catch (error) {\n\t\treturn true;\n\t}\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tisFragment,\n\tisMemo,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tisElement,\n\tisFragment,\n\tisMemo,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n", "module.exports = require('preact/compat');\r\n\r\n", "(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"3.1.0\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"3.1.0\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded = [\"on\", \"session\"];\n var CheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CheckoutSdkContext.displayName = 'CheckoutSdkContext';\n var parseCheckoutSdkContext = function parseCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an <CheckoutProvider> provider.\"));\n }\n\n return ctx;\n };\n var CheckoutContext = /*#__PURE__*/React.createContext(null);\n CheckoutContext.displayName = 'CheckoutContext';\n var extractCheckoutContextValue = function extractCheckoutContextValue(checkoutSdk, sessionState) {\n if (!checkoutSdk) {\n return null;\n }\n\n checkoutSdk.on;\n checkoutSdk.session;\n var actions = _objectWithoutProperties(checkoutSdk, _excluded);\n\n if (!sessionState) {\n return _objectSpread2(_objectSpread2({}, actions), checkoutSdk.session());\n }\n\n return _objectSpread2(_objectSpread2({}, actions), sessionState);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CheckoutProvider = function CheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n checkoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, checkoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.checkoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n checkoutSdk: checkoutSdk\n };\n });\n }; // Ref used to avoid calling initCheckout multiple times when options changes\n\n\n var initCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCheckoutCalledRef.current = true;\n stripe.initCheckout(options).then(function (checkoutSdk) {\n if (checkoutSdk) {\n safeSetContext(stripe, checkoutSdk);\n checkoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCheckoutCalledRef.current) {\n initCheckoutCalledRef.current = true;\n parsed.stripe.initCheckout(options).then(function (checkoutSdk) {\n if (checkoutSdk) {\n safeSetContext(parsed.stripe, checkoutSdk);\n checkoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n if (!ctx.checkoutSdk) {\n return;\n }\n\n if (options.clientSecret && !isUnknownObject(prevOptions) && !isEqual(options.clientSecret, prevOptions.clientSecret)) {\n console.warn('Unsupported prop change: options.clientSecret is not a mutable property.');\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n\n if (currentAppearance && !isEqual(currentAppearance, previousAppearance)) {\n ctx.checkoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.checkoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var checkoutContextValue = React.useMemo(function () {\n return extractCheckoutContextValue(ctx.checkoutSdk, session);\n }, [ctx.checkoutSdk, session]);\n\n if (!ctx.checkoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CheckoutContext.Provider, {\n value: checkoutContextValue\n }, children));\n };\n CheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.string.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCheckoutSdkContextWithUseCase = function useCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CheckoutSdkContext);\n return parseCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCheckoutSdkContextWithUseCase = function useElementsOrCheckoutSdkContextWithUseCase(useCaseString) {\n var checkoutSdkContext = React.useContext(CheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (checkoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both <CheckoutProvider> and <Elements> providers.\"));\n }\n\n if (checkoutSdkContext) {\n return parseCheckoutSdkContext(checkoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCheckout = function useCheckout() {\n // ensure it's in CheckoutProvider\n useCheckoutSdkContextWithUseCase('calls useCheckout()');\n var ctx = React.useContext(CheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.');\n }\n\n return ctx;\n };\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {\n var newElement = null;\n\n if (checkoutSdk) {\n newElement = checkoutSdk.createElement(type, options);\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, checkoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates && 'update' in elementRef.current) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error('<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n\n if (prevOptions.onLineItemsChange != null && options.onLineItemsChange !== prevOptions.onLineItemsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCheckou = useElementsOrCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCheckou.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n */\n\n var CurrencySelectorElement = createElementComponent('currencySelector', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CheckoutProvider = CheckoutProvider;\n exports.CurrencySelectorElement = CurrencySelectorElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCheckout = useCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n", "/*\n * International Telephone Input v17.0.16\n * https://github.com/jackocnr/intl-tel-input.git\n * Licensed under the MIT license\n */\n\n// wrap in UMD\n(function(factory) {\n if (typeof module === \"object\" && module.exports) module.exports = factory(); else window.intlTelInput = factory();\n})(function(undefined) {\n \"use strict\";\n return function() {\n // Array of country objects for the flag dropdown.\n // Here is the criteria for the plugin to support a given country/territory\n // - It has an iso2 code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n // - It has it's own country calling code (it is not a sub-region of another country): https://en.wikipedia.org/wiki/List_of_country_calling_codes\n // - It has a flag in the region-flags project: https://github.com/behdad/region-flags/tree/gh-pages/png\n // - It is supported by libphonenumber (it must be listed on this page): https://github.com/googlei18n/libphonenumber/blob/master/resources/ShortNumberMetadata.xml\n // Each country array has the following information:\n // [\n // Country name,\n // iso2 code,\n // International dial code,\n // Order (if >1 country with same dial code),\n // Area codes\n // ]\n var allCountries = [ [ \"Afghanistan (\u202B\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646\u202C\u200E)\", \"af\", \"93\" ], [ \"Albania (Shqip\u00EBri)\", \"al\", \"355\" ], [ \"Algeria (\u202B\u0627\u0644\u062C\u0632\u0627\u0626\u0631\u202C\u200E)\", \"dz\", \"213\" ], [ \"American Samoa\", \"as\", \"1\", 5, [ \"684\" ] ], [ \"Andorra\", \"ad\", \"376\" ], [ \"Angola\", \"ao\", \"244\" ], [ \"Anguilla\", \"ai\", \"1\", 6, [ \"264\" ] ], [ \"Antigua and Barbuda\", \"ag\", \"1\", 7, [ \"268\" ] ], [ \"Argentina\", \"ar\", \"54\" ], [ \"Armenia (\u0540\u0561\u0575\u0561\u057D\u057F\u0561\u0576)\", \"am\", \"374\" ], [ \"Aruba\", \"aw\", \"297\" ], [ \"Ascension Island\", \"ac\", \"247\" ], [ \"Australia\", \"au\", \"61\", 0 ], [ \"Austria (\u00D6sterreich)\", \"at\", \"43\" ], [ \"Azerbaijan (Az\u0259rbaycan)\", \"az\", \"994\" ], [ \"Bahamas\", \"bs\", \"1\", 8, [ \"242\" ] ], [ \"Bahrain (\u202B\u0627\u0644\u0628\u062D\u0631\u064A\u0646\u202C\u200E)\", \"bh\", \"973\" ], [ \"Bangladesh (\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6)\", \"bd\", \"880\" ], [ \"Barbados\", \"bb\", \"1\", 9, [ \"246\" ] ], [ \"Belarus (\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u044C)\", \"by\", \"375\" ], [ \"Belgium (Belgi\u00EB)\", \"be\", \"32\" ], [ \"Belize\", \"bz\", \"501\" ], [ \"Benin (B\u00E9nin)\", \"bj\", \"229\" ], [ \"Bermuda\", \"bm\", \"1\", 10, [ \"441\" ] ], [ \"Bhutan (\u0F60\u0F56\u0FB2\u0F74\u0F42)\", \"bt\", \"975\" ], [ \"Bolivia\", \"bo\", \"591\" ], [ \"Bosnia and Herzegovina (\u0411\u043E\u0441\u043D\u0430 \u0438 \u0425\u0435\u0440\u0446\u0435\u0433\u043E\u0432\u0438\u043D\u0430)\", \"ba\", \"387\" ], [ \"Botswana\", \"bw\", \"267\" ], [ \"Brazil (Brasil)\", \"br\", \"55\" ], [ \"British Indian Ocean Territory\", \"io\", \"246\" ], [ \"British Virgin Islands\", \"vg\", \"1\", 11, [ \"284\" ] ], [ \"Brunei\", \"bn\", \"673\" ], [ \"Bulgaria (\u0411\u044A\u043B\u0433\u0430\u0440\u0438\u044F)\", \"bg\", \"359\" ], [ \"Burkina Faso\", \"bf\", \"226\" ], [ \"Burundi (Uburundi)\", \"bi\", \"257\" ], [ \"Cambodia (\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6)\", \"kh\", \"855\" ], [ \"Cameroon (Cameroun)\", \"cm\", \"237\" ], [ \"Canada\", \"ca\", \"1\", 1, [ \"204\", \"226\", \"236\", \"249\", \"250\", \"289\", \"306\", \"343\", \"365\", \"387\", \"403\", \"416\", \"418\", \"431\", \"437\", \"438\", \"450\", \"506\", \"514\", \"519\", \"548\", \"579\", \"581\", \"587\", \"604\", \"613\", \"639\", \"647\", \"672\", \"705\", \"709\", \"742\", \"778\", \"780\", \"782\", \"807\", \"819\", \"825\", \"867\", \"873\", \"902\", \"905\" ] ], [ \"Cape Verde (Kabu Verdi)\", \"cv\", \"238\" ], [ \"Caribbean Netherlands\", \"bq\", \"599\", 1, [ \"3\", \"4\", \"7\" ] ], [ \"Cayman Islands\", \"ky\", \"1\", 12, [ \"345\" ] ], [ \"Central African Republic (R\u00E9publique centrafricaine)\", \"cf\", \"236\" ], [ \"Chad (Tchad)\", \"td\", \"235\" ], [ \"Chile\", \"cl\", \"56\" ], [ \"China (\u4E2D\u56FD)\", \"cn\", \"86\" ], [ \"Christmas Island\", \"cx\", \"61\", 2, [ \"89164\" ] ], [ \"Cocos (Keeling) Islands\", \"cc\", \"61\", 1, [ \"89162\" ] ], [ \"Colombia\", \"co\", \"57\" ], [ \"Comoros (\u202B\u062C\u0632\u0631 \u0627\u0644\u0642\u0645\u0631\u202C\u200E)\", \"km\", \"269\" ], [ \"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)\", \"cd\", \"243\" ], [ \"Congo (Republic) (Congo-Brazzaville)\", \"cg\", \"242\" ], [ \"Cook Islands\", \"ck\", \"682\" ], [ \"Costa Rica\", \"cr\", \"506\" ], [ \"C\u00F4te d\u2019Ivoire\", \"ci\", \"225\" ], [ \"Croatia (Hrvatska)\", \"hr\", \"385\" ], [ \"Cuba\", \"cu\", \"53\" ], [ \"Cura\u00E7ao\", \"cw\", \"599\", 0 ], [ \"Cyprus (\u039A\u03CD\u03C0\u03C1\u03BF\u03C2)\", \"cy\", \"357\" ], [ \"Czech Republic (\u010Cesk\u00E1 republika)\", \"cz\", \"420\" ], [ \"Denmark (Danmark)\", \"dk\", \"45\" ], [ \"Djibouti\", \"dj\", \"253\" ], [ \"Dominica\", \"dm\", \"1\", 13, [ \"767\" ] ], [ \"Dominican Republic (Rep\u00FAblica Dominicana)\", \"do\", \"1\", 2, [ \"809\", \"829\", \"849\" ] ], [ \"Ecuador\", \"ec\", \"593\" ], [ \"Egypt (\u202B\u0645\u0635\u0631\u202C\u200E)\", \"eg\", \"20\" ], [ \"El Salvador\", \"sv\", \"503\" ], [ \"Equatorial Guinea (Guinea Ecuatorial)\", \"gq\", \"240\" ], [ \"Eritrea\", \"er\", \"291\" ], [ \"Estonia (Eesti)\", \"ee\", \"372\" ], [ \"Eswatini\", \"sz\", \"268\" ], [ \"Ethiopia\", \"et\", \"251\" ], [ \"Falkland Islands (Islas Malvinas)\", \"fk\", \"500\" ], [ \"Faroe Islands (F\u00F8royar)\", \"fo\", \"298\" ], [ \"Fiji\", \"fj\", \"679\" ], [ \"Finland (Suomi)\", \"fi\", \"358\", 0 ], [ \"France\", \"fr\", \"33\" ], [ \"French Guiana (Guyane fran\u00E7aise)\", \"gf\", \"594\" ], [ \"French Polynesia (Polyn\u00E9sie fran\u00E7aise)\", \"pf\", \"689\" ], [ \"Gabon\", \"ga\", \"241\" ], [ \"Gambia\", \"gm\", \"220\" ], [ \"Georgia (\u10E1\u10D0\u10E5\u10D0\u10E0\u10D7\u10D5\u10D4\u10DA\u10DD)\", \"ge\", \"995\" ], [ \"Germany (Deutschland)\", \"de\", \"49\" ], [ \"Ghana (Gaana)\", \"gh\", \"233\" ], [ \"Gibraltar\", \"gi\", \"350\" ], [ \"Greece (\u0395\u03BB\u03BB\u03AC\u03B4\u03B1)\", \"gr\", \"30\" ], [ \"Greenland (Kalaallit Nunaat)\", \"gl\", \"299\" ], [ \"Grenada\", \"gd\", \"1\", 14, [ \"473\" ] ], [ \"Guadeloupe\", \"gp\", \"590\", 0 ], [ \"Guam\", \"gu\", \"1\", 15, [ \"671\" ] ], [ \"Guatemala\", \"gt\", \"502\" ], [ \"Guernsey\", \"gg\", \"44\", 1, [ \"1481\", \"7781\", \"7839\", \"7911\" ] ], [ \"Guinea (Guin\u00E9e)\", \"gn\", \"224\" ], [ \"Guinea-Bissau (Guin\u00E9 Bissau)\", \"gw\", \"245\" ], [ \"Guyana\", \"gy\", \"592\" ], [ \"Haiti\", \"ht\", \"509\" ], [ \"Honduras\", \"hn\", \"504\" ], [ \"Hong Kong (\u9999\u6E2F)\", \"hk\", \"852\" ], [ \"Hungary (Magyarorsz\u00E1g)\", \"hu\", \"36\" ], [ \"Iceland (\u00CDsland)\", \"is\", \"354\" ], [ \"India (\u092D\u093E\u0930\u0924)\", \"in\", \"91\" ], [ \"Indonesia\", \"id\", \"62\" ], [ \"Iran (\u202B\u0627\u06CC\u0631\u0627\u0646\u202C\u200E)\", \"ir\", \"98\" ], [ \"Iraq (\u202B\u0627\u0644\u0639\u0631\u0627\u0642\u202C\u200E)\", \"iq\", \"964\" ], [ \"Ireland\", \"ie\", \"353\" ], [ \"Isle of Man\", \"im\", \"44\", 2, [ \"1624\", \"74576\", \"7524\", \"7924\", \"7624\" ] ], [ \"Israel (\u202B\u05D9\u05E9\u05E8\u05D0\u05DC\u202C\u200E)\", \"il\", \"972\" ], [ \"Italy (Italia)\", \"it\", \"39\", 0 ], [ \"Jamaica\", \"jm\", \"1\", 4, [ \"876\", \"658\" ] ], [ \"Japan (\u65E5\u672C)\", \"jp\", \"81\" ], [ \"Jersey\", \"je\", \"44\", 3, [ \"1534\", \"7509\", \"7700\", \"7797\", \"7829\", \"7937\" ] ], [ \"Jordan (\u202B\u0627\u0644\u0623\u0631\u062F\u0646\u202C\u200E)\", \"jo\", \"962\" ], [ \"Kazakhstan (\u041A\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043D)\", \"kz\", \"7\", 1, [ \"33\", \"7\" ] ], [ \"Kenya\", \"ke\", \"254\" ], [ \"Kiribati\", \"ki\", \"686\" ], [ \"Kosovo\", \"xk\", \"383\" ], [ \"Kuwait (\u202B\u0627\u0644\u0643\u0648\u064A\u062A\u202C\u200E)\", \"kw\", \"965\" ], [ \"Kyrgyzstan (\u041A\u044B\u0440\u0433\u044B\u0437\u0441\u0442\u0430\u043D)\", \"kg\", \"996\" ], [ \"Laos (\u0EA5\u0EB2\u0EA7)\", \"la\", \"856\" ], [ \"Latvia (Latvija)\", \"lv\", \"371\" ], [ \"Lebanon (\u202B\u0644\u0628\u0646\u0627\u0646\u202C\u200E)\", \"lb\", \"961\" ], [ \"Lesotho\", \"ls\", \"266\" ], [ \"Liberia\", \"lr\", \"231\" ], [ \"Libya (\u202B\u0644\u064A\u0628\u064A\u0627\u202C\u200E)\", \"ly\", \"218\" ], [ \"Liechtenstein\", \"li\", \"423\" ], [ \"Lithuania (Lietuva)\", \"lt\", \"370\" ], [ \"Luxembourg\", \"lu\", \"352\" ], [ \"Macau (\u6FB3\u9580)\", \"mo\", \"853\" ], [ \"North Macedonia (\u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0438\u0458\u0430)\", \"mk\", \"389\" ], [ \"Madagascar (Madagasikara)\", \"mg\", \"261\" ], [ \"Malawi\", \"mw\", \"265\" ], [ \"Malaysia\", \"my\", \"60\" ], [ \"Maldives\", \"mv\", \"960\" ], [ \"Mali\", \"ml\", \"223\" ], [ \"Malta\", \"mt\", \"356\" ], [ \"Marshall Islands\", \"mh\", \"692\" ], [ \"Martinique\", \"mq\", \"596\" ], [ \"Mauritania (\u202B\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627\u202C\u200E)\", \"mr\", \"222\" ], [ \"Mauritius (Moris)\", \"mu\", \"230\" ], [ \"Mayotte\", \"yt\", \"262\", 1, [ \"269\", \"639\" ] ], [ \"Mexico (M\u00E9xico)\", \"mx\", \"52\" ], [ \"Micronesia\", \"fm\", \"691\" ], [ \"Moldova (Republica Moldova)\", \"md\", \"373\" ], [ \"Monaco\", \"mc\", \"377\" ], [ \"Mongolia (\u041C\u043E\u043D\u0433\u043E\u043B)\", \"mn\", \"976\" ], [ \"Montenegro (Crna Gora)\", \"me\", \"382\" ], [ \"Montserrat\", \"ms\", \"1\", 16, [ \"664\" ] ], [ \"Morocco (\u202B\u0627\u0644\u0645\u063A\u0631\u0628\u202C\u200E)\", \"ma\", \"212\", 0 ], [ \"Mozambique (Mo\u00E7ambique)\", \"mz\", \"258\" ], [ \"Myanmar (Burma) (\u1019\u103C\u1014\u103A\u1019\u102C)\", \"mm\", \"95\" ], [ \"Namibia (Namibi\u00EB)\", \"na\", \"264\" ], [ \"Nauru\", \"nr\", \"674\" ], [ \"Nepal (\u0928\u0947\u092A\u093E\u0932)\", \"np\", \"977\" ], [ \"Netherlands (Nederland)\", \"nl\", \"31\" ], [ \"New Caledonia (Nouvelle-Cal\u00E9donie)\", \"nc\", \"687\" ], [ \"New Zealand\", \"nz\", \"64\" ], [ \"Nicaragua\", \"ni\", \"505\" ], [ \"Niger (Nijar)\", \"ne\", \"227\" ], [ \"Nigeria\", \"ng\", \"234\" ], [ \"Niue\", \"nu\", \"683\" ], [ \"Norfolk Island\", \"nf\", \"672\" ], [ \"North Korea (\uC870\uC120 \uBBFC\uC8FC\uC8FC\uC758 \uC778\uBBFC \uACF5\uD654\uAD6D)\", \"kp\", \"850\" ], [ \"Northern Mariana Islands\", \"mp\", \"1\", 17, [ \"670\" ] ], [ \"Norway (Norge)\", \"no\", \"47\", 0 ], [ \"Oman (\u202B\u0639\u064F\u0645\u0627\u0646\u202C\u200E)\", \"om\", \"968\" ], [ \"Pakistan (\u202B\u067E\u0627\u06A9\u0633\u062A\u0627\u0646\u202C\u200E)\", \"pk\", \"92\" ], [ \"Palau\", \"pw\", \"680\" ], [ \"Palestine (\u202B\u0641\u0644\u0633\u0637\u064A\u0646\u202C\u200E)\", \"ps\", \"970\" ], [ \"Panama (Panam\u00E1)\", \"pa\", \"507\" ], [ \"Papua New Guinea\", \"pg\", \"675\" ], [ \"Paraguay\", \"py\", \"595\" ], [ \"Peru (Per\u00FA)\", \"pe\", \"51\" ], [ \"Philippines\", \"ph\", \"63\" ], [ \"Poland (Polska)\", \"pl\", \"48\" ], [ \"Portugal\", \"pt\", \"351\" ], [ \"Puerto Rico\", \"pr\", \"1\", 3, [ \"787\", \"939\" ] ], [ \"Qatar (\u202B\u0642\u0637\u0631\u202C\u200E)\", \"qa\", \"974\" ], [ \"R\u00E9union (La R\u00E9union)\", \"re\", \"262\", 0 ], [ \"Romania (Rom\u00E2nia)\", \"ro\", \"40\" ], [ \"Russia (\u0420\u043E\u0441\u0441\u0438\u044F)\", \"ru\", \"7\", 0 ], [ \"Rwanda\", \"rw\", \"250\" ], [ \"Saint Barth\u00E9lemy\", \"bl\", \"590\", 1 ], [ \"Saint Helena\", \"sh\", \"290\" ], [ \"Saint Kitts and Nevis\", \"kn\", \"1\", 18, [ \"869\" ] ], [ \"Saint Lucia\", \"lc\", \"1\", 19, [ \"758\" ] ], [ \"Saint Martin (Saint-Martin (partie fran\u00E7aise))\", \"mf\", \"590\", 2 ], [ \"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)\", \"pm\", \"508\" ], [ \"Saint Vincent and the Grenadines\", \"vc\", \"1\", 20, [ \"784\" ] ], [ \"Samoa\", \"ws\", \"685\" ], [ \"San Marino\", \"sm\", \"378\" ], [ \"S\u00E3o Tom\u00E9 and Pr\u00EDncipe (S\u00E3o Tom\u00E9 e Pr\u00EDncipe)\", \"st\", \"239\" ], [ \"Saudi Arabia (\u202B\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629\u202C\u200E)\", \"sa\", \"966\" ], [ \"Senegal (S\u00E9n\u00E9gal)\", \"sn\", \"221\" ], [ \"Serbia (\u0421\u0440\u0431\u0438\u0458\u0430)\", \"rs\", \"381\" ], [ \"Seychelles\", \"sc\", \"248\" ], [ \"Sierra Leone\", \"sl\", \"232\" ], [ \"Singapore\", \"sg\", \"65\" ], [ \"Sint Maarten\", \"sx\", \"1\", 21, [ \"721\" ] ], [ \"Slovakia (Slovensko)\", \"sk\", \"421\" ], [ \"Slovenia (Slovenija)\", \"si\", \"386\" ], [ \"Solomon Islands\", \"sb\", \"677\" ], [ \"Somalia (Soomaaliya)\", \"so\", \"252\" ], [ \"South Africa\", \"za\", \"27\" ], [ \"South Korea (\uB300\uD55C\uBBFC\uAD6D)\", \"kr\", \"82\" ], [ \"South Sudan (\u202B\u062C\u0646\u0648\u0628 \u0627\u0644\u0633\u0648\u062F\u0627\u0646\u202C\u200E)\", \"ss\", \"211\" ], [ \"Spain (Espa\u00F1a)\", \"es\", \"34\" ], [ \"Sri Lanka (\u0DC1\u0DCA\u200D\u0DBB\u0DD3 \u0DBD\u0D82\u0D9A\u0DCF\u0DC0)\", \"lk\", \"94\" ], [ \"Sudan (\u202B\u0627\u0644\u0633\u0648\u062F\u0627\u0646\u202C\u200E)\", \"sd\", \"249\" ], [ \"Suriname\", \"sr\", \"597\" ], [ \"Svalbard and Jan Mayen\", \"sj\", \"47\", 1, [ \"79\" ] ], [ \"Sweden (Sverige)\", \"se\", \"46\" ], [ \"Switzerland (Schweiz)\", \"ch\", \"41\" ], [ \"Syria (\u202B\u0633\u0648\u0631\u064A\u0627\u202C\u200E)\", \"sy\", \"963\" ], [ \"Taiwan (\u53F0\u7063)\", \"tw\", \"886\" ], [ \"Tajikistan\", \"tj\", \"992\" ], [ \"Tanzania\", \"tz\", \"255\" ], [ \"Thailand (\u0E44\u0E17\u0E22)\", \"th\", \"66\" ], [ \"Timor-Leste\", \"tl\", \"670\" ], [ \"Togo\", \"tg\", \"228\" ], [ \"Tokelau\", \"tk\", \"690\" ], [ \"Tonga\", \"to\", \"676\" ], [ \"Trinidad and Tobago\", \"tt\", \"1\", 22, [ \"868\" ] ], [ \"Tunisia (\u202B\u062A\u0648\u0646\u0633\u202C\u200E)\", \"tn\", \"216\" ], [ \"Turkey (T\u00FCrkiye)\", \"tr\", \"90\" ], [ \"Turkmenistan\", \"tm\", \"993\" ], [ \"Turks and Caicos Islands\", \"tc\", \"1\", 23, [ \"649\" ] ], [ \"Tuvalu\", \"tv\", \"688\" ], [ \"U.S. Virgin Islands\", \"vi\", \"1\", 24, [ \"340\" ] ], [ \"Uganda\", \"ug\", \"256\" ], [ \"Ukraine (\u0423\u043A\u0440\u0430\u0457\u043D\u0430)\", \"ua\", \"380\" ], [ \"United Arab Emirates (\u202B\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0645\u062A\u062D\u062F\u0629\u202C\u200E)\", \"ae\", \"971\" ], [ \"United Kingdom\", \"gb\", \"44\", 0 ], [ \"United States\", \"us\", \"1\", 0 ], [ \"Uruguay\", \"uy\", \"598\" ], [ \"Uzbekistan (O\u02BBzbekiston)\", \"uz\", \"998\" ], [ \"Vanuatu\", \"vu\", \"678\" ], [ \"Vatican City (Citt\u00E0 del Vaticano)\", \"va\", \"39\", 1, [ \"06698\" ] ], [ \"Venezuela\", \"ve\", \"58\" ], [ \"Vietnam (Vi\u1EC7t Nam)\", \"vn\", \"84\" ], [ \"Wallis and Futuna (Wallis-et-Futuna)\", \"wf\", \"681\" ], [ \"Western Sahara (\u202B\u0627\u0644\u0635\u062D\u0631\u0627\u0621 \u0627\u0644\u063A\u0631\u0628\u064A\u0629\u202C\u200E)\", \"eh\", \"212\", 1, [ \"5288\", \"5289\" ] ], [ \"Yemen (\u202B\u0627\u0644\u064A\u0645\u0646\u202C\u200E)\", \"ye\", \"967\" ], [ \"Zambia\", \"zm\", \"260\" ], [ \"Zimbabwe\", \"zw\", \"263\" ], [ \"\u00C5land Islands\", \"ax\", \"358\", 1, [ \"18\" ] ] ];\n // loop over all of the countries above, restructuring the data to be objects with named keys\n for (var i = 0; i < allCountries.length; i++) {\n var c = allCountries[i];\n allCountries[i] = {\n name: c[0],\n iso2: c[1],\n dialCode: c[2],\n priority: c[3] || 0,\n areaCodes: c[4] || null\n };\n }\n \"use strict\";\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var intlTelInputGlobals = {\n getInstance: function getInstance(input) {\n var id = input.getAttribute(\"data-intl-tel-input-id\");\n return window.intlTelInputGlobals.instances[id];\n },\n instances: {},\n // using a global like this allows us to mock it in the tests\n documentReady: function documentReady() {\n return document.readyState === \"complete\";\n }\n };\n if (typeof window === \"object\") window.intlTelInputGlobals = intlTelInputGlobals;\n // these vars persist through all instances of the plugin\n var id = 0;\n var defaults = {\n // whether or not to allow the dropdown\n allowDropdown: true,\n // if there is just a dial code in the input: remove it on blur\n autoHideDialCode: true,\n // add a placeholder in the input with an example number for the selected country\n autoPlaceholder: \"polite\",\n // modify the parentClass\n customContainer: \"\",\n // modify the auto placeholder\n customPlaceholder: null,\n // append menu to specified element\n dropdownContainer: null,\n // don't display these countries\n excludeCountries: [],\n // format the input value during initialisation and on setNumber\n formatOnDisplay: true,\n // geoIp lookup function\n geoIpLookup: null,\n // inject a hidden input with this name, and on submit, populate it with the result of getNumber\n hiddenInput: \"\",\n // initial country\n initialCountry: \"\",\n // localized country names e.g. { 'de': 'Deutschland' }\n localizedCountries: null,\n // don't insert international dial codes\n nationalMode: true,\n // display only these countries\n onlyCountries: [],\n // number type to use for placeholders\n placeholderNumberType: \"MOBILE\",\n // the countries at the top of the list. defaults to united states and united kingdom\n preferredCountries: [ \"us\", \"gb\" ],\n // display the country dial code next to the selected flag so it's not part of the typed number\n separateDialCode: false,\n // specify the path to the libphonenumber script to enable validation/formatting\n utilsScript: \"\"\n };\n // https://en.wikipedia.org/wiki/List_of_North_American_Numbering_Plan_area_codes#Non-geographic_area_codes\n var regionlessNanpNumbers = [ \"800\", \"822\", \"833\", \"844\", \"855\", \"866\", \"877\", \"880\", \"881\", \"882\", \"883\", \"884\", \"885\", \"886\", \"887\", \"888\", \"889\" ];\n // utility function to iterate over an object. can't use Object.entries or native forEach because\n // of IE11\n var forEachProp = function forEachProp(obj, callback) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n callback(keys[i], obj[keys[i]]);\n }\n };\n // run a method on each instance of the plugin\n var forEachInstance = function forEachInstance(method) {\n forEachProp(window.intlTelInputGlobals.instances, function(key) {\n window.intlTelInputGlobals.instances[key][method]();\n });\n };\n // this is our plugin class that we will create an instance of\n // eslint-disable-next-line no-unused-vars\n var Iti = /*#__PURE__*/\n function() {\n function Iti(input, options) {\n var _this = this;\n _classCallCheck(this, Iti);\n this.id = id++;\n this.telInput = input;\n this.activeItem = null;\n this.highlightedItem = null;\n // process specified options / defaults\n // alternative to Object.assign, which isn't supported by IE11\n var customOptions = options || {};\n this.options = {};\n forEachProp(defaults, function(key, value) {\n _this.options[key] = customOptions.hasOwnProperty(key) ? customOptions[key] : value;\n });\n this.hadInitialPlaceholder = Boolean(input.getAttribute(\"placeholder\"));\n }\n _createClass(Iti, [ {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n // if in nationalMode, disable options relating to dial codes\n if (this.options.nationalMode) this.options.autoHideDialCode = false;\n // if separateDialCode then doesn't make sense to A) insert dial code into input\n // (autoHideDialCode), and B) display national numbers (because we're displaying the country\n // dial code next to them)\n if (this.options.separateDialCode) {\n this.options.autoHideDialCode = this.options.nationalMode = false;\n }\n // we cannot just test screen size as some smartphones/website meta tags will report desktop\n // resolutions\n // Note: for some reason jasmine breaks if you put this in the main Plugin function with the\n // rest of these declarations\n // Note: to target Android Mobiles (and not Tablets), we must find 'Android' and 'Mobile'\n this.isMobile = /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n if (this.isMobile) {\n // trigger the mobile dropdown css\n document.body.classList.add(\"iti-mobile\");\n // on mobile, we want a full screen dropdown, so we must append it to the body\n if (!this.options.dropdownContainer) this.options.dropdownContainer = document.body;\n }\n // these promises get resolved when their individual requests complete\n // this way the dev can do something like iti.promise.then(...) to know when all requests are\n // complete\n if (typeof Promise !== \"undefined\") {\n var autoCountryPromise = new Promise(function(resolve, reject) {\n _this2.resolveAutoCountryPromise = resolve;\n _this2.rejectAutoCountryPromise = reject;\n });\n var utilsScriptPromise = new Promise(function(resolve, reject) {\n _this2.resolveUtilsScriptPromise = resolve;\n _this2.rejectUtilsScriptPromise = reject;\n });\n this.promise = Promise.all([ autoCountryPromise, utilsScriptPromise ]);\n } else {\n // prevent errors when Promise doesn't exist\n this.resolveAutoCountryPromise = this.rejectAutoCountryPromise = function() {};\n this.resolveUtilsScriptPromise = this.rejectUtilsScriptPromise = function() {};\n }\n // in various situations there could be no country selected initially, but we need to be able\n // to assume this variable exists\n this.selectedCountryData = {};\n // process all the data: onlyCountries, excludeCountries, preferredCountries etc\n this._processCountryData();\n // generate the markup\n this._generateMarkup();\n // set the initial state of the input value and the selected flag\n this._setInitialState();\n // start all of the event listeners: autoHideDialCode, input keydown, selectedFlag click\n this._initListeners();\n // utils script, and auto country\n this._initRequests();\n }\n }, {\n key: \"_processCountryData\",\n value: function _processCountryData() {\n // process onlyCountries or excludeCountries array if present\n this._processAllCountries();\n // process the countryCodes map\n this._processCountryCodes();\n // process the preferredCountries\n this._processPreferredCountries();\n // translate countries according to localizedCountries option\n if (this.options.localizedCountries) this._translateCountriesByLocale();\n // sort countries by name\n if (this.options.onlyCountries.length || this.options.localizedCountries) {\n this.countries.sort(this._countryNameSort);\n }\n }\n }, {\n key: \"_addCountryCode\",\n value: function _addCountryCode(iso2, countryCode, priority) {\n if (countryCode.length > this.countryCodeMaxLen) {\n this.countryCodeMaxLen = countryCode.length;\n }\n if (!this.countryCodes.hasOwnProperty(countryCode)) {\n this.countryCodes[countryCode] = [];\n }\n // bail if we already have this country for this countryCode\n for (var i = 0; i < this.countryCodes[countryCode].length; i++) {\n if (this.countryCodes[countryCode][i] === iso2) return;\n }\n // check for undefined as 0 is falsy\n var index = priority !== undefined ? priority : this.countryCodes[countryCode].length;\n this.countryCodes[countryCode][index] = iso2;\n }\n }, {\n key: \"_processAllCountries\",\n value: function _processAllCountries() {\n if (this.options.onlyCountries.length) {\n var lowerCaseOnlyCountries = this.options.onlyCountries.map(function(country) {\n return country.toLowerCase();\n });\n this.countries = allCountries.filter(function(country) {\n return lowerCaseOnlyCountries.indexOf(country.iso2) > -1;\n });\n } else if (this.options.excludeCountries.length) {\n var lowerCaseExcludeCountries = this.options.excludeCountries.map(function(country) {\n return country.toLowerCase();\n });\n this.countries = allCountries.filter(function(country) {\n return lowerCaseExcludeCountries.indexOf(country.iso2) === -1;\n });\n } else {\n this.countries = allCountries;\n }\n }\n }, {\n key: \"_translateCountriesByLocale\",\n value: function _translateCountriesByLocale() {\n for (var i = 0; i < this.countries.length; i++) {\n var iso = this.countries[i].iso2.toLowerCase();\n if (this.options.localizedCountries.hasOwnProperty(iso)) {\n this.countries[i].name = this.options.localizedCountries[iso];\n }\n }\n }\n }, {\n key: \"_countryNameSort\",\n value: function _countryNameSort(a, b) {\n return a.name.localeCompare(b.name);\n }\n }, {\n key: \"_processCountryCodes\",\n value: function _processCountryCodes() {\n this.countryCodeMaxLen = 0;\n // here we store just dial codes\n this.dialCodes = {};\n // here we store \"country codes\" (both dial codes and their area codes)\n this.countryCodes = {};\n // first: add dial codes\n for (var i = 0; i < this.countries.length; i++) {\n var c = this.countries[i];\n if (!this.dialCodes[c.dialCode]) this.dialCodes[c.dialCode] = true;\n this._addCountryCode(c.iso2, c.dialCode, c.priority);\n }\n // next: add area codes\n // this is a second loop over countries, to make sure we have all of the \"root\" countries\n // already in the map, so that we can access them, as each time we add an area code substring\n // to the map, we also need to include the \"root\" country's code, as that also matches\n for (var _i = 0; _i < this.countries.length; _i++) {\n var _c = this.countries[_i];\n // area codes\n if (_c.areaCodes) {\n var rootCountryCode = this.countryCodes[_c.dialCode][0];\n // for each area code\n for (var j = 0; j < _c.areaCodes.length; j++) {\n var areaCode = _c.areaCodes[j];\n // for each digit in the area code to add all partial matches as well\n for (var k = 1; k < areaCode.length; k++) {\n var partialDialCode = _c.dialCode + areaCode.substr(0, k);\n // start with the root country, as that also matches this dial code\n this._addCountryCode(rootCountryCode, partialDialCode);\n this._addCountryCode(_c.iso2, partialDialCode);\n }\n // add the full area code\n this._addCountryCode(_c.iso2, _c.dialCode + areaCode);\n }\n }\n }\n }\n }, {\n key: \"_processPreferredCountries\",\n value: function _processPreferredCountries() {\n this.preferredCountries = [];\n for (var i = 0; i < this.options.preferredCountries.length; i++) {\n var countryCode = this.options.preferredCountries[i].toLowerCase();\n var countryData = this._getCountryData(countryCode, false, true);\n if (countryData) this.preferredCountries.push(countryData);\n }\n }\n }, {\n key: \"_createEl\",\n value: function _createEl(name, attrs, container) {\n var el = document.createElement(name);\n if (attrs) forEachProp(attrs, function(key, value) {\n return el.setAttribute(key, value);\n });\n if (container) container.appendChild(el);\n return el;\n }\n }, {\n key: \"_generateMarkup\",\n value: function _generateMarkup() {\n // if autocomplete does not exist on the element and its form, then\n // prevent autocomplete as there's no safe, cross-browser event we can react to, so it can\n // easily put the plugin in an inconsistent state e.g. the wrong flag selected for the\n // autocompleted number, which on submit could mean wrong number is saved (esp in nationalMode)\n if (!this.telInput.hasAttribute(\"autocomplete\") && !(this.telInput.form && this.telInput.form.hasAttribute(\"autocomplete\"))) {\n this.telInput.setAttribute(\"autocomplete\", \"off\");\n }\n // containers (mostly for positioning)\n var parentClass = \"iti\";\n if (this.options.allowDropdown) parentClass += \" iti--allow-dropdown\";\n if (this.options.separateDialCode) parentClass += \" iti--separate-dial-code\";\n if (this.options.customContainer) {\n parentClass += \" \";\n parentClass += this.options.customContainer;\n }\n var wrapper = this._createEl(\"div\", {\n \"class\": parentClass\n });\n this.telInput.parentNode.insertBefore(wrapper, this.telInput);\n this.flagsContainer = this._createEl(\"div\", {\n \"class\": \"iti__flag-container\"\n }, wrapper);\n wrapper.appendChild(this.telInput);\n // selected flag (displayed to left of input)\n this.selectedFlag = this._createEl(\"div\", {\n \"class\": \"iti__selected-flag\",\n role: \"combobox\",\n \"aria-controls\": \"iti-\".concat(this.id, \"__country-listbox\"),\n \"aria-owns\": \"iti-\".concat(this.id, \"__country-listbox\"),\n \"aria-expanded\": \"false\"\n }, this.flagsContainer);\n this.selectedFlagInner = this._createEl(\"div\", {\n \"class\": \"iti__flag\"\n }, this.selectedFlag);\n if (this.options.separateDialCode) {\n this.selectedDialCode = this._createEl(\"div\", {\n \"class\": \"iti__selected-dial-code\"\n }, this.selectedFlag);\n }\n if (this.options.allowDropdown) {\n // make element focusable and tab navigable\n this.selectedFlag.setAttribute(\"tabindex\", \"0\");\n this.dropdownArrow = this._createEl(\"div\", {\n \"class\": \"iti__arrow\"\n }, this.selectedFlag);\n // country dropdown: preferred countries, then divider, then all countries\n this.countryList = this._createEl(\"ul\", {\n \"class\": \"iti__country-list iti__hide\",\n id: \"iti-\".concat(this.id, \"__country-listbox\"),\n role: \"listbox\",\n \"aria-label\": \"List of countries\"\n });\n if (this.preferredCountries.length) {\n this._appendListItems(this.preferredCountries, \"iti__preferred\", true);\n this._createEl(\"li\", {\n \"class\": \"iti__divider\",\n role: \"separator\",\n \"aria-disabled\": \"true\"\n }, this.countryList);\n }\n this._appendListItems(this.countries, \"iti__standard\");\n // create dropdownContainer markup\n if (this.options.dropdownContainer) {\n this.dropdown = this._createEl(\"div\", {\n \"class\": \"iti iti--container\"\n });\n this.dropdown.appendChild(this.countryList);\n } else {\n this.flagsContainer.appendChild(this.countryList);\n }\n }\n if (this.options.hiddenInput) {\n var hiddenInputName = this.options.hiddenInput;\n var name = this.telInput.getAttribute(\"name\");\n if (name) {\n var i = name.lastIndexOf(\"[\");\n // if input name contains square brackets, then give the hidden input the same name,\n // replacing the contents of the last set of brackets with the given hiddenInput name\n if (i !== -1) hiddenInputName = \"\".concat(name.substr(0, i), \"[\").concat(hiddenInputName, \"]\");\n }\n this.hiddenInput = this._createEl(\"input\", {\n type: \"hidden\",\n name: hiddenInputName\n });\n wrapper.appendChild(this.hiddenInput);\n }\n }\n }, {\n key: \"_appendListItems\",\n value: function _appendListItems(countries, className, preferred) {\n // we create so many DOM elements, it is faster to build a temp string\n // and then add everything to the DOM in one go at the end\n var tmp = \"\";\n // for each country\n for (var i = 0; i < countries.length; i++) {\n var c = countries[i];\n var idSuffix = preferred ? \"-preferred\" : \"\";\n // open the list item\n tmp += \"<li class='iti__country \".concat(className, \"' tabIndex='-1' id='iti-\").concat(this.id, \"__item-\").concat(c.iso2).concat(idSuffix, \"' role='option' data-dial-code='\").concat(c.dialCode, \"' data-country-code='\").concat(c.iso2, \"' aria-selected='false'>\");\n // add the flag\n tmp += \"<div class='iti__flag-box'><div class='iti__flag iti__\".concat(c.iso2, \"'></div></div>\");\n // and the country name and dial code\n tmp += \"<span class='iti__country-name'>\".concat(c.name, \"</span>\");\n tmp += \"<span class='iti__dial-code'>+\".concat(c.dialCode, \"</span>\");\n // close the list item\n tmp += \"</li>\";\n }\n this.countryList.insertAdjacentHTML(\"beforeend\", tmp);\n }\n }, {\n key: \"_setInitialState\",\n value: function _setInitialState() {\n // fix firefox bug: when first load page (with input with value set to number with intl dial\n // code) and initialising plugin removes the dial code from the input, then refresh page,\n // and we try to init plugin again but this time on number without dial code so get grey flag\n var attributeValue = this.telInput.getAttribute(\"value\");\n var inputValue = this.telInput.value;\n var useAttribute = attributeValue && attributeValue.charAt(0) === \"+\" && (!inputValue || inputValue.charAt(0) !== \"+\");\n var val = useAttribute ? attributeValue : inputValue;\n var dialCode = this._getDialCode(val);\n var isRegionlessNanp = this._isRegionlessNanp(val);\n var _this$options = this.options, initialCountry = _this$options.initialCountry, nationalMode = _this$options.nationalMode, autoHideDialCode = _this$options.autoHideDialCode, separateDialCode = _this$options.separateDialCode;\n // if we already have a dial code, and it's not a regionlessNanp, we can go ahead and set the\n // flag, else fall back to the default country\n if (dialCode && !isRegionlessNanp) {\n this._updateFlagFromNumber(val);\n } else if (initialCountry !== \"auto\") {\n // see if we should select a flag\n if (initialCountry) {\n this._setFlag(initialCountry.toLowerCase());\n } else {\n if (dialCode && isRegionlessNanp) {\n // has intl dial code, is regionless nanp, and no initialCountry, so default to US\n this._setFlag(\"us\");\n } else {\n // no dial code and no initialCountry, so default to first in list\n this.defaultCountry = this.preferredCountries.length ? this.preferredCountries[0].iso2 : this.countries[0].iso2;\n if (!val) {\n this._setFlag(this.defaultCountry);\n }\n }\n }\n // if empty and no nationalMode and no autoHideDialCode then insert the default dial code\n if (!val && !nationalMode && !autoHideDialCode && !separateDialCode) {\n this.telInput.value = \"+\".concat(this.selectedCountryData.dialCode);\n }\n }\n // NOTE: if initialCountry is set to auto, that will be handled separately\n // format - note this wont be run after _updateDialCode as that's only called if no val\n if (val) this._updateValFromNumber(val);\n }\n }, {\n key: \"_initListeners\",\n value: function _initListeners() {\n this._initKeyListeners();\n if (this.options.autoHideDialCode) this._initBlurListeners();\n if (this.options.allowDropdown) this._initDropdownListeners();\n if (this.hiddenInput) this._initHiddenInputListener();\n }\n }, {\n key: \"_initHiddenInputListener\",\n value: function _initHiddenInputListener() {\n var _this3 = this;\n this._handleHiddenInputSubmit = function() {\n _this3.hiddenInput.value = _this3.getNumber();\n };\n if (this.telInput.form) this.telInput.form.addEventListener(\"submit\", this._handleHiddenInputSubmit);\n }\n }, {\n key: \"_getClosestLabel\",\n value: function _getClosestLabel() {\n var el = this.telInput;\n while (el && el.tagName !== \"LABEL\") {\n el = el.parentNode;\n }\n return el;\n }\n }, {\n key: \"_initDropdownListeners\",\n value: function _initDropdownListeners() {\n var _this4 = this;\n // hack for input nested inside label (which is valid markup): clicking the selected-flag to\n // open the dropdown would then automatically trigger a 2nd click on the input which would\n // close it again\n this._handleLabelClick = function(e) {\n // if the dropdown is closed, then focus the input, else ignore the click\n if (_this4.countryList.classList.contains(\"iti__hide\")) _this4.telInput.focus(); else e.preventDefault();\n };\n var label = this._getClosestLabel();\n if (label) label.addEventListener(\"click\", this._handleLabelClick);\n // toggle country dropdown on click\n this._handleClickSelectedFlag = function() {\n // only intercept this event if we're opening the dropdown\n // else let it bubble up to the top (\"click-off-to-close\" listener)\n // we cannot just stopPropagation as it may be needed to close another instance\n if (_this4.countryList.classList.contains(\"iti__hide\") && !_this4.telInput.disabled && !_this4.telInput.readOnly) {\n _this4._showDropdown();\n }\n };\n this.selectedFlag.addEventListener(\"click\", this._handleClickSelectedFlag);\n // open dropdown list if currently focused\n this._handleFlagsContainerKeydown = function(e) {\n var isDropdownHidden = _this4.countryList.classList.contains(\"iti__hide\");\n if (isDropdownHidden && [ \"ArrowUp\", \"Up\", \"ArrowDown\", \"Down\", \" \", \"Enter\" ].indexOf(e.key) !== -1) {\n // prevent form from being submitted if \"ENTER\" was pressed\n e.preventDefault();\n // prevent event from being handled again by document\n e.stopPropagation();\n _this4._showDropdown();\n }\n // allow navigation from dropdown to input on TAB\n if (e.key === \"Tab\") _this4._closeDropdown();\n };\n this.flagsContainer.addEventListener(\"keydown\", this._handleFlagsContainerKeydown);\n }\n }, {\n key: \"_initRequests\",\n value: function _initRequests() {\n var _this5 = this;\n // if the user has specified the path to the utils script, fetch it on window.load, else resolve\n if (this.options.utilsScript && !window.intlTelInputUtils) {\n // if the plugin is being initialised after the window.load event has already been fired\n if (window.intlTelInputGlobals.documentReady()) {\n window.intlTelInputGlobals.loadUtils(this.options.utilsScript);\n } else {\n // wait until the load event so we don't block any other requests e.g. the flags image\n window.addEventListener(\"load\", function() {\n window.intlTelInputGlobals.loadUtils(_this5.options.utilsScript);\n });\n }\n } else this.resolveUtilsScriptPromise();\n if (this.options.initialCountry === \"auto\") this._loadAutoCountry(); else this.resolveAutoCountryPromise();\n }\n }, {\n key: \"_loadAutoCountry\",\n value: function _loadAutoCountry() {\n // 3 options:\n // 1) already loaded (we're done)\n // 2) not already started loading (start)\n // 3) already started loading (do nothing - just wait for loading callback to fire)\n if (window.intlTelInputGlobals.autoCountry) {\n this.handleAutoCountry();\n } else if (!window.intlTelInputGlobals.startedLoadingAutoCountry) {\n // don't do this twice!\n window.intlTelInputGlobals.startedLoadingAutoCountry = true;\n if (typeof this.options.geoIpLookup === \"function\") {\n this.options.geoIpLookup(function(countryCode) {\n window.intlTelInputGlobals.autoCountry = countryCode.toLowerCase();\n // tell all instances the auto country is ready\n // TODO: this should just be the current instances\n // UPDATE: use setTimeout in case their geoIpLookup function calls this callback straight\n // away (e.g. if they have already done the geo ip lookup somewhere else). Using\n // setTimeout means that the current thread of execution will finish before executing\n // this, which allows the plugin to finish initialising.\n setTimeout(function() {\n return forEachInstance(\"handleAutoCountry\");\n });\n }, function() {\n return forEachInstance(\"rejectAutoCountryPromise\");\n });\n }\n }\n }\n }, {\n key: \"_initKeyListeners\",\n value: function _initKeyListeners() {\n var _this6 = this;\n // update flag on keyup\n this._handleKeyupEvent = function() {\n if (_this6._updateFlagFromNumber(_this6.telInput.value)) {\n _this6._triggerCountryChange();\n }\n };\n this.telInput.addEventListener(\"keyup\", this._handleKeyupEvent);\n // update flag on cut/paste events (now supported in all major browsers)\n this._handleClipboardEvent = function() {\n // hack because \"paste\" event is fired before input is updated\n setTimeout(_this6._handleKeyupEvent);\n };\n this.telInput.addEventListener(\"cut\", this._handleClipboardEvent);\n this.telInput.addEventListener(\"paste\", this._handleClipboardEvent);\n }\n }, {\n key: \"_cap\",\n value: function _cap(number) {\n var max = this.telInput.getAttribute(\"maxlength\");\n return max && number.length > max ? number.substr(0, max) : number;\n }\n }, {\n key: \"_initBlurListeners\",\n value: function _initBlurListeners() {\n var _this7 = this;\n // on blur or form submit: if just a dial code then remove it\n this._handleSubmitOrBlurEvent = function() {\n _this7._removeEmptyDialCode();\n };\n if (this.telInput.form) this.telInput.form.addEventListener(\"submit\", this._handleSubmitOrBlurEvent);\n this.telInput.addEventListener(\"blur\", this._handleSubmitOrBlurEvent);\n }\n }, {\n key: \"_removeEmptyDialCode\",\n value: function _removeEmptyDialCode() {\n if (this.telInput.value.charAt(0) === \"+\") {\n var numeric = this._getNumeric(this.telInput.value);\n // if just a plus, or if just a dial code\n if (!numeric || this.selectedCountryData.dialCode === numeric) {\n this.telInput.value = \"\";\n }\n }\n }\n }, {\n key: \"_getNumeric\",\n value: function _getNumeric(s) {\n return s.replace(/\\D/g, \"\");\n }\n }, {\n key: \"_trigger\",\n value: function _trigger(name) {\n // have to use old school document.createEvent as IE11 doesn't support `new Event()` syntax\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n // can bubble, and is cancellable\n this.telInput.dispatchEvent(e);\n }\n }, {\n key: \"_showDropdown\",\n value: function _showDropdown() {\n this.countryList.classList.remove(\"iti__hide\");\n this.selectedFlag.setAttribute(\"aria-expanded\", \"true\");\n this._setDropdownPosition();\n // update highlighting and scroll to active list item\n if (this.activeItem) {\n this._highlightListItem(this.activeItem, false);\n this._scrollTo(this.activeItem, true);\n }\n // bind all the dropdown-related listeners: mouseover, click, click-off, keydown\n this._bindDropdownListeners();\n // update the arrow\n this.dropdownArrow.classList.add(\"iti__arrow--up\");\n this._trigger(\"open:countrydropdown\");\n }\n }, {\n key: \"_toggleClass\",\n value: function _toggleClass(el, className, shouldHaveClass) {\n if (shouldHaveClass && !el.classList.contains(className)) el.classList.add(className); else if (!shouldHaveClass && el.classList.contains(className)) el.classList.remove(className);\n }\n }, {\n key: \"_setDropdownPosition\",\n value: function _setDropdownPosition() {\n var _this8 = this;\n if (this.options.dropdownContainer) {\n this.options.dropdownContainer.appendChild(this.dropdown);\n }\n if (!this.isMobile) {\n var pos = this.telInput.getBoundingClientRect();\n // windowTop from https://stackoverflow.com/a/14384091/217866\n var windowTop = window.pageYOffset || document.documentElement.scrollTop;\n var inputTop = pos.top + windowTop;\n var dropdownHeight = this.countryList.offsetHeight;\n // dropdownFitsBelow = (dropdownBottom < windowBottom)\n var dropdownFitsBelow = inputTop + this.telInput.offsetHeight + dropdownHeight < windowTop + window.innerHeight;\n var dropdownFitsAbove = inputTop - dropdownHeight > windowTop;\n // by default, the dropdown will be below the input. If we want to position it above the\n // input, we add the dropup class.\n this._toggleClass(this.countryList, \"iti__country-list--dropup\", !dropdownFitsBelow && dropdownFitsAbove);\n // if dropdownContainer is enabled, calculate postion\n if (this.options.dropdownContainer) {\n // by default the dropdown will be directly over the input because it's not in the flow.\n // If we want to position it below, we need to add some extra top value.\n var extraTop = !dropdownFitsBelow && dropdownFitsAbove ? 0 : this.telInput.offsetHeight;\n // calculate placement\n this.dropdown.style.top = \"\".concat(inputTop + extraTop, \"px\");\n this.dropdown.style.left = \"\".concat(pos.left + document.body.scrollLeft, \"px\");\n // close menu on window scroll\n this._handleWindowScroll = function() {\n return _this8._closeDropdown();\n };\n window.addEventListener(\"scroll\", this._handleWindowScroll);\n }\n }\n }\n }, {\n key: \"_getClosestListItem\",\n value: function _getClosestListItem(target) {\n var el = target;\n while (el && el !== this.countryList && !el.classList.contains(\"iti__country\")) {\n el = el.parentNode;\n }\n // if we reached the countryList element, then return null\n return el === this.countryList ? null : el;\n }\n }, {\n key: \"_bindDropdownListeners\",\n value: function _bindDropdownListeners() {\n var _this9 = this;\n // when mouse over a list item, just highlight that one\n // we add the class \"highlight\", so if they hit \"enter\" we know which one to select\n this._handleMouseoverCountryList = function(e) {\n // handle event delegation, as we're listening for this event on the countryList\n var listItem = _this9._getClosestListItem(e.target);\n if (listItem) _this9._highlightListItem(listItem, false);\n };\n this.countryList.addEventListener(\"mouseover\", this._handleMouseoverCountryList);\n // listen for country selection\n this._handleClickCountryList = function(e) {\n var listItem = _this9._getClosestListItem(e.target);\n if (listItem) _this9._selectListItem(listItem);\n };\n this.countryList.addEventListener(\"click\", this._handleClickCountryList);\n // click off to close\n // (except when this initial opening click is bubbling up)\n // we cannot just stopPropagation as it may be needed to close another instance\n var isOpening = true;\n this._handleClickOffToClose = function() {\n if (!isOpening) _this9._closeDropdown();\n isOpening = false;\n };\n document.documentElement.addEventListener(\"click\", this._handleClickOffToClose);\n // listen for up/down scrolling, enter to select, or letters to jump to country name.\n // use keydown as keypress doesn't fire for non-char keys and we want to catch if they\n // just hit down and hold it to scroll down (no keyup event).\n // listen on the document because that's where key events are triggered if no input has focus\n var query = \"\";\n var queryTimer = null;\n this._handleKeydownOnDropdown = function(e) {\n // prevent down key from scrolling the whole page,\n // and enter key from submitting a form etc\n e.preventDefault();\n // up and down to navigate\n if (e.key === \"ArrowUp\" || e.key === \"Up\" || e.key === \"ArrowDown\" || e.key === \"Down\") _this9._handleUpDownKey(e.key); else if (e.key === \"Enter\") _this9._handleEnterKey(); else if (e.key === \"Escape\") _this9._closeDropdown(); else if (/^[a-zA-Z\u00C0-\u00FF\u0430-\u044F\u0410-\u042F ]$/.test(e.key)) {\n // jump to countries that start with the query string\n if (queryTimer) clearTimeout(queryTimer);\n query += e.key.toLowerCase();\n _this9._searchForCountry(query);\n // if the timer hits 1 second, reset the query\n queryTimer = setTimeout(function() {\n query = \"\";\n }, 1e3);\n }\n };\n document.addEventListener(\"keydown\", this._handleKeydownOnDropdown);\n }\n }, {\n key: \"_handleUpDownKey\",\n value: function _handleUpDownKey(key) {\n var next = key === \"ArrowUp\" || key === \"Up\" ? this.highlightedItem.previousElementSibling : this.highlightedItem.nextElementSibling;\n if (next) {\n // skip the divider\n if (next.classList.contains(\"iti__divider\")) {\n next = key === \"ArrowUp\" || key === \"Up\" ? next.previousElementSibling : next.nextElementSibling;\n }\n this._highlightListItem(next, true);\n }\n }\n }, {\n key: \"_handleEnterKey\",\n value: function _handleEnterKey() {\n if (this.highlightedItem) this._selectListItem(this.highlightedItem);\n }\n }, {\n key: \"_searchForCountry\",\n value: function _searchForCountry(query) {\n for (var i = 0; i < this.countries.length; i++) {\n if (this._startsWith(this.countries[i].name, query)) {\n var listItem = this.countryList.querySelector(\"#iti-\".concat(this.id, \"__item-\").concat(this.countries[i].iso2));\n // update highlighting and scroll\n this._highlightListItem(listItem, false);\n this._scrollTo(listItem, true);\n break;\n }\n }\n }\n }, {\n key: \"_startsWith\",\n value: function _startsWith(a, b) {\n return a.substr(0, b.length).toLowerCase() === b;\n }\n }, {\n key: \"_updateValFromNumber\",\n value: function _updateValFromNumber(originalNumber) {\n var number = originalNumber;\n if (this.options.formatOnDisplay && window.intlTelInputUtils && this.selectedCountryData) {\n var useNational = !this.options.separateDialCode && (this.options.nationalMode || number.charAt(0) !== \"+\");\n var _intlTelInputUtils$nu = intlTelInputUtils.numberFormat, NATIONAL = _intlTelInputUtils$nu.NATIONAL, INTERNATIONAL = _intlTelInputUtils$nu.INTERNATIONAL;\n var format = useNational ? NATIONAL : INTERNATIONAL;\n number = intlTelInputUtils.formatNumber(number, this.selectedCountryData.iso2, format);\n }\n number = this._beforeSetNumber(number);\n this.telInput.value = number;\n }\n }, {\n key: \"_updateFlagFromNumber\",\n value: function _updateFlagFromNumber(originalNumber) {\n // if we're in nationalMode and we already have US/Canada selected, make sure the number starts\n // with a +1 so _getDialCode will be able to extract the area code\n // update: if we dont yet have selectedCountryData, but we're here (trying to update the flag\n // from the number), that means we're initialising the plugin with a number that already has a\n // dial code, so fine to ignore this bit\n var number = originalNumber;\n var selectedDialCode = this.selectedCountryData.dialCode;\n var isNanp = selectedDialCode === \"1\";\n if (number && this.options.nationalMode && isNanp && number.charAt(0) !== \"+\") {\n if (number.charAt(0) !== \"1\") number = \"1\".concat(number);\n number = \"+\".concat(number);\n }\n // update flag if user types area code for another country\n if (this.options.separateDialCode && selectedDialCode && number.charAt(0) !== \"+\") {\n number = \"+\".concat(selectedDialCode).concat(number);\n }\n // try and extract valid dial code from input\n var dialCode = this._getDialCode(number, true);\n var numeric = this._getNumeric(number);\n var countryCode = null;\n if (dialCode) {\n var countryCodes = this.countryCodes[this._getNumeric(dialCode)];\n // check if the right country is already selected. this should be false if the number is\n // longer than the matched dial code because in this case we need to make sure that if\n // there are multiple country matches, that the first one is selected (note: we could\n // just check that here, but it requires the same loop that we already have later)\n var alreadySelected = countryCodes.indexOf(this.selectedCountryData.iso2) !== -1 && numeric.length <= dialCode.length - 1;\n var isRegionlessNanpNumber = selectedDialCode === \"1\" && this._isRegionlessNanp(numeric);\n // only update the flag if:\n // A) NOT (we currently have a NANP flag selected, and the number is a regionlessNanp)\n // AND\n // B) the right country is not already selected\n if (!isRegionlessNanpNumber && !alreadySelected) {\n // if using onlyCountries option, countryCodes[0] may be empty, so we must find the first\n // non-empty index\n for (var j = 0; j < countryCodes.length; j++) {\n if (countryCodes[j]) {\n countryCode = countryCodes[j];\n break;\n }\n }\n }\n } else if (number.charAt(0) === \"+\" && numeric.length) {\n // invalid dial code, so empty\n // Note: use getNumeric here because the number has not been formatted yet, so could contain\n // bad chars\n countryCode = \"\";\n } else if (!number || number === \"+\") {\n // empty, or just a plus, so default\n countryCode = this.defaultCountry;\n }\n if (countryCode !== null) {\n return this._setFlag(countryCode);\n }\n return false;\n }\n }, {\n key: \"_isRegionlessNanp\",\n value: function _isRegionlessNanp(number) {\n var numeric = this._getNumeric(number);\n if (numeric.charAt(0) === \"1\") {\n var areaCode = numeric.substr(1, 3);\n return regionlessNanpNumbers.indexOf(areaCode) !== -1;\n }\n return false;\n }\n }, {\n key: \"_highlightListItem\",\n value: function _highlightListItem(listItem, shouldFocus) {\n var prevItem = this.highlightedItem;\n if (prevItem) prevItem.classList.remove(\"iti__highlight\");\n this.highlightedItem = listItem;\n this.highlightedItem.classList.add(\"iti__highlight\");\n if (shouldFocus) this.highlightedItem.focus();\n }\n }, {\n key: \"_getCountryData\",\n value: function _getCountryData(countryCode, ignoreOnlyCountriesOption, allowFail) {\n var countryList = ignoreOnlyCountriesOption ? allCountries : this.countries;\n for (var i = 0; i < countryList.length; i++) {\n if (countryList[i].iso2 === countryCode) {\n return countryList[i];\n }\n }\n if (allowFail) {\n return null;\n }\n throw new Error(\"No country data for '\".concat(countryCode, \"'\"));\n }\n }, {\n key: \"_setFlag\",\n value: function _setFlag(countryCode) {\n var prevCountry = this.selectedCountryData.iso2 ? this.selectedCountryData : {};\n // do this first as it will throw an error and stop if countryCode is invalid\n this.selectedCountryData = countryCode ? this._getCountryData(countryCode, false, false) : {};\n // update the defaultCountry - we only need the iso2 from now on, so just store that\n if (this.selectedCountryData.iso2) {\n this.defaultCountry = this.selectedCountryData.iso2;\n }\n this.selectedFlagInner.setAttribute(\"class\", \"iti__flag iti__\".concat(countryCode));\n // update the selected country's title attribute\n var title = countryCode ? \"\".concat(this.selectedCountryData.name, \": +\").concat(this.selectedCountryData.dialCode) : \"Unknown\";\n this.selectedFlag.setAttribute(\"title\", title);\n if (this.options.separateDialCode) {\n var dialCode = this.selectedCountryData.dialCode ? \"+\".concat(this.selectedCountryData.dialCode) : \"\";\n this.selectedDialCode.innerHTML = dialCode;\n // offsetWidth is zero if input is in a hidden container during initialisation\n var selectedFlagWidth = this.selectedFlag.offsetWidth || this._getHiddenSelectedFlagWidth();\n // add 6px of padding after the grey selected-dial-code box, as this is what we use in the css\n this.telInput.style.paddingLeft = \"\".concat(selectedFlagWidth + 6, \"px\");\n }\n // and the input's placeholder\n this._updatePlaceholder();\n // update the active list item\n if (this.options.allowDropdown) {\n var prevItem = this.activeItem;\n if (prevItem) {\n prevItem.classList.remove(\"iti__active\");\n prevItem.setAttribute(\"aria-selected\", \"false\");\n }\n if (countryCode) {\n // check if there is a preferred item first, else fall back to standard\n var nextItem = this.countryList.querySelector(\"#iti-\".concat(this.id, \"__item-\").concat(countryCode, \"-preferred\")) || this.countryList.querySelector(\"#iti-\".concat(this.id, \"__item-\").concat(countryCode));\n nextItem.setAttribute(\"aria-selected\", \"true\");\n nextItem.classList.add(\"iti__active\");\n this.activeItem = nextItem;\n this.selectedFlag.setAttribute(\"aria-activedescendant\", nextItem.getAttribute(\"id\"));\n }\n }\n // return if the flag has changed or not\n return prevCountry.iso2 !== countryCode;\n }\n }, {\n key: \"_getHiddenSelectedFlagWidth\",\n value: function _getHiddenSelectedFlagWidth() {\n // to get the right styling to apply, all we need is a shallow clone of the container,\n // and then to inject a deep clone of the selectedFlag element\n var containerClone = this.telInput.parentNode.cloneNode();\n containerClone.style.visibility = \"hidden\";\n document.body.appendChild(containerClone);\n var flagsContainerClone = this.flagsContainer.cloneNode();\n containerClone.appendChild(flagsContainerClone);\n var selectedFlagClone = this.selectedFlag.cloneNode(true);\n flagsContainerClone.appendChild(selectedFlagClone);\n var width = selectedFlagClone.offsetWidth;\n containerClone.parentNode.removeChild(containerClone);\n return width;\n }\n }, {\n key: \"_updatePlaceholder\",\n value: function _updatePlaceholder() {\n var shouldSetPlaceholder = this.options.autoPlaceholder === \"aggressive\" || !this.hadInitialPlaceholder && this.options.autoPlaceholder === \"polite\";\n if (window.intlTelInputUtils && shouldSetPlaceholder) {\n var numberType = intlTelInputUtils.numberType[this.options.placeholderNumberType];\n var placeholder = this.selectedCountryData.iso2 ? intlTelInputUtils.getExampleNumber(this.selectedCountryData.iso2, this.options.nationalMode, numberType) : \"\";\n placeholder = this._beforeSetNumber(placeholder);\n if (typeof this.options.customPlaceholder === \"function\") {\n placeholder = this.options.customPlaceholder(placeholder, this.selectedCountryData);\n }\n this.telInput.setAttribute(\"placeholder\", placeholder);\n }\n }\n }, {\n key: \"_selectListItem\",\n value: function _selectListItem(listItem) {\n // update selected flag and active list item\n var flagChanged = this._setFlag(listItem.getAttribute(\"data-country-code\"));\n this._closeDropdown();\n this._updateDialCode(listItem.getAttribute(\"data-dial-code\"), true);\n // focus the input\n this.telInput.focus();\n // put cursor at end - this fix is required for FF and IE11 (with nationalMode=false i.e. auto\n // inserting dial code), who try to put the cursor at the beginning the first time\n var len = this.telInput.value.length;\n this.telInput.setSelectionRange(len, len);\n if (flagChanged) {\n this._triggerCountryChange();\n }\n }\n }, {\n key: \"_closeDropdown\",\n value: function _closeDropdown() {\n this.countryList.classList.add(\"iti__hide\");\n this.selectedFlag.setAttribute(\"aria-expanded\", \"false\");\n // update the arrow\n this.dropdownArrow.classList.remove(\"iti__arrow--up\");\n // unbind key events\n document.removeEventListener(\"keydown\", this._handleKeydownOnDropdown);\n document.documentElement.removeEventListener(\"click\", this._handleClickOffToClose);\n this.countryList.removeEventListener(\"mouseover\", this._handleMouseoverCountryList);\n this.countryList.removeEventListener(\"click\", this._handleClickCountryList);\n // remove menu from container\n if (this.options.dropdownContainer) {\n if (!this.isMobile) window.removeEventListener(\"scroll\", this._handleWindowScroll);\n if (this.dropdown.parentNode) this.dropdown.parentNode.removeChild(this.dropdown);\n }\n this._trigger(\"close:countrydropdown\");\n }\n }, {\n key: \"_scrollTo\",\n value: function _scrollTo(element, middle) {\n var container = this.countryList;\n // windowTop from https://stackoverflow.com/a/14384091/217866\n var windowTop = window.pageYOffset || document.documentElement.scrollTop;\n var containerHeight = container.offsetHeight;\n var containerTop = container.getBoundingClientRect().top + windowTop;\n var containerBottom = containerTop + containerHeight;\n var elementHeight = element.offsetHeight;\n var elementTop = element.getBoundingClientRect().top + windowTop;\n var elementBottom = elementTop + elementHeight;\n var newScrollTop = elementTop - containerTop + container.scrollTop;\n var middleOffset = containerHeight / 2 - elementHeight / 2;\n if (elementTop < containerTop) {\n // scroll up\n if (middle) newScrollTop -= middleOffset;\n container.scrollTop = newScrollTop;\n } else if (elementBottom > containerBottom) {\n // scroll down\n if (middle) newScrollTop += middleOffset;\n var heightDifference = containerHeight - elementHeight;\n container.scrollTop = newScrollTop - heightDifference;\n }\n }\n }, {\n key: \"_updateDialCode\",\n value: function _updateDialCode(newDialCodeBare, hasSelectedListItem) {\n var inputVal = this.telInput.value;\n // save having to pass this every time\n var newDialCode = \"+\".concat(newDialCodeBare);\n var newNumber;\n if (inputVal.charAt(0) === \"+\") {\n // there's a plus so we're dealing with a replacement (doesn't matter if nationalMode or not)\n var prevDialCode = this._getDialCode(inputVal);\n if (prevDialCode) {\n // current number contains a valid dial code, so replace it\n newNumber = inputVal.replace(prevDialCode, newDialCode);\n } else {\n // current number contains an invalid dial code, so ditch it\n // (no way to determine where the invalid dial code ends and the rest of the number begins)\n newNumber = newDialCode;\n }\n } else if (this.options.nationalMode || this.options.separateDialCode) {\n // don't do anything\n return;\n } else {\n // nationalMode is disabled\n if (inputVal) {\n // there is an existing value with no dial code: prefix the new dial code\n newNumber = newDialCode + inputVal;\n } else if (hasSelectedListItem || !this.options.autoHideDialCode) {\n // no existing value and either they've just selected a list item, or autoHideDialCode is\n // disabled: insert new dial code\n newNumber = newDialCode;\n } else {\n return;\n }\n }\n this.telInput.value = newNumber;\n }\n }, {\n key: \"_getDialCode\",\n value: function _getDialCode(number, includeAreaCode) {\n var dialCode = \"\";\n // only interested in international numbers (starting with a plus)\n if (number.charAt(0) === \"+\") {\n var numericChars = \"\";\n // iterate over chars\n for (var i = 0; i < number.length; i++) {\n var c = number.charAt(i);\n // if char is number (https://stackoverflow.com/a/8935649/217866)\n if (!isNaN(parseInt(c, 10))) {\n numericChars += c;\n // if current numericChars make a valid dial code\n if (includeAreaCode) {\n if (this.countryCodes[numericChars]) {\n // store the actual raw string (useful for matching later)\n dialCode = number.substr(0, i + 1);\n }\n } else {\n if (this.dialCodes[numericChars]) {\n dialCode = number.substr(0, i + 1);\n // if we're just looking for a dial code, we can break as soon as we find one\n break;\n }\n }\n // stop searching as soon as we can - in this case when we hit max len\n if (numericChars.length === this.countryCodeMaxLen) {\n break;\n }\n }\n }\n }\n return dialCode;\n }\n }, {\n key: \"_getFullNumber\",\n value: function _getFullNumber() {\n var val = this.telInput.value.trim();\n var dialCode = this.selectedCountryData.dialCode;\n var prefix;\n var numericVal = this._getNumeric(val);\n if (this.options.separateDialCode && val.charAt(0) !== \"+\" && dialCode && numericVal) {\n // when using separateDialCode, it is visible so is effectively part of the typed number\n prefix = \"+\".concat(dialCode);\n } else {\n prefix = \"\";\n }\n return prefix + val;\n }\n }, {\n key: \"_beforeSetNumber\",\n value: function _beforeSetNumber(originalNumber) {\n var number = originalNumber;\n if (this.options.separateDialCode) {\n var dialCode = this._getDialCode(number);\n // if there is a valid dial code\n if (dialCode) {\n // in case _getDialCode returned an area code as well\n dialCode = \"+\".concat(this.selectedCountryData.dialCode);\n // a lot of numbers will have a space separating the dial code and the main number, and\n // some NANP numbers will have a hyphen e.g. +1 684-733-1234 - in both cases we want to get\n // rid of it\n // NOTE: don't just trim all non-numerics as may want to preserve an open parenthesis etc\n var start = number[dialCode.length] === \" \" || number[dialCode.length] === \"-\" ? dialCode.length + 1 : dialCode.length;\n number = number.substr(start);\n }\n }\n return this._cap(number);\n }\n }, {\n key: \"_triggerCountryChange\",\n value: function _triggerCountryChange() {\n this._trigger(\"countrychange\");\n }\n }, {\n key: \"handleAutoCountry\",\n value: function handleAutoCountry() {\n if (this.options.initialCountry === \"auto\") {\n // we must set this even if there is an initial val in the input: in case the initial val is\n // invalid and they delete it - they should see their auto country\n this.defaultCountry = window.intlTelInputGlobals.autoCountry;\n // if there's no initial value in the input, then update the flag\n if (!this.telInput.value) {\n this.setCountry(this.defaultCountry);\n }\n this.resolveAutoCountryPromise();\n }\n }\n }, {\n key: \"handleUtils\",\n value: function handleUtils() {\n // if the request was successful\n if (window.intlTelInputUtils) {\n // if there's an initial value in the input, then format it\n if (this.telInput.value) {\n this._updateValFromNumber(this.telInput.value);\n }\n this._updatePlaceholder();\n }\n this.resolveUtilsScriptPromise();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var form = this.telInput.form;\n if (this.options.allowDropdown) {\n // make sure the dropdown is closed (and unbind listeners)\n this._closeDropdown();\n this.selectedFlag.removeEventListener(\"click\", this._handleClickSelectedFlag);\n this.flagsContainer.removeEventListener(\"keydown\", this._handleFlagsContainerKeydown);\n // label click hack\n var label = this._getClosestLabel();\n if (label) label.removeEventListener(\"click\", this._handleLabelClick);\n }\n // unbind hiddenInput listeners\n if (this.hiddenInput && form) form.removeEventListener(\"submit\", this._handleHiddenInputSubmit);\n // unbind autoHideDialCode listeners\n if (this.options.autoHideDialCode) {\n if (form) form.removeEventListener(\"submit\", this._handleSubmitOrBlurEvent);\n this.telInput.removeEventListener(\"blur\", this._handleSubmitOrBlurEvent);\n }\n // unbind key events, and cut/paste events\n this.telInput.removeEventListener(\"keyup\", this._handleKeyupEvent);\n this.telInput.removeEventListener(\"cut\", this._handleClipboardEvent);\n this.telInput.removeEventListener(\"paste\", this._handleClipboardEvent);\n // remove attribute of id instance: data-intl-tel-input-id\n this.telInput.removeAttribute(\"data-intl-tel-input-id\");\n // remove markup (but leave the original input)\n var wrapper = this.telInput.parentNode;\n wrapper.parentNode.insertBefore(this.telInput, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n delete window.intlTelInputGlobals.instances[this.id];\n }\n }, {\n key: \"getExtension\",\n value: function getExtension() {\n if (window.intlTelInputUtils) {\n return intlTelInputUtils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2);\n }\n return \"\";\n }\n }, {\n key: \"getNumber\",\n value: function getNumber(format) {\n if (window.intlTelInputUtils) {\n var iso2 = this.selectedCountryData.iso2;\n return intlTelInputUtils.formatNumber(this._getFullNumber(), iso2, format);\n }\n return \"\";\n }\n }, {\n key: \"getNumberType\",\n value: function getNumberType() {\n if (window.intlTelInputUtils) {\n return intlTelInputUtils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2);\n }\n return -99;\n }\n }, {\n key: \"getSelectedCountryData\",\n value: function getSelectedCountryData() {\n return this.selectedCountryData;\n }\n }, {\n key: \"getValidationError\",\n value: function getValidationError() {\n if (window.intlTelInputUtils) {\n var iso2 = this.selectedCountryData.iso2;\n return intlTelInputUtils.getValidationError(this._getFullNumber(), iso2);\n }\n return -99;\n }\n }, {\n key: \"isValidNumber\",\n value: function isValidNumber() {\n var val = this._getFullNumber().trim();\n var countryCode = this.options.nationalMode ? this.selectedCountryData.iso2 : \"\";\n return window.intlTelInputUtils ? intlTelInputUtils.isValidNumber(val, countryCode) : null;\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(originalCountryCode) {\n var countryCode = originalCountryCode.toLowerCase();\n // check if already selected\n if (!this.selectedFlagInner.classList.contains(\"iti__\".concat(countryCode))) {\n this._setFlag(countryCode);\n this._updateDialCode(this.selectedCountryData.dialCode, false);\n this._triggerCountryChange();\n }\n }\n }, {\n key: \"setNumber\",\n value: function setNumber(number) {\n // we must update the flag first, which updates this.selectedCountryData, which is used for\n // formatting the number before displaying it\n var flagChanged = this._updateFlagFromNumber(number);\n this._updateValFromNumber(number);\n if (flagChanged) {\n this._triggerCountryChange();\n }\n }\n }, {\n key: \"setPlaceholderNumberType\",\n value: function setPlaceholderNumberType(type) {\n this.options.placeholderNumberType = type;\n this._updatePlaceholder();\n }\n } ]);\n return Iti;\n }();\n /********************\n * STATIC METHODS\n ********************/\n // get the country data object\n intlTelInputGlobals.getCountryData = function() {\n return allCountries;\n };\n // inject a <script> element to load utils.js\n var injectScript = function injectScript(path, handleSuccess, handleFailure) {\n // inject a new script element into the page\n var script = document.createElement(\"script\");\n script.onload = function() {\n forEachInstance(\"handleUtils\");\n if (handleSuccess) handleSuccess();\n };\n script.onerror = function() {\n forEachInstance(\"rejectUtilsScriptPromise\");\n if (handleFailure) handleFailure();\n };\n script.className = \"iti-load-utils\";\n script.async = true;\n script.src = path;\n document.body.appendChild(script);\n };\n // load the utils script\n intlTelInputGlobals.loadUtils = function(path) {\n // 2 options:\n // 1) not already started loading (start)\n // 2) already started loading (do nothing - just wait for the onload callback to fire, which will\n // trigger handleUtils on all instances, invoking their resolveUtilsScriptPromise functions)\n if (!window.intlTelInputUtils && !window.intlTelInputGlobals.startedLoadingUtilsScript) {\n // only do this once\n window.intlTelInputGlobals.startedLoadingUtilsScript = true;\n // if we have promises, then return a promise\n if (typeof Promise !== \"undefined\") {\n return new Promise(function(resolve, reject) {\n return injectScript(path, resolve, reject);\n });\n }\n injectScript(path);\n }\n return null;\n };\n // default options\n intlTelInputGlobals.defaults = defaults;\n // version\n intlTelInputGlobals.version = \"17.0.16\";\n // convenience wrapper\n return function(input, options) {\n var iti = new Iti(input, options);\n iti._init();\n input.setAttribute(\"data-intl-tel-input-id\", iti.id);\n window.intlTelInputGlobals.instances[iti.id] = iti;\n return iti;\n };\n }();\n});", "/**\n * Exposing intl-tel-input as a component\n */\nmodule.exports = require(\"./build/js/intlTelInput\");\n", "!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(t.flubber=t.flubber||{})}(this,function(t){\"use strict\";function n(t){return 10===t||13===t||8232===t||8233===t||32===t||9===t||11===t||12===t||160===t||t>=5760&&an.indexOf(t)>=0}function e(t){switch(32|t){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:case 114:return!0}return!1}function r(t){return t>=48&&t<=57}function i(t){return t>=48&&t<=57||43===t||45===t||46===t}function a(t){this.index=0,this.path=t,this.max=t.length,this.result=[],this.param=0,this.err=\"\",this.segmentStart=0,this.data=[]}function o(t){for(;t.index<t.max&&n(t.path.charCodeAt(t.index));)t.index++}function s(t){var n,e=t.index,i=e,a=t.max,o=!1,s=!1,h=!1,u=!1;if(i>=a)return void(t.err=\"SvgPath: missed param (at pos \"+i+\")\");if(n=t.path.charCodeAt(i),43!==n&&45!==n||(i++,n=i<a?t.path.charCodeAt(i):0),!r(n)&&46!==n)return void(t.err=\"SvgPath: param should start with 0..9 or `.` (at pos \"+i+\")\");if(46!==n){if(o=48===n,i++,n=i<a?t.path.charCodeAt(i):0,o&&i<a&&n&&r(n))return void(t.err=\"SvgPath: numbers started with `0` such as `09` are ilegal (at pos \"+e+\")\");for(;i<a&&r(t.path.charCodeAt(i));)i++,s=!0;n=i<a?t.path.charCodeAt(i):0}if(46===n){for(u=!0,i++;r(t.path.charCodeAt(i));)i++,h=!0;n=i<a?t.path.charCodeAt(i):0}if(101===n||69===n){if(u&&!s&&!h)return void(t.err=\"SvgPath: invalid float exponent (at pos \"+i+\")\");if(i++,n=i<a?t.path.charCodeAt(i):0,43!==n&&45!==n||i++,!(i<a&&r(t.path.charCodeAt(i))))return void(t.err=\"SvgPath: invalid float exponent (at pos \"+i+\")\");for(;i<a&&r(t.path.charCodeAt(i));)i++}t.index=i,t.param=parseFloat(t.path.slice(e,i))+0}function h(t){var n,e;n=t.path[t.segmentStart],e=n.toLowerCase();var r=t.data;if(\"m\"===e&&r.length>2&&(t.result.push([n,r[0],r[1]]),r=r.slice(2),e=\"l\",n=\"m\"===n?\"l\":\"L\"),\"r\"===e)t.result.push([n].concat(r));else for(;r.length>=rn[e]&&(t.result.push([n].concat(r.splice(0,rn[e]))),rn[e]););}function u(t){var n,r,a,u,c=t.max;if(t.segmentStart=t.index,n=t.path.charCodeAt(t.index),!e(n))return void(t.err=\"SvgPath: bad command \"+t.path[t.index]+\" (at pos \"+t.index+\")\");if(a=rn[t.path[t.index].toLowerCase()],t.index++,o(t),t.data=[],!a)return void h(t);for(r=!1;;){for(u=a;u>0;u--){if(s(t),t.err.length)return;t.data.push(t.param),o(t),r=!1,t.index<c&&44===t.path.charCodeAt(t.index)&&(t.index++,o(t),r=!0)}if(!r){if(t.index>=t.max)break;if(!i(t.path.charCodeAt(t.index)))break}}h(t)}function c(t,n){return[t[0]*n[0]+t[2]*n[1],t[1]*n[0]+t[3]*n[1],t[0]*n[2]+t[2]*n[3],t[1]*n[2]+t[3]*n[3],t[0]*n[4]+t[2]*n[5]+t[4],t[1]*n[4]+t[3]*n[5]+t[5]]}function f(){if(!(this instanceof f))return new f;this.queue=[],this.cache=null}function l(t,n,e,r){var i=t*r-n*e<0?-1:1,a=Math.sqrt(t*t+n*n),o=Math.sqrt(t*t+n*n),s=t*e+n*r,h=s/(a*o);return h>1&&(h=1),h<-1&&(h=-1),i*Math.acos(h)}function p(t,n,e,r,i,a,o,s,h,u){var c=u*(t-e)/2+h*(n-r)/2,f=-h*(t-e)/2+u*(n-r)/2,p=o*o,g=s*s,v=c*c,x=f*f,y=p*g-p*x-g*v;y<0&&(y=0),y/=p*x+g*v,y=Math.sqrt(y)*(i===a?-1:1);var d=y*o/s*f,m=y*-s/o*c,M=u*d-h*m+(t+e)/2,w=h*d+u*m+(n+r)/2,b=(c-d)/o,L=(f-m)/s,A=(-c-d)/o,q=(-f-m)/s,k=l(1,0,b,L),P=l(b,L,A,q);return 0===a&&P>0&&(P-=ln),1===a&&P<0&&(P+=ln),[M,w,k,P]}function g(t,n){var e=4/3*Math.tan(n/4),r=Math.cos(t),i=Math.sin(t),a=Math.cos(t+n),o=Math.sin(t+n);return[r,i,r-i*e,i+r*e,a+o*e,o-a*e,a,o]}function v(t,n,e){if(!(this instanceof v))return new v(t,n,e);this.rx=t,this.ry=n,this.ax=e}function x(t){if(!(this instanceof x))return new x(t);var n=on(t);this.segments=n.segments,this.err=n.err,this.__stack=[]}function y(t){var n=t.match(wn);return n?n.map(Number):[]}function d(t,n,e,r,i,a,o,s){this.a={x:t,y:n},this.b={x:e,y:r},this.c={x:i,y:a},this.d={x:o,y:s},null!==o&&void 0!==o&&null!==s&&void 0!==s?(this.getArcLength=_,this.getPoint=L,this.getDerivative=M):(this.getArcLength=A,this.getPoint=b,this.getDerivative=m),this.init()}function m(t,n,e){return{x:2*(1-e)*(t[1]-t[0])+2*e*(t[2]-t[1]),y:2*(1-e)*(n[1]-n[0])+2*e*(n[2]-n[1])}}function M(t,n,e){return b([3*(t[1]-t[0]),3*(t[2]-t[1]),3*(t[3]-t[2])],[3*(n[1]-n[0]),3*(n[2]-n[1]),3*(n[3]-n[2])],e)}function w(t,n,e,r,i){for(var a=1,o=t/n,s=(t-e(r,i,o))/n;a>.001;){var h=e(r,i,o+s),u=e(r,i,o-s),c=Math.abs(t-h)/n,f=Math.abs(t-u)/n;c<a?(a=c,o+=s):f<a?(a=f,o-=s):s/=2}return o}function b(t,n,e){return{x:(1-e)*(1-e)*t[0]+2*(1-e)*e*t[1]+e*e*t[2],y:(1-e)*(1-e)*n[0]+2*(1-e)*e*n[1]+e*e*n[2]}}function L(t,n,e){return{x:(1-e)*(1-e)*(1-e)*t[0]+3*(1-e)*(1-e)*e*t[1]+3*(1-e)*e*e*t[2]+e*e*e*t[3],y:(1-e)*(1-e)*(1-e)*n[0]+3*(1-e)*(1-e)*e*n[1]+3*(1-e)*e*e*n[2]+e*e*e*n[3]}}function A(t,n,e){void 0===e&&(e=1);var r=t[0]-2*t[1]+t[2],i=n[0]-2*n[1]+n[2],a=2*t[1]-2*t[0],o=2*n[1]-2*n[0],s=4*(r*r+i*i),h=4*(r*a+i*o),u=a*a+o*o;if(0===s)return e*Math.sqrt(Math.pow(t[2]-t[0],2)+Math.pow(n[2]-n[0],2));var c=h/(2*s),f=u/s,l=e+c,p=f-c*c;return Math.sqrt(s)/2*(l*Math.sqrt(l*l+p)-c*Math.sqrt(c*c+p)+p*Math.log(Math.abs((l+Math.sqrt(l*l+p))/(c+Math.sqrt(c*c+p)))))}function q(t,n){return qn[t][n]}function k(t,n,e){var r,i,a,o=e.length-1;if(0===o)return 0;if(0===t){for(i=0,a=0;a<=o;a++)i+=q(o,a)*Math.pow(1-n,o-a)*Math.pow(n,a)*e[a];return i}for(r=new Array(o),a=0;a<o;a++)r[a]=o*(e[a+1]-e[a]);return k(t-1,n,r)}function P(t,n,e){var r=k(1,e,t),i=k(1,e,n),a=r*r+i*i;return Math.sqrt(a)}function _(t,n,e){var r,i,a,o;void 0===e&&(e=1);for(r=e/2,i=0,a=0;a<20;a++)o=r*Ln[20][a]+r,i+=An[20][a]*P(t,n,o);return r*i}function E(t,n,e,r){var i=t*r-n*e<0?-1:1,a=t*e+n*r;return a>1&&(a=1),a<-1&&(a=-1),i*Math.acos(a)}function S(t,n,e,r,i,a,o,s,h,u){var c=u*(t-e)/2+h*(n-r)/2,f=-h*(t-e)/2+u*(n-r)/2,l=o*o,p=s*s,g=c*c,v=f*f,x=l*p-l*v-p*g;x<0&&(x=0),x/=l*v+p*g,x=Math.sqrt(x)*(i===a?-1:1);var y=x*o/s*f,d=x*-s/o*c,m=u*y-h*d+(t+e)/2,M=h*y+u*d+(n+r)/2,w=(c-y)/o,b=(f-d)/s,L=(-c-y)/o,A=(-f-d)/s,q=E(1,0,w,b),k=E(w,b,L,A);return 0===a&&k>0&&(k-=kn),1===a&&k<0&&(k+=kn),[m,M,q,k]}function C(t,n){var e=4/3*Math.tan(n/4),r=Math.cos(t),i=Math.sin(t),a=Math.cos(t+n),o=Math.sin(t+n);return[r,i,r-i*e,i+r*e,a+o*e,o-a*e,a,o]}function Z(t,n,e,r,i,a,o,s,h){var u=0,c=[],f=[];Pn(t,n,e,r,i,a,o,s,h).forEach(function(t){var n=new bn(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),e=n.getTotalLength();u+=e,c.push(e),f.push(n)}),this.length=u,this.partialLengths=c,this.curves=f}function T(t,n,e,r){this.x0=t,this.x1=n,this.y0=e,this.y1=r}function F(t,n){return Math.sqrt((t[0]-n[0])*(t[0]-n[0])+(t[1]-n[1])*(t[1]-n[1]))}function z(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function j(t,n){return F(t,n)<1e-9}function I(t,n,e){var r=t.map(function(t,e){return V(t,n[e])});return function(t){var n=r.map(function(n){return n(t)});return e?H(n):n}}function V(t,n){return function(e){return t.map(function(t,r){return t+e*(n[r]-t)})}}function X(t){return\"number\"==typeof t&&isFinite(t)}function Y(t){return G(t)?nn(t):[(t[0][0]+t[t.length-1][0])/2,(t[0][1]+t[t.length-1][1])/2]}function G(t){for(var n=0;n<t.length-2;n++){var e=t[n],r=t[n+1],i=t[n+2];if(e[0]*(r[1]-i[1])+r[0]*(i[1]-e[1])+i[0]*(e[1]-r[1]))return!0}return!1}function O(t){return new yn(t).abs()}function D(t){return t.toString().split(\"M\").map(function(t,n){return t=t.trim(),n&&t?\"M\"+t:t}).filter(function(t){return t})}function H(t){return\"M\"+t.join(\"L\")+\"Z\"}function N(t){return D(O(t))}function Q(t,n){var e=O(t);return U(e)||R(e,n)}function U(t){var n=t.segments||[],e=[];if(!n.length||\"M\"!==n[0][0])return!1;for(var r=0;r<n.length;r++){var i=n[r],a=i[0],o=i[1],s=i[2];if(\"M\"===a&&r||\"Z\"===a)break;if(\"M\"===a||\"L\"===a)e.push([o,s]);else if(\"H\"===a)e.push([o,e[e.length-1][1]]);else{if(\"V\"!==a)return!1;e.push([e[e.length-1][0],o])}}return!!e.length&&{ring:e}}function R(t,n){var e,r,i=D(t)[0],a=[],o=3;if(!i)throw new TypeError(Cn);r=B(i),e=r.getTotalLength(),n&&X(n)&&n>0&&(o=Math.max(o,Math.ceil(e/n)));for(var s=0;s<o;s++){var h=r.getPointAtLength(e*s/o);a.push([h.x,h.y])}return{ring:a,skipBisect:!0}}function B(t){if(\"undefined\"!=typeof window&&window&&window.document)try{var n=window.document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");return n.setAttributeNS(null,\"d\",t),n}catch(t){}return Sn(t)}function W(t,n){for(var e=t.length+n,r=en(t)/n,i=0,a=0,o=r/2;t.length<e;){var s=t[i],h=t[(i+1)%t.length],u=F(s,h);o<=a+u?(t.splice(i+1,0,u?z(s,h,(o-a)/u):s.slice(0)),o+=r):(a+=u,i++)}}function $(t,n){void 0===n&&(n=1/0);for(var e=0;e<t.length;e++)for(var r=t[e],i=e===t.length-1?t[0]:t[e+1];F(r,i)>n;)i=z(r,i,.5),t.splice(e+1,0,i)}function J(t,n){var e,r,i;if(\"string\"==typeof t){var a=Q(t,n);t=a.ring,i=a.skipBisect}else if(!Array.isArray(t))throw new TypeError(Cn);if(e=t.slice(0),!K(e))throw new TypeError(Cn);return e.length>1&&j(e[0],e[e.length-1])&&e.pop(),r=tn(e),r>0&&e.reverse(),!i&&n&&X(n)&&n>0&&$(e,n),e}function K(t){return t.every(function(t){return Array.isArray(t)&&t.length>=2&&X(t[0])&&X(t[1])})}function tt(t,n,e){var r;return r=t.length-n.length,W(t,r<0?-1*r:0),W(n,r>0?r:0),Tn(t,n),I(t,n,e)}function nt(t,n,e){e=e||2;var r=n&&n.length,i=r?n[0]*e:t.length,a=et(t,0,i,e,!0),o=[];if(!a)return o;var s,h,u,c,f,l,p;if(r&&(a=ut(t,n,a,e)),t.length>80*e){s=u=t[0],h=c=t[1];for(var g=e;g<i;g+=e)f=t[g],l=t[g+1],f<s&&(s=f),l<h&&(h=l),f>u&&(u=f),l>c&&(c=l);p=Math.max(u-s,c-h)}return it(a,o,e,s,h,p),o}function et(t,n,e,r,i){var a,o;if(i===Et(t,n,e,r)>0)for(a=n;a<e;a+=r)o=kt(a,t[a],t[a+1],o);else for(a=e-r;a>=n;a-=r)o=kt(a,t[a],t[a+1],o);return o&&Mt(o,o.next)&&(Pt(o),o=o.next),o}function rt(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Mt(r,r.next)&&0!==mt(r.prev,r,r.next))r=r.next;else{if(Pt(r),(r=n=r.prev)===r.next)return null;e=!0}}while(e||r!==n);return n}function it(t,n,e,r,i,a,o){if(t){!o&&a&&pt(t,r,i,a);for(var s,h,u=t;t.prev!==t.next;)if(s=t.prev,h=t.next,a?ot(t,r,i,a):at(t))n.push(s.i/e),n.push(t.i/e),n.push(h.i/e),Pt(t),t=h.next,u=h.next;else if((t=h)===u){o?1===o?(t=st(t,n,e),it(t,n,e,r,i,a,2)):2===o&&ht(t,n,e,r,i,a):it(rt(t),n,e,r,i,a,1);break}}}function at(t){var n=t.prev,e=t,r=t.next;if(mt(n,e,r)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(yt(n.x,n.y,e.x,e.y,r.x,r.y,i.x,i.y)&&mt(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function ot(t,n,e,r){var i=t.prev,a=t,o=t.next;if(mt(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,h=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,u=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=vt(s,h,n,e,r),l=vt(u,c,n,e,r),p=t.nextZ;p&&p.z<=l;){if(p!==t.prev&&p!==t.next&&yt(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&mt(p.prev,p,p.next)>=0)return!1;p=p.nextZ}for(p=t.prevZ;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&yt(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&mt(p.prev,p,p.next)>=0)return!1;p=p.prevZ}return!0}function st(t,n,e){var r=t;do{var i=r.prev,a=r.next.next;!Mt(i,a)&&wt(i,r,r.next,a)&&Lt(i,a)&&Lt(a,i)&&(n.push(i.i/e),n.push(r.i/e),n.push(a.i/e),Pt(r),Pt(r.next),r=t=a),r=r.next}while(r!==t);return r}function ht(t,n,e,r,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&dt(o,s)){var h=qt(o,s);return o=rt(o,o.next),h=rt(h,h.next),it(o,n,e,r,i,a),void it(h,n,e,r,i,a)}s=s.next}o=o.next}while(o!==t)}function ut(t,n,e,r){var i,a,o,s,h,u=[];for(i=0,a=n.length;i<a;i++)o=n[i]*r,s=i<a-1?n[i+1]*r:t.length,h=et(t,o,s,r,!1),h===h.next&&(h.steiner=!0),u.push(xt(h));for(u.sort(ct),i=0;i<u.length;i++)ft(u[i],e),e=rt(e,e.next);return e}function ct(t,n){return t.x-n.x}function ft(t,n){if(n=lt(t,n)){var e=qt(n,t);rt(e,e.next)}}function lt(t,n){var e,r=n,i=t.x,a=t.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var s=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=i&&s>o){if(o=s,s===i){if(a===r.y)return r;if(a===r.next.y)return r.next}e=r.x<r.next.x?r:r.next}}r=r.next}while(r!==n);if(!e)return null;if(i===o)return e.prev;var h,u=e,c=e.x,f=e.y,l=1/0;for(r=e.next;r!==u;)i>=r.x&&r.x>=c&&yt(a<f?i:o,a,c,f,a<f?o:i,a,r.x,r.y)&&((h=Math.abs(a-r.y)/(i-r.x))<l||h===l&&r.x>e.x)&&Lt(r,t)&&(e=r,l=h),r=r.next;return e}function pt(t,n,e,r){var i=t;do{null===i.z&&(i.z=vt(i.x,i.y,n,e,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,gt(i)}function gt(t){var n,e,r,i,a,o,s,h,u=1;do{for(e=t,t=null,a=null,o=0;e;){for(o++,r=e,s=0,n=0;n<u&&(s++,r=r.nextZ);n++);for(h=u;s>0||h>0&&r;)0===s?(i=r,r=r.nextZ,h--):0!==h&&r?e.z<=r.z?(i=e,e=e.nextZ,s--):(i=r,r=r.nextZ,h--):(i=e,e=e.nextZ,s--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;e=r}a.nextZ=null,u*=2}while(o>1);return t}function vt(t,n,e,r,i){return t=32767*(t-e)/i,n=32767*(n-r)/i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),n=16711935&(n|n<<8),n=252645135&(n|n<<4),n=858993459&(n|n<<2),n=1431655765&(n|n<<1),t|n<<1}function xt(t){var n=t,e=t;do{n.x<e.x&&(e=n),n=n.next}while(n!==t);return e}function yt(t,n,e,r,i,a,o,s){return(i-o)*(n-s)-(t-o)*(a-s)>=0&&(t-o)*(r-s)-(e-o)*(n-s)>=0&&(e-o)*(a-s)-(i-o)*(r-s)>=0}function dt(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!bt(t,n)&&Lt(t,n)&&Lt(n,t)&&At(t,n)}function mt(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Mt(t,n){return t.x===n.x&&t.y===n.y}function wt(t,n,e,r){return!!(Mt(t,n)&&Mt(e,r)||Mt(t,r)&&Mt(e,n))||mt(t,n,e)>0!=mt(t,n,r)>0&&mt(e,r,t)>0!=mt(e,r,n)>0}function bt(t,n){var e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&wt(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}function Lt(t,n){return mt(t.prev,t,t.next)<0?mt(t,n,t.next)>=0&&mt(t,t.prev,n)>=0:mt(t,n,t.prev)<0||mt(t,t.next,n)<0}function At(t,n){var e=t,r=!1,i=(t.x+n.x)/2,a=(t.y+n.y)/2;do{e.y>a!=e.next.y>a&&i<(e.next.x-e.x)*(a-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next}while(e!==t);return r}function qt(t,n){var e=new _t(t.i,t.x,t.y),r=new _t(n.i,n.x,n.y),i=t.next,a=n.prev;return t.next=n,n.prev=t,e.next=i,i.prev=e,r.next=e,e.prev=r,a.next=r,r.prev=a,r}function kt(t,n,e,r){var i=new _t(t,n,e);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Pt(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function _t(t,n,e){this.i=t,this.x=n,this.y=e,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Et(t,n,e,r){for(var i=0,a=n,o=e-r;a<e;a+=r)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}function St(t,n){var e=n.id,r=n.bbox,i=null==n.properties?{}:n.properties,a=Ct(t,n);return null==e&&null==r?{type:\"Feature\",properties:i,geometry:a}:null==r?{type:\"Feature\",id:e,properties:i,geometry:a}:{type:\"Feature\",id:e,bbox:r,properties:i,geometry:a}}function Ct(t,n){function e(t,n){n.length&&n.pop();for(var e=u[t<0?~t:t],r=0,i=e.length;r<i;++r)n.push(h(e[r],r));t<0&&Vn(n,i)}function r(t){return h(t)}function i(t){for(var n=[],r=0,i=t.length;r<i;++r)e(t[r],n);return n.length<2&&n.push(n[0]),n}function a(t){for(var n=i(t);n.length<4;)n.push(n[0]);return n}function o(t){return t.map(a)}function s(t){var n,e=t.type;switch(e){case\"GeometryCollection\":return{type:e,geometries:t.geometries.map(s)};case\"Point\":n=r(t.coordinates);break;case\"MultiPoint\":n=t.coordinates.map(r);break;case\"LineString\":n=i(t.arcs);break;case\"MultiLineString\":n=t.arcs.map(i);break;case\"Polygon\":n=o(t.arcs);break;case\"MultiPolygon\":n=t.arcs.map(o);break;default:return null}return{type:e,coordinates:n}}var h=In(t.transform),u=t.arcs;return s(n)}function Zt(t){for(var n,e=-1,r=t.length,i=t[r-1],a=0;++e<r;)n=i,i=t[e],a+=n[0]*i[1]-n[1]*i[0];return Math.abs(a)}function Tt(t,n){function e(t){switch(t.type){case\"GeometryCollection\":t.geometries.forEach(e);break;case\"Polygon\":r(t.arcs);break;case\"MultiPolygon\":t.arcs.forEach(r)}}function r(t){t.forEach(function(n){n.forEach(function(n){(a[n=n<0?~n:n]||(a[n]=[])).push(t)})}),o.push(t)}function i(n){return Zt(Ct(t,{type:\"Polygon\",arcs:[n]}).coordinates[0])}var a={},o=[],s=[];return n.forEach(e),o.forEach(function(t){if(!t._){var n=[],e=[t];for(t._=1,s.push(n);t=e.pop();)n.push(t),t.forEach(function(t){t.forEach(function(t){a[t<0?~t:t].forEach(function(t){t._||(t._=1,e.push(t))})})})}}),o.forEach(function(t){delete t._}),{type:\"MultiPolygon\",arcs:s.map(function(n){var e,r=[];if(n.forEach(function(t){t.forEach(function(t){t.forEach(function(t){a[t<0?~t:t].length<2&&r.push(t)})})}),r=Yn(t,r),(e=r.length)>1)for(var o,s,h=1,u=i(r[0]);h<e;++h)(o=i(r[h]))>u&&(s=r[0],r[0]=r[h],r[h]=s,u=o);return r})}}function Ft(t){return function(n,e){return Dn(t(n),e)}}function zt(t,n){var e={},r={type:\"Topology\",objects:{triangles:{type:\"GeometryCollection\",geometries:[]}},arcs:[]};return t.forEach(function(t){var i=[];t.forEach(function(t,a){var o=t[0]<t[1]?t.join(\",\"):t[1]+\",\"+t[0],s=t.map(function(t){return n[t]});o in e?i.push(~e[o]):(i.push(e[o]=r.arcs.length),r.arcs.push(s))}),r.objects.triangles.geometries.push({type:\"Polygon\",area:Math.abs(tn(t.map(function(t){return n[t[0]]}))),arcs:[i]})}),r.objects.triangles.geometries.sort(function(t,n){return t.area-n.area}),r}function jt(t,n){for(var e=t.objects.triangles.geometries,r=Hn(function(t){return t.area}).left;e.length>n;)!function(){var n=e[0],i=On(e)[0][0],a=e[i],o=Tt(t,[n,a]);o.area=n.area+a.area,o.type=\"Polygon\",o.arcs=o.arcs[0],e.splice(i,1),e.shift(),e.splice(r(e,o.area),0,o)}();if(n>e.length)throw new RangeError(\"Can't collapse topology into \"+n+\" pieces.\");return Xn(t,t.objects.triangles).features.map(function(t){return t.geometry.coordinates[0].pop(),t.geometry.coordinates[0]})}function It(t){for(var n=zn(t.reduce(function(t,n){return t.concat([n[0]],[n[1]])},[])),e=[],r=0,i=n.length;r<i;r+=3)e.push([[n[r],n[r+1]],[n[r+1],n[r+2]],[n[r+2],n[r]]]);return e}function Vt(t,n,e){function r(t,n,o){void 0===n&&(n=[]),void 0===o&&(o=0);for(var s=0;s<t.length;s++){var h=t.splice(s,1),u=e[h[0]][n.length];o+u<i&&(t.length?r(t.slice(),n.concat(h),o+u):(i=o+u,a=n.concat(h))),t.length&&t.splice(s,0,h[0])}}var i=1/0,a=t.map(function(t,n){return n});return r(a),a}function Xt(t,n){var e=F(Y(t),Y(n));return e*e}function Yt(t,n,e){void 0===e&&(e={});var r=e.maxSegmentLength;void 0===r&&(r=10);var i=e.string;void 0===i&&(i=!0);var a=e.single;void 0===a&&(a=!1);var o=J(t,r);o.length<n.length+2&&W(o,n.length+2-o.length);var s,h=Qn(o,n.length),u=n.map(function(t){return J(t,r)}),c=\"string\"==typeof t&&t;return a&&!n.every(function(t){return\"string\"==typeof t})||(s=n.slice(0)),Dt(h,u,{match:!0,string:i,single:a,t0:c,t1:s})}function Gt(t,n,e){void 0===e&&(e={});var r=e.maxSegmentLength;void 0===r&&(r=10);var i=e.string;void 0===i&&(i=!0);var a=e.single;void 0===a&&(a=!1);var o=Yt(n,t,{maxSegmentLength:r,string:i,single:a});return a?function(t){return o(1-t)}:o.map(function(t){return function(n){return t(1-n)}})}function Ot(t,n,e){void 0===e&&(e={});var r=e.maxSegmentLength;void 0===r&&(r=10);var i=e.string;void 0===i&&(i=!0);var a=e.single;if(void 0===a&&(a=!1),!Array.isArray(t)||!Array.isArray(n)||t.length!==n.length||!t.length)throw new TypeError(Zn);var o,s,h=function(t){return J(t,r)},u=t.map(h),c=n.map(h);return a?(t.every(function(t){return\"string\"==typeof t})&&(o=t.slice(0)),n.every(function(t){return\"string\"==typeof t})&&(s=n.slice(0))):(o=t.slice(0),s=n.slice(0)),Dt(u,c,{string:i,single:a,t0:o,t1:s,match:!1})}function Dt(t,n,e){void 0===e&&(e={});var r=e.string,i=e.single,a=e.t0,o=e.t1,s=e.match,h=s?Un(t,n):t.map(function(t,n){return n}),u=h.map(function(e,i){return tt(t[e],n[i],r)});if(s&&Array.isArray(a)&&(a=h.map(function(t){return a[t]})),i&&r&&(Array.isArray(a)&&(a=a.join(\" \")),Array.isArray(o)&&(o=o.join(\" \"))),i){var c=r?function(t){return u.map(function(n){return n(t)}).join(\" \")}:function(t){return u.map(function(n){return n(t)})};return r&&(a||o)?function(t){return t<1e-4&&a||1-t<1e-4&&o||c(t)}:c}return r?(a=Array.isArray(a)?a.map(function(t){return\"string\"==typeof t&&t}):[],o=Array.isArray(o)?o.map(function(t){return\"string\"==typeof t&&t}):[],u.map(function(t,n){return a[n]||o[n]?function(e){return e<1e-4&&a[n]||1-e<1e-4&&o[n]||t(e)}:t})):u}function Ht(t,n,e,r,i){return Rt(Bt(t,n,e),r,Jt(t,n,e),2*Math.PI*e,i)}function Nt(t,n,e,r,i){var a=Ht(n,e,r,t,i);return function(t){return a(1-t)}}function Qt(t,n,e,r,i,a){return Rt(Wt(t,n,e,r),i,Kt(t,n,e,r),2*e+2*r,a)}function Ut(t,n,e,r,i,a){var o=Qt(n,e,r,i,t,a);return function(t){return o(1-t)}}function Rt(t,n,e,r,i){void 0===i&&(i={});var a=i.maxSegmentLength;void 0===a&&(a=10);var o=i.string;void 0===o&&(o=!0);var s,h,u=J(n,a);return X(r)&&u.length<r/a&&W(u,Math.ceil(r/a-u.length)),s=t(u),h=I(s,u,o),o?function(t){return t<1e-4?e:h(t)}:h}function Bt(t,n,e){return function(r){var i=Y(r),a=en(r.concat([r[0]])),o=Math.atan2(r[0][1]-i[1],r[0][0]-i[0]),s=0;return r.map(function(i,h){var u;return h&&(s+=F(i,r[h-1])),u=o+2*Math.PI*(a?s/a:h/r.length),[Math.cos(u)*e+t,Math.sin(u)*e+n]})}}function Wt(t,n,e,r){return function(i){var a=Y(i),o=en(i.concat([i[0]])),s=Math.atan2(i[0][1]-a[1],i[0][0]-a[0]),h=0;s<0&&(s=2*Math.PI+s);var u=s/(2*Math.PI);return i.map(function(a,s){s&&(h+=F(a,i[s-1]));var c=$t((u+(o?h/o:s/i.length))%1);return[t+c[0]*e,n+c[1]*r]})}}function $t(t){return t<=1/8?[1,.5+4*t]:t<=3/8?[1.5-4*t,1]:t<=5/8?[0,2.5-4*t]:t<=7/8?[4*t-2.5,0]:[1,4*t-3.5]}function Jt(t,n,e){var r=t-e+\",\"+n,i=t+e+\",\"+n,a=\"A\"+e+\",\"+e+\",0,1,1,\";return\"M\"+r+a+i+a+r+\"Z\"}function Kt(t,n,e,r){var i=t+e,a=n+r;return\"M\"+t+\",\"+n+\"L\"+i+\",\"+n+\"L\"+i+\",\"+a+\"L\"+t+\",\"+a+\"Z\"}var tn=function(t){for(var n,e=-1,r=t.length,i=t[r-1],a=0;++e<r;)n=i,i=t[e],a+=n[1]*i[0]-n[0]*i[1];return a/2},nn=function(t){for(var n,e,r=-1,i=t.length,a=0,o=0,s=t[i-1],h=0;++r<i;)n=s,s=t[r],h+=e=n[0]*s[1]-s[0]*n[1],a+=(n[0]+s[0])*e,o+=(n[1]+s[1])*e;return h*=3,[a/h,o/h]},en=function(t){for(var n,e,r=-1,i=t.length,a=t[i-1],o=a[0],s=a[1],h=0;++r<i;)n=o,e=s,a=t[r],o=a[0],s=a[1],n-=o,e-=s,h+=Math.sqrt(n*n+e*e);return h},rn={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},an=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],on=function(t){var n=new a(t),e=n.max;for(o(n);n.index<e&&!n.err.length;)u(n);return n.err.length?n.result=[]:n.result.length&&(\"mM\".indexOf(n.result[0][0])<0?(n.err=\"SvgPath: string should start with `M` or `m`\",n.result=[]):n.result[0][0]=\"M\"),{err:n.err,segments:n.result}};f.prototype.matrix=function(t){return 1===t[0]&&0===t[1]&&0===t[2]&&1===t[3]&&0===t[4]&&0===t[5]?this:(this.cache=null,this.queue.push(t),this)},f.prototype.translate=function(t,n){return 0===t&&0===n||(this.cache=null,this.queue.push([1,0,0,1,t,n])),this},f.prototype.scale=function(t,n){return 1===t&&1===n||(this.cache=null,this.queue.push([t,0,0,n,0,0])),this},f.prototype.rotate=function(t,n,e){var r,i,a;return 0!==t&&(this.translate(n,e),r=t*Math.PI/180,i=Math.cos(r),a=Math.sin(r),this.queue.push([i,a,-a,i,0,0]),this.cache=null,this.translate(-n,-e)),this},f.prototype.skewX=function(t){return 0!==t&&(this.cache=null,this.queue.push([1,0,Math.tan(t*Math.PI/180),1,0,0])),this},f.prototype.skewY=function(t){return 0!==t&&(this.cache=null,this.queue.push([1,Math.tan(t*Math.PI/180),0,1,0,0])),this},f.prototype.toArray=function(){var t=this;if(this.cache)return this.cache;if(!this.queue.length)return this.cache=[1,0,0,1,0,0],this.cache;if(this.cache=this.queue[0],1===this.queue.length)return this.cache;for(var n=1;n<this.queue.length;n++)t.cache=c(t.cache,t.queue[n]);return this.cache},f.prototype.calc=function(t,n,e){var r;return this.queue.length?(this.cache||(this.cache=this.toArray()),r=this.cache,[t*r[0]+n*r[2]+(e?0:r[4]),t*r[1]+n*r[3]+(e?0:r[5])]):[t,n]};var sn=f,hn={matrix:!0,scale:!0,rotate:!0,translate:!0,skewX:!0,skewY:!0},un=/\\s*(matrix|translate|scale|rotate|skewX|skewY)\\s*\\(\\s*(.+?)\\s*\\)[\\s,]*/,cn=/[\\s,]+/,fn=function(t){var n,e,r=new sn;return t.split(un).forEach(function(t){if(t.length){if(void 0!==hn[t])return void(n=t);switch(e=t.split(cn).map(function(t){return+t||0}),n){case\"matrix\":return void(6===e.length&&r.matrix(e));case\"scale\":return void(1===e.length?r.scale(e[0],e[0]):2===e.length&&r.scale(e[0],e[1]));case\"rotate\":return void(1===e.length?r.rotate(e[0],0,0):3===e.length&&r.rotate(e[0],e[1],e[2]));case\"translate\":return void(1===e.length?r.translate(e[0],0):2===e.length&&r.translate(e[0],e[1]));case\"skewX\":return void(1===e.length&&r.skewX(e[0]));case\"skewY\":return void(1===e.length&&r.skewY(e[0]))}}}),r},ln=2*Math.PI,pn=function(t,n,e,r,i,a,o,s,h){var u=Math.sin(h*ln/360),c=Math.cos(h*ln/360),f=c*(t-e)/2+u*(n-r)/2,l=-u*(t-e)/2+c*(n-r)/2;if(0===f&&0===l)return[];if(0===o||0===s)return[];o=Math.abs(o),s=Math.abs(s);var v=f*f/(o*o)+l*l/(s*s);v>1&&(o*=Math.sqrt(v),s*=Math.sqrt(v));var x=p(t,n,e,r,i,a,o,s,u,c),y=[],d=x[2],m=x[3],M=Math.max(Math.ceil(Math.abs(m)/(ln/4)),1);m/=M;for(var w=0;w<M;w++)y.push(g(d,m)),d+=m;return y.map(function(t){for(var n=0;n<t.length;n+=2){var e=t[n+0],r=t[n+1];e*=o,r*=s;var i=c*e-u*r,a=u*e+c*r;t[n+0]=i+x[0],t[n+1]=a+x[1]}return t})},gn=Math.PI/180;v.prototype.transform=function(t){var n=Math.cos(this.ax*gn),e=Math.sin(this.ax*gn),r=[this.rx*(t[0]*n+t[2]*e),this.rx*(t[1]*n+t[3]*e),this.ry*(-t[0]*e+t[2]*n),this.ry*(-t[1]*e+t[3]*n)],i=r[0]*r[0]+r[2]*r[2],a=r[1]*r[1]+r[3]*r[3],o=((r[0]-r[3])*(r[0]-r[3])+(r[2]+r[1])*(r[2]+r[1]))*((r[0]+r[3])*(r[0]+r[3])+(r[2]-r[1])*(r[2]-r[1])),s=(i+a)/2;if(o<1e-10*s)return this.rx=this.ry=Math.sqrt(s),this.ax=0,this;var h=r[0]*r[1]+r[2]*r[3];o=Math.sqrt(o);var u=s+o/2,c=s-o/2;return this.ax=Math.abs(h)<1e-10&&Math.abs(u-a)<1e-10?90:180*Math.atan(Math.abs(h)>Math.abs(u-a)?(u-i)/h:h/(u-a))/Math.PI,this.ax>=0?(this.rx=Math.sqrt(u),this.ry=Math.sqrt(c)):(this.ax+=90,this.rx=Math.sqrt(c),this.ry=Math.sqrt(u)),this},v.prototype.isDegenerate=function(){return this.rx<1e-10*this.ry||this.ry<1e-10*this.rx};var vn=v;x.prototype.__matrix=function(t){var n,e=this;t.queue.length&&this.iterate(function(r,i,a,o){var s,h,u,c;switch(r[0]){case\"v\":s=t.calc(0,r[1],!0),h=0===s[0]?[\"v\",s[1]]:[\"l\",s[0],s[1]];break;case\"V\":s=t.calc(a,r[1],!1),h=s[0]===t.calc(a,o,!1)[0]?[\"V\",s[1]]:[\"L\",s[0],s[1]];break;case\"h\":s=t.calc(r[1],0,!0),h=0===s[1]?[\"h\",s[0]]:[\"l\",s[0],s[1]];break;case\"H\":s=t.calc(r[1],o,!1),h=s[1]===t.calc(a,o,!1)[1]?[\"H\",s[0]]:[\"L\",s[0],s[1]];break;case\"a\":case\"A\":var f=t.toArray(),l=vn(r[1],r[2],r[3]).transform(f);if(f[0]*f[3]-f[1]*f[2]<0&&(r[5]=r[5]?\"0\":\"1\"),s=t.calc(r[6],r[7],\"a\"===r[0]),\"A\"===r[0]&&r[6]===a&&r[7]===o||\"a\"===r[0]&&0===r[6]&&0===r[7]){h=[\"a\"===r[0]?\"l\":\"L\",s[0],s[1]];break}h=l.isDegenerate()?[\"a\"===r[0]?\"l\":\"L\",s[0],s[1]]:[r[0],l.rx,l.ry,l.ax,r[4],r[5],s[0],s[1]];break;case\"m\":c=i>0,s=t.calc(r[1],r[2],c),h=[\"m\",s[0],s[1]];break;default:for(u=r[0],h=[u],c=u.toLowerCase()===u,n=1;n<r.length;n+=2)s=t.calc(r[n],r[n+1],c),h.push(s[0],s[1])}e.segments[i]=h},!0)},x.prototype.__evaluateStack=function(){var t,n,e=this;if(this.__stack.length){if(1===this.__stack.length)return this.__matrix(this.__stack[0]),void(this.__stack=[]);for(t=sn(),n=this.__stack.length;--n>=0;)t.matrix(e.__stack[n].toArray());this.__matrix(t),this.__stack=[]}},x.prototype.toString=function(){var t,n,e=this,r=[];this.__evaluateStack();for(var i=0;i<this.segments.length;i++)n=e.segments[i][0],t=i>0&&\"m\"!==n&&\"M\"!==n&&n===e.segments[i-1][0],r=r.concat(t?e.segments[i].slice(1):e.segments[i]);return r.join(\" \").replace(/ ?([achlmqrstvz]) ?/gi,\"$1\").replace(/ \\-/g,\"-\").replace(/zm/g,\"z m\")},x.prototype.translate=function(t,n){return this.__stack.push(sn().translate(t,n||0)),this},x.prototype.scale=function(t,n){return this.__stack.push(sn().scale(t,n||0===n?n:t)),this},x.prototype.rotate=function(t,n,e){return this.__stack.push(sn().rotate(t,n||0,e||0)),this},x.prototype.skewX=function(t){return this.__stack.push(sn().skewX(t)),this},x.prototype.skewY=function(t){return this.__stack.push(sn().skewY(t)),this},x.prototype.matrix=function(t){return this.__stack.push(sn().matrix(t)),this},x.prototype.transform=function(t){return t.trim()?(this.__stack.push(fn(t)),this):this},x.prototype.round=function(t){var n,e=0,r=0,i=0,a=0;return t=t||0,this.__evaluateStack(),this.segments.forEach(function(o){var s=o[0].toLowerCase()===o[0];switch(o[0]){case\"H\":case\"h\":return s&&(o[1]+=i),i=o[1]-o[1].toFixed(t),void(o[1]=+o[1].toFixed(t));case\"V\":case\"v\":return s&&(o[1]+=a),a=o[1]-o[1].toFixed(t),void(o[1]=+o[1].toFixed(t));case\"Z\":case\"z\":return i=e,void(a=r);case\"M\":case\"m\":return s&&(o[1]+=i,o[2]+=a),i=o[1]-o[1].toFixed(t),a=o[2]-o[2].toFixed(t),e=i,r=a,o[1]=+o[1].toFixed(t),void(o[2]=+o[2].toFixed(t));case\"A\":case\"a\":return s&&(o[6]+=i,o[7]+=a),i=o[6]-o[6].toFixed(t),a=o[7]-o[7].toFixed(t),o[1]=+o[1].toFixed(t),o[2]=+o[2].toFixed(t),o[3]=+o[3].toFixed(t+2),o[6]=+o[6].toFixed(t),void(o[7]=+o[7].toFixed(t));default:return n=o.length,s&&(o[n-2]+=i,o[n-1]+=a),i=o[n-2]-o[n-2].toFixed(t),a=o[n-1]-o[n-1].toFixed(t),void o.forEach(function(n,e){e&&(o[e]=+o[e].toFixed(t))})}}),this},x.prototype.iterate=function(t,n){var e,r,i,a=this.segments,o={},s=!1,h=0,u=0,c=0,f=0;if(n||this.__evaluateStack(),a.forEach(function(n,e){var r=t(n,e,h,u);Array.isArray(r)&&(o[e]=r,s=!0);var i=n[0]===n[0].toLowerCase();switch(n[0]){case\"m\":case\"M\":return h=n[1]+(i?h:0),u=n[2]+(i?u:0),c=h,void(f=u);case\"h\":case\"H\":return void(h=n[1]+(i?h:0));case\"v\":case\"V\":return void(u=n[1]+(i?u:0));case\"z\":case\"Z\":return h=c,void(u=f);default:h=n[n.length-2]+(i?h:0),u=n[n.length-1]+(i?u:0)}}),!s)return this;for(i=[],e=0;e<a.length;e++)if(void 0!==o[e])for(r=0;r<o[e].length;r++)i.push(o[e][r]);else i.push(a[e]);return this.segments=i,this},x.prototype.abs=function(){return this.iterate(function(t,n,e,r){var i,a=t[0],o=a.toUpperCase();if(a!==o)switch(t[0]=o,a){case\"v\":return void(t[1]+=r);case\"a\":return t[6]+=e,void(t[7]+=r);default:for(i=1;i<t.length;i++)t[i]+=i%2?e:r}},!0),this},x.prototype.rel=function(){return this.iterate(function(t,n,e,r){var i,a=t[0],o=a.toLowerCase();if(a!==o&&(0!==n||\"M\"!==a))switch(t[0]=o,a){case\"V\":return void(t[1]-=r);case\"A\":return t[6]-=e,void(t[7]-=r);default:for(i=1;i<t.length;i++)t[i]-=i%2?e:r}},!0),this},x.prototype.unarc=function(){return this.iterate(function(t,n,e,r){var i,a,o,s=[],h=t[0];return\"A\"!==h&&\"a\"!==h?null:(\"a\"===h?(a=e+t[6],o=r+t[7]):(a=t[6],o=t[7]),i=pn(e,r,a,o,t[4],t[5],t[1],t[2],t[3]),0===i.length?[[\"a\"===t[0]?\"l\":\"L\",t[6],t[7]]]:(i.forEach(function(t){s.push([\"C\",t[2],t[3],t[4],t[5],t[6],t[7]])}),s))}),this},x.prototype.unshort=function(){var t,n,e,r,i,a=this.segments;return this.iterate(function(o,s,h,u){var c,f=o[0],l=f.toUpperCase();s&&(\"T\"===l?(c=\"t\"===f,e=a[s-1],\"Q\"===e[0]?(t=e[1]-h,n=e[2]-u):\"q\"===e[0]?(t=e[1]-e[3],n=e[2]-e[4]):(t=0,n=0),r=-t,i=-n,c||(r+=h,i+=u),a[s]=[c?\"q\":\"Q\",r,i,o[1],o[2]]):\"S\"===l&&(c=\"s\"===f,e=a[s-1],\"C\"===e[0]?(t=e[3]-h,n=e[4]-u):\"c\"===e[0]?(t=e[3]-e[5],n=e[4]-e[6]):(t=0,n=0),r=-t,i=-n,c||(r+=h,i+=u),a[s]=[c?\"c\":\"C\",r,i,o[1],o[2],o[3],o[4]]))}),this};var xn=x,yn=xn,dn={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},mn=/([astvzqmhlc])([^astvzqmhlc]*)/gi,Mn=function(t){var n=[];return t.replace(mn,function(t,e,r){var i=e.toLowerCase();for(r=y(r),\"m\"===i&&r.length>2&&(n.push([e].concat(r.splice(0,2))),i=\"l\",e=\"m\"===e?\"l\":\"L\");r.length>=0;){if(r.length===dn[i])return r.unshift(e),n.push(r);if(r.length<dn[i])throw new Error(\"malformed path data\");n.push([e].concat(r.splice(0,dn[i])))}}),n},wn=/-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/gi,bn=function(t,n,e,r,i,a,o,s){return new d(t,n,e,r,i,a,o,s)};d.prototype={constructor:d,init:function(){this.length=this.getArcLength([this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y])},getTotalLength:function(){return this.length},getPointAtLength:function(t){var n=w(t,this.length,this.getArcLength,[this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y]);return this.getPoint([this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y],n)},getTangentAtLength:function(t){var n=w(t,this.length,this.getArcLength,[this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y]),e=this.getDerivative([this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y],n),r=Math.sqrt(e.x*e.x+e.y*e.y);return r>0?{x:e.x/r,y:e.y/r}:{x:0,y:0}},getPropertiesAtLength:function(t){var n,e=w(t,this.length,this.getArcLength,[this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y]),r=this.getDerivative([this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y],e),i=Math.sqrt(r.x*r.x+r.y*r.y);n=i>0?{x:r.x/i,y:r.y/i}:{\nx:0,y:0};var a=this.getPoint([this.a.x,this.b.x,this.c.x,this.d.x],[this.a.y,this.b.y,this.c.y,this.d.y],e);return{x:a.x,y:a.y,tangentX:n.x,tangentY:n.y}}};var Ln=[[],[],[-.5773502691896257,.5773502691896257],[0,-.7745966692414834,.7745966692414834],[-.33998104358485626,.33998104358485626,-.8611363115940526,.8611363115940526],[0,-.5384693101056831,.5384693101056831,-.906179845938664,.906179845938664],[.6612093864662645,-.6612093864662645,-.2386191860831969,.2386191860831969,-.932469514203152,.932469514203152],[0,.4058451513773972,-.4058451513773972,-.7415311855993945,.7415311855993945,-.9491079123427585,.9491079123427585],[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363],[0,-.8360311073266358,.8360311073266358,-.9681602395076261,.9681602395076261,-.3242534234038089,.3242534234038089,-.6133714327005904,.6133714327005904],[-.14887433898163122,.14887433898163122,-.4333953941292472,.4333953941292472,-.6794095682990244,.6794095682990244,-.8650633666889845,.8650633666889845,-.9739065285171717,.9739065285171717],[0,-.26954315595234496,.26954315595234496,-.5190961292068118,.5190961292068118,-.7301520055740494,.7301520055740494,-.8870625997680953,.8870625997680953,-.978228658146057,.978228658146057],[-.1252334085114689,.1252334085114689,-.3678314989981802,.3678314989981802,-.5873179542866175,.5873179542866175,-.7699026741943047,.7699026741943047,-.9041172563704749,.9041172563704749,-.9815606342467192,.9815606342467192],[0,-.2304583159551348,.2304583159551348,-.44849275103644687,.44849275103644687,-.6423493394403402,.6423493394403402,-.8015780907333099,.8015780907333099,-.9175983992229779,.9175983992229779,-.9841830547185881,.9841830547185881],[-.10805494870734367,.10805494870734367,-.31911236892788974,.31911236892788974,-.5152486363581541,.5152486363581541,-.6872929048116855,.6872929048116855,-.827201315069765,.827201315069765,-.9284348836635735,.9284348836635735,-.9862838086968123,.9862838086968123],[0,-.20119409399743451,.20119409399743451,-.3941513470775634,.3941513470775634,-.5709721726085388,.5709721726085388,-.7244177313601701,.7244177313601701,-.8482065834104272,.8482065834104272,-.937273392400706,.937273392400706,-.9879925180204854,.9879925180204854],[-.09501250983763744,.09501250983763744,-.2816035507792589,.2816035507792589,-.45801677765722737,.45801677765722737,-.6178762444026438,.6178762444026438,-.755404408355003,.755404408355003,-.8656312023878318,.8656312023878318,-.9445750230732326,.9445750230732326,-.9894009349916499,.9894009349916499],[0,-.17848418149584785,.17848418149584785,-.3512317634538763,.3512317634538763,-.5126905370864769,.5126905370864769,-.6576711592166907,.6576711592166907,-.7815140038968014,.7815140038968014,-.8802391537269859,.8802391537269859,-.9506755217687678,.9506755217687678,-.9905754753144174,.9905754753144174],[-.0847750130417353,.0847750130417353,-.2518862256915055,.2518862256915055,-.41175116146284263,.41175116146284263,-.5597708310739475,.5597708310739475,-.6916870430603532,.6916870430603532,-.8037049589725231,.8037049589725231,-.8926024664975557,.8926024664975557,-.9558239495713977,.9558239495713977,-.9915651684209309,.9915651684209309],[0,-.16035864564022537,.16035864564022537,-.31656409996362983,.31656409996362983,-.46457074137596094,.46457074137596094,-.600545304661681,.600545304661681,-.7209661773352294,.7209661773352294,-.8227146565371428,.8227146565371428,-.9031559036148179,.9031559036148179,-.96020815213483,.96020815213483,-.9924068438435844,.9924068438435844],[-.07652652113349734,.07652652113349734,-.22778585114164507,.22778585114164507,-.37370608871541955,.37370608871541955,-.5108670019508271,.5108670019508271,-.636053680726515,.636053680726515,-.7463319064601508,.7463319064601508,-.8391169718222188,.8391169718222188,-.912234428251326,.912234428251326,-.9639719272779138,.9639719272779138,-.9931285991850949,.9931285991850949],[0,-.1455618541608951,.1455618541608951,-.2880213168024011,.2880213168024011,-.4243421202074388,.4243421202074388,-.5516188358872198,.5516188358872198,-.6671388041974123,.6671388041974123,-.7684399634756779,.7684399634756779,-.8533633645833173,.8533633645833173,-.9200993341504008,.9200993341504008,-.9672268385663063,.9672268385663063,-.9937521706203895,.9937521706203895],[-.06973927331972223,.06973927331972223,-.20786042668822127,.20786042668822127,-.34193582089208424,.34193582089208424,-.469355837986757,.469355837986757,-.5876404035069116,.5876404035069116,-.6944872631866827,.6944872631866827,-.7878168059792081,.7878168059792081,-.8658125777203002,.8658125777203002,-.926956772187174,.926956772187174,-.9700604978354287,.9700604978354287,-.9942945854823992,.9942945854823992],[0,-.1332568242984661,.1332568242984661,-.26413568097034495,.26413568097034495,-.3903010380302908,.3903010380302908,-.5095014778460075,.5095014778460075,-.6196098757636461,.6196098757636461,-.7186613631319502,.7186613631319502,-.8048884016188399,.8048884016188399,-.8767523582704416,.8767523582704416,-.9329710868260161,.9329710868260161,-.9725424712181152,.9725424712181152,-.9947693349975522,.9947693349975522],[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213]],An=[[],[],[1,1],[.8888888888888888,.5555555555555556,.5555555555555556],[.6521451548625461,.6521451548625461,.34785484513745385,.34785484513745385],[.5688888888888889,.47862867049936647,.47862867049936647,.23692688505618908,.23692688505618908],[.3607615730481386,.3607615730481386,.46791393457269104,.46791393457269104,.17132449237917036,.17132449237917036],[.4179591836734694,.3818300505051189,.3818300505051189,.27970539148927664,.27970539148927664,.1294849661688697,.1294849661688697],[.362683783378362,.362683783378362,.31370664587788727,.31370664587788727,.22238103445337448,.22238103445337448,.10122853629037626,.10122853629037626],[.3302393550012598,.1806481606948574,.1806481606948574,.08127438836157441,.08127438836157441,.31234707704000286,.31234707704000286,.26061069640293544,.26061069640293544],[.29552422471475287,.29552422471475287,.26926671930999635,.26926671930999635,.21908636251598204,.21908636251598204,.1494513491505806,.1494513491505806,.06667134430868814,.06667134430868814],[.2729250867779006,.26280454451024665,.26280454451024665,.23319376459199048,.23319376459199048,.18629021092773426,.18629021092773426,.1255803694649046,.1255803694649046,.05566856711617366,.05566856711617366],[.24914704581340277,.24914704581340277,.2334925365383548,.2334925365383548,.20316742672306592,.20316742672306592,.16007832854334622,.16007832854334622,.10693932599531843,.10693932599531843,.04717533638651183,.04717533638651183],[.2325515532308739,.22628318026289723,.22628318026289723,.2078160475368885,.2078160475368885,.17814598076194574,.17814598076194574,.13887351021978725,.13887351021978725,.09212149983772845,.09212149983772845,.04048400476531588,.04048400476531588],[.2152638534631578,.2152638534631578,.2051984637212956,.2051984637212956,.18553839747793782,.18553839747793782,.15720316715819355,.15720316715819355,.12151857068790319,.12151857068790319,.08015808715976021,.08015808715976021,.03511946033175186,.03511946033175186],[.2025782419255613,.19843148532711158,.19843148532711158,.1861610000155622,.1861610000155622,.16626920581699392,.16626920581699392,.13957067792615432,.13957067792615432,.10715922046717194,.10715922046717194,.07036604748810812,.07036604748810812,.03075324199611727,.03075324199611727],[.1894506104550685,.1894506104550685,.18260341504492358,.18260341504492358,.16915651939500254,.16915651939500254,.14959598881657674,.14959598881657674,.12462897125553388,.12462897125553388,.09515851168249279,.09515851168249279,.062253523938647894,.062253523938647894,.027152459411754096,.027152459411754096],[.17944647035620653,.17656270536699264,.17656270536699264,.16800410215645004,.16800410215645004,.15404576107681028,.15404576107681028,.13513636846852548,.13513636846852548,.11188384719340397,.11188384719340397,.08503614831717918,.08503614831717918,.0554595293739872,.0554595293739872,.02414830286854793,.02414830286854793],[.1691423829631436,.1691423829631436,.16427648374583273,.16427648374583273,.15468467512626524,.15468467512626524,.14064291467065065,.14064291467065065,.12255520671147846,.12255520671147846,.10094204410628717,.10094204410628717,.07642573025488905,.07642573025488905,.0497145488949698,.0497145488949698,.02161601352648331,.02161601352648331],[.1610544498487837,.15896884339395434,.15896884339395434,.15276604206585967,.15276604206585967,.1426067021736066,.1426067021736066,.12875396253933621,.12875396253933621,.11156664554733399,.11156664554733399,.09149002162245,.09149002162245,.06904454273764123,.06904454273764123,.0448142267656996,.0448142267656996,.019461788229726478,.019461788229726478],[.15275338713072584,.15275338713072584,.14917298647260374,.14917298647260374,.14209610931838204,.14209610931838204,.13168863844917664,.13168863844917664,.11819453196151841,.11819453196151841,.10193011981724044,.10193011981724044,.08327674157670475,.08327674157670475,.06267204833410907,.06267204833410907,.04060142980038694,.04060142980038694,.017614007139152118,.017614007139152118],[.14608113364969041,.14452440398997005,.14452440398997005,.13988739479107315,.13988739479107315,.13226893863333747,.13226893863333747,.12183141605372853,.12183141605372853,.10879729916714838,.10879729916714838,.09344442345603386,.09344442345603386,.0761001136283793,.0761001136283793,.057134425426857205,.057134425426857205,.036953789770852494,.036953789770852494,.016017228257774335,.016017228257774335],[.13925187285563198,.13925187285563198,.13654149834601517,.13654149834601517,.13117350478706238,.13117350478706238,.12325237681051242,.12325237681051242,.11293229608053922,.11293229608053922,.10041414444288096,.10041414444288096,.08594160621706773,.08594160621706773,.06979646842452049,.06979646842452049,.052293335152683286,.052293335152683286,.03377490158481415,.03377490158481415,.0146279952982722,.0146279952982722],[.13365457218610619,.1324620394046966,.1324620394046966,.12890572218808216,.12890572218808216,.12304908430672953,.12304908430672953,.11499664022241136,.11499664022241136,.10489209146454141,.10489209146454141,.09291576606003515,.09291576606003515,.07928141177671895,.07928141177671895,.06423242140852585,.06423242140852585,.04803767173108467,.04803767173108467,.030988005856979445,.030988005856979445,.013411859487141771,.013411859487141771],[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872]],qn=[[1],[1,1],[1,2,1],[1,3,3,1]],kn=2*Math.PI,Pn=function(t,n,e,r,i,a,o,s,h){var u=Math.sin(i*kn/360),c=Math.cos(i*kn/360),f=c*(t-s)/2+u*(n-h)/2,l=-u*(t-s)/2+c*(n-h)/2;if(0===f&&0===l)return[];if(0===e||0===r)return[];e=Math.abs(e),r=Math.abs(r);var p=f*f/(e*e)+l*l/(r*r);p>1&&(e*=Math.sqrt(p),r*=Math.sqrt(p));var g=S(t,n,s,h,a,o,e,r,u,c),v=[],x=g[2],y=g[3],d=Math.max(Math.ceil(Math.abs(y)/(kn/4)),1);y/=d;for(var m=0;m<d;m++)v.push(C(x,y)),x+=y;return v.map(function(t){for(var n=0;n<t.length;n+=2){var i=t[n+0],a=t[n+1];i*=e,a*=r;var o=c*i-u*a,s=u*i+c*a;t[n+0]=o+g[0],t[n+1]=s+g[1]}return t})},_n=function(t,n,e,r,i,a,o,s,h){return new Z(t,n,e,r,i,a,o,s,h)};Z.prototype={constructor:Z,init:function(){},getTotalLength:function(){return this.length},getPointAtLength:function(t){var n=this;t<0?t=0:t>this.length&&(t=this.length);for(var e=this.partialLengths.length-1;this.partialLengths[e]>=t&&this.partialLengths[e]>0;)e--;e<this.partialLengths.length-1&&e++;for(var r=0,i=0;i<e;i++)r+=n.partialLengths[i];return this.curves[e].getPointAtLength(t-r)},getTangentAtLength:function(t){var n=this;t<0?t=0:t>this.length&&(t=this.length);for(var e=this.partialLengths.length-1;this.partialLengths[e]>=t&&this.partialLengths[e]>0;)e--;e<this.partialLengths.length-1&&e++;for(var r=0,i=0;i<e;i++)r+=n.partialLengths[i];return this.curves[e].getTangentAtLength(t-r)},getPropertiesAtLength:function(t){var n=this.getTangentAtLength(t),e=this.getPointAtLength(t);return{x:e.x,y:e.y,tangentX:n.x,tangentY:n.y}}};var En=function(t,n,e,r){return new T(t,n,e,r)};T.prototype.getTotalLength=function(){return Math.sqrt(Math.pow(this.x0-this.x1,2)+Math.pow(this.y0-this.y1,2))},T.prototype.getPointAtLength=function(t){var n=t/Math.sqrt(Math.pow(this.x0-this.x1,2)+Math.pow(this.y0-this.y1,2)),e=(this.x1-this.x0)*n,r=(this.y1-this.y0)*n;return{x:this.x0+e,y:this.y0+r}},T.prototype.getTangentAtLength=function(){var t=Math.sqrt((this.x1-this.x0)*(this.x1-this.x0)+(this.y1-this.y0)*(this.y1-this.y0));return{x:(this.x1-this.x0)/t,y:(this.y1-this.y0)/t}},T.prototype.getPropertiesAtLength=function(t){var n=this.getPointAtLength(t),e=this.getTangentAtLength();return{x:n.x,y:n.y,tangentX:e.x,tangentY:e.y}};var Sn=function(t){function n(t){if(!t)return null;for(var a,o=Mn(t),s=[0,0],h=[0,0],u=0;u<o.length;u++)\"M\"===o[u][0]?(s=[o[u][1],o[u][2]],i.push(null)):\"m\"===o[u][0]?(s=[o[u][1]+s[0],o[u][2]+s[1]],i.push(null)):\"L\"===o[u][0]?(e+=Math.sqrt(Math.pow(s[0]-o[u][1],2)+Math.pow(s[1]-o[u][2],2)),i.push(new En(s[0],o[u][1],s[1],o[u][2])),s=[o[u][1],o[u][2]]):\"l\"===o[u][0]?(e+=Math.sqrt(Math.pow(o[u][1],2)+Math.pow(o[u][2],2)),i.push(new En(s[0],o[u][1]+s[0],s[1],o[u][2]+s[1])),s=[o[u][1]+s[0],o[u][2]+s[1]]):\"H\"===o[u][0]?(e+=Math.abs(s[0]-o[u][1]),i.push(new En(s[0],o[u][1],s[1],s[1])),s[0]=o[u][1]):\"h\"===o[u][0]?(e+=Math.abs(o[u][1]),i.push(new En(s[0],s[0]+o[u][1],s[1],s[1])),s[0]=o[u][1]+s[0]):\"V\"===o[u][0]?(e+=Math.abs(s[1]-o[u][1]),i.push(new En(s[0],s[0],s[1],o[u][1])),s[1]=o[u][1]):\"v\"===o[u][0]?(e+=Math.abs(o[u][1]),i.push(new En(s[0],s[0],s[1],s[1]+o[u][1])),s[1]=o[u][1]+s[1]):\"z\"===o[u][0]||\"Z\"===o[u][0]?(e+=Math.sqrt(Math.pow(o[0][1]-s[0],2)+Math.pow(o[0][2]-s[1],2)),i.push(new En(s[0],o[0][1],s[1],o[0][2])),s=[o[0][1],o[0][2]]):\"C\"===o[u][0]?(a=new bn(s[0],s[1],o[u][1],o[u][2],o[u][3],o[u][4],o[u][5],o[u][6]),e+=a.getTotalLength(),s=[o[u][5],o[u][6]],i.push(a)):\"c\"===o[u][0]?(a=new bn(s[0],s[1],s[0]+o[u][1],s[1]+o[u][2],s[0]+o[u][3],s[1]+o[u][4],s[0]+o[u][5],s[1]+o[u][6]),e+=a.getTotalLength(),s=[o[u][5]+s[0],o[u][6]+s[1]],i.push(a)):\"S\"===o[u][0]?(a=u>0&&[\"C\",\"c\",\"S\",\"s\"].indexOf(o[u-1][0])>-1?new bn(s[0],s[1],2*s[0]-o[u-1][o[u-1].length-4],2*s[1]-o[u-1][o[u-1].length-3],o[u][1],o[u][2],o[u][3],o[u][4]):new bn(s[0],s[1],s[0],s[1],o[u][1],o[u][2],o[u][3],o[u][4]),e+=a.getTotalLength(),s=[o[u][3],o[u][4]],i.push(a)):\"s\"===o[u][0]?(a=u>0&&[\"C\",\"c\",\"S\",\"s\"].indexOf(o[u-1][0])>-1?new bn(s[0],s[1],s[0]+a.d.x-a.c.x,s[1]+a.d.y-a.c.y,s[0]+o[u][1],s[1]+o[u][2],s[0]+o[u][3],s[1]+o[u][4]):new bn(s[0],s[1],s[0],s[1],s[0]+o[u][1],s[1]+o[u][2],s[0]+o[u][3],s[1]+o[u][4]),e+=a.getTotalLength(),s=[o[u][3]+s[0],o[u][4]+s[1]],i.push(a)):\"Q\"===o[u][0]?(a=new bn(s[0],s[1],o[u][1],o[u][2],o[u][3],o[u][4]),e+=a.getTotalLength(),i.push(a),s=[o[u][3],o[u][4]],h=[o[u][1],o[u][2]]):\"q\"===o[u][0]?(a=new bn(s[0],s[1],s[0]+o[u][1],s[1]+o[u][2],s[0]+o[u][3],s[1]+o[u][4]),e+=a.getTotalLength(),h=[s[0]+o[u][1],s[1]+o[u][2]],s=[o[u][3]+s[0],o[u][4]+s[1]],i.push(a)):\"T\"===o[u][0]?(a=u>0&&[\"Q\",\"q\",\"T\",\"t\"].indexOf(o[u-1][0])>-1?new bn(s[0],s[1],2*s[0]-h[0],2*s[1]-h[1],o[u][1],o[u][2]):new En(s[0],o[u][1],s[1],o[u][2]),i.push(a),e+=a.getTotalLength(),h=[2*s[0]-h[0],2*s[1]-h[1]],s=[o[u][1],o[u][2]]):\"t\"===o[u][0]?(a=u>0&&[\"Q\",\"q\",\"T\",\"t\"].indexOf(o[u-1][0])>-1?new bn(s[0],s[1],2*s[0]-h[0],2*s[1]-h[1],s[0]+o[u][1],s[1]+o[u][2]):new En(s[0],s[0]+o[u][1],s[1],s[1]+o[u][2]),e+=a.getTotalLength(),h=[2*s[0]-h[0],2*s[1]-h[1]],s=[o[u][1]+s[0],o[u][2]+s[0]],i.push(a)):\"A\"===o[u][0]?(a=new _n(s[0],s[1],o[u][1],o[u][2],o[u][3],o[u][4],o[u][5],o[u][6],o[u][7]),e+=a.getTotalLength(),s=[o[u][6],o[u][7]],i.push(a)):\"a\"===o[u][0]&&(a=new _n(s[0],s[1],o[u][1],o[u][2],o[u][3],o[u][4],o[u][5],s[0]+o[u][6],s[1]+o[u][7]),e+=a.getTotalLength(),s=[s[0]+o[u][6],s[1]+o[u][7]],i.push(a)),r.push(e);return n}var e=0,r=[],i=[];n.getTotalLength=function(){return e},n.getPointAtLength=function(t){var n=a(t);return i[n.i].getPointAtLength(n.fraction)},n.getTangentAtLength=function(t){var n=a(t);return i[n.i].getTangentAtLength(n.fraction)},n.getPropertiesAtLength=function(t){var n=a(t);return i[n.i].getPropertiesAtLength(n.fraction)};var a=function(t){t<0?t=0:t>e&&(t=e);for(var n=r.length-1;r[n]>=t&&r[n]>0;)n--;return n++,{fraction:t-r[n-1],i:n}};return n(t)},Cn='All shapes must be supplied as arrays of [x, y] points or an SVG path string (https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d).\\nExample valid ways of supplying a shape would be:\\n[[0, 0], [10, 0], [10, 10]]\\n\"M0,0 L10,0 L10,10Z\"\\n',Zn=\"flubber.all() expects two arrays of equal length as arguments. Each element in both arrays should be an array of [x, y] points or an SVG path string (https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d).\",Tn=function(t,n){for(var e,r,i,a=t.length,o=1/0,s=0;s<a;s++)!function(i){r=0,n.forEach(function(n,e){var o=F(t[(i+e)%a],n);r+=o*o}),r<o&&(o=r,e=i)}(s);e&&(i=t.splice(0,e),t.splice.apply(t,[t.length,0].concat(i)))},Fn=function(t,n,e){void 0===e&&(e={});var r=e.maxSegmentLength;void 0===r&&(r=10);var i=e.string;void 0===i&&(i=!0);var a=J(t,r),o=J(n,r),s=tt(a,o,i);return!i||\"string\"!=typeof t&&\"string\"!=typeof n?s:function(e){return e<1e-4&&\"string\"==typeof t?t:1-e<1e-4&&\"string\"==typeof n?n:s(e)}},zn=nt;nt.deviation=function(t,n,e,r){var i=n&&n.length,a=i?n[0]*e:t.length,o=Math.abs(Et(t,0,a,e));if(i)for(var s=0,h=n.length;s<h;s++){var u=n[s]*e,c=s<h-1?n[s+1]*e:t.length;o-=Math.abs(Et(t,u,c,e))}var f=0;for(s=0;s<r.length;s+=3){var l=r[s]*e,p=r[s+1]*e,g=r[s+2]*e;f+=Math.abs((t[l]-t[g])*(t[p+1]-t[l+1])-(t[l]-t[p])*(t[g+1]-t[l+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},nt.flatten=function(t){for(var n=t[0][0].length,e={vertices:[],holes:[],dimensions:n},r=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<n;o++)e.vertices.push(t[i][a][o]);i>0&&(r+=t[i-1].length,e.holes.push(r))}return e};var jn=function(t){return t},In=function(t){if(null==t)return jn;var n,e,r=t.scale[0],i=t.scale[1],a=t.translate[0],o=t.translate[1];return function(t,s){s||(n=e=0);var h=2,u=t.length,c=new Array(u);for(c[0]=(n+=t[0])*r+a,c[1]=(e+=t[1])*i+o;h<u;)c[h]=t[h],++h;return c}},Vn=function(t,n){for(var e,r=t.length,i=r-n;i<--r;)e=t[i],t[i++]=t[r],t[r]=e},Xn=function(t,n){return\"GeometryCollection\"===n.type?{type:\"FeatureCollection\",features:n.geometries.map(function(n){return St(t,n)})}:St(t,n)},Yn=function(t,n){function e(n){var e,r=t.arcs[n<0?~n:n],i=r[0];return t.transform?(e=[0,0],r.forEach(function(t){e[0]+=t[0],e[1]+=t[1]})):e=r[r.length-1],n<0?[e,i]:[i,e]}function r(t,n){for(var e in t){var r=t[e];delete n[r.start],delete r.start,delete r.end,r.forEach(function(t){i[t<0?~t:t]=1}),s.push(r)}}var i={},a={},o={},s=[],h=-1;return n.forEach(function(e,r){var i,a=t.arcs[e<0?~e:e];a.length<3&&!a[1][0]&&!a[1][1]&&(i=n[++h],n[h]=e,n[r]=i)}),n.forEach(function(t){var n,r,i=e(t),s=i[0],h=i[1];if(n=o[s])if(delete o[n.end],n.push(t),n.end=h,r=a[h]){delete a[r.start];var u=r===n?n:n.concat(r);a[u.start=n.start]=o[u.end=r.end]=u}else a[n.start]=o[n.end]=n;else if(n=a[h])if(delete a[n.start],n.unshift(t),n.start=s,r=o[s]){delete o[r.end];var c=r===n?n:r.concat(n);a[c.start=r.start]=o[c.end=n.end]=c}else a[n.start]=o[n.end]=n;else n=[t],a[n.start=s]=o[n.end=h]=n}),r(o,a),r(a,o),n.forEach(function(t){i[t<0?~t:t]||s.push([t])}),s},Gn=function(t,n){for(var e=0,r=t.length;e<r;){var i=e+r>>>1;t[i]<n?e=i+1:r=i}return e},On=function(t){function n(t,n){t.forEach(function(t){t<0&&(t=~t);var e=i[t];e?e.push(n):i[t]=[n]})}function e(t,e){t.forEach(function(t){n(t,e)})}function r(t,n){\"GeometryCollection\"===t.type?t.geometries.forEach(function(t){r(t,n)}):t.type in o&&o[t.type](t.arcs,n)}var i={},a=t.map(function(){return[]}),o={LineString:n,MultiLineString:e,Polygon:e,MultiPolygon:function(t,n){t.forEach(function(t){e(t,n)})}};t.forEach(r);for(var s in i)for(var h=i[s],u=h.length,c=0;c<u;++c)for(var f=c+1;f<u;++f){var l,p=h[c],g=h[f];(l=a[p])[s=Gn(l,g)]!==g&&l.splice(s,0,g),(l=a[g])[s=Gn(l,p)]!==p&&l.splice(s,0,p)}return a},Dn=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},Hn=function(t){return 1===t.length&&(t=Ft(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var a=r+i>>>1;t(n[a],e)<0?r=a+1:i=a}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var a=r+i>>>1;t(n[a],e)>0?i=a:r=a+1}return r}}},Nn=Hn(Dn),Qn=(Nn.right,Math.sqrt(50),Math.sqrt(10),Math.sqrt(2),function(t,n){return jt(zt(It(t),t),n)}),Un=function(t,n){if(t.length>8)return t.map(function(t,n){return n});var e=t.map(function(t){return n.map(function(n){return Xt(t,n)})});return Vt(t,n,e)};t.interpolate=Fn,t.separate=Yt,t.combine=Gt,t.interpolateAll=Ot,t.splitPathString=N,t.toPathString=H,t.fromCircle=Ht,t.toCircle=Nt,t.fromRect=Qt,t.toRect=Ut,Object.defineProperty(t,\"__esModule\",{value:!0})});\n", "/*\nTurbo 7.2.4\nCopyright \u00A9 2022 37signals LLC\n */\n(function () {\n if (window.Reflect === undefined ||\n window.customElements === undefined ||\n window.customElements.polyfillWrapFlushCallback) {\n return;\n }\n const BuiltInHTMLElement = HTMLElement;\n const wrapperForTheName = {\n HTMLElement: function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n },\n };\n window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function(submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n const candidate = element ? element.closest(\"input, button\") : null;\n return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n const submitter = findSubmitterFromClickTarget(event.target);\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n(function () {\n if (\"submitter\" in Event.prototype)\n return;\n let prototype;\n if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n prototype = window.SubmitEvent.prototype;\n }\n else if (\"SubmitEvent\" in window) {\n return;\n }\n else {\n prototype = window.Event.prototype;\n }\n addEventListener(\"click\", clickCaptured, true);\n Object.defineProperty(prototype, \"submitter\", {\n get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target);\n }\n },\n });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n FrameLoadingStyle[\"eager\"] = \"eager\";\n FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n constructor() {\n super();\n this.loaded = Promise.resolve();\n this.delegate = new FrameElement.delegateConstructor(this);\n }\n static get observedAttributes() {\n return [\"disabled\", \"complete\", \"loading\", \"src\"];\n }\n connectedCallback() {\n this.delegate.connect();\n }\n disconnectedCallback() {\n this.delegate.disconnect();\n }\n reload() {\n return this.delegate.sourceURLReloaded();\n }\n attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n }\n else if (name == \"complete\") {\n this.delegate.completeChanged();\n }\n else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n }\n else {\n this.delegate.disabledChanged();\n }\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n }\n else {\n this.removeAttribute(\"src\");\n }\n }\n get loading() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n }\n set loading(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n }\n else {\n this.removeAttribute(\"loading\");\n }\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n }\n else {\n this.removeAttribute(\"disabled\");\n }\n }\n get autoscroll() {\n return this.hasAttribute(\"autoscroll\");\n }\n set autoscroll(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n }\n else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n get complete() {\n return !this.delegate.isLoading;\n }\n get isActive() {\n return this.ownerDocument === document && !this.isPreview;\n }\n get isPreview() {\n var _a, _b;\n return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n }\n}\nfunction frameLoadingStyleFromString(style) {\n switch (style.toLowerCase()) {\n case \"lazy\":\n return FrameLoadingStyle.lazy;\n default:\n return FrameLoadingStyle.eager;\n }\n}\n\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n let anchorMatch;\n if (url.hash) {\n return url.hash.slice(1);\n }\n else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n return anchorMatch[1];\n }\n}\nfunction getAction(form, submitter) {\n const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n return expandURL(action);\n}\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n const prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n const anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n constructor(response) {\n this.response = response;\n }\n get succeeded() {\n return this.response.ok;\n }\n get failed() {\n return !this.succeeded;\n }\n get clientError() {\n return this.statusCode >= 400 && this.statusCode <= 499;\n }\n get serverError() {\n return this.statusCode >= 500 && this.statusCode <= 599;\n }\n get redirected() {\n return this.response.redirected;\n }\n get location() {\n return expandURL(this.response.url);\n }\n get isHTML() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n }\n get statusCode() {\n return this.response.status;\n }\n get contentType() {\n return this.header(\"Content-Type\");\n }\n get responseText() {\n return this.response.clone().text();\n }\n get responseHTML() {\n if (this.isHTML) {\n return this.response.clone().text();\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n header(name) {\n return this.response.headers.get(name);\n }\n}\n\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\n\nfunction activateScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element;\n }\n else {\n const createdScriptElement = document.createElement(\"script\");\n const cspNonce = getMetaContent(\"csp-nonce\");\n if (cspNonce) {\n createdScriptElement.nonce = cspNonce;\n }\n createdScriptElement.textContent = element.textContent;\n createdScriptElement.async = false;\n copyElementAttributes(createdScriptElement, element);\n return createdScriptElement;\n }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (const { name, value } of sourceElement.attributes) {\n destinationElement.setAttribute(name, value);\n }\n}\nfunction createDocumentFragment(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n const event = new CustomEvent(eventName, {\n cancelable,\n bubbles: true,\n detail,\n });\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n }\n else {\n document.documentElement.dispatchEvent(event);\n }\n return event;\n}\nfunction nextAnimationFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n const match = lines[0].match(/^\\s+/);\n const indent = match ? match[0].length : 0;\n return lines.map((line) => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n return strings.reduce((result, string, i) => {\n const value = values[i] == undefined ? \"\" : values[i];\n return result + string + value;\n }, \"\");\n}\nfunction uuid() {\n return Array.from({ length: 36 })\n .map((_, i) => {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\";\n }\n else if (i == 14) {\n return \"4\";\n }\n else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16);\n }\n else {\n return Math.floor(Math.random() * 15).toString(16);\n }\n })\n .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n if (typeof value == \"string\")\n return value;\n }\n return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n return elements.some((element) => element && element.hasAttribute(attributeName));\n}\nfunction markAsBusy(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.setAttribute(\"busy\", \"\");\n }\n element.setAttribute(\"aria-busy\", \"true\");\n }\n}\nfunction clearBusyState(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n element.removeAttribute(\"aria-busy\");\n }\n}\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n return new Promise((resolve) => {\n const onComplete = () => {\n element.removeEventListener(\"error\", onComplete);\n element.removeEventListener(\"load\", onComplete);\n resolve();\n };\n element.addEventListener(\"load\", onComplete, { once: true });\n element.addEventListener(\"error\", onComplete, { once: true });\n setTimeout(resolve, timeoutInMilliseconds);\n });\n}\nfunction getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n}\nfunction getVisitAction(...elements) {\n const action = getAttribute(\"data-turbo-action\", ...elements);\n return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n const element = getMetaElement(name);\n return element && element.content;\n}\nfunction setMetaContent(name, content) {\n let element = getMetaElement(name);\n if (!element) {\n element = document.createElement(\"meta\");\n element.setAttribute(\"name\", name);\n document.head.appendChild(element);\n }\n element.setAttribute(\"content\", content);\n return element;\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n switch (method.toLowerCase()) {\n case \"get\":\n return FetchMethod.get;\n case \"post\":\n return FetchMethod.post;\n case \"put\":\n return FetchMethod.put;\n case \"patch\":\n return FetchMethod.patch;\n case \"delete\":\n return FetchMethod.delete;\n }\n}\nclass FetchRequest {\n constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n this.abortController = new AbortController();\n this.resolveRequestPromise = (_value) => { };\n this.delegate = delegate;\n this.method = method;\n this.headers = this.defaultHeaders;\n this.body = body;\n this.url = location;\n this.target = target;\n }\n get location() {\n return this.url;\n }\n get params() {\n return this.url.searchParams;\n }\n get entries() {\n return this.body ? Array.from(this.body.entries()) : [];\n }\n cancel() {\n this.abortController.abort();\n }\n async perform() {\n var _a, _b;\n const { fetchOptions } = this;\n (_b = (_a = this.delegate).prepareHeadersForRequest) === null || _b === void 0 ? void 0 : _b.call(_a, this.headers, this);\n await this.allowRequestToBeIntercepted(fetchOptions);\n try {\n this.delegate.requestStarted(this);\n const response = await fetch(this.url.href, fetchOptions);\n return await this.receive(response);\n }\n catch (error) {\n if (error.name !== \"AbortError\") {\n if (this.willDelegateErrorHandling(error)) {\n this.delegate.requestErrored(this, error);\n }\n throw error;\n }\n }\n finally {\n this.delegate.requestFinished(this);\n }\n }\n async receive(response) {\n const fetchResponse = new FetchResponse(response);\n const event = dispatch(\"turbo:before-fetch-response\", {\n cancelable: true,\n detail: { fetchResponse },\n target: this.target,\n });\n if (event.defaultPrevented) {\n this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n }\n else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n }\n else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n return fetchResponse;\n }\n get fetchOptions() {\n var _a;\n return {\n method: FetchMethod[this.method].toUpperCase(),\n credentials: \"same-origin\",\n headers: this.headers,\n redirect: \"follow\",\n body: this.isIdempotent ? null : this.body,\n signal: this.abortSignal,\n referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n };\n }\n get defaultHeaders() {\n return {\n Accept: \"text/html, application/xhtml+xml\",\n };\n }\n get isIdempotent() {\n return this.method == FetchMethod.get;\n }\n get abortSignal() {\n return this.abortController.signal;\n }\n acceptResponseType(mimeType) {\n this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n }\n async allowRequestToBeIntercepted(fetchOptions) {\n const requestInterception = new Promise((resolve) => (this.resolveRequestPromise = resolve));\n const event = dispatch(\"turbo:before-fetch-request\", {\n cancelable: true,\n detail: {\n fetchOptions,\n url: this.url,\n resume: this.resolveRequestPromise,\n },\n target: this.target,\n });\n if (event.defaultPrevented)\n await requestInterception;\n }\n willDelegateErrorHandling(error) {\n const event = dispatch(\"turbo:fetch-request-error\", {\n target: this.target,\n cancelable: true,\n detail: { request: this, error: error },\n });\n return !event.defaultPrevented;\n }\n}\n\nclass AppearanceObserver {\n constructor(delegate, element) {\n this.started = false;\n this.intersect = (entries) => {\n const lastEntry = entries.slice(-1)[0];\n if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n this.delegate.elementAppearedInViewport(this.element);\n }\n };\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n}\n\nclass StreamMessage {\n constructor(fragment) {\n this.fragment = importStreamElements(fragment);\n }\n static wrap(message) {\n if (typeof message == \"string\") {\n return new this(createDocumentFragment(message));\n }\n else {\n return message;\n }\n }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n const streamElement = document.importNode(element, true);\n for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n }\n element.replaceWith(streamElement);\n }\n return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n FormEnctype[\"multipart\"] = \"multipart/form-data\";\n FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FormEnctype.multipart:\n return FormEnctype.multipart;\n case FormEnctype.plain:\n return FormEnctype.plain;\n default:\n return FormEnctype.urlEncoded;\n }\n}\nclass FormSubmission {\n constructor(delegate, formElement, submitter, mustRedirect = false) {\n this.state = FormSubmissionState.initialized;\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.formData = buildFormData(formElement, submitter);\n this.location = expandURL(this.action);\n if (this.method == FetchMethod.get) {\n mergeFormDataEntries(this.location, [...this.body.entries()]);\n }\n this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n this.mustRedirect = mustRedirect;\n }\n static confirmMethod(message, _element, _submitter) {\n return Promise.resolve(confirm(message));\n }\n get method() {\n var _a;\n const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n }\n get action() {\n var _a;\n const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n return this.submitter.getAttribute(\"formaction\") || \"\";\n }\n else {\n return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n }\n }\n get body() {\n if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n return new URLSearchParams(this.stringFormData);\n }\n else {\n return this.formData;\n }\n }\n get enctype() {\n var _a;\n return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n }\n get isIdempotent() {\n return this.fetchRequest.isIdempotent;\n }\n get stringFormData() {\n return [...this.formData].reduce((entries, [name, value]) => {\n return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n }, []);\n }\n async start() {\n const { initialized, requesting } = FormSubmissionState;\n const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n if (typeof confirmationMessage === \"string\") {\n const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n if (!answer) {\n return;\n }\n }\n if (this.state == initialized) {\n this.state = requesting;\n return this.fetchRequest.perform();\n }\n }\n stop() {\n const { stopping, stopped } = FormSubmissionState;\n if (this.state != stopping && this.state != stopped) {\n this.state = stopping;\n this.fetchRequest.cancel();\n return true;\n }\n }\n prepareHeadersForRequest(headers, request) {\n if (!request.isIdempotent) {\n const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n if (token) {\n headers[\"X-CSRF-Token\"] = token;\n }\n }\n if (this.requestAcceptsTurboStreamResponse(request)) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n var _a;\n this.state = FormSubmissionState.waiting;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: { formSubmission: this },\n });\n this.delegate.formSubmissionStarted(this);\n }\n requestPreventedHandlingResponse(request, response) {\n this.result = { success: response.succeeded, fetchResponse: response };\n }\n requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n const error = new Error(\"Form responses must redirect to another location\");\n this.delegate.formSubmissionErrored(this, error);\n }\n else {\n this.state = FormSubmissionState.receiving;\n this.result = { success: true, fetchResponse: response };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n requestFailedWithResponse(request, response) {\n this.result = { success: false, fetchResponse: response };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n requestErrored(request, error) {\n this.result = { success: false, error };\n this.delegate.formSubmissionErrored(this, error);\n }\n requestFinished(_request) {\n var _a;\n this.state = FormSubmissionState.stopped;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: Object.assign({ formSubmission: this }, this.result),\n });\n this.delegate.formSubmissionFinished(this);\n }\n requestMustRedirect(request) {\n return !request.isIdempotent && this.mustRedirect;\n }\n requestAcceptsTurboStreamResponse(request) {\n return !request.isIdempotent || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n }\n}\nfunction buildFormData(formElement, submitter) {\n const formData = new FormData(formElement);\n const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n if (name) {\n formData.append(name, value || \"\");\n }\n return formData;\n}\nfunction getCookieValue(cookieName) {\n if (cookieName != null) {\n const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n if (cookie) {\n const value = cookie.split(\"=\").slice(1).join(\"=\");\n return value ? decodeURIComponent(value) : undefined;\n }\n }\n}\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n const searchParams = new URLSearchParams();\n for (const [name, value] of entries) {\n if (value instanceof File)\n continue;\n searchParams.append(name, value);\n }\n url.search = searchParams.toString();\n return url;\n}\n\nclass Snapshot {\n constructor(element) {\n this.element = element;\n }\n get activeElement() {\n return this.element.ownerDocument.activeElement;\n }\n get children() {\n return [...this.element.children];\n }\n hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null;\n }\n getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n }\n get isConnected() {\n return this.element.isConnected;\n }\n get firstAutofocusableElement() {\n const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n if (element.closest(inertDisabledOrHidden) == null)\n return element;\n else\n continue;\n }\n return null;\n }\n get permanentElements() {\n return queryPermanentElementsAll(this.element);\n }\n getPermanentElementById(id) {\n return getPermanentElementById(this.element, id);\n }\n getPermanentElementMapForSnapshot(snapshot) {\n const permanentElementMap = {};\n for (const currentPermanentElement of this.permanentElements) {\n const { id } = currentPermanentElement;\n const newPermanentElement = snapshot.getPermanentElementById(id);\n if (newPermanentElement) {\n permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n }\n }\n return permanentElementMap;\n }\n}\nfunction getPermanentElementById(node, id) {\n return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.submitCaptured = () => {\n this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n };\n this.submitBubbled = ((event) => {\n if (!event.defaultPrevented) {\n const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n const submitter = event.submitter || undefined;\n if (form &&\n submissionDoesNotDismissDialog(form, submitter) &&\n submissionDoesNotTargetIFrame(form, submitter) &&\n this.delegate.willSubmitForm(form, submitter)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.delegate.formSubmitted(form, submitter);\n }\n }\n });\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n for (const element of document.getElementsByName(target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n}\n\nclass View {\n constructor(delegate, element) {\n this.resolveRenderPromise = (_value) => { };\n this.resolveInterceptionPromise = (_value) => { };\n this.delegate = delegate;\n this.element = element;\n }\n scrollToAnchor(anchor) {\n const element = this.snapshot.getElementForAnchor(anchor);\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n }\n else {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n }\n scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n scrollToElement(element) {\n element.scrollIntoView();\n }\n focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n }\n else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n scrollToPosition({ x, y }) {\n this.scrollRoot.scrollTo(x, y);\n }\n scrollToTop() {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n get scrollRoot() {\n return window;\n }\n async render(renderer) {\n const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n if (shouldRender) {\n try {\n this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n this.renderer = renderer;\n await this.prepareToRenderSnapshot(renderer);\n const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n if (!immediateRender)\n await renderInterception;\n await this.renderSnapshot(renderer);\n this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n this.delegate.preloadOnLoadLinksForView(this.element);\n this.finishRenderingSnapshot(renderer);\n }\n finally {\n delete this.renderer;\n this.resolveRenderPromise(undefined);\n delete this.renderPromise;\n }\n }\n else {\n this.invalidate(renderer.reloadReason);\n }\n }\n invalidate(reason) {\n this.delegate.viewInvalidated(reason);\n }\n async prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n await renderer.prepareToRender();\n }\n markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n }\n else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n async renderSnapshot(renderer) {\n await renderer.render();\n }\n finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n}\n\nclass FrameView extends View {\n invalidate() {\n this.element.innerHTML = \"\";\n }\n get snapshot() {\n return new Snapshot(this.element);\n }\n}\n\nclass LinkInterceptor {\n constructor(delegate, element) {\n this.clickBubbled = (event) => {\n if (this.respondsToEventTarget(event.target)) {\n this.clickEvent = event;\n }\n else {\n delete this.clickEvent;\n }\n };\n this.linkClicked = ((event) => {\n if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n this.clickEvent.preventDefault();\n event.preventDefault();\n this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n }\n }\n delete this.clickEvent;\n });\n this.willVisit = ((_event) => {\n delete this.clickEvent;\n });\n this.delegate = delegate;\n this.element = element;\n }\n start() {\n this.element.addEventListener(\"click\", this.clickBubbled);\n document.addEventListener(\"turbo:click\", this.linkClicked);\n document.addEventListener(\"turbo:before-visit\", this.willVisit);\n }\n stop() {\n this.element.removeEventListener(\"click\", this.clickBubbled);\n document.removeEventListener(\"turbo:click\", this.linkClicked);\n document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n }\n respondsToEventTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n return element && element.closest(\"turbo-frame, html\") == this.element;\n }\n}\n\nclass LinkClickObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.clickCaptured = () => {\n this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n };\n this.clickBubbled = (event) => {\n if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n const target = (event.composedPath && event.composedPath()[0]) || event.target;\n const link = this.findLinkFromClickTarget(target);\n if (link && doesNotTargetIFrame(link)) {\n const location = this.getLocationForLink(link);\n if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n event.preventDefault();\n this.delegate.followedLinkToLocation(link, location);\n }\n }\n }\n };\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n clickEventIsSignificant(event) {\n return !((event.target && event.target.isContentEditable) ||\n event.defaultPrevented ||\n event.which > 1 ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey);\n }\n findLinkFromClickTarget(target) {\n if (target instanceof Element) {\n return target.closest(\"a[href]:not([target^=_]):not([download])\");\n }\n }\n getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\");\n }\n}\nfunction doesNotTargetIFrame(anchor) {\n for (const element of document.getElementsByName(anchor.target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n}\n\nclass FormLinkClickObserver {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.linkInterceptor = new LinkClickObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n }\n stop() {\n this.linkInterceptor.stop();\n }\n willFollowLinkToLocation(link, location, originalEvent) {\n return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n link.hasAttribute(\"data-turbo-method\"));\n }\n followedLinkToLocation(link, location) {\n const action = location.href;\n const form = document.createElement(\"form\");\n form.setAttribute(\"data-turbo\", \"true\");\n form.setAttribute(\"action\", action);\n form.setAttribute(\"hidden\", \"\");\n const method = link.getAttribute(\"data-turbo-method\");\n if (method)\n form.setAttribute(\"method\", method);\n const turboFrame = link.getAttribute(\"data-turbo-frame\");\n if (turboFrame)\n form.setAttribute(\"data-turbo-frame\", turboFrame);\n const turboAction = link.getAttribute(\"data-turbo-action\");\n if (turboAction)\n form.setAttribute(\"data-turbo-action\", turboAction);\n const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n if (turboConfirm)\n form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n const turboStream = link.hasAttribute(\"data-turbo-stream\");\n if (turboStream)\n form.setAttribute(\"data-turbo-stream\", \"\");\n this.delegate.submittedFormLinkToLocation(link, location, form);\n document.body.appendChild(form);\n form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n requestAnimationFrame(() => form.requestSubmit());\n }\n}\n\nclass Bardo {\n constructor(delegate, permanentElementMap) {\n this.delegate = delegate;\n this.permanentElementMap = permanentElementMap;\n }\n static preservingPermanentElements(delegate, permanentElementMap, callback) {\n const bardo = new this(delegate, permanentElementMap);\n bardo.enter();\n callback();\n bardo.leave();\n }\n enter() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n }\n }\n leave() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement] = this.permanentElementMap[id];\n this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n this.delegate.leavingBardo(currentPermanentElement);\n }\n }\n replaceNewPermanentElementWithPlaceholder(permanentElement) {\n const placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n replaceCurrentPermanentElementWithClone(permanentElement) {\n const clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n replacePlaceholderWithPermanentElement(permanentElement) {\n const placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n }\n getPlaceholderById(id) {\n return this.placeholders.find((element) => element.content == id);\n }\n get placeholders() {\n return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n const element = document.createElement(\"meta\");\n element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n element.setAttribute(\"content\", permanentElement.id);\n return element;\n}\n\nclass Renderer {\n constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n this.activeElement = null;\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.renderElement = renderElement;\n this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n }\n get shouldRender() {\n return true;\n }\n get reloadReason() {\n return;\n }\n prepareToRender() {\n return;\n }\n finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n preservingPermanentElements(callback) {\n Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n }\n focusFirstAutofocusableElement() {\n const element = this.connectedSnapshot.firstAutofocusableElement;\n if (elementIsFocusable(element)) {\n element.focus();\n }\n }\n enteringBardo(currentPermanentElement) {\n if (this.activeElement)\n return;\n if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n this.activeElement = this.currentSnapshot.activeElement;\n }\n }\n leavingBardo(currentPermanentElement) {\n if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n this.activeElement.focus();\n this.activeElement = null;\n }\n }\n get connectedSnapshot() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n }\n get currentElement() {\n return this.currentSnapshot.element;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n get permanentElementMap() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n }\n}\nfunction elementIsFocusable(element) {\n return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n this.delegate = delegate;\n }\n static renderElement(currentElement, newElement) {\n var _a;\n const destinationRange = document.createRange();\n destinationRange.selectNodeContents(currentElement);\n destinationRange.deleteContents();\n const frameElement = newElement;\n const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n currentElement.appendChild(sourceRange.extractContents());\n }\n }\n get shouldRender() {\n return true;\n }\n async render() {\n await nextAnimationFrame();\n this.preservingPermanentElements(() => {\n this.loadFrameElement();\n });\n this.scrollFrameIntoView();\n await nextAnimationFrame();\n this.focusFirstAutofocusableElement();\n await nextAnimationFrame();\n this.activateScriptElements();\n }\n loadFrameElement() {\n this.delegate.willRenderFrame(this.currentElement, this.newElement);\n this.renderElement(this.currentElement, this.newElement);\n }\n scrollFrameIntoView() {\n if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n const element = this.currentElement.firstElementChild;\n const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n if (element) {\n element.scrollIntoView({ block, behavior });\n return true;\n }\n }\n return false;\n }\n activateScriptElements() {\n for (const inertScriptElement of this.newScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n get newScriptElements() {\n return this.currentElement.querySelectorAll(\"script\");\n }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\nfunction readScrollBehavior(value, defaultValue) {\n if (value == \"auto\" || value == \"smooth\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\n\nclass ProgressBar {\n constructor() {\n this.hiding = false;\n this.value = 0;\n this.visible = false;\n this.trickle = () => {\n this.setValue(this.value + Math.random() / 100);\n };\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\n }\n static get defaultCSS() {\n return unindent `\n .turbo-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 2147483647;\n transition:\n width ${ProgressBar.animationDuration}ms ease-out,\n opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n transform: translate3d(0, 0, 0);\n }\n `;\n }\n show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\n }\n }\n hide() {\n if (this.visible && !this.hiding) {\n this.hiding = true;\n this.fadeProgressElement(() => {\n this.uninstallProgressElement();\n this.stopTrickling();\n this.visible = false;\n this.hiding = false;\n });\n }\n }\n setValue(value) {\n this.value = value;\n this.refresh();\n }\n installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }\n installProgressElement() {\n this.progressElement.style.width = \"0\";\n this.progressElement.style.opacity = \"1\";\n document.documentElement.insertBefore(this.progressElement, document.body);\n this.refresh();\n }\n fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n refresh() {\n requestAnimationFrame(() => {\n this.progressElement.style.width = `${10 + this.value * 90}%`;\n });\n }\n createStylesheetElement() {\n const element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n if (this.cspNonce) {\n element.nonce = this.cspNonce;\n }\n return element;\n }\n createProgressElement() {\n const element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element;\n }\n get cspNonce() {\n return getMetaContent(\"csp-nonce\");\n }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n constructor() {\n super(...arguments);\n this.detailsByOuterHTML = this.children\n .filter((element) => !elementIsNoscript(element))\n .map((element) => elementWithoutNonce(element))\n .reduce((result, element) => {\n const { outerHTML } = element;\n const details = outerHTML in result\n ? result[outerHTML]\n : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: [],\n };\n return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n }, {});\n }\n get trackedElementSignature() {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n .join(\"\");\n }\n getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n }\n getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n }\n getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n .filter(({ type }) => type == matchedType)\n .map(({ elements: [element] }) => element);\n }\n get provisionalElements() {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n if (type == null && !tracked) {\n return [...result, ...elements];\n }\n else if (elements.length > 1) {\n return [...result, ...elements.slice(1)];\n }\n else {\n return result;\n }\n }, []);\n }\n getMetaValue(name) {\n const element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null;\n }\n findMetaElementByName(name) {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n return elementIsMetaElementWithName(element, name) ? element : result;\n }, undefined);\n }\n}\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\";\n }\n else if (elementIsStylesheet(element)) {\n return \"stylesheet\";\n }\n}\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n const tagName = element.localName;\n return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n const tagName = element.localName;\n return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n const tagName = element.localName;\n return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n const tagName = element.localName;\n return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n return element;\n}\n\nclass PageSnapshot extends Snapshot {\n constructor(element, headSnapshot) {\n super(element);\n this.headSnapshot = headSnapshot;\n }\n static fromHTMLString(html = \"\") {\n return this.fromDocument(parseHTMLDocument(html));\n }\n static fromElement(element) {\n return this.fromDocument(element.ownerDocument);\n }\n static fromDocument({ head, body }) {\n return new this(body, new HeadSnapshot(head));\n }\n clone() {\n const clonedElement = this.element.cloneNode(true);\n const selectElements = this.element.querySelectorAll(\"select\");\n const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n for (const [index, source] of selectElements.entries()) {\n const clone = clonedSelectElements[index];\n for (const option of clone.selectedOptions)\n option.selected = false;\n for (const option of source.selectedOptions)\n clone.options[option.index].selected = true;\n }\n for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n clonedPasswordInput.value = \"\";\n }\n return new PageSnapshot(clonedElement, this.headSnapshot);\n }\n get headElement() {\n return this.headSnapshot.element;\n }\n get rootLocation() {\n var _a;\n const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n get cacheControlValue() {\n return this.getSetting(\"cache-control\");\n }\n get isPreviewable() {\n return this.cacheControlValue != \"no-preview\";\n }\n get isCacheable() {\n return this.cacheControlValue != \"no-cache\";\n }\n get isVisitable() {\n return this.getSetting(\"visit-control\") != \"reload\";\n }\n getSetting(name) {\n return this.headSnapshot.getMetaValue(`turbo-${name}`);\n }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n TimingMetric[\"visitStart\"] = \"visitStart\";\n TimingMetric[\"requestStart\"] = \"requestStart\";\n TimingMetric[\"requestEnd\"] = \"requestEnd\";\n TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n VisitState[\"initialized\"] = \"initialized\";\n VisitState[\"started\"] = \"started\";\n VisitState[\"canceled\"] = \"canceled\";\n VisitState[\"failed\"] = \"failed\";\n VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: () => { },\n willRender: true,\n updateHistory: true,\n shouldCacheSnapshot: true,\n acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n constructor(delegate, location, restorationIdentifier, options = {}) {\n this.identifier = uuid();\n this.timingMetrics = {};\n this.followedRedirect = false;\n this.historyChanged = false;\n this.scrolled = false;\n this.shouldCacheSnapshot = true;\n this.acceptsStreamResponse = false;\n this.snapshotCached = false;\n this.state = VisitState.initialized;\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\n this.action = action;\n this.historyChanged = historyChanged;\n this.referrer = referrer;\n this.snapshot = snapshot;\n this.snapshotHTML = snapshotHTML;\n this.response = response;\n this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n this.visitCachedSnapshot = visitCachedSnapshot;\n this.willRender = willRender;\n this.updateHistory = updateHistory;\n this.scrolled = !willRender;\n this.shouldCacheSnapshot = shouldCacheSnapshot;\n this.acceptsStreamResponse = acceptsStreamResponse;\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n get restorationData() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n }\n get silent() {\n return this.isSamePage;\n }\n start() {\n if (this.state == VisitState.initialized) {\n this.recordTimingMetric(TimingMetric.visitStart);\n this.state = VisitState.started;\n this.adapter.visitStarted(this);\n this.delegate.visitStarted(this);\n }\n }\n cancel() {\n if (this.state == VisitState.started) {\n if (this.request) {\n this.request.cancel();\n }\n this.cancelRender();\n this.state = VisitState.canceled;\n }\n }\n complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.state = VisitState.completed;\n this.followRedirect();\n if (!this.followedRedirect) {\n this.adapter.visitCompleted(this);\n this.delegate.visitCompleted(this);\n }\n }\n }\n fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n }\n }\n changeHistory() {\n var _a;\n if (!this.historyChanged && this.updateHistory) {\n const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n const method = getHistoryMethodForAction(actionForHistory);\n this.history.update(method, this.location, this.restorationIdentifier);\n this.historyChanged = true;\n }\n }\n issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n }\n else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\n }\n recordResponse(response = this.response) {\n this.response = response;\n if (response) {\n const { statusCode } = response;\n if (isSuccessful(statusCode)) {\n this.adapter.visitRequestCompleted(this);\n }\n else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n loadResponse() {\n if (this.response) {\n const { statusCode, responseHTML } = this.response;\n this.render(async () => {\n if (this.shouldCacheSnapshot)\n this.cacheSnapshot();\n if (this.view.renderPromise)\n await this.view.renderPromise;\n if (isSuccessful(statusCode) && responseHTML != null) {\n await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n this.complete();\n }\n else {\n await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n this.adapter.visitRendered(this);\n this.fail();\n }\n });\n }\n }\n getCachedSnapshot() {\n const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n if (this.action == \"restore\" || snapshot.isPreviewable) {\n return snapshot;\n }\n }\n }\n getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML);\n }\n }\n hasCachedSnapshot() {\n return this.getCachedSnapshot() != null;\n }\n loadCachedSnapshot() {\n const snapshot = this.getCachedSnapshot();\n if (snapshot) {\n const isPreview = this.shouldIssueRequest();\n this.render(async () => {\n this.cacheSnapshot();\n if (this.isSamePage) {\n this.adapter.visitRendered(this);\n }\n else {\n if (this.view.renderPromise)\n await this.view.renderPromise;\n await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n if (!isPreview) {\n this.complete();\n }\n }\n });\n }\n }\n followRedirect() {\n var _a;\n if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: \"replace\",\n response: this.response,\n });\n this.followedRedirect = true;\n }\n }\n goToSamePageAnchor() {\n if (this.isSamePage) {\n this.render(async () => {\n this.cacheSnapshot();\n this.performScroll();\n this.changeHistory();\n this.adapter.visitRendered(this);\n });\n }\n }\n prepareHeadersForRequest(headers, request) {\n if (this.acceptsStreamResponse) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted() {\n this.startRequest();\n }\n requestPreventedHandlingResponse(_request, _response) { }\n async requestSucceededWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n async requestFailedWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n requestErrored(_request, _error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false,\n });\n }\n requestFinished() {\n this.finishRequest();\n }\n performScroll() {\n if (!this.scrolled && !this.view.forceReloaded) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n }\n else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n this.scrolled = true;\n }\n }\n scrollToRestoredPosition() {\n const { scrollPosition } = this.restorationData;\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true;\n }\n }\n scrollToAnchor() {\n const anchor = getAnchor(this.location);\n if (anchor != null) {\n this.view.scrollToAnchor(anchor);\n return true;\n }\n }\n recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n getTimingMetrics() {\n return Object.assign({}, this.timingMetrics);\n }\n getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n }\n hasPreloadedResponse() {\n return typeof this.response == \"object\";\n }\n shouldIssueRequest() {\n if (this.isSamePage) {\n return false;\n }\n else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot();\n }\n else {\n return this.willRender;\n }\n }\n cacheSnapshot() {\n if (!this.snapshotCached) {\n this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n this.snapshotCached = true;\n }\n }\n async render(callback) {\n this.cancelRender();\n await new Promise((resolve) => {\n this.frame = requestAnimationFrame(() => resolve());\n });\n await callback();\n delete this.frame;\n }\n cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n}\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n constructor(session) {\n this.progressBar = new ProgressBar();\n this.showProgressBar = () => {\n this.progressBar.show();\n };\n this.session = session;\n }\n visitProposedToLocation(location, options) {\n this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n }\n visitStarted(visit) {\n this.location = visit.location;\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.goToSamePageAnchor();\n }\n visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n }\n else {\n this.showProgressBar();\n }\n }\n visitRequestCompleted(visit) {\n visit.loadResponse();\n }\n visitRequestFailedWithStatusCode(visit, statusCode) {\n switch (statusCode) {\n case SystemStatusCode.networkFailure:\n case SystemStatusCode.timeoutFailure:\n case SystemStatusCode.contentTypeMismatch:\n return this.reload({\n reason: \"request_failed\",\n context: {\n statusCode,\n },\n });\n default:\n return visit.loadResponse();\n }\n }\n visitRequestFinished(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n visitCompleted(_visit) { }\n pageInvalidated(reason) {\n this.reload(reason);\n }\n visitFailed(_visit) { }\n visitRendered(_visit) { }\n formSubmissionStarted(_formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n formSubmissionFinished(_formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n hideVisitProgressBar() {\n this.progressBar.hide();\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }\n hideFormProgressBar() {\n this.progressBar.hide();\n if (this.formProgressBarTimeout != null) {\n window.clearTimeout(this.formProgressBarTimeout);\n delete this.formProgressBarTimeout;\n }\n }\n reload(reason) {\n var _a;\n dispatch(\"turbo:reload\", { detail: reason });\n window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n }\n get navigator() {\n return this.session.navigator;\n }\n}\n\nclass CacheObserver {\n constructor() {\n this.started = false;\n this.removeStaleElements = ((_event) => {\n const staleElements = [...document.querySelectorAll('[data-turbo-cache=\"false\"]')];\n for (const element of staleElements) {\n element.remove();\n }\n });\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n}\n\nclass FrameRedirector {\n constructor(session, element) {\n this.session = session;\n this.element = element;\n this.linkInterceptor = new LinkInterceptor(this, element);\n this.formSubmitObserver = new FormSubmitObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n stop() {\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldRedirect(element);\n }\n linkClickIntercepted(element, url, event) {\n const frame = this.findFrameElement(element);\n if (frame) {\n frame.delegate.linkClickIntercepted(element, url, event);\n }\n }\n willSubmitForm(element, submitter) {\n return (element.closest(\"turbo-frame\") == null &&\n this.shouldSubmit(element, submitter) &&\n this.shouldRedirect(element, submitter));\n }\n formSubmitted(element, submitter) {\n const frame = this.findFrameElement(element, submitter);\n if (frame) {\n frame.delegate.formSubmitted(element, submitter);\n }\n }\n shouldSubmit(form, submitter) {\n var _a;\n const action = getAction(form, submitter);\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n }\n shouldRedirect(element, submitter) {\n const isNavigatable = element instanceof HTMLFormElement\n ? this.session.submissionIsNavigatable(element, submitter)\n : this.session.elementIsNavigatable(element);\n if (isNavigatable) {\n const frame = this.findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false;\n }\n else {\n return false;\n }\n }\n findFrameElement(element, submitter) {\n const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n if (id && id != \"_top\") {\n const frame = this.element.querySelector(`#${id}:not([disabled])`);\n if (frame instanceof FrameElement) {\n return frame;\n }\n }\n }\n}\n\nclass History {\n constructor(delegate) {\n this.restorationIdentifier = uuid();\n this.restorationData = {};\n this.started = false;\n this.pageLoaded = false;\n this.onPopState = (event) => {\n if (this.shouldHandlePopState()) {\n const { turbo } = event.state || {};\n if (turbo) {\n this.location = new URL(window.location.href);\n const { restorationIdentifier } = turbo;\n this.restorationIdentifier = restorationIdentifier;\n this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n }\n }\n };\n this.onPageLoad = async (_event) => {\n await nextMicrotask();\n this.pageLoaded = true;\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n update(method, location, restorationIdentifier = uuid()) {\n const state = { turbo: { restorationIdentifier } };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {};\n }\n updateRestorationData(additionalData) {\n const { restorationIdentifier } = this;\n const restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n }\n assumeControlOfScrollRestoration() {\n var _a;\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n shouldHandlePopState() {\n return this.pageIsLoaded();\n }\n pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\";\n }\n}\n\nclass Navigator {\n constructor(delegate) {\n this.delegate = delegate;\n }\n proposeVisit(location, options = {}) {\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n this.delegate.visitProposedToLocation(location, options);\n }\n else {\n window.location.href = location.toString();\n }\n }\n }\n startVisit(locatable, restorationIdentifier, options = {}) {\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n this.currentVisit.start();\n }\n submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n this.formSubmission.start();\n }\n stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n formSubmissionStarted(formSubmission) {\n if (typeof this.adapter.formSubmissionStarted === \"function\") {\n this.adapter.formSubmissionStarted(formSubmission);\n }\n }\n async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n if (formSubmission == this.formSubmission) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const shouldCacheSnapshot = formSubmission.method == FetchMethod.get;\n if (!shouldCacheSnapshot) {\n this.view.clearSnapshotCache();\n }\n const { statusCode, redirected } = fetchResponse;\n const action = this.getActionForFormSubmission(formSubmission);\n const visitOptions = {\n action,\n shouldCacheSnapshot,\n response: { statusCode, responseHTML, redirected },\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n }\n }\n async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n if (fetchResponse.serverError) {\n await this.view.renderError(snapshot, this.currentVisit);\n }\n else {\n await this.view.renderPage(snapshot, false, true, this.currentVisit);\n }\n this.view.scrollToTop();\n this.view.clearSnapshotCache();\n }\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished(formSubmission) {\n if (typeof this.adapter.formSubmissionFinished === \"function\") {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n }\n locationWithActionIsSamePage(location, action) {\n const anchor = getAnchor(location);\n const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n return (action !== \"replace\" &&\n getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n getActionForFormSubmission(formSubmission) {\n const { formElement, submitter } = formSubmission;\n const action = getAttribute(\"data-turbo-action\", submitter, formElement);\n return isAction(action) ? action : \"advance\";\n }\n}\n\nvar PageStage;\n(function (PageStage) {\n PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n constructor(delegate) {\n this.stage = PageStage.initial;\n this.started = false;\n this.interpretReadyState = () => {\n const { readyState } = this;\n if (readyState == \"interactive\") {\n this.pageIsInteractive();\n }\n else if (readyState == \"complete\") {\n this.pageIsComplete();\n }\n };\n this.pageWillUnload = () => {\n this.delegate.pageWillUnload();\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n if (this.stage == PageStage.initial) {\n this.stage = PageStage.loading;\n }\n document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n addEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n removeEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = false;\n }\n }\n pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\n }\n }\n pageIsComplete() {\n this.pageIsInteractive();\n if (this.stage == PageStage.interactive) {\n this.stage = PageStage.complete;\n this.delegate.pageLoaded();\n }\n }\n get readyState() {\n return document.readyState;\n }\n}\n\nclass ScrollObserver {\n constructor(delegate) {\n this.started = false;\n this.onScroll = () => {\n this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n}\n\nclass StreamMessageRenderer {\n render({ fragment }) {\n Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n }\n enteringBardo(currentPermanentElement, newPermanentElement) {\n newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n }\n leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n const permanentElementMap = {};\n for (const permanentElementInDocument of permanentElementsInDocument) {\n const { id } = permanentElementInDocument;\n for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n if (elementInStream) {\n permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n }\n }\n }\n return permanentElementMap;\n}\n\nclass StreamObserver {\n constructor(delegate) {\n this.sources = new Set();\n this.started = false;\n this.inspectFetchResponse = ((event) => {\n const response = fetchResponseFromEvent(event);\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n this.receiveMessageResponse(response);\n }\n });\n this.receiveMessageEvent = (event) => {\n if (this.started && typeof event.data == \"string\") {\n this.receiveMessageHTML(event.data);\n }\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n connectStreamSource(source) {\n if (!this.streamSourceIsConnected(source)) {\n this.sources.add(source);\n source.addEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n streamSourceIsConnected(source) {\n return this.sources.has(source);\n }\n async receiveMessageResponse(response) {\n const html = await response.responseHTML;\n if (html) {\n this.receiveMessageHTML(html);\n }\n }\n receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n }\n}\nfunction fetchResponseFromEvent(event) {\n var _a;\n const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse;\n }\n}\nfunction fetchResponseIsStream(response) {\n var _a;\n const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const { documentElement, body } = document;\n documentElement.replaceChild(newElement, body);\n }\n async render() {\n this.replaceHeadAndBody();\n this.activateScriptElements();\n }\n replaceHeadAndBody() {\n const { documentElement, head } = document;\n documentElement.replaceChild(this.newHead, head);\n this.renderElement(this.currentElement, this.newElement);\n }\n activateScriptElements() {\n for (const replaceableElement of this.scriptElements) {\n const parentNode = replaceableElement.parentNode;\n if (parentNode) {\n const element = activateScriptElement(replaceableElement);\n parentNode.replaceChild(element, replaceableElement);\n }\n }\n }\n get newHead() {\n return this.newSnapshot.headSnapshot.element;\n }\n get scriptElements() {\n return document.documentElement.querySelectorAll(\"script\");\n }\n}\n\nclass PageRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n if (document.body && newElement instanceof HTMLBodyElement) {\n document.body.replaceWith(newElement);\n }\n else {\n document.documentElement.appendChild(newElement);\n }\n }\n get shouldRender() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n }\n get reloadReason() {\n if (!this.newSnapshot.isVisitable) {\n return {\n reason: \"turbo_visit_control_is_reload\",\n };\n }\n if (!this.trackedElementsAreIdentical) {\n return {\n reason: \"tracked_element_mismatch\",\n };\n }\n }\n async prepareToRender() {\n await this.mergeHead();\n }\n async render() {\n if (this.willRender) {\n this.replaceBody();\n }\n }\n finishRendering() {\n super.finishRendering();\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n get currentHeadSnapshot() {\n return this.currentSnapshot.headSnapshot;\n }\n get newHeadSnapshot() {\n return this.newSnapshot.headSnapshot;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n async mergeHead() {\n const newStylesheetElements = this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n this.removeCurrentHeadProvisionalElements();\n this.copyNewHeadProvisionalElements();\n await newStylesheetElements;\n }\n replaceBody() {\n this.preservingPermanentElements(() => {\n this.activateNewBody();\n this.assignNewBody();\n });\n }\n get trackedElementsAreIdentical() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n }\n async copyNewHeadStylesheetElements() {\n const loadingElements = [];\n for (const element of this.newHeadStylesheetElements) {\n loadingElements.push(waitForLoad(element));\n document.head.appendChild(element);\n }\n await Promise.all(loadingElements);\n }\n copyNewHeadScriptElements() {\n for (const element of this.newHeadScriptElements) {\n document.head.appendChild(activateScriptElement(element));\n }\n }\n removeCurrentHeadProvisionalElements() {\n for (const element of this.currentHeadProvisionalElements) {\n document.head.removeChild(element);\n }\n }\n copyNewHeadProvisionalElements() {\n for (const element of this.newHeadProvisionalElements) {\n document.head.appendChild(element);\n }\n }\n activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n activateNewBodyScriptElements() {\n for (const inertScriptElement of this.newBodyScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n assignNewBody() {\n this.renderElement(this.currentElement, this.newElement);\n }\n get newHeadStylesheetElements() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get newHeadScriptElements() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get currentHeadProvisionalElements() {\n return this.currentHeadSnapshot.provisionalElements;\n }\n get newHeadProvisionalElements() {\n return this.newHeadSnapshot.provisionalElements;\n }\n get newBodyScriptElements() {\n return this.newElement.querySelectorAll(\"script\");\n }\n}\n\nclass SnapshotCache {\n constructor(size) {\n this.keys = [];\n this.snapshots = {};\n this.size = size;\n }\n has(location) {\n return toCacheKey(location) in this.snapshots;\n }\n get(location) {\n if (this.has(location)) {\n const snapshot = this.read(location);\n this.touch(location);\n return snapshot;\n }\n }\n put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot;\n }\n clear() {\n this.snapshots = {};\n }\n read(location) {\n return this.snapshots[toCacheKey(location)];\n }\n write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n touch(location) {\n const key = toCacheKey(location);\n const index = this.keys.indexOf(key);\n if (index > -1)\n this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n trim() {\n for (const key of this.keys.splice(this.size)) {\n delete this.snapshots[key];\n }\n }\n}\n\nclass PageView extends View {\n constructor() {\n super(...arguments);\n this.snapshotCache = new SnapshotCache(10);\n this.lastRenderedLocation = new URL(location.href);\n this.forceReloaded = false;\n }\n renderPage(snapshot, isPreview = false, willRender = true, visit) {\n const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n if (!renderer.shouldRender) {\n this.forceReloaded = true;\n }\n else {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n }\n return this.render(renderer);\n }\n renderError(snapshot, visit) {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n return this.render(renderer);\n }\n clearSnapshotCache() {\n this.snapshotCache.clear();\n }\n async cacheSnapshot(snapshot = this.snapshot) {\n if (snapshot.isCacheable) {\n this.delegate.viewWillCacheSnapshot();\n const { lastRenderedLocation: location } = this;\n await nextEventLoopTick();\n const cachedSnapshot = snapshot.clone();\n this.snapshotCache.put(location, cachedSnapshot);\n return cachedSnapshot;\n }\n }\n getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location);\n }\n get snapshot() {\n return PageSnapshot.fromElement(this.element);\n }\n}\n\nclass Preloader {\n constructor(delegate) {\n this.selector = \"a[data-turbo-preload]\";\n this.delegate = delegate;\n }\n get snapshotCache() {\n return this.delegate.navigator.view.snapshotCache;\n }\n start() {\n if (document.readyState === \"loading\") {\n return document.addEventListener(\"DOMContentLoaded\", () => {\n this.preloadOnLoadLinksForView(document.body);\n });\n }\n else {\n this.preloadOnLoadLinksForView(document.body);\n }\n }\n preloadOnLoadLinksForView(element) {\n for (const link of element.querySelectorAll(this.selector)) {\n this.preloadURL(link);\n }\n }\n async preloadURL(link) {\n const location = new URL(link.href);\n if (this.snapshotCache.has(location)) {\n return;\n }\n try {\n const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n const responseText = await response.text();\n const snapshot = PageSnapshot.fromHTMLString(responseText);\n this.snapshotCache.put(location, snapshot);\n }\n catch (_) {\n }\n }\n}\n\nclass Session {\n constructor() {\n this.navigator = new Navigator(this);\n this.history = new History(this);\n this.preloader = new Preloader(this);\n this.view = new PageView(this, document.documentElement);\n this.adapter = new BrowserAdapter(this);\n this.pageObserver = new PageObserver(this);\n this.cacheObserver = new CacheObserver();\n this.linkClickObserver = new LinkClickObserver(this, window);\n this.formSubmitObserver = new FormSubmitObserver(this, document);\n this.scrollObserver = new ScrollObserver(this);\n this.streamObserver = new StreamObserver(this);\n this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n this.frameRedirector = new FrameRedirector(this, document.documentElement);\n this.streamMessageRenderer = new StreamMessageRenderer();\n this.drive = true;\n this.enabled = true;\n this.progressBarDelay = 500;\n this.started = false;\n this.formMode = \"on\";\n }\n start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.start();\n this.formLinkClickObserver.start();\n this.linkClickObserver.start();\n this.formSubmitObserver.start();\n this.scrollObserver.start();\n this.streamObserver.start();\n this.frameRedirector.start();\n this.history.start();\n this.preloader.start();\n this.started = true;\n this.enabled = true;\n }\n }\n disable() {\n this.enabled = false;\n }\n stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkClickObserver.stop();\n this.formSubmitObserver.stop();\n this.scrollObserver.stop();\n this.streamObserver.stop();\n this.frameRedirector.stop();\n this.history.stop();\n this.started = false;\n }\n }\n registerAdapter(adapter) {\n this.adapter = adapter;\n }\n visit(location, options = {}) {\n const frameElement = options.frame ? document.getElementById(options.frame) : null;\n if (frameElement instanceof FrameElement) {\n frameElement.src = location.toString();\n frameElement.loaded;\n }\n else {\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }\n connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n renderStreamMessage(message) {\n this.streamMessageRenderer.render(StreamMessage.wrap(message));\n }\n clearCache() {\n this.view.clearSnapshotCache();\n }\n setProgressBarDelay(delay) {\n this.progressBarDelay = delay;\n }\n setFormMode(mode) {\n this.formMode = mode;\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true,\n });\n }\n else {\n this.adapter.pageInvalidated({\n reason: \"turbo_disabled\",\n });\n }\n }\n scrollPositionChanged(position) {\n this.history.updateRestorationData({ scrollPosition: position });\n }\n willSubmitFormLinkToLocation(link, location) {\n return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n }\n submittedFormLinkToLocation() { }\n willFollowLinkToLocation(link, location, event) {\n return (this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.applicationAllowsFollowingLinkToLocation(link, location, event));\n }\n followedLinkToLocation(link, location) {\n const action = this.getActionForLink(link);\n const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n this.visit(location.href, { action, acceptsStreamResponse });\n }\n allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n }\n visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n visitStarted(visit) {\n if (!visit.acceptsStreamResponse) {\n markAsBusy(document.documentElement);\n }\n extendURLWithDeprecatedProperties(visit.location);\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n visitCompleted(visit) {\n clearBusyState(document.documentElement);\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action);\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n willSubmitForm(form, submitter) {\n const action = getAction(form, submitter);\n return (this.submissionIsNavigatable(form, submitter) &&\n locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n }\n formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n viewWillCacheSnapshot() {\n var _a;\n if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n allowsImmediateRender({ element }, options) {\n const event = this.notifyApplicationBeforeRender(element, options);\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender();\n }\n preloadOnLoadLinksForView(element) {\n this.preloader.preloadOnLoadLinksForView(element);\n }\n viewInvalidated(reason) {\n this.adapter.pageInvalidated(reason);\n }\n frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n applicationAllowsFollowingLinkToLocation(link, location, ev) {\n const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n return !event.defaultPrevented;\n }\n applicationAllowsVisitingLocation(location) {\n const event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented;\n }\n notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n return dispatch(\"turbo:click\", {\n target: link,\n detail: { url: location.href, originalEvent: event },\n cancelable: true,\n });\n }\n notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: { url: location.href },\n cancelable: true,\n });\n }\n notifyApplicationAfterVisitingLocation(location, action) {\n return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n }\n notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\");\n }\n notifyApplicationBeforeRender(newBody, options) {\n return dispatch(\"turbo:before-render\", {\n detail: Object.assign({ newBody }, options),\n cancelable: true,\n });\n }\n notifyApplicationAfterRender() {\n return dispatch(\"turbo:render\");\n }\n notifyApplicationAfterPageLoad(timing = {}) {\n return dispatch(\"turbo:load\", {\n detail: { url: this.location.href, timing },\n });\n }\n notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString(),\n }));\n }\n notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", { target: frame });\n }\n notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: { fetchResponse },\n target: frame,\n cancelable: true,\n });\n }\n submissionIsNavigatable(form, submitter) {\n if (this.formMode == \"off\") {\n return false;\n }\n else {\n const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n if (this.formMode == \"optin\") {\n return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n }\n else {\n return submitterIsNavigatable && this.elementIsNavigatable(form);\n }\n }\n }\n elementIsNavigatable(element) {\n const container = element.closest(\"[data-turbo]\");\n const withinFrame = element.closest(\"turbo-frame\");\n if (this.drive || withinFrame) {\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\";\n }\n else {\n return true;\n }\n }\n else {\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\";\n }\n else {\n return false;\n }\n }\n }\n getActionForLink(link) {\n const action = link.getAttribute(\"data-turbo-action\");\n return isAction(action) ? action : \"advance\";\n }\n get snapshot() {\n return this.view.snapshot;\n }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get() {\n return this.toString();\n },\n },\n};\n\nclass Cache {\n constructor(session) {\n this.session = session;\n }\n clear() {\n this.session.clearCache();\n }\n resetCacheControl() {\n this.setCacheControl(\"\");\n }\n exemptPageFromCache() {\n this.setCacheControl(\"no-cache\");\n }\n exemptPageFromPreview() {\n this.setCacheControl(\"no-preview\");\n }\n setCacheControl(value) {\n setMetaContent(\"turbo-cache-control\", value);\n }\n}\n\nconst StreamActions = {\n after() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n },\n append() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.append(this.templateContent));\n },\n before() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n },\n prepend() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.prepend(this.templateContent));\n },\n remove() {\n this.targetElements.forEach((e) => e.remove());\n },\n replace() {\n this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n },\n update() {\n this.targetElements.forEach((e) => e.replaceChildren(this.templateContent));\n },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n session.start();\n}\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\nfunction clearCache() {\n console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n cache: cache,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n FrameRenderer: FrameRenderer,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod,\n setFormMode: setFormMode,\n StreamActions: StreamActions\n});\n\nclass FrameController {\n constructor(element) {\n this.fetchResponseLoaded = (_fetchResponse) => { };\n this.currentFetchRequest = null;\n this.resolveVisitPromise = () => { };\n this.connected = false;\n this.hasBeenLoaded = false;\n this.ignoredAttributes = new Set();\n this.action = null;\n this.visitCachedSnapshot = ({ element }) => {\n const frame = element.querySelector(\"#\" + this.element.id);\n if (frame && this.previousFrameElement) {\n frame.replaceChildren(...this.previousFrameElement.children);\n }\n delete this.previousFrameElement;\n };\n this.element = element;\n this.view = new FrameView(this, this.element);\n this.appearanceObserver = new AppearanceObserver(this, this.element);\n this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n this.linkInterceptor = new LinkInterceptor(this, this.element);\n this.restorationIdentifier = uuid();\n this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n }\n connect() {\n if (!this.connected) {\n this.connected = true;\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.loadSourceURL();\n }\n this.formLinkClickObserver.start();\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n }\n disconnect() {\n if (this.connected) {\n this.connected = false;\n this.appearanceObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n }\n disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.loadSourceURL();\n }\n }\n sourceURLChanged() {\n if (this.isIgnoringChangesTo(\"src\"))\n return;\n if (this.element.isConnected) {\n this.complete = false;\n }\n if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n this.loadSourceURL();\n }\n }\n sourceURLReloaded() {\n const { src } = this.element;\n this.ignoringChangesToAttribute(\"complete\", () => {\n this.element.removeAttribute(\"complete\");\n });\n this.element.src = null;\n this.element.src = src;\n return this.element.loaded;\n }\n completeChanged() {\n if (this.isIgnoringChangesTo(\"complete\"))\n return;\n this.loadSourceURL();\n }\n loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.appearanceObserver.stop();\n this.loadSourceURL();\n }\n }\n async loadSourceURL() {\n if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n this.element.loaded = this.visit(expandURL(this.sourceURL));\n this.appearanceObserver.stop();\n await this.element.loaded;\n this.hasBeenLoaded = true;\n }\n }\n async loadResponse(fetchResponse) {\n if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n this.sourceURL = fetchResponse.response.url;\n }\n try {\n const html = await fetchResponse.responseHTML;\n if (html) {\n const { body } = parseHTMLDocument(html);\n const newFrameElement = await this.extractForeignFrameElement(body);\n if (newFrameElement) {\n const snapshot = new Snapshot(newFrameElement);\n const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n if (this.view.renderPromise)\n await this.view.renderPromise;\n this.changeHistory();\n await this.view.render(renderer);\n this.complete = true;\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n this.fetchResponseLoaded(fetchResponse);\n }\n else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n console.warn(`A matching frame for #${this.element.id} was missing from the response, transforming into full-page Visit.`);\n this.visitResponse(fetchResponse.response);\n }\n }\n }\n catch (error) {\n console.error(error);\n this.view.invalidate();\n }\n finally {\n this.fetchResponseLoaded = () => { };\n }\n }\n elementAppearedInViewport(_element) {\n this.loadSourceURL();\n }\n willSubmitFormLinkToLocation(link) {\n return this.shouldInterceptNavigation(link);\n }\n submittedFormLinkToLocation(link, _location, form) {\n const frame = this.findFrameElement(link);\n if (frame)\n form.setAttribute(\"data-turbo-frame\", frame.id);\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldInterceptNavigation(element);\n }\n linkClickIntercepted(element, location) {\n this.navigateFrame(element, location);\n }\n willSubmitForm(element, submitter) {\n return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n }\n formSubmitted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n this.formSubmission = new FormSubmission(this, element, submitter);\n const { fetchRequest } = this.formSubmission;\n this.prepareHeadersForRequest(fetchRequest.headers, fetchRequest);\n this.formSubmission.start();\n }\n prepareHeadersForRequest(headers, request) {\n var _a;\n headers[\"Turbo-Frame\"] = this.id;\n if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n markAsBusy(this.element);\n }\n requestPreventedHandlingResponse(_request, _response) {\n this.resolveVisitPromise();\n }\n async requestSucceededWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n async requestFailedWithResponse(request, response) {\n console.error(response);\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n requestErrored(request, error) {\n console.error(error);\n this.resolveVisitPromise();\n }\n requestFinished(_request) {\n clearBusyState(this.element);\n }\n formSubmissionStarted({ formElement }) {\n markAsBusy(formElement, this.findFrameElement(formElement));\n }\n formSubmissionSucceededWithResponse(formSubmission, response) {\n const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n frame.delegate.loadResponse(response);\n }\n formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished({ formElement }) {\n clearBusyState(formElement, this.findFrameElement(formElement));\n }\n allowsImmediateRender({ element: newFrame }, options) {\n const event = dispatch(\"turbo:before-frame-render\", {\n target: this.element,\n detail: Object.assign({ newFrame }, options),\n cancelable: true,\n });\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) { }\n preloadOnLoadLinksForView(element) {\n session.preloadOnLoadLinksForView(element);\n }\n viewInvalidated() { }\n willRenderFrame(currentElement, _newElement) {\n this.previousFrameElement = currentElement.cloneNode(true);\n }\n async visit(url) {\n var _a;\n const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n this.currentFetchRequest = request;\n return new Promise((resolve) => {\n this.resolveVisitPromise = () => {\n this.resolveVisitPromise = () => { };\n this.currentFetchRequest = null;\n resolve();\n };\n request.perform();\n });\n }\n navigateFrame(element, url, submitter) {\n const frame = this.findFrameElement(element, submitter);\n this.pageSnapshot = PageSnapshot.fromElement(frame).clone();\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n this.withCurrentNavigationElement(element, () => {\n frame.src = url;\n });\n }\n proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n this.action = getVisitAction(submitter, element, frame);\n if (isAction(this.action)) {\n const { visitCachedSnapshot } = frame.delegate;\n frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n if (frame.src) {\n const { statusCode, redirected } = fetchResponse;\n const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n const response = { statusCode, redirected, responseHTML };\n const options = {\n response,\n visitCachedSnapshot,\n willRender: false,\n updateHistory: false,\n restorationIdentifier: this.restorationIdentifier,\n snapshot: this.pageSnapshot,\n };\n if (this.action)\n options.action = this.action;\n session.visit(frame.src, options);\n }\n };\n }\n }\n changeHistory() {\n if (this.action) {\n const method = getHistoryMethodForAction(this.action);\n session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n }\n }\n willHandleFrameMissingFromResponse(fetchResponse) {\n this.element.setAttribute(\"complete\", \"\");\n const response = fetchResponse.response;\n const visit = async (url, options = {}) => {\n if (url instanceof Response) {\n this.visitResponse(url);\n }\n else {\n session.visit(url, options);\n }\n };\n const event = dispatch(\"turbo:frame-missing\", {\n target: this.element,\n detail: { response, visit },\n cancelable: true,\n });\n return !event.defaultPrevented;\n }\n async visitResponse(response) {\n const wrapped = new FetchResponse(response);\n const responseHTML = await wrapped.responseHTML;\n const { location, redirected, statusCode } = wrapped;\n return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n }\n findFrameElement(element, submitter) {\n var _a;\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n }\n async extractForeignFrameElement(container) {\n let element;\n const id = CSS.escape(this.id);\n try {\n element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n if (element) {\n return element;\n }\n element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n if (element) {\n await element.loaded;\n return await this.extractForeignFrameElement(element);\n }\n }\n catch (error) {\n console.error(error);\n return new FrameElement();\n }\n return null;\n }\n formActionIsVisitable(form, submitter) {\n const action = getAction(form, submitter);\n return locationIsVisitable(expandURL(action), this.rootLocation);\n }\n shouldInterceptNavigation(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n return false;\n }\n if (!this.enabled || id == \"_top\") {\n return false;\n }\n if (id) {\n const frameElement = getFrameElementById(id);\n if (frameElement) {\n return !frameElement.disabled;\n }\n }\n if (!session.elementIsNavigatable(element)) {\n return false;\n }\n if (submitter && !session.elementIsNavigatable(submitter)) {\n return false;\n }\n return true;\n }\n get id() {\n return this.element.id;\n }\n get enabled() {\n return !this.element.disabled;\n }\n get sourceURL() {\n if (this.element.src) {\n return this.element.src;\n }\n }\n set sourceURL(sourceURL) {\n this.ignoringChangesToAttribute(\"src\", () => {\n this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n });\n }\n get loadingStyle() {\n return this.element.loading;\n }\n get isLoading() {\n return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n }\n get complete() {\n return this.element.hasAttribute(\"complete\");\n }\n set complete(value) {\n this.ignoringChangesToAttribute(\"complete\", () => {\n if (value) {\n this.element.setAttribute(\"complete\", \"\");\n }\n else {\n this.element.removeAttribute(\"complete\");\n }\n });\n }\n get isActive() {\n return this.element.isActive && this.connected;\n }\n get rootLocation() {\n var _a;\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n isIgnoringChangesTo(attributeName) {\n return this.ignoredAttributes.has(attributeName);\n }\n ignoringChangesToAttribute(attributeName, callback) {\n this.ignoredAttributes.add(attributeName);\n callback();\n this.ignoredAttributes.delete(attributeName);\n }\n withCurrentNavigationElement(element, callback) {\n this.currentNavigationElement = element;\n callback();\n delete this.currentNavigationElement;\n }\n}\nfunction getFrameElementById(id) {\n if (id != null) {\n const element = document.getElementById(id);\n if (element instanceof FrameElement) {\n return element;\n }\n }\n}\nfunction activateElement(element, currentURL) {\n if (element) {\n const src = element.getAttribute(\"src\");\n if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`);\n }\n if (element.ownerDocument !== document) {\n element = document.importNode(element, true);\n }\n if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element;\n }\n }\n}\n\nclass StreamElement extends HTMLElement {\n static async renderElement(newElement) {\n await newElement.performAction();\n }\n async connectedCallback() {\n try {\n await this.render();\n }\n catch (error) {\n console.error(error);\n }\n finally {\n this.disconnect();\n }\n }\n async render() {\n var _a;\n return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n const event = this.beforeRenderEvent;\n if (this.dispatchEvent(event)) {\n await nextAnimationFrame();\n await event.detail.render(this);\n }\n })()));\n }\n disconnect() {\n try {\n this.remove();\n }\n catch (_a) { }\n }\n removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach((c) => c.remove());\n }\n get duplicateChildren() {\n var _a;\n const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n return existingChildren.filter((c) => newChildrenIds.includes(c.id));\n }\n get performAction() {\n if (this.action) {\n const actionFunction = StreamActions[this.action];\n if (actionFunction) {\n return actionFunction;\n }\n this.raise(\"unknown action\");\n }\n this.raise(\"action attribute is missing\");\n }\n get targetElements() {\n if (this.target) {\n return this.targetElementsById;\n }\n else if (this.targets) {\n return this.targetElementsByQuery;\n }\n else {\n this.raise(\"target or targets attribute is missing\");\n }\n }\n get templateContent() {\n return this.templateElement.content.cloneNode(true);\n }\n get templateElement() {\n if (this.firstElementChild === null) {\n const template = this.ownerDocument.createElement(\"template\");\n this.appendChild(template);\n return template;\n }\n else if (this.firstElementChild instanceof HTMLTemplateElement) {\n return this.firstElementChild;\n }\n this.raise(\"first child element must be a <template> element\");\n }\n get action() {\n return this.getAttribute(\"action\");\n }\n get target() {\n return this.getAttribute(\"target\");\n }\n get targets() {\n return this.getAttribute(\"targets\");\n }\n raise(message) {\n throw new Error(`${this.description}: ${message}`);\n }\n get description() {\n var _a, _b;\n return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\n }\n get beforeRenderEvent() {\n return new CustomEvent(\"turbo:before-stream-render\", {\n bubbles: true,\n cancelable: true,\n detail: { newStream: this, render: StreamElement.renderElement },\n });\n }\n get targetElementsById() {\n var _a;\n const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n if (element !== null) {\n return [element];\n }\n else {\n return [];\n }\n }\n get targetElementsByQuery() {\n var _a;\n const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n if (elements.length !== 0) {\n return Array.prototype.slice.call(elements);\n }\n else {\n return [];\n }\n }\n}\n\nclass StreamSourceElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.streamSource = null;\n }\n connectedCallback() {\n this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n connectStreamSource(this.streamSource);\n }\n disconnectedCallback() {\n if (this.streamSource) {\n disconnectStreamSource(this.streamSource);\n }\n }\n get src() {\n return this.getAttribute(\"src\") || \"\";\n }\n}\n\nFrameElement.delegateConstructor = FrameController;\nif (customElements.get(\"turbo-frame\") === undefined) {\n customElements.define(\"turbo-frame\", FrameElement);\n}\nif (customElements.get(\"turbo-stream\") === undefined) {\n customElements.define(\"turbo-stream\", StreamElement);\n}\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n let element = document.currentScript;\n if (!element)\n return;\n if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n return;\n element = element.parentElement;\n while (element) {\n if (element == document.body) {\n return console.warn(unindent `\n You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n Load your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n \u2014\u2014\n Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n `, element.outerHTML);\n }\n element = element.parentElement;\n }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setFormMode, setProgressBarDelay, start, visit };\n", "let consumer\n\nexport async function getConsumer() {\n return consumer || setConsumer(createConsumer().then(setConsumer))\n}\n\nexport function setConsumer(newConsumer) {\n return consumer = newConsumer\n}\n\nexport async function createConsumer() {\n const { createConsumer } = await import(/* webpackChunkName: \"actioncable\" */ \"@rails/actioncable/src\")\n return createConsumer()\n}\n\nexport async function subscribeTo(channel, mixin) {\n const { subscriptions } = await getConsumer()\n return subscriptions.create(channel, mixin)\n}\n", "// Based on https://github.com/nathan7/snakeize\n//\n// This software is released under the MIT license:\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default function walk (obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (obj instanceof Date || obj instanceof RegExp) return obj;\n if (Array.isArray(obj)) return obj.map(walk);\n return Object.keys(obj).reduce(function (acc, key) {\n var camel = key[0].toLowerCase() + key.slice(1).replace(/([A-Z]+)/g, function (m, x) {\n return '_' + x.toLowerCase();\n });\n acc[camel] = walk(obj[key]);\n return acc;\n }, {});\n};", "import { connectStreamSource, disconnectStreamSource } from \"@hotwired/turbo\"\nimport { subscribeTo } from \"./cable\"\nimport snakeize from \"./snakeize\"\n\nclass TurboCableStreamSourceElement extends HTMLElement {\n async connectedCallback() {\n connectStreamSource(this)\n this.subscription = await subscribeTo(this.channel, { received: this.dispatchMessageEvent.bind(this) })\n }\n\n disconnectedCallback() {\n disconnectStreamSource(this)\n if (this.subscription) this.subscription.unsubscribe()\n }\n\n dispatchMessageEvent(data) {\n const event = new MessageEvent(\"message\", { data })\n return this.dispatchEvent(event)\n }\n\n get channel() {\n const channel = this.getAttribute(\"channel\")\n const signed_stream_name = this.getAttribute(\"signed-stream-name\")\n return { channel, signed_stream_name, ...snakeize({ ...this.dataset }) }\n }\n}\n\ncustomElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n", "export function encodeMethodIntoRequestBody(event) {\n if (event.target instanceof HTMLFormElement) {\n const { target: form, detail: { fetchOptions } } = event\n\n form.addEventListener(\"turbo:submit-start\", ({ detail: { formSubmission: { submitter } } }) => {\n const method = (submitter && submitter.formMethod) || (fetchOptions.body && fetchOptions.body.get(\"_method\")) || form.getAttribute(\"method\")\n\n if (!/get/i.test(method)) {\n if (/post/i.test(method)) {\n fetchOptions.body.delete(\"_method\")\n } else {\n fetchOptions.body.set(\"_method\", method)\n }\n\n fetchOptions.method = \"post\"\n }\n }, { once: true })\n }\n}\n", "import \"./cable_stream_source_element\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\nimport { encodeMethodIntoRequestBody } from \"./fetch_requests\"\n\naddEventListener(\"turbo:before-fetch-request\", encodeMethodIntoRequestBody)\n", "/*\n * TurboPower 0.6.0\n */\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\nfunction morphAttrs(fromNode, toNode) {\n var toNodeAttrs = toNode.attributes;\n var attr;\n var attrName;\n var attrNamespaceURI;\n var attrValue;\n var fromValue;\n // document-fragments dont have attributes so lets not do anything\n if (toNode.nodeType === DOCUMENT_FRAGMENT_NODE || fromNode.nodeType === DOCUMENT_FRAGMENT_NODE) {\n return;\n }\n // update attributes on original DOM element\n for (var i = toNodeAttrs.length - 1; i >= 0; i--) {\n attr = toNodeAttrs[i];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n attrValue = attr.value;\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n fromValue = fromNode.getAttributeNS(attrNamespaceURI, attrName);\n if (fromValue !== attrValue) {\n if (attr.prefix === \"xmlns\") {\n attrName = attr.name;\n // It's not allowed to set an attribute with the XMLNS namespace without specifying the `xmlns` prefix\n }\n fromNode.setAttributeNS(attrNamespaceURI, attrName, attrValue);\n }\n } else {\n fromValue = fromNode.getAttribute(attrName);\n if (fromValue !== attrValue) {\n fromNode.setAttribute(attrName, attrValue);\n }\n }\n }\n // Remove any extra attributes found on the original DOM element that\n // weren't found on the target element.\n var fromNodeAttrs = fromNode.attributes;\n for (var d = fromNodeAttrs.length - 1; d >= 0; d--) {\n attr = fromNodeAttrs[d];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n if (!toNode.hasAttributeNS(attrNamespaceURI, attrName)) {\n fromNode.removeAttributeNS(attrNamespaceURI, attrName);\n }\n } else {\n if (!toNode.hasAttribute(attrName)) {\n fromNode.removeAttribute(attrName);\n }\n }\n }\n}\n\nvar range;\n\n // Create a range object for efficently rendering strings to elements.\nvar NS_XHTML = \"http://www.w3.org/1999/xhtml\";\n\nvar doc = typeof document === \"undefined\" ? undefined : document;\n\nvar HAS_TEMPLATE_SUPPORT = !!doc && \"content\" in doc.createElement(\"template\");\n\nvar HAS_RANGE_SUPPORT = !!doc && doc.createRange && \"createContextualFragment\" in doc.createRange();\n\nfunction createFragmentFromTemplate(str) {\n var template = doc.createElement(\"template\");\n template.innerHTML = str;\n return template.content.childNodes[0];\n}\n\nfunction createFragmentFromRange(str) {\n if (!range) {\n range = doc.createRange();\n range.selectNode(doc.body);\n }\n var fragment = range.createContextualFragment(str);\n return fragment.childNodes[0];\n}\n\nfunction createFragmentFromWrap(str) {\n var fragment = doc.createElement(\"body\");\n fragment.innerHTML = str;\n return fragment.childNodes[0];\n}\n\n/**\n * This is about the same\n * var html = new DOMParser().parseFromString(str, 'text/html');\n * return html.body.firstChild;\n *\n * @method toElement\n * @param {String} str\n */ function toElement(str) {\n str = str.trim();\n if (HAS_TEMPLATE_SUPPORT) {\n // avoid restrictions on content for things like `<tr><th>Hi</th></tr>` which\n // createContextualFragment doesn't support\n // <template> support not available in IE\n return createFragmentFromTemplate(str);\n } else if (HAS_RANGE_SUPPORT) {\n return createFragmentFromRange(str);\n }\n return createFragmentFromWrap(str);\n}\n\n/**\n * Returns true if two node's names are the same.\n *\n * NOTE: We don't bother checking `namespaceURI` because you will never find two HTML elements with the same\n * nodeName and different namespace URIs.\n *\n * @param {Element} a\n * @param {Element} b The target element\n * @return {boolean}\n */ function compareNodeNames(fromEl, toEl) {\n var fromNodeName = fromEl.nodeName;\n var toNodeName = toEl.nodeName;\n var fromCodeStart, toCodeStart;\n if (fromNodeName === toNodeName) {\n return true;\n }\n fromCodeStart = fromNodeName.charCodeAt(0);\n toCodeStart = toNodeName.charCodeAt(0);\n // If the target element is a virtual DOM node or SVG node then we may\n // need to normalize the tag name before comparing. Normal HTML elements that are\n // in the \"http://www.w3.org/1999/xhtml\"\n // are converted to upper case\n if (fromCodeStart <= 90 && toCodeStart >= 97) {\n // from is upper and to is lower\n return fromNodeName === toNodeName.toUpperCase();\n } else if (toCodeStart <= 90 && fromCodeStart >= 97) {\n // to is upper and from is lower\n return toNodeName === fromNodeName.toUpperCase();\n } else {\n return false;\n }\n}\n\n/**\n * Create an element, optionally with a known namespace URI.\n *\n * @param {string} name the element name, e.g. 'div' or 'svg'\n * @param {string} [namespaceURI] the element's namespace URI, i.e. the value of\n * its `xmlns` attribute or its inferred namespace.\n *\n * @return {Element}\n */ function createElementNS(name, namespaceURI) {\n return !namespaceURI || namespaceURI === NS_XHTML ? doc.createElement(name) : doc.createElementNS(namespaceURI, name);\n}\n\n/**\n * Copies the children of one DOM element to another DOM element\n */ function moveChildren(fromEl, toEl) {\n var curChild = fromEl.firstChild;\n while (curChild) {\n var nextChild = curChild.nextSibling;\n toEl.appendChild(curChild);\n curChild = nextChild;\n }\n return toEl;\n}\n\nfunction syncBooleanAttrProp(fromEl, toEl, name) {\n if (fromEl[name] !== toEl[name]) {\n fromEl[name] = toEl[name];\n if (fromEl[name]) {\n fromEl.setAttribute(name, \"\");\n } else {\n fromEl.removeAttribute(name);\n }\n }\n}\n\nvar specialElHandlers = {\n OPTION: function(fromEl, toEl) {\n var parentNode = fromEl.parentNode;\n if (parentNode) {\n var parentName = parentNode.nodeName.toUpperCase();\n if (parentName === \"OPTGROUP\") {\n parentNode = parentNode.parentNode;\n parentName = parentNode && parentNode.nodeName.toUpperCase();\n }\n if (parentName === \"SELECT\" && !parentNode.hasAttribute(\"multiple\")) {\n if (fromEl.hasAttribute(\"selected\") && !toEl.selected) {\n // Workaround for MS Edge bug where the 'selected' attribute can only be\n // removed if set to a non-empty value:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12087679/\n fromEl.setAttribute(\"selected\", \"selected\");\n fromEl.removeAttribute(\"selected\");\n }\n // We have to reset select element's selectedIndex to -1, otherwise setting\n // fromEl.selected using the syncBooleanAttrProp below has no effect.\n // The correct selectedIndex will be set in the SELECT special handler below.\n parentNode.selectedIndex = -1;\n }\n }\n syncBooleanAttrProp(fromEl, toEl, \"selected\");\n },\n /**\n * The \"value\" attribute is special for the <input> element since it sets\n * the initial value. Changing the \"value\" attribute without changing the\n * \"value\" property will have no effect since it is only used to the set the\n * initial value. Similar for the \"checked\" attribute, and \"disabled\".\n */\n INPUT: function(fromEl, toEl) {\n syncBooleanAttrProp(fromEl, toEl, \"checked\");\n syncBooleanAttrProp(fromEl, toEl, \"disabled\");\n if (fromEl.value !== toEl.value) {\n fromEl.value = toEl.value;\n }\n if (!toEl.hasAttribute(\"value\")) {\n fromEl.removeAttribute(\"value\");\n }\n },\n TEXTAREA: function(fromEl, toEl) {\n var newValue = toEl.value;\n if (fromEl.value !== newValue) {\n fromEl.value = newValue;\n }\n var firstChild = fromEl.firstChild;\n if (firstChild) {\n // Needed for IE. Apparently IE sets the placeholder as the\n // node value and vise versa. This ignores an empty update.\n var oldValue = firstChild.nodeValue;\n if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) {\n return;\n }\n firstChild.nodeValue = newValue;\n }\n },\n SELECT: function(fromEl, toEl) {\n if (!toEl.hasAttribute(\"multiple\")) {\n var selectedIndex = -1;\n var i = 0;\n // We have to loop through children of fromEl, not toEl since nodes can be moved\n // from toEl to fromEl directly when morphing.\n // At the time this special handler is invoked, all children have already been morphed\n // and appended to / removed from fromEl, so using fromEl here is safe and correct.\n var curChild = fromEl.firstChild;\n var optgroup;\n var nodeName;\n while (curChild) {\n nodeName = curChild.nodeName && curChild.nodeName.toUpperCase();\n if (nodeName === \"OPTGROUP\") {\n optgroup = curChild;\n curChild = optgroup.firstChild;\n } else {\n if (nodeName === \"OPTION\") {\n if (curChild.hasAttribute(\"selected\")) {\n selectedIndex = i;\n break;\n }\n i++;\n }\n curChild = curChild.nextSibling;\n if (!curChild && optgroup) {\n curChild = optgroup.nextSibling;\n optgroup = null;\n }\n }\n }\n fromEl.selectedIndex = selectedIndex;\n }\n }\n};\n\nvar ELEMENT_NODE = 1;\n\nvar DOCUMENT_FRAGMENT_NODE$1 = 11;\n\nvar TEXT_NODE = 3;\n\nvar COMMENT_NODE = 8;\n\nfunction noop() {}\n\nfunction defaultGetNodeKey(node) {\n if (node) {\n return node.getAttribute && node.getAttribute(\"id\") || node.id;\n }\n}\n\nfunction morphdomFactory(morphAttrs) {\n return function morphdom(fromNode, toNode, options) {\n if (!options) {\n options = {};\n }\n if (typeof toNode === \"string\") {\n if (fromNode.nodeName === \"#document\" || fromNode.nodeName === \"HTML\" || fromNode.nodeName === \"BODY\") {\n var toNodeHtml = toNode;\n toNode = doc.createElement(\"html\");\n toNode.innerHTML = toNodeHtml;\n } else {\n toNode = toElement(toNode);\n }\n } else if (toNode.nodeType === DOCUMENT_FRAGMENT_NODE$1) {\n toNode = toNode.firstElementChild;\n }\n var getNodeKey = options.getNodeKey || defaultGetNodeKey;\n var onBeforeNodeAdded = options.onBeforeNodeAdded || noop;\n var onNodeAdded = options.onNodeAdded || noop;\n var onBeforeElUpdated = options.onBeforeElUpdated || noop;\n var onElUpdated = options.onElUpdated || noop;\n var onBeforeNodeDiscarded = options.onBeforeNodeDiscarded || noop;\n var onNodeDiscarded = options.onNodeDiscarded || noop;\n var onBeforeElChildrenUpdated = options.onBeforeElChildrenUpdated || noop;\n var skipFromChildren = options.skipFromChildren || noop;\n var addChild = options.addChild || function(parent, child) {\n return parent.appendChild(child);\n };\n var childrenOnly = options.childrenOnly === true;\n // This object is used as a lookup to quickly find all keyed elements in the original DOM tree.\n var fromNodesLookup = Object.create(null);\n var keyedRemovalList = [];\n function addKeyedRemoval(key) {\n keyedRemovalList.push(key);\n }\n function walkDiscardedChildNodes(node, skipKeyedNodes) {\n if (node.nodeType === ELEMENT_NODE) {\n var curChild = node.firstChild;\n while (curChild) {\n var key = undefined;\n if (skipKeyedNodes && (key = getNodeKey(curChild))) {\n // If we are skipping keyed nodes then we add the key\n // to a list so that it can be handled at the very end.\n addKeyedRemoval(key);\n } else {\n // Only report the node as discarded if it is not keyed. We do this because\n // at the end we loop through all keyed elements that were unmatched\n // and then discard them in one final pass.\n onNodeDiscarded(curChild);\n if (curChild.firstChild) {\n walkDiscardedChildNodes(curChild, skipKeyedNodes);\n }\n }\n curChild = curChild.nextSibling;\n }\n }\n }\n /**\n * Removes a DOM node out of the original DOM\n *\n * @param {Node} node The node to remove\n * @param {Node} parentNode The nodes parent\n * @param {Boolean} skipKeyedNodes If true then elements with keys will be skipped and not discarded.\n * @return {undefined}\n */ function removeNode(node, parentNode, skipKeyedNodes) {\n if (onBeforeNodeDiscarded(node) === false) {\n return;\n }\n if (parentNode) {\n parentNode.removeChild(node);\n }\n onNodeDiscarded(node);\n walkDiscardedChildNodes(node, skipKeyedNodes);\n }\n // // TreeWalker implementation is no faster, but keeping this around in case this changes in the future\n // function indexTree(root) {\n // var treeWalker = document.createTreeWalker(\n // root,\n // NodeFilter.SHOW_ELEMENT);\n \n // var el;\n // while((el = treeWalker.nextNode())) {\n // var key = getNodeKey(el);\n // if (key) {\n // fromNodesLookup[key] = el;\n // }\n // }\n // }\n // // NodeIterator implementation is no faster, but keeping this around in case this changes in the future\n \n // function indexTree(node) {\n // var nodeIterator = document.createNodeIterator(node, NodeFilter.SHOW_ELEMENT);\n // var el;\n // while((el = nodeIterator.nextNode())) {\n // var key = getNodeKey(el);\n // if (key) {\n // fromNodesLookup[key] = el;\n // }\n // }\n // }\n function indexTree(node) {\n if (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE$1) {\n var curChild = node.firstChild;\n while (curChild) {\n var key = getNodeKey(curChild);\n if (key) {\n fromNodesLookup[key] = curChild;\n }\n // Walk recursively\n indexTree(curChild);\n curChild = curChild.nextSibling;\n }\n }\n }\n indexTree(fromNode);\n function handleNodeAdded(el) {\n onNodeAdded(el);\n var curChild = el.firstChild;\n while (curChild) {\n var nextSibling = curChild.nextSibling;\n var key = getNodeKey(curChild);\n if (key) {\n var unmatchedFromEl = fromNodesLookup[key];\n // if we find a duplicate #id node in cache, replace `el` with cache value\n // and morph it to the child node.\n if (unmatchedFromEl && compareNodeNames(curChild, unmatchedFromEl)) {\n curChild.parentNode.replaceChild(unmatchedFromEl, curChild);\n morphEl(unmatchedFromEl, curChild);\n } else {\n handleNodeAdded(curChild);\n }\n } else {\n // recursively call for curChild and it's children to see if we find something in\n // fromNodesLookup\n handleNodeAdded(curChild);\n }\n curChild = nextSibling;\n }\n }\n function cleanupFromEl(fromEl, curFromNodeChild, curFromNodeKey) {\n // We have processed all of the \"to nodes\". If curFromNodeChild is\n // non-null then we still have some from nodes left over that need\n // to be removed\n while (curFromNodeChild) {\n var fromNextSibling = curFromNodeChild.nextSibling;\n if (curFromNodeKey = getNodeKey(curFromNodeChild)) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n curFromNodeChild = fromNextSibling;\n }\n }\n function morphEl(fromEl, toEl, childrenOnly) {\n var toElKey = getNodeKey(toEl);\n if (toElKey) {\n // If an element with an ID is being morphed then it will be in the final\n // DOM so clear it out of the saved elements collection\n delete fromNodesLookup[toElKey];\n }\n if (!childrenOnly) {\n // optional\n if (onBeforeElUpdated(fromEl, toEl) === false) {\n return;\n }\n // update attributes on original DOM element first\n morphAttrs(fromEl, toEl);\n // optional\n onElUpdated(fromEl);\n if (onBeforeElChildrenUpdated(fromEl, toEl) === false) {\n return;\n }\n }\n if (fromEl.nodeName !== \"TEXTAREA\") {\n morphChildren(fromEl, toEl);\n } else {\n specialElHandlers.TEXTAREA(fromEl, toEl);\n }\n }\n function morphChildren(fromEl, toEl) {\n var skipFrom = skipFromChildren(fromEl);\n var curToNodeChild = toEl.firstChild;\n var curFromNodeChild = fromEl.firstChild;\n var curToNodeKey;\n var curFromNodeKey;\n var fromNextSibling;\n var toNextSibling;\n var matchingFromEl;\n // walk the children\n outer: while (curToNodeChild) {\n toNextSibling = curToNodeChild.nextSibling;\n curToNodeKey = getNodeKey(curToNodeChild);\n // walk the fromNode children all the way through\n while (!skipFrom && curFromNodeChild) {\n fromNextSibling = curFromNodeChild.nextSibling;\n if (curToNodeChild.isSameNode && curToNodeChild.isSameNode(curFromNodeChild)) {\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n curFromNodeKey = getNodeKey(curFromNodeChild);\n var curFromNodeType = curFromNodeChild.nodeType;\n // this means if the curFromNodeChild doesnt have a match with the curToNodeChild\n var isCompatible = undefined;\n if (curFromNodeType === curToNodeChild.nodeType) {\n if (curFromNodeType === ELEMENT_NODE) {\n // Both nodes being compared are Element nodes\n if (curToNodeKey) {\n // The target node has a key so we want to match it up with the correct element\n // in the original DOM tree\n if (curToNodeKey !== curFromNodeKey) {\n // The current element in the original DOM tree does not have a matching key so\n // let's check our lookup to see if there is a matching element in the original\n // DOM tree\n if (matchingFromEl = fromNodesLookup[curToNodeKey]) {\n if (fromNextSibling === matchingFromEl) {\n // Special case for single element removals. To avoid removing the original\n // DOM node out of the tree (since that can break CSS transitions, etc.),\n // we will instead discard the current node and wait until the next\n // iteration to properly match up the keyed target element with its matching\n // element in the original tree\n isCompatible = false;\n } else {\n // We found a matching keyed element somewhere in the original DOM tree.\n // Let's move the original DOM node into the current position and morph\n // it.\n // NOTE: We use insertBefore instead of replaceChild because we want to go through\n // the `removeNode()` function for the node that is being discarded so that\n // all lifecycle hooks are correctly invoked\n fromEl.insertBefore(matchingFromEl, curFromNodeChild);\n // fromNextSibling = curFromNodeChild.nextSibling;\n if (curFromNodeKey) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n curFromNodeChild = matchingFromEl;\n }\n } else {\n // The nodes are not compatible since the \"to\" node has a key and there\n // is no matching keyed node in the source tree\n isCompatible = false;\n }\n }\n } else if (curFromNodeKey) {\n // The original has a key\n isCompatible = false;\n }\n isCompatible = isCompatible !== false && compareNodeNames(curFromNodeChild, curToNodeChild);\n if (isCompatible) {\n // We found compatible DOM elements so transform\n // the current \"from\" node to match the current\n // target DOM node.\n // MORPH\n morphEl(curFromNodeChild, curToNodeChild);\n }\n } else if (curFromNodeType === TEXT_NODE || curFromNodeType == COMMENT_NODE) {\n // Both nodes being compared are Text or Comment nodes\n isCompatible = true;\n // Simply update nodeValue on the original node to\n // change the text value\n if (curFromNodeChild.nodeValue !== curToNodeChild.nodeValue) {\n curFromNodeChild.nodeValue = curToNodeChild.nodeValue;\n }\n }\n }\n if (isCompatible) {\n // Advance both the \"to\" child and the \"from\" child since we found a match\n // Nothing else to do as we already recursively called morphChildren above\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n // No compatible match so remove the old node from the DOM and continue trying to find a\n // match in the original DOM. However, we only do this if the from node is not keyed\n // since it is possible that a keyed node might match up with a node somewhere else in the\n // target tree and we don't want to discard it just yet since it still might find a\n // home in the final DOM tree. After everything is done we will remove any keyed nodes\n // that didn't find a home\n if (curFromNodeKey) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n curFromNodeChild = fromNextSibling;\n }\n // END: while(curFromNodeChild) {}\n // If we got this far then we did not find a candidate match for\n // our \"to node\" and we exhausted all of the children \"from\"\n // nodes.\n if (curToNodeKey && (matchingFromEl = fromNodesLookup[curToNodeKey]) && compareNodeNames(matchingFromEl, curToNodeChild)) {\n // MORPH\n addChild(fromEl, matchingFromEl);\n morphEl(matchingFromEl, curToNodeChild);\n } else {\n var onBeforeNodeAddedResult = onBeforeNodeAdded(curToNodeChild);\n if (onBeforeNodeAddedResult !== false) {\n if (onBeforeNodeAddedResult) {\n curToNodeChild = onBeforeNodeAddedResult;\n }\n if (curToNodeChild.actualize) {\n curToNodeChild = curToNodeChild.actualize(fromEl.ownerDocument || doc);\n }\n addChild(fromEl, curToNodeChild);\n handleNodeAdded(curToNodeChild);\n }\n }\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n }\n cleanupFromEl(fromEl, curFromNodeChild, curFromNodeKey);\n var specialElHandler = specialElHandlers[fromEl.nodeName];\n if (specialElHandler) {\n specialElHandler(fromEl, toEl);\n }\n }\n // END: morphChildren(...)\n var morphedNode = fromNode;\n var morphedNodeType = morphedNode.nodeType;\n var toNodeType = toNode.nodeType;\n if (!childrenOnly) {\n // Handle the case where we are given two DOM nodes that are not\n // compatible (e.g. <div> --> <span> or <div> --> TEXT)\n if (morphedNodeType === ELEMENT_NODE) {\n if (toNodeType === ELEMENT_NODE) {\n if (!compareNodeNames(fromNode, toNode)) {\n onNodeDiscarded(fromNode);\n morphedNode = moveChildren(fromNode, createElementNS(toNode.nodeName, toNode.namespaceURI));\n }\n } else {\n // Going from an element node to a text node\n morphedNode = toNode;\n }\n } else if (morphedNodeType === TEXT_NODE || morphedNodeType === COMMENT_NODE) {\n // Text or comment node\n if (toNodeType === morphedNodeType) {\n if (morphedNode.nodeValue !== toNode.nodeValue) {\n morphedNode.nodeValue = toNode.nodeValue;\n }\n return morphedNode;\n } else {\n // Text node to something else\n morphedNode = toNode;\n }\n }\n }\n if (morphedNode === toNode) {\n // The \"to node\" was not compatible with the \"from node\" so we had to\n // toss out the \"from node\" and use the \"to node\"\n onNodeDiscarded(fromNode);\n } else {\n if (toNode.isSameNode && toNode.isSameNode(morphedNode)) {\n return;\n }\n morphEl(morphedNode, toNode, childrenOnly);\n // We now need to loop over any keyed nodes that might need to be\n // removed. We only do the removal if we know that the keyed node\n // never found a match. When a keyed node is matched up we remove\n // it out of fromNodesLookup and we use fromNodesLookup to determine\n // if a keyed node has been matched up or not\n if (keyedRemovalList) {\n for (var i = 0, len = keyedRemovalList.length; i < len; i++) {\n var elToRemove = fromNodesLookup[keyedRemovalList[i]];\n if (elToRemove) {\n removeNode(elToRemove, elToRemove.parentNode, false);\n }\n }\n }\n }\n if (!childrenOnly && morphedNode !== fromNode && fromNode.parentNode) {\n if (morphedNode.actualize) {\n morphedNode = morphedNode.actualize(fromNode.ownerDocument || doc);\n }\n // If we had to swap out the from node with a new node because the old\n // node was not compatible with the target node then we need to\n // replace the old DOM node in the original DOM tree. This is only\n // possible if the original DOM node was part of a DOM tree which\n // we know is the case if it has a parent node.\n fromNode.parentNode.replaceChild(morphedNode, fromNode);\n }\n return morphedNode;\n };\n}\n\nvar morphdom = morphdomFactory(morphAttrs);\n\n/*\n * TurboMorph 0.2.0\n */ function morph() {\n const options = {\n childrenOnly: this.hasAttribute(\"children-only\")\n };\n this.targetElements.forEach((element => {\n morphdom(element, options.childrenOnly ? this.templateContent : this.templateElement.innerHTML, options);\n }));\n}\n\nconst initialize$1 = streamActions => {\n streamActions.morph = morph;\n};\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, ((_, char) => char.toUpperCase()));\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, ((_, char) => `-${char.toLowerCase()}`));\n}\n\nfunction tokenize(value) {\n return value ? value.match(/[^\\s]+/g) || [] : [];\n}\n\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n}\n\nvar Utils = Object.freeze({\n __proto__: null,\n camelize: camelize,\n capitalize: capitalize,\n dasherize: dasherize,\n tokenize: tokenize,\n typecast: typecast\n});\n\nfunction add_css_class() {\n const classes = tokenize(this.getAttribute(\"classes\"));\n if (classes.length > 0) {\n this.targetElements.forEach((element => element.classList.add(...classes)));\n } else {\n console.warn(`[TurboPower] no \"classes\" provided for Turbo Streams operation \"add_css_class\"`);\n }\n}\n\nfunction remove_attribute() {\n const attribute = this.getAttribute(\"attribute\");\n if (attribute) {\n this.targetElements.forEach((element => element.removeAttribute(attribute)));\n } else {\n console.warn(`[TurboPower] no \"attribute\" provided for Turbo Streams operation \"remove_attribute\"`);\n }\n}\n\nfunction remove_css_class() {\n const classes = tokenize(this.getAttribute(\"classes\"));\n if (classes.length > 0) {\n this.targetElements.forEach((element => element.classList.remove(...classes)));\n } else {\n console.warn(`[TurboPower] no \"classes\" provided for Turbo Streams operation \"remove_css_class\"`);\n }\n}\n\nfunction set_attribute() {\n const attribute = this.getAttribute(\"attribute\");\n const value = this.getAttribute(\"value\") || \"\";\n if (attribute) {\n this.targetElements.forEach((element => element.setAttribute(attribute, value)));\n } else {\n console.warn(`[TurboPower] no \"attribute\" provided for Turbo Streams operation \"set_attribute\"`);\n }\n}\n\nfunction set_dataset_attribute() {\n const attribute = this.getAttribute(\"attribute\");\n const value = this.getAttribute(\"value\") || \"\";\n if (attribute) {\n this.targetElements.forEach((element => element.dataset[camelize(attribute)] = value));\n } else {\n console.warn(`[TurboPower] no \"attribute\" provided for Turbo Streams operation \"set_dataset_attribute\"`);\n }\n}\n\nfunction set_property() {\n const name = this.getAttribute(\"name\");\n const value = typecast(this.getAttribute(\"value\") || \"\");\n if (name) {\n this.targetElements.forEach((element => element[name] = value));\n } else {\n console.error(`[TurboPower] no \"name\" provided for Turbo Streams operation \"set_property\"`);\n }\n}\n\nfunction set_style() {\n const name = this.getAttribute(\"name\");\n const value = this.getAttribute(\"value\") || \"\";\n if (name) {\n this.targetElements.forEach((element => element.style[name] = value));\n } else {\n console.error(`[TurboPower] no \"name\" provided for Turbo Streams operation \"set_style\"`);\n }\n}\n\nfunction set_styles() {\n const styles = this.getAttribute(\"styles\") || \"\";\n this.targetElements.forEach((element => element.setAttribute(\"style\", styles)));\n}\n\nfunction set_value() {\n const value = this.getAttribute(\"value\") || \"\";\n this.targetElements.forEach((element => element.value = value));\n}\n\nfunction toggle_css_class() {\n const classes = tokenize(this.getAttribute(\"classes\"));\n if (classes.length > 0) {\n this.targetElements.forEach((element => {\n classes.forEach((className => element.classList.toggle(className)));\n }));\n } else {\n console.warn(`[TurboPower] no \"classes\" provided for Turbo Streams operation \"toggle_css_class\"`);\n }\n}\n\nfunction replace_css_class() {\n const from = this.getAttribute(\"from\") || \"\";\n const to = this.getAttribute(\"to\") || \"\";\n if (from && to) {\n this.targetElements.forEach((element => {\n const wasReplaced = element.classList.replace(from, to);\n if (!wasReplaced) {\n console.warn(`[TurboPower] The \"${from}\" CSS class provided in the \"from\" attribute for the \"replace_css_class\" action was not found on the target element. No replacements made.`, element);\n }\n }));\n } else {\n console.warn(`[TurboPower] no \"from\" or \"to\" class provided for Turbo Streams operation \"replace_css_class\"`);\n }\n}\n\nfunction registerAttributesActions(streamActions) {\n streamActions.add_css_class = add_css_class;\n streamActions.remove_css_class = remove_css_class;\n streamActions.remove_attribute = remove_attribute;\n streamActions.set_attribute = set_attribute;\n streamActions.set_dataset_attribute = set_dataset_attribute;\n streamActions.set_property = set_property;\n streamActions.set_style = set_style;\n streamActions.set_styles = set_styles;\n streamActions.set_value = set_value;\n streamActions.toggle_css_class = toggle_css_class;\n streamActions.replace_css_class = replace_css_class;\n}\n\nfunction reload() {\n window.location.reload();\n}\n\nfunction scroll_into_view() {\n const alignToTop = this.getAttribute(\"align-to-top\");\n const block = this.getAttribute(\"block\");\n const inline = this.getAttribute(\"inline\");\n const behavior = this.getAttribute(\"behavior\");\n if (alignToTop) {\n this.targetElements.forEach((element => element.scrollIntoView(alignToTop === \"true\")));\n } else if (block || inline || behavior) {\n const options = {};\n if (block) options.block = block;\n if (inline) options.inline = inline;\n if (behavior) options.behavior = behavior;\n this.targetElements.forEach((element => element.scrollIntoView(options)));\n } else {\n this.targetElements.forEach((element => element.scrollIntoView()));\n }\n}\n\nfunction set_focus() {\n this.targetElements.forEach((element => element.focus()));\n}\n\nfunction set_title() {\n const title = this.getAttribute(\"title\") || \"\";\n let titleElement = document.head.querySelector(\"title\");\n if (!titleElement) {\n titleElement = document.createElement(\"title\");\n document.head.appendChild(titleElement);\n }\n titleElement.textContent = title;\n}\n\nfunction registerBrowserActions(streamActions) {\n streamActions.reload = reload;\n streamActions.scroll_into_view = scroll_into_view;\n streamActions.set_focus = set_focus;\n streamActions.set_title = set_title;\n}\n\nfunction console_log() {\n const message = this.getAttribute(\"message\");\n const level = this.getAttribute(\"level\") || \"log\";\n console[level](message);\n}\n\nfunction console_table() {\n const data = JSON.parse(this.getAttribute(\"data\") || \"[]\");\n const columns = JSON.parse(this.getAttribute(\"columns\") || \"[]\");\n console.table(data, columns);\n}\n\nfunction registerDebugActions(streamActions) {\n streamActions.console_log = console_log;\n streamActions.console_table = console_table;\n}\n\nfunction invoke() {\n console.warn(\"[TurboPower] The `invoke` Turbo Stream Action was removed from TurboPower. If you'd like to continue using this action please use the successor library instead. Read more here: https://github.com/hopsoft/turbo_boost-streams\");\n}\n\nfunction registerDeprecatedActions(streamActions) {\n if (!streamActions.invoke) {\n streamActions.invoke = invoke;\n }\n}\n\nclass CookieStringBuilder {\n constructor(streamElement) {\n this.ATTRIBUTE_TO_COOKIE_KEY_MAPPING = [ [ \"domain\", \"Domain\", false ], [ \"path\", \"Path\", false ], [ \"expires\", \"Expires\", false ], [ \"max-age\", \"Max-Age\", false ], [ \"http-only\", \"HttpOnly\", true ], [ \"secure\", \"Secure\", true ], [ \"same-site\", \"SameSite\", false ] ];\n this.streamElement = streamElement;\n }\n build() {\n let cookieString = `${this.streamElement.getAttribute(\"name\")}=${this.streamElement.getAttribute(\"value\")}`;\n this.ATTRIBUTE_TO_COOKIE_KEY_MAPPING.forEach((([streamElementAttribute, cookieKey, isBooleanAttribute]) => {\n const cookieValue = this.streamElement.getAttribute(streamElementAttribute);\n if (cookieValue !== null) {\n const cookieKeyPair = isBooleanAttribute ? cookieKey : `${cookieKey}=${cookieValue}`;\n cookieString = `${cookieString}; ${cookieKeyPair}`;\n }\n }));\n return cookieString;\n }\n}\n\nfunction set_cookie() {\n const cookie = this.getAttribute(\"cookie\") || \"\";\n document.cookie = cookie;\n}\n\nfunction set_cookie_item() {\n const cookieStringBuilder = new CookieStringBuilder(this);\n document.cookie = cookieStringBuilder.build();\n}\n\nfunction registerDocumentActions(streamActions) {\n streamActions.set_cookie = set_cookie;\n streamActions.set_cookie_item = set_cookie_item;\n}\n\nfunction graft() {\n const selector = this.getAttribute(\"parent\");\n if (selector) {\n const parent = document.querySelector(selector);\n if (parent) {\n this.targetElements.forEach((element => parent.appendChild(element)));\n } else {\n console.error(`[TurboPower] couldn't find parent element using selector \"${selector}\" for Turbo Streams operation \"graft\"`);\n }\n } else {\n console.error(`[TurboPower] no \"parent\" selector provided for Turbo Streams operation \"graft\"`);\n }\n}\n\nfunction inner_html() {\n const html = this.templateContent.textContent || \"\";\n this.targetElements.forEach((element => element.innerHTML = html));\n}\n\nfunction insert_adjacent_html() {\n const position = this.getAttribute(\"position\") || \"beforebegin\";\n const html = this.templateContent.textContent || \"\";\n this.targetElements.forEach((element => element.insertAdjacentHTML(position, html)));\n}\n\nfunction insert_adjacent_text() {\n const position = this.getAttribute(\"position\") || \"beforebegin\";\n const message = this.getAttribute(\"text\") || \"\";\n this.targetElements.forEach((element => element.insertAdjacentText(position, message)));\n}\n\nfunction outer_html() {\n const html = this.templateContent.textContent || \"\";\n this.targetElements.forEach((element => element.outerHTML = html));\n}\n\nfunction set_meta() {\n const name = this.getAttribute(\"name\");\n const content = this.getAttribute(\"content\") || \"\";\n if (name) {\n let meta = document.head.querySelector(`meta[name='${name}']`);\n if (!meta) {\n meta = document.createElement(\"meta\");\n meta.name = name;\n document.head.appendChild(meta);\n }\n meta.content = content;\n } else {\n console.error(`[TurboPower] no \"name\" provided for Turbo Streams operation \"set_meta\"`);\n }\n}\n\nfunction text_content() {\n const text = this.getAttribute(\"text\") || \"\";\n this.targetElements.forEach((element => element.textContent = text));\n}\n\nfunction registerDOMActions(streamActions) {\n streamActions.graft = graft;\n streamActions.inner_html = inner_html;\n streamActions.insert_adjacent_html = insert_adjacent_html;\n streamActions.insert_adjacent_text = insert_adjacent_text;\n streamActions.outer_html = outer_html;\n streamActions.text_content = text_content;\n streamActions.set_meta = set_meta;\n}\n\nfunction dispatch_event() {\n const name = this.getAttribute(\"name\");\n let template = null;\n try {\n template = this.templateContent.textContent;\n } catch (e) {}\n try {\n const detail = template ? JSON.parse(template) : {};\n if (name) {\n const options = {\n bubbles: true,\n cancelable: true,\n detail: detail\n };\n const event = new CustomEvent(name, options);\n this.targetElements.forEach((element => element.dispatchEvent(event)));\n } else {\n console.warn(`[TurboPower] no \"name\" provided for Turbo Streams operation \"dispatch_event\"`);\n }\n } catch (error) {\n console.error(`[TurboPower] error proccessing provided \"detail\" in \"<template>\" (\"${template}\") for Turbo Streams operation \"dispatch_event\".`, `Error: \"${error.message}\"`);\n }\n}\n\nfunction registerEventsActions(streamActions) {\n streamActions.dispatch_event = dispatch_event;\n}\n\nfunction reset_form() {\n this.targetElements.forEach((form => form.reset()));\n}\n\nfunction registerFormActions(streamActions) {\n streamActions.reset_form = reset_form;\n}\n\nfunction push_state() {\n const url = this.getAttribute(\"url\");\n const state = this.getAttribute(\"state\");\n const title = this.getAttribute(\"title\") || \"\";\n window.history.pushState(state, title, url);\n}\n\nfunction replace_state() {\n const url = this.getAttribute(\"url\");\n const state = this.getAttribute(\"state\");\n const title = this.getAttribute(\"title\") || \"\";\n window.history.replaceState(state, title, url);\n}\n\nfunction history_back() {\n window.history.back();\n}\n\nfunction history_forward() {\n window.history.forward();\n}\n\nfunction history_go() {\n const delta = Number(this.getAttribute(\"delta\")) || 0;\n window.history.go(delta);\n}\n\nfunction registerHistoryActions(streamActions) {\n streamActions.push_state = push_state;\n streamActions.replace_state = replace_state;\n streamActions.history_back = history_back;\n streamActions.history_go = history_go;\n}\n\nconst PERMITTED_ATTRIBUTES = [ \"dir\", \"lang\", \"badge\", \"body\", \"tag\", \"icon\", \"image\", \"data\", \"vibrate\", \"renotify\", \"require-interaction\", \"actions\", \"silent\" ];\n\nconst createNotification = streamElement => {\n const title = streamElement.getAttribute(\"title\") || \"\";\n const attributes = Array.from(streamElement.attributes).filter((attribute => PERMITTED_ATTRIBUTES.includes(attribute.name))).map((attribute => [ camelize(attribute.name), typecast(attribute.value) ]));\n const options = Object.fromEntries(attributes);\n new Notification(title, options);\n};\n\nfunction notification() {\n if (!window.Notification) {\n alert(\"This browser does not support desktop notification\");\n } else if (Notification.permission === \"granted\") {\n createNotification(this);\n } else if (Notification.permission !== \"denied\") {\n Notification.requestPermission().then((permission => {\n if (permission === \"granted\") {\n createNotification(this);\n }\n }));\n }\n}\n\nfunction registerNotificationActions(streamActions) {\n streamActions.notification = notification;\n}\n\nfunction storage(type) {\n return type === \"session\" ? window.sessionStorage : window.localStorage;\n}\n\nfunction clear_storage() {\n const type = this.getAttribute(\"type\");\n storage(type).clear();\n}\n\nfunction set_storage_item() {\n const key = this.getAttribute(\"key\");\n const value = this.getAttribute(\"value\") || \"\";\n const type = this.getAttribute(\"type\");\n if (key) {\n storage(type).setItem(key, value);\n } else {\n console.warn(`[TurboPower] no \"key\" provided for Turbo Streams operation \"set_storage_item\"`);\n }\n}\n\nfunction remove_storage_item() {\n const key = this.getAttribute(\"key\");\n const type = this.getAttribute(\"type\");\n if (key) {\n storage(type).removeItem(key);\n } else {\n console.warn(`[TurboPower] no \"key\" provided for Turbo Streams operation \"remove_storage_item\"`);\n }\n}\n\nfunction registerStorageActions(streamActions) {\n streamActions.clear_storage = clear_storage;\n streamActions.set_storage_item = set_storage_item;\n streamActions.remove_storage_item = remove_storage_item;\n}\n\nvar Proxy = {\n get location() {\n return window.TurboPowerLocation || window.location;\n }\n};\n\nfunction redirect_to() {\n const url = this.getAttribute(\"url\") || \"/\";\n const turboAction = this.getAttribute(\"turbo-action\") || \"advance\";\n const turboFrame = this.getAttribute(\"turbo-frame\");\n const turbo = this.getAttribute(\"turbo\") !== \"false\";\n const options = {\n action: turboAction\n };\n if (turboFrame) {\n options.frame = turboFrame;\n }\n if (turbo && window.Turbo) {\n window.Turbo.visit(url, options);\n } else {\n Proxy.location.assign(url);\n }\n}\n\nfunction turbo_clear_cache() {\n window.Turbo.cache.clear();\n}\n\nfunction registerTurboActions(streamActions) {\n streamActions.redirect_to = redirect_to;\n streamActions.turbo_clear_cache = turbo_clear_cache;\n}\n\nfunction turbo_progress_bar_set_value() {\n const value = this.getAttribute(\"value\") || 0;\n window.Turbo.navigator.adapter.progressBar.setValue(Number(value));\n}\n\nfunction turbo_progress_bar_show() {\n window.Turbo.navigator.adapter.progressBar.show();\n}\n\nfunction turbo_progress_bar_hide() {\n window.Turbo.navigator.adapter.progressBar.hide();\n}\n\nfunction registerTurboProgressBarActions(streamActions) {\n streamActions.turbo_progress_bar_set_value = turbo_progress_bar_set_value;\n streamActions.turbo_progress_bar_show = turbo_progress_bar_show;\n streamActions.turbo_progress_bar_hide = turbo_progress_bar_hide;\n}\n\nfunction turbo_frame_reload() {\n this.targetElements.forEach((element => element.reload()));\n}\n\nfunction turbo_frame_set_src() {\n const src = this.getAttribute(\"src\");\n this.targetElements.forEach((element => element.src = src));\n}\n\nfunction registerTurboFrameActions(streamActions) {\n streamActions.turbo_frame_reload = turbo_frame_reload;\n streamActions.turbo_frame_set_src = turbo_frame_set_src;\n}\n\nfunction register$1(streamActions) {\n registerAttributesActions(streamActions);\n registerBrowserActions(streamActions);\n registerDebugActions(streamActions);\n registerDeprecatedActions(streamActions);\n registerDocumentActions(streamActions);\n registerDOMActions(streamActions);\n registerEventsActions(streamActions);\n registerFormActions(streamActions);\n registerHistoryActions(streamActions);\n registerNotificationActions(streamActions);\n registerStorageActions(streamActions);\n registerTurboActions(streamActions);\n registerTurboProgressBarActions(streamActions);\n registerTurboFrameActions(streamActions);\n}\n\nvar Actions = Object.freeze({\n __proto__: null,\n add_css_class: add_css_class,\n clear_storage: clear_storage,\n console_log: console_log,\n console_table: console_table,\n dispatch_event: dispatch_event,\n graft: graft,\n history_back: history_back,\n history_forward: history_forward,\n history_go: history_go,\n inner_html: inner_html,\n insert_adjacent_html: insert_adjacent_html,\n insert_adjacent_text: insert_adjacent_text,\n invoke: invoke,\n notification: notification,\n outer_html: outer_html,\n push_state: push_state,\n redirect_to: redirect_to,\n register: register$1,\n registerAttributesActions: registerAttributesActions,\n registerBrowserActions: registerBrowserActions,\n registerDOMActions: registerDOMActions,\n registerDebugActions: registerDebugActions,\n registerDeprecatedActions: registerDeprecatedActions,\n registerDocumentActions: registerDocumentActions,\n registerEventsActions: registerEventsActions,\n registerFormActions: registerFormActions,\n registerHistoryActions: registerHistoryActions,\n registerNotificationActions: registerNotificationActions,\n registerStorageActions: registerStorageActions,\n registerTurboActions: registerTurboActions,\n registerTurboFrameActions: registerTurboFrameActions,\n registerTurboProgressBarActions: registerTurboProgressBarActions,\n reload: reload,\n remove_attribute: remove_attribute,\n remove_css_class: remove_css_class,\n remove_storage_item: remove_storage_item,\n replace_css_class: replace_css_class,\n replace_state: replace_state,\n reset_form: reset_form,\n scroll_into_view: scroll_into_view,\n set_attribute: set_attribute,\n set_cookie: set_cookie,\n set_cookie_item: set_cookie_item,\n set_dataset_attribute: set_dataset_attribute,\n set_focus: set_focus,\n set_meta: set_meta,\n set_property: set_property,\n set_storage_item: set_storage_item,\n set_style: set_style,\n set_styles: set_styles,\n set_title: set_title,\n set_value: set_value,\n text_content: text_content,\n toggle_css_class: toggle_css_class,\n turbo_clear_cache: turbo_clear_cache,\n turbo_frame_reload: turbo_frame_reload,\n turbo_frame_set_src: turbo_frame_set_src,\n turbo_progress_bar_hide: turbo_progress_bar_hide,\n turbo_progress_bar_set_value: turbo_progress_bar_set_value,\n turbo_progress_bar_show: turbo_progress_bar_show\n});\n\nfunction initialize(streamActions) {\n initialize$1(streamActions);\n register$1(streamActions);\n}\n\nfunction register(name, action, streamActions) {\n streamActions[name] = action;\n}\n\nvar index = {\n initialize: initialize,\n register: register,\n Actions: Actions,\n Utils: Utils\n};\n\nexport { Actions, Utils, index as default, initialize, register };\n", "import { h, render, hydrate } from 'preact'\n\nclass PreactComponents {\n static registry = new Map()\n\n static start() {\n customElements.define('preact-component', PreactComponentElement)\n }\n\n static register(name, component) {\n this.registry.set(name, component)\n }\n\n static lookup(name) {\n return this.registry.get(name)\n }\n}\n\nexport const application = PreactComponents\n\nexport class PreactComponentElement extends HTMLElement {\n connectedCallback() {\n this.mount()\n }\n\n disconnectedCallback() {\n this.unmount()\n }\n\n mount() {\n const ssr = this.getAttribute('ssr') === 'true'\n\n if (ssr) {\n document.addEventListener(\n 'turbo:load',\n () => {\n hydrate(this.#preactElement, this)\n },\n { once: true },\n )\n } else {\n render(this.#preactElement, this)\n }\n }\n\n unmount() {\n render(null, this)\n }\n\n get #preactElement() {\n const props = JSON.parse(this.getAttribute('props'))\n const type = application.lookup(this.getAttribute('name'))\n\n return h(type, props)\n }\n}\n", "import React from 'preact/compat'\nimport { createContext, h } from 'preact'\nimport { useContext } from 'preact/hooks'\nimport { signal } from '@preact/signals'\nimport { SignUp } from './landing_pages/sign_up'\nimport { Merchandise } from './landing_pages/merchandise'\nimport { Confirmation } from './landing_pages/confirmation'\nimport { StepTracker } from './landing_pages/step_tracker'\nimport { Cart } from './landing_pages/cart'\nimport { Agreements } from './agreements'\n\nexport const LandingPageState = createContext({\n step: signal(1),\n numberOfSteps: 3,\n members: signal([{ primary: true }]),\n leadCaptureForm: {},\n guardianLeadCaptureForm: {},\n agreements: [],\n merchandise: null,\n cart: signal(new Map()),\n errors: signal({}),\n familyCreation: false,\n theme: {},\n merchantAccount: null,\n membershipTemplates: [],\n classes: [],\n preview: false,\n})\n\nexport function useLeadCaptureForm() {\n const { leadCaptureForm, guardianLeadCaptureForm } = useContext(LandingPageState)\n\n return { leadCaptureForm, guardianLeadCaptureForm }\n}\n\nexport function useFamilyCreation() {\n const { familyCreation } = useContext(LandingPageState)\n\n return familyCreation\n}\n\nexport function useBilling() {\n const { merchantAccount, cart, members } = useContext(LandingPageState)\n\n const strictVaulting = members.value.some((member) => Boolean(member.membershipTemplate?.billing_interval))\n\n const paymentRequired = Boolean(merchantAccount) && cart.value.size > 0\n\n return { paymentRequired, merchantAccount, strictVaulting }\n}\n\nexport function useAgreements() {\n const { agreements } = useContext(LandingPageState)\n\n return agreements\n}\n\nexport function useMerchandise() {\n const { merchandise } = useContext(LandingPageState)\n\n return merchandise\n}\n\nexport function useStep() {\n const { step, numberOfSteps } = useContext(LandingPageState)\n\n const nextStep = () => {\n if (step.value < numberOfSteps) {\n step.value++\n }\n }\n\n const jumpToStep = (newStep) => {\n step.value = newStep\n }\n\n const previousStep = () => {\n if (step.value > 1) {\n step.value--\n }\n }\n\n return { step: step.value, numberOfSteps, nextStep, previousStep, jumpToStep }\n}\n\nexport function useMembers() {\n const { members } = useContext(LandingPageState)\n\n const addMember = () => {\n members.value = [...members.value, { participating: true, usePrimaryInfo: true }]\n }\n\n const ensureParticipant = () => {\n if (members.value.filter((member) => member.participating).length < 1) {\n addMember()\n }\n }\n\n return { members: members.value, addMember, ensureParticipant }\n}\n\nexport function useMembershipTemplates() {\n const { membershipTemplates } = useContext(LandingPageState)\n\n return membershipTemplates\n}\n\nexport function useClasses() {\n const { classes } = useContext(LandingPageState)\n\n const classesFor = (programId) => classes[programId.toString()]\n\n return { hasClasses: Boolean(classes), classesFor, required: classes?.required }\n}\n\nexport function useError() {\n const { errors } = useContext(LandingPageState)\n\n const setError = (value) => {\n errors.value = value\n }\n\n const clearError = (key = null) => {\n if (!key) {\n errors.value = {}\n\n return\n }\n\n delete errors.value[key]\n\n // eslint-disable-next-line no-self-assign\n errors.value = errors.value\n }\n\n return { errors: errors.value, setError, clearError }\n}\n\nexport function useTheme() {\n const { theme } = useContext(LandingPageState)\n\n return theme\n}\n\nexport function usePreview() {\n const { preview } = useContext(LandingPageState)\n\n return preview\n}\n\nfunction LandingPageCore() {\n const agreements = useAgreements()\n const merchandise = useMerchandise()\n const { step, numberOfSteps } = useStep()\n\n return (\n <div class=\"mt-6\">\n <div class=\"flex item-center gap-4 justify-between mb-4\">\n <div class=\"text-xl font-bold\">Sign Up</div>\n\n <div className=\"flex items-center gap-2\">\n <StepTracker />\n\n <Cart />\n </div>\n </div>\n\n {step === 1 && <SignUp />}\n {step === 2 && step < numberOfSteps && merchandise && <Merchandise />}\n {step === numberOfSteps - 1 && agreements && <Agreements />}\n {step === numberOfSteps && <Confirmation />}\n </div>\n )\n}\n\nexport function LandingPage({\n leadCaptureForm,\n guardianLeadCaptureForm,\n merchandise,\n theme,\n merchantAccount,\n agreements,\n membershipTemplates,\n classes,\n preview = false,\n}) {\n let numberOfSteps = 2\n\n if (merchandise) numberOfSteps += 1\n if (agreements) numberOfSteps += 1\n\n return (\n <LandingPageState.Provider\n value={{\n step: signal(1),\n numberOfSteps,\n members: signal([{ participating: true }]),\n errors: signal({}),\n leadCaptureForm,\n guardianLeadCaptureForm,\n agreements,\n merchandise,\n cart: signal(new Map()),\n familyCreation: false,\n theme,\n merchantAccount,\n membershipTemplates,\n classes,\n preview,\n }}\n >\n <LandingPageCore />\n </LandingPageState.Provider>\n )\n}\n", "import { options, Component, isValidElement } from \"preact\";\nimport { useRef, useMemo, useEffect } from \"preact/hooks\";\nimport {\n\tsignal,\n\tcomputed,\n\tbatch,\n\teffect,\n\tSignal,\n\ttype ReadonlySignal,\n\tuntracked,\n} from \"@preact/signals-core\";\nimport {\n\tVNode,\n\tOptionsTypes,\n\tHookFn,\n\tEffect,\n\tPropertyUpdater,\n\tAugmentedComponent,\n\tAugmentedElement as Element,\n} from \"./internal\";\n\nexport {\n\tsignal,\n\tcomputed,\n\tbatch,\n\teffect,\n\tSignal,\n\ttype ReadonlySignal,\n\tuntracked,\n};\n\nconst HAS_PENDING_UPDATE = 1 << 0;\nconst HAS_HOOK_STATE = 1 << 1;\nconst HAS_COMPUTEDS = 1 << 2;\n\n// Install a Preact options hook\nfunction hook<T extends OptionsTypes>(hookName: T, hookFn: HookFn<T>) {\n\t// @ts-ignore-next-line private options hooks usage\n\toptions[hookName] = hookFn.bind(null, options[hookName] || (() => {}));\n}\n\nlet currentComponent: AugmentedComponent | undefined;\nlet finishUpdate: (() => void) | undefined;\n\nfunction setCurrentUpdater(updater?: Effect) {\n\t// end tracking for the current update:\n\tif (finishUpdate) finishUpdate();\n\t// start tracking the new update:\n\tfinishUpdate = updater && updater._start();\n}\n\nfunction createUpdater(update: () => void) {\n\tlet updater!: Effect;\n\teffect(function (this: Effect) {\n\t\tupdater = this;\n\t});\n\tupdater._callback = update;\n\treturn updater;\n}\n\n/** @todo This may be needed for complex prop value detection. */\n// function isSignalValue(value: any): value is Signal {\n// \tif (typeof value !== \"object\" || value == null) return false;\n// \tif (value instanceof Signal) return true;\n// \t// @TODO: uncomment this when we land Reactive (ideally behind a brand check)\n// \t// for (let i in value) if (value[i] instanceof Signal) return true;\n// \treturn false;\n// }\n\n/**\n * A wrapper component that renders a Signal directly as a Text node.\n * @todo: in Preact 11, just decorate Signal with `type:null`\n */\nfunction SignalValue(this: AugmentedComponent, { data }: { data: Signal }) {\n\t// hasComputeds.add(this);\n\n\t// Store the props.data signal in another signal so that\n\t// passing a new signal reference re-runs the text computed:\n\tconst currentSignal = useSignal(data);\n\tcurrentSignal.value = data;\n\n\tconst s = useMemo(() => {\n\t\t// mark the parent component as having computeds so it gets optimized\n\t\tlet v = this.__v;\n\t\twhile ((v = v.__!)) {\n\t\t\tif (v.__c) {\n\t\t\t\tv.__c._updateFlags |= HAS_COMPUTEDS;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tthis._updater!._callback = () => {\n\t\t\tif (isValidElement(s.peek()) || this.base?.nodeType !== 3) {\n\t\t\t\tthis._updateFlags |= HAS_PENDING_UPDATE;\n\t\t\t\tthis.setState({});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t(this.base as Text).data = s.peek();\n\t\t};\n\n\t\treturn computed(() => {\n\t\t\tlet data = currentSignal.value;\n\t\t\tlet s = data.value;\n\t\t\treturn s === 0 ? 0 : s === true ? \"\" : s || \"\";\n\t\t});\n\t}, []);\n\n\treturn s.value;\n}\nSignalValue.displayName = \"_st\";\n\nObject.defineProperties(Signal.prototype, {\n\tconstructor: { configurable: true, value: undefined },\n\ttype: { configurable: true, value: SignalValue },\n\tprops: {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn { data: this };\n\t\t},\n\t},\n\t// Setting a VNode's _depth to 1 forces Preact to clone it before modifying:\n\t// https://github.com/preactjs/preact/blob/d7a433ee8463a7dc23a05111bb47de9ec729ad4d/src/diff/children.js#L77\n\t// @todo remove this for Preact 11\n\t__b: { configurable: true, value: 1 },\n});\n\n/** Inject low-level property/attribute bindings for Signals into Preact's diff */\nhook(OptionsTypes.DIFF, (old, vnode) => {\n\tif (typeof vnode.type === \"string\") {\n\t\tlet signalProps: Record<string, any> | undefined;\n\n\t\tlet props = vnode.props;\n\t\tfor (let i in props) {\n\t\t\tif (i === \"children\") continue;\n\n\t\t\tlet value = props[i];\n\t\t\tif (value instanceof Signal) {\n\t\t\t\tif (!signalProps) vnode.__np = signalProps = {};\n\t\t\t\tsignalProps[i] = value;\n\t\t\t\tprops[i] = value.peek();\n\t\t\t}\n\t\t}\n\t}\n\n\told(vnode);\n});\n\n/** Set up Updater before rendering a component */\nhook(OptionsTypes.RENDER, (old, vnode) => {\n\tsetCurrentUpdater();\n\n\tlet updater;\n\n\tlet component = vnode.__c;\n\tif (component) {\n\t\tcomponent._updateFlags &= ~HAS_PENDING_UPDATE;\n\n\t\tupdater = component._updater;\n\t\tif (updater === undefined) {\n\t\t\tcomponent._updater = updater = createUpdater(() => {\n\t\t\t\tcomponent._updateFlags |= HAS_PENDING_UPDATE;\n\t\t\t\tcomponent.setState({});\n\t\t\t});\n\t\t}\n\t}\n\n\tcurrentComponent = component;\n\tsetCurrentUpdater(updater);\n\told(vnode);\n});\n\n/** Finish current updater if a component errors */\nhook(OptionsTypes.CATCH_ERROR, (old, error, vnode, oldVNode) => {\n\tsetCurrentUpdater();\n\tcurrentComponent = undefined;\n\told(error, vnode, oldVNode);\n});\n\n/** Finish current updater after rendering any VNode */\nhook(OptionsTypes.DIFFED, (old, vnode) => {\n\tsetCurrentUpdater();\n\tcurrentComponent = undefined;\n\n\tlet dom: Element;\n\n\t// vnode._dom is undefined during string rendering,\n\t// so we use this to skip prop subscriptions during SSR.\n\tif (typeof vnode.type === \"string\" && (dom = vnode.__e as Element)) {\n\t\tlet props = vnode.__np;\n\t\tlet renderedProps = vnode.props;\n\t\tif (props) {\n\t\t\tlet updaters = dom._updaters;\n\t\t\tif (updaters) {\n\t\t\t\tfor (let prop in updaters) {\n\t\t\t\t\tlet updater = updaters[prop];\n\t\t\t\t\tif (updater !== undefined && !(prop in props)) {\n\t\t\t\t\t\tupdater._dispose();\n\t\t\t\t\t\t// @todo we could just always invoke _dispose() here\n\t\t\t\t\t\tupdaters[prop] = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tupdaters = {};\n\t\t\t\tdom._updaters = updaters;\n\t\t\t}\n\t\t\tfor (let prop in props) {\n\t\t\t\tlet updater = updaters[prop];\n\t\t\t\tlet signal = props[prop];\n\t\t\t\tif (updater === undefined) {\n\t\t\t\t\tupdater = createPropUpdater(dom, prop, signal, renderedProps);\n\t\t\t\t\tupdaters[prop] = updater;\n\t\t\t\t} else {\n\t\t\t\t\tupdater._update(signal, renderedProps);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\told(vnode);\n});\n\nfunction createPropUpdater(\n\tdom: Element,\n\tprop: string,\n\tpropSignal: Signal,\n\tprops: Record<string, any>\n): PropertyUpdater {\n\tconst setAsProperty =\n\t\tprop in dom &&\n\t\t// SVG elements need to go through `setAttribute` because they\n\t\t// expect things like SVGAnimatedTransformList instead of strings.\n\t\t// @ts-ignore\n\t\tdom.ownerSVGElement === undefined;\n\n\tconst changeSignal = signal(propSignal);\n\treturn {\n\t\t_update: (newSignal: Signal, newProps: typeof props) => {\n\t\t\tchangeSignal.value = newSignal;\n\t\t\tprops = newProps;\n\t\t},\n\t\t_dispose: effect(() => {\n\t\t\tconst value = changeSignal.value.value;\n\t\t\t// If Preact just rendered this value, don't render it again:\n\t\t\tif (props[prop] === value) return;\n\t\t\tprops[prop] = value;\n\t\t\tif (setAsProperty) {\n\t\t\t\t// @ts-ignore-next-line silly\n\t\t\t\tdom[prop] = value;\n\t\t\t} else if (value) {\n\t\t\t\tdom.setAttribute(prop, value);\n\t\t\t} else {\n\t\t\t\tdom.removeAttribute(prop);\n\t\t\t}\n\t\t}),\n\t};\n}\n\n/** Unsubscribe from Signals when unmounting components/vnodes */\nhook(OptionsTypes.UNMOUNT, (old, vnode: VNode) => {\n\tif (typeof vnode.type === \"string\") {\n\t\tlet dom = vnode.__e as Element | undefined;\n\t\t// vnode._dom is undefined during string rendering\n\t\tif (dom) {\n\t\t\tconst updaters = dom._updaters;\n\t\t\tif (updaters) {\n\t\t\t\tdom._updaters = undefined;\n\t\t\t\tfor (let prop in updaters) {\n\t\t\t\t\tlet updater = updaters[prop];\n\t\t\t\t\tif (updater) updater._dispose();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tlet component = vnode.__c;\n\t\tif (component) {\n\t\t\tconst updater = component._updater;\n\t\t\tif (updater) {\n\t\t\t\tcomponent._updater = undefined;\n\t\t\t\tupdater._dispose();\n\t\t\t}\n\t\t}\n\t}\n\told(vnode);\n});\n\n/** Mark components that use hook state so we can skip sCU optimization. */\nhook(OptionsTypes.HOOK, (old, component, index, type) => {\n\tif (type < 3 || type === 9)\n\t\t(component as AugmentedComponent)._updateFlags |= HAS_HOOK_STATE;\n\told(component, index, type);\n});\n\n/**\n * Auto-memoize components that use Signals/Computeds.\n * Note: Does _not_ optimize components that use hook/class state.\n */\nComponent.prototype.shouldComponentUpdate = function (\n\tthis: AugmentedComponent,\n\tprops,\n\tstate\n) {\n\t// @todo: Once preactjs/preact#3671 lands, this could just use `currentUpdater`:\n\tconst updater = this._updater;\n\tconst hasSignals = updater && updater._sources !== undefined;\n\n\t// let reason;\n\t// if (!hasSignals && !hasComputeds.has(this)) {\n\t// \treason = \"no signals or computeds\";\n\t// } else if (hasPendingUpdate.has(this)) {\n\t// \treason = \"has pending update\";\n\t// } else if (hasHookState.has(this)) {\n\t// \treason = \"has hook state\";\n\t// }\n\t// if (reason) {\n\t// \tif (!this) reason += \" (`this` bug)\";\n\t// \tconsole.log(\"not optimizing\", this?.constructor?.name, \": \", reason, {\n\t// \t\tdetails: {\n\t// \t\t\thasSignals,\n\t// \t\t\thasComputeds: hasComputeds.has(this),\n\t// \t\t\thasPendingUpdate: hasPendingUpdate.has(this),\n\t// \t\t\thasHookState: hasHookState.has(this),\n\t// \t\t\tdeps: Array.from(updater._deps),\n\t// \t\t\tupdater,\n\t// \t\t},\n\t// \t});\n\t// }\n\n\t// if this component used no signals or computeds, update:\n\tif (!hasSignals && !(this._updateFlags & HAS_COMPUTEDS)) return true;\n\n\t// if there is a pending re-render triggered from Signals,\n\t// or if there is hook or class state, update:\n\tif (this._updateFlags & (HAS_PENDING_UPDATE | HAS_HOOK_STATE)) return true;\n\n\t// @ts-ignore\n\tfor (let i in state) return true;\n\n\t// if any non-Signal props changed, update:\n\tfor (let i in props) {\n\t\tif (i !== \"__source\" && props[i] !== this.props[i]) return true;\n\t}\n\tfor (let i in this.props) if (!(i in props)) return true;\n\n\t// this is a purely Signal-driven component, don't update:\n\treturn false;\n};\n\nexport function useSignal<T>(value: T): Signal<T>;\nexport function useSignal<T = undefined>(): Signal<T | undefined>;\nexport function useSignal<T>(value?: T) {\n\treturn useMemo(() => signal<T | undefined>(value), []);\n}\n\nexport function useComputed<T>(compute: () => T) {\n\tconst $compute = useRef(compute);\n\t$compute.current = compute;\n\t(currentComponent as AugmentedComponent)._updateFlags |= HAS_COMPUTEDS;\n\treturn useMemo(() => computed<T>(() => $compute.current()), []);\n}\n\nexport function useSignalEffect(cb: () => void | (() => void)) {\n\tconst callback = useRef(cb);\n\tcallback.current = cb;\n\n\tuseEffect(() => {\n\t\treturn effect(() => callback.current());\n\t}, []);\n}\n\n/**\n * @todo Determine which Reactive implementation we'll be using.\n * @internal\n */\n// export function useReactive<T extends object>(value: T): Reactive<T> {\n// \treturn useMemo(() => reactive<T>(value), []);\n// }\n\n/**\n * @internal\n * Update a Reactive's using the properties of an object or other Reactive.\n * Also works for Signals.\n * @example\n * // Update a Reactive with Object.assign()-like syntax:\n * const r = reactive({ name: \"Alice\" });\n * update(r, { name: \"Bob\" });\n * update(r, { age: 42 }); // property 'age' does not exist in type '{ name?: string }'\n * update(r, 2); // '2' has no properties in common with '{ name?: string }'\n * console.log(r.name.value); // \"Bob\"\n *\n * @example\n * // Update a Reactive with the properties of another Reactive:\n * const A = reactive({ name: \"Alice\" });\n * const B = reactive({ name: \"Bob\", age: 42 });\n * update(A, B);\n * console.log(`${A.name} is ${A.age}`); // \"Bob is 42\"\n *\n * @example\n * // Update a signal with assign()-like syntax:\n * const s = signal(42);\n * update(s, \"hi\"); // Argument type 'string' not assignable to type 'number'\n * update(s, {}); // Argument type '{}' not assignable to type 'number'\n * update(s, 43);\n * console.log(s.value); // 43\n *\n * @param obj The Reactive or Signal to be updated\n * @param update The value, Signal, object or Reactive to update `obj` to match\n * @param overwrite If `true`, any properties `obj` missing from `update` are set to `undefined`\n */\n/*\nexport function update<T extends SignalOrReactive>(\n\tobj: T,\n\tupdate: Partial<Unwrap<T>>,\n\toverwrite = false\n) {\n\tif (obj instanceof Signal) {\n\t\tobj.value = peekValue(update);\n\t} else {\n\t\tfor (let i in update) {\n\t\t\tif (i in obj) {\n\t\t\t\tobj[i].value = peekValue(update[i]);\n\t\t\t} else {\n\t\t\t\tlet sig = signal(peekValue(update[i]));\n\t\t\t\tsig[KEY] = i;\n\t\t\t\tobj[i] = sig;\n\t\t\t}\n\t\t}\n\t\tif (overwrite) {\n\t\t\tfor (let i in obj) {\n\t\t\t\tif (!(i in update)) {\n\t\t\t\t\tobj[i].value = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n*/\n", "// An named symbol/brand for detecting Signal instances even when they weren't\n// created using the same signals library version.\nconst BRAND_SYMBOL = Symbol.for(\"preact-signals\");\n\n// Flags for Computed and Effect.\nconst RUNNING = 1 << 0;\nconst NOTIFIED = 1 << 1;\nconst OUTDATED = 1 << 2;\nconst DISPOSED = 1 << 3;\nconst HAS_ERROR = 1 << 4;\nconst TRACKING = 1 << 5;\n\n// A linked list node used to track dependencies (sources) and dependents (targets).\n// Also used to remember the source's last version number that the target saw.\ntype Node = {\n\t// A source whose value the target depends on.\n\t_source: Signal;\n\t_prevSource?: Node;\n\t_nextSource?: Node;\n\n\t// A target that depends on the source and should be notified when the source changes.\n\t_target: Computed | Effect;\n\t_prevTarget?: Node;\n\t_nextTarget?: Node;\n\n\t// The version number of the source that target has last seen. We use version numbers\n\t// instead of storing the source value, because source values can take arbitrary amount\n\t// of memory, and computeds could hang on to them forever because they're lazily evaluated.\n\t// Use the special value -1 to mark potentially unused but recyclable nodes.\n\t_version: number;\n\n\t// Used to remember & roll back the source's previous `._node` value when entering &\n\t// exiting a new evaluation context.\n\t_rollbackNode?: Node;\n};\n\nfunction startBatch() {\n\tbatchDepth++;\n}\n\nfunction endBatch() {\n\tif (batchDepth > 1) {\n\t\tbatchDepth--;\n\t\treturn;\n\t}\n\n\tlet error: unknown;\n\tlet hasError = false;\n\n\twhile (batchedEffect !== undefined) {\n\t\tlet effect: Effect | undefined = batchedEffect;\n\t\tbatchedEffect = undefined;\n\n\t\tbatchIteration++;\n\n\t\twhile (effect !== undefined) {\n\t\t\tconst next: Effect | undefined = effect._nextBatchedEffect;\n\t\t\teffect._nextBatchedEffect = undefined;\n\t\t\teffect._flags &= ~NOTIFIED;\n\n\t\t\tif (!(effect._flags & DISPOSED) && needsToRecompute(effect)) {\n\t\t\t\ttry {\n\t\t\t\t\teffect._callback();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!hasError) {\n\t\t\t\t\t\terror = err;\n\t\t\t\t\t\thasError = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\teffect = next;\n\t\t}\n\t}\n\tbatchIteration = 0;\n\tbatchDepth--;\n\n\tif (hasError) {\n\t\tthrow error;\n\t}\n}\n\n/**\n * Combine multiple value updates into one \"commit\" at the end of the provided callback.\n *\n * Batches can be nested and changes are only flushed once the outermost batch callback\n * completes.\n *\n * Accessing a signal that has been modified within a batch will reflect its updated\n * value.\n *\n * @param fn The callback function.\n * @returns The value returned by the callback.\n */\nfunction batch<T>(fn: () => T): T {\n\tif (batchDepth > 0) {\n\t\treturn fn();\n\t}\n\t/*@__INLINE__**/ startBatch();\n\ttry {\n\t\treturn fn();\n\t} finally {\n\t\tendBatch();\n\t}\n}\n\n// Currently evaluated computed or effect.\nlet evalContext: Computed | Effect | undefined = undefined;\n\n/**\n * Run a callback function that can access signal values without\n * subscribing to the signal updates.\n *\n * @param fn The callback function.\n * @returns The value returned by the callback.\n */\nfunction untracked<T>(fn: () => T): T {\n\tconst prevContext = evalContext;\n\tevalContext = undefined;\n\ttry {\n\t\treturn fn();\n\t} finally {\n\t\tevalContext = prevContext;\n\t}\n}\n\n// Effects collected into a batch.\nlet batchedEffect: Effect | undefined = undefined;\nlet batchDepth = 0;\nlet batchIteration = 0;\n\n// A global version number for signals, used for fast-pathing repeated\n// computed.peek()/computed.value calls when nothing has changed globally.\nlet globalVersion = 0;\n\nfunction addDependency(signal: Signal): Node | undefined {\n\tif (evalContext === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet node = signal._node;\n\tif (node === undefined || node._target !== evalContext) {\n\t\t/**\n\t\t * `signal` is a new dependency. Create a new dependency node, and set it\n\t\t * as the tail of the current context's dependency list. e.g:\n\t\t *\n\t\t * { A <-> B }\n\t\t * \u2191 \u2191\n\t\t * tail node (new)\n\t\t * \u2193\n\t\t * { A <-> B <-> C }\n\t\t * \u2191\n\t\t * tail (evalContext._sources)\n\t\t */\n\t\tnode = {\n\t\t\t_version: 0,\n\t\t\t_source: signal,\n\t\t\t_prevSource: evalContext._sources,\n\t\t\t_nextSource: undefined,\n\t\t\t_target: evalContext,\n\t\t\t_prevTarget: undefined,\n\t\t\t_nextTarget: undefined,\n\t\t\t_rollbackNode: node,\n\t\t};\n\n\t\tif (evalContext._sources !== undefined) {\n\t\t\tevalContext._sources._nextSource = node;\n\t\t}\n\t\tevalContext._sources = node;\n\t\tsignal._node = node;\n\n\t\t// Subscribe to change notifications from this dependency if we're in an effect\n\t\t// OR evaluating a computed signal that in turn has subscribers.\n\t\tif (evalContext._flags & TRACKING) {\n\t\t\tsignal._subscribe(node);\n\t\t}\n\t\treturn node;\n\t} else if (node._version === -1) {\n\t\t// `signal` is an existing dependency from a previous evaluation. Reuse it.\n\t\tnode._version = 0;\n\n\t\t/**\n\t\t * If `node` is not already the current tail of the dependency list (i.e.\n\t\t * there is a next node in the list), then make the `node` the new tail. e.g:\n\t\t *\n\t\t * { A <-> B <-> C <-> D }\n\t\t * \u2191 \u2191\n\t\t * node \u250C\u2500\u2500\u2500 tail (evalContext._sources)\n\t\t * \u2514\u2500\u2500\u2500\u2500\u2500\u2502\u2500\u2500\u2500\u2500\u2500\u2510\n\t\t * \u2193 \u2193\n\t\t * { A <-> C <-> D <-> B }\n\t\t * \u2191\n\t\t * tail (evalContext._sources)\n\t\t */\n\t\tif (node._nextSource !== undefined) {\n\t\t\tnode._nextSource._prevSource = node._prevSource;\n\n\t\t\tif (node._prevSource !== undefined) {\n\t\t\t\tnode._prevSource._nextSource = node._nextSource;\n\t\t\t}\n\n\t\t\tnode._prevSource = evalContext._sources;\n\t\t\tnode._nextSource = undefined;\n\n\t\t\tevalContext._sources!._nextSource = node;\n\t\t\tevalContext._sources = node;\n\t\t}\n\n\t\t// We can assume that the currently evaluated effect / computed signal is already\n\t\t// subscribed to change notifications from `signal` if needed.\n\t\treturn node;\n\t}\n\treturn undefined;\n}\n\n/**\n * The base class for plain and computed signals.\n */\n// @ts-ignore: \"Cannot redeclare exported variable 'Signal'.\"\n//\n// A function with the same name is defined later, so we need to ignore TypeScript's\n// warning about a redeclared variable.\n//\n// The class is declared here, but later implemented with ES5-style prototypes.\n// This enables better control of the transpiled output size.\ndeclare class Signal<T = any> {\n\t/** @internal */\n\t_value: unknown;\n\n\t/**\n\t * @internal\n\t * Version numbers should always be >= 0, because the special value -1 is used\n\t * by Nodes to signify potentially unused but recyclable nodes.\n\t */\n\t_version: number;\n\n\t/** @internal */\n\t_node?: Node;\n\n\t/** @internal */\n\t_targets?: Node;\n\n\tconstructor(value?: T);\n\n\t/** @internal */\n\t_refresh(): boolean;\n\n\t/** @internal */\n\t_subscribe(node: Node): void;\n\n\t/** @internal */\n\t_unsubscribe(node: Node): void;\n\n\tsubscribe(fn: (value: T) => void): () => void;\n\n\tvalueOf(): T;\n\n\ttoString(): string;\n\n\ttoJSON(): T;\n\n\tpeek(): T;\n\n\tbrand: typeof BRAND_SYMBOL;\n\n\tget value(): T;\n\tset value(value: T);\n}\n\n/** @internal */\n// @ts-ignore: \"Cannot redeclare exported variable 'Signal'.\"\n//\n// A class with the same name has already been declared, so we need to ignore\n// TypeScript's warning about a redeclared variable.\n//\n// The previously declared class is implemented here with ES5-style prototypes.\n// This enables better control of the transpiled output size.\nfunction Signal(this: Signal, value?: unknown) {\n\tthis._value = value;\n\tthis._version = 0;\n\tthis._node = undefined;\n\tthis._targets = undefined;\n}\n\nSignal.prototype.brand = BRAND_SYMBOL;\n\nSignal.prototype._refresh = function () {\n\treturn true;\n};\n\nSignal.prototype._subscribe = function (node) {\n\tif (this._targets !== node && node._prevTarget === undefined) {\n\t\tnode._nextTarget = this._targets;\n\t\tif (this._targets !== undefined) {\n\t\t\tthis._targets._prevTarget = node;\n\t\t}\n\t\tthis._targets = node;\n\t}\n};\n\nSignal.prototype._unsubscribe = function (node) {\n\t// Only run the unsubscribe step if the signal has any subscribers to begin with.\n\tif (this._targets !== undefined) {\n\t\tconst prev = node._prevTarget;\n\t\tconst next = node._nextTarget;\n\t\tif (prev !== undefined) {\n\t\t\tprev._nextTarget = next;\n\t\t\tnode._prevTarget = undefined;\n\t\t}\n\t\tif (next !== undefined) {\n\t\t\tnext._prevTarget = prev;\n\t\t\tnode._nextTarget = undefined;\n\t\t}\n\t\tif (node === this._targets) {\n\t\t\tthis._targets = next;\n\t\t}\n\t}\n};\n\nSignal.prototype.subscribe = function (fn) {\n\treturn effect(() => {\n\t\tconst value = this.value;\n\n\t\tconst prevContext = evalContext;\n\t\tevalContext = undefined;\n\t\ttry {\n\t\t\tfn(value);\n\t\t} finally {\n\t\t\tevalContext = prevContext;\n\t\t}\n\t});\n};\n\nSignal.prototype.valueOf = function () {\n\treturn this.value;\n};\n\nSignal.prototype.toString = function () {\n\treturn this.value + \"\";\n};\n\nSignal.prototype.toJSON = function () {\n\treturn this.value;\n};\n\nSignal.prototype.peek = function () {\n\tconst prevContext = evalContext;\n\tevalContext = undefined;\n\ttry {\n\t\treturn this.value;\n\t} finally {\n\t\tevalContext = prevContext;\n\t}\n};\n\nObject.defineProperty(Signal.prototype, \"value\", {\n\tget(this: Signal) {\n\t\tconst node = addDependency(this);\n\t\tif (node !== undefined) {\n\t\t\tnode._version = this._version;\n\t\t}\n\t\treturn this._value;\n\t},\n\tset(this: Signal, value) {\n\t\tif (value !== this._value) {\n\t\t\tif (batchIteration > 100) {\n\t\t\t\tthrow new Error(\"Cycle detected\");\n\t\t\t}\n\n\t\t\tthis._value = value;\n\t\t\tthis._version++;\n\t\t\tglobalVersion++;\n\n\t\t\t/**@__INLINE__*/ startBatch();\n\t\t\ttry {\n\t\t\t\tfor (\n\t\t\t\t\tlet node = this._targets;\n\t\t\t\t\tnode !== undefined;\n\t\t\t\t\tnode = node._nextTarget\n\t\t\t\t) {\n\t\t\t\t\tnode._target._notify();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tendBatch();\n\t\t\t}\n\t\t}\n\t},\n});\n\n/**\n * Create a new plain signal.\n *\n * @param value The initial value for the signal.\n * @returns A new signal.\n */\nexport function signal<T>(value: T): Signal<T>;\nexport function signal<T = undefined>(): Signal<T | undefined>;\nexport function signal<T>(value?: T): Signal<T> {\n\treturn new Signal(value);\n}\n\nfunction needsToRecompute(target: Computed | Effect): boolean {\n\t// Check the dependencies for changed values. The dependency list is already\n\t// in order of use. Therefore if multiple dependencies have changed values, only\n\t// the first used dependency is re-evaluated at this point.\n\tfor (\n\t\tlet node = target._sources;\n\t\tnode !== undefined;\n\t\tnode = node._nextSource\n\t) {\n\t\t// If there's a new version of the dependency before or after refreshing,\n\t\t// or the dependency has something blocking it from refreshing at all (e.g. a\n\t\t// dependency cycle), then we need to recompute.\n\t\tif (\n\t\t\tnode._source._version !== node._version ||\n\t\t\t!node._source._refresh() ||\n\t\t\tnode._source._version !== node._version\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t}\n\t// If none of the dependencies have changed values since last recompute then\n\t// there's no need to recompute.\n\treturn false;\n}\n\nfunction prepareSources(target: Computed | Effect) {\n\t/**\n\t * 1. Mark all current sources as re-usable nodes (version: -1)\n\t * 2. Set a rollback node if the current node is being used in a different context\n\t * 3. Point 'target._sources' to the tail of the doubly-linked list, e.g:\n\t *\n\t * { undefined <- A <-> B <-> C -> undefined }\n\t * \u2191 \u2191\n\t * \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\t * target._sources = A; (node is head) \u2502\n\t * \u2193 \u2502\n\t * target._sources = C; (node is tail) \u2500\u2518\n\t */\n\tfor (\n\t\tlet node = target._sources;\n\t\tnode !== undefined;\n\t\tnode = node._nextSource\n\t) {\n\t\tconst rollbackNode = node._source._node;\n\t\tif (rollbackNode !== undefined) {\n\t\t\tnode._rollbackNode = rollbackNode;\n\t\t}\n\t\tnode._source._node = node;\n\t\tnode._version = -1;\n\n\t\tif (node._nextSource === undefined) {\n\t\t\ttarget._sources = node;\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nfunction cleanupSources(target: Computed | Effect) {\n\tlet node = target._sources;\n\tlet head = undefined;\n\n\t/**\n\t * At this point 'target._sources' points to the tail of the doubly-linked list.\n\t * It contains all existing sources + new sources in order of use.\n\t * Iterate backwards until we find the head node while dropping old dependencies.\n\t */\n\twhile (node !== undefined) {\n\t\tconst prev = node._prevSource;\n\n\t\t/**\n\t\t * The node was not re-used, unsubscribe from its change notifications and remove itself\n\t\t * from the doubly-linked list. e.g:\n\t\t *\n\t\t * { A <-> B <-> C }\n\t\t * \u2193\n\t\t * { A <-> C }\n\t\t */\n\t\tif (node._version === -1) {\n\t\t\tnode._source._unsubscribe(node);\n\n\t\t\tif (prev !== undefined) {\n\t\t\t\tprev._nextSource = node._nextSource;\n\t\t\t}\n\t\t\tif (node._nextSource !== undefined) {\n\t\t\t\tnode._nextSource._prevSource = prev;\n\t\t\t}\n\t\t} else {\n\t\t\t/**\n\t\t\t * The new head is the last node seen which wasn't removed/unsubscribed\n\t\t\t * from the doubly-linked list. e.g:\n\t\t\t *\n\t\t\t * { A <-> B <-> C }\n\t\t\t * \u2191 \u2191 \u2191\n\t\t\t * \u2502 \u2502 \u2514 head = node\n\t\t\t * \u2502 \u2514 head = node\n\t\t\t * \u2514 head = node\n\t\t\t */\n\t\t\thead = node;\n\t\t}\n\n\t\tnode._source._node = node._rollbackNode;\n\t\tif (node._rollbackNode !== undefined) {\n\t\t\tnode._rollbackNode = undefined;\n\t\t}\n\n\t\tnode = prev;\n\t}\n\n\ttarget._sources = head;\n}\n\ndeclare class Computed<T = any> extends Signal<T> {\n\t_fn: () => T;\n\t_sources?: Node;\n\t_globalVersion: number;\n\t_flags: number;\n\n\tconstructor(fn: () => T);\n\n\t_notify(): void;\n\tget value(): T;\n}\n\nfunction Computed(this: Computed, fn: () => unknown) {\n\tSignal.call(this, undefined);\n\n\tthis._fn = fn;\n\tthis._sources = undefined;\n\tthis._globalVersion = globalVersion - 1;\n\tthis._flags = OUTDATED;\n}\n\nComputed.prototype = new Signal() as Computed;\n\nComputed.prototype._refresh = function () {\n\tthis._flags &= ~NOTIFIED;\n\n\tif (this._flags & RUNNING) {\n\t\treturn false;\n\t}\n\n\t// If this computed signal has subscribed to updates from its dependencies\n\t// (TRACKING flag set) and none of them have notified about changes (OUTDATED\n\t// flag not set), then the computed value can't have changed.\n\tif ((this._flags & (OUTDATED | TRACKING)) === TRACKING) {\n\t\treturn true;\n\t}\n\tthis._flags &= ~OUTDATED;\n\n\tif (this._globalVersion === globalVersion) {\n\t\treturn true;\n\t}\n\tthis._globalVersion = globalVersion;\n\n\t// Mark this computed signal running before checking the dependencies for value\n\t// changes, so that the RUNNING flag can be used to notice cyclical dependencies.\n\tthis._flags |= RUNNING;\n\tif (this._version > 0 && !needsToRecompute(this)) {\n\t\tthis._flags &= ~RUNNING;\n\t\treturn true;\n\t}\n\n\tconst prevContext = evalContext;\n\ttry {\n\t\tprepareSources(this);\n\t\tevalContext = this;\n\t\tconst value = this._fn();\n\t\tif (\n\t\t\tthis._flags & HAS_ERROR ||\n\t\t\tthis._value !== value ||\n\t\t\tthis._version === 0\n\t\t) {\n\t\t\tthis._value = value;\n\t\t\tthis._flags &= ~HAS_ERROR;\n\t\t\tthis._version++;\n\t\t}\n\t} catch (err) {\n\t\tthis._value = err;\n\t\tthis._flags |= HAS_ERROR;\n\t\tthis._version++;\n\t}\n\tevalContext = prevContext;\n\tcleanupSources(this);\n\tthis._flags &= ~RUNNING;\n\treturn true;\n};\n\nComputed.prototype._subscribe = function (node) {\n\tif (this._targets === undefined) {\n\t\tthis._flags |= OUTDATED | TRACKING;\n\n\t\t// A computed signal subscribes lazily to its dependencies when it\n\t\t// gets its first subscriber.\n\t\tfor (\n\t\t\tlet node = this._sources;\n\t\t\tnode !== undefined;\n\t\t\tnode = node._nextSource\n\t\t) {\n\t\t\tnode._source._subscribe(node);\n\t\t}\n\t}\n\tSignal.prototype._subscribe.call(this, node);\n};\n\nComputed.prototype._unsubscribe = function (node) {\n\t// Only run the unsubscribe step if the computed signal has any subscribers.\n\tif (this._targets !== undefined) {\n\t\tSignal.prototype._unsubscribe.call(this, node);\n\n\t\t// Computed signal unsubscribes from its dependencies when it loses its last subscriber.\n\t\t// This makes it possible for unreferences subgraphs of computed signals to get garbage collected.\n\t\tif (this._targets === undefined) {\n\t\t\tthis._flags &= ~TRACKING;\n\n\t\t\tfor (\n\t\t\t\tlet node = this._sources;\n\t\t\t\tnode !== undefined;\n\t\t\t\tnode = node._nextSource\n\t\t\t) {\n\t\t\t\tnode._source._unsubscribe(node);\n\t\t\t}\n\t\t}\n\t}\n};\n\nComputed.prototype._notify = function () {\n\tif (!(this._flags & NOTIFIED)) {\n\t\tthis._flags |= OUTDATED | NOTIFIED;\n\n\t\tfor (\n\t\t\tlet node = this._targets;\n\t\t\tnode !== undefined;\n\t\t\tnode = node._nextTarget\n\t\t) {\n\t\t\tnode._target._notify();\n\t\t}\n\t}\n};\n\nObject.defineProperty(Computed.prototype, \"value\", {\n\tget(this: Computed) {\n\t\tif (this._flags & RUNNING) {\n\t\t\tthrow new Error(\"Cycle detected\");\n\t\t}\n\t\tconst node = addDependency(this);\n\t\tthis._refresh();\n\t\tif (node !== undefined) {\n\t\t\tnode._version = this._version;\n\t\t}\n\t\tif (this._flags & HAS_ERROR) {\n\t\t\tthrow this._value;\n\t\t}\n\t\treturn this._value;\n\t},\n});\n\n/**\n * An interface for read-only signals.\n */\ninterface ReadonlySignal<T = any> {\n\treadonly value: T;\n\tpeek(): T;\n\n\tsubscribe(fn: (value: T) => void): () => void;\n\tvalueOf(): T;\n\ttoString(): string;\n\ttoJSON(): T;\n\tbrand: typeof BRAND_SYMBOL;\n}\n\n/**\n * Create a new signal that is computed based on the values of other signals.\n *\n * The returned computed signal is read-only, and its value is automatically\n * updated when any signals accessed from within the callback function change.\n *\n * @param fn The effect callback.\n * @returns A new read-only signal.\n */\nfunction computed<T>(fn: () => T): ReadonlySignal<T> {\n\treturn new Computed(fn);\n}\n\nfunction cleanupEffect(effect: Effect) {\n\tconst cleanup = effect._cleanup;\n\teffect._cleanup = undefined;\n\n\tif (typeof cleanup === \"function\") {\n\t\t/*@__INLINE__**/ startBatch();\n\n\t\t// Run cleanup functions always outside of any context.\n\t\tconst prevContext = evalContext;\n\t\tevalContext = undefined;\n\t\ttry {\n\t\t\tcleanup();\n\t\t} catch (err) {\n\t\t\teffect._flags &= ~RUNNING;\n\t\t\teffect._flags |= DISPOSED;\n\t\t\tdisposeEffect(effect);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tevalContext = prevContext;\n\t\t\tendBatch();\n\t\t}\n\t}\n}\n\nfunction disposeEffect(effect: Effect) {\n\tfor (\n\t\tlet node = effect._sources;\n\t\tnode !== undefined;\n\t\tnode = node._nextSource\n\t) {\n\t\tnode._source._unsubscribe(node);\n\t}\n\teffect._fn = undefined;\n\teffect._sources = undefined;\n\n\tcleanupEffect(effect);\n}\n\nfunction endEffect(this: Effect, prevContext?: Computed | Effect) {\n\tif (evalContext !== this) {\n\t\tthrow new Error(\"Out-of-order effect\");\n\t}\n\tcleanupSources(this);\n\tevalContext = prevContext;\n\n\tthis._flags &= ~RUNNING;\n\tif (this._flags & DISPOSED) {\n\t\tdisposeEffect(this);\n\t}\n\tendBatch();\n}\n\ntype EffectFn = () => void | (() => void);\n\ndeclare class Effect {\n\t_fn?: EffectFn;\n\t_cleanup?: () => void;\n\t_sources?: Node;\n\t_nextBatchedEffect?: Effect;\n\t_flags: number;\n\n\tconstructor(fn: EffectFn);\n\n\t_callback(): void;\n\t_start(): () => void;\n\t_notify(): void;\n\t_dispose(): void;\n}\n\nfunction Effect(this: Effect, fn: EffectFn) {\n\tthis._fn = fn;\n\tthis._cleanup = undefined;\n\tthis._sources = undefined;\n\tthis._nextBatchedEffect = undefined;\n\tthis._flags = TRACKING;\n}\n\nEffect.prototype._callback = function () {\n\tconst finish = this._start();\n\ttry {\n\t\tif (this._flags & DISPOSED) return;\n\t\tif (this._fn === undefined) return;\n\n\t\tconst cleanup = this._fn();\n\t\tif (typeof cleanup === \"function\") {\n\t\t\tthis._cleanup = cleanup;\n\t\t}\n\t} finally {\n\t\tfinish();\n\t}\n};\n\nEffect.prototype._start = function () {\n\tif (this._flags & RUNNING) {\n\t\tthrow new Error(\"Cycle detected\");\n\t}\n\tthis._flags |= RUNNING;\n\tthis._flags &= ~DISPOSED;\n\tcleanupEffect(this);\n\tprepareSources(this);\n\n\t/*@__INLINE__**/ startBatch();\n\tconst prevContext = evalContext;\n\tevalContext = this;\n\treturn endEffect.bind(this, prevContext);\n};\n\nEffect.prototype._notify = function () {\n\tif (!(this._flags & NOTIFIED)) {\n\t\tthis._flags |= NOTIFIED;\n\t\tthis._nextBatchedEffect = batchedEffect;\n\t\tbatchedEffect = this;\n\t}\n};\n\nEffect.prototype._dispose = function () {\n\tthis._flags |= DISPOSED;\n\n\tif (!(this._flags & RUNNING)) {\n\t\tdisposeEffect(this);\n\t}\n};\n\n/**\n * Create an effect to run arbitrary code in response to signal changes.\n *\n * An effect tracks which signals are accessed within the given callback\n * function `fn`, and re-runs the callback when those signals change.\n *\n * The callback may return a cleanup function. The cleanup function gets\n * run once, either when the callback is next called or when the effect\n * gets disposed, whichever happens first.\n *\n * @param fn The effect callback.\n * @returns A function for disposing the effect.\n */\nfunction effect(fn: EffectFn): () => void {\n\tconst effect = new Effect(fn);\n\ttry {\n\t\teffect._callback();\n\t} catch (err) {\n\t\teffect._dispose();\n\t\tthrow err;\n\t}\n\t// Return a bound function instead of a wrapper like `() => effect._dispose()`,\n\t// because bound functions seem to be just as fast and take up a lot less memory.\n\treturn effect._dispose.bind(effect);\n}\n\nexport { computed, effect, batch, untracked, Signal, ReadonlySignal };\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { LeadCaptureForm } from '../lead_capture_form'\nimport {\n useLeadCaptureForm,\n useMembers,\n useStep,\n useFamilyCreation,\n useMembershipTemplates,\n useError,\n useClasses,\n usePreview,\n} from '../landing_page'\nimport { useComputed, useSignal, useSignalEffect } from '@preact/signals'\nimport { MembershipSelection } from './membership'\nimport { ClassSelection } from './classes'\n\nexport function SignUp() {\n const membershipTemplates = useMembershipTemplates()\n const { classes } = useClasses()\n const { members, ensureParticipant } = useMembers()\n const { nextStep } = useStep()\n const { setError } = useError()\n const familyCreation = useFamilyCreation()\n const isPreview = usePreview()\n\n // When we do multiple people, we'll want to move these into a\n // per-person Context.\n const primaryMember = members[0]\n const participants = members.slice(1)\n const participating = useSignal(primaryMember.participating)\n const showParticipants = !familyCreation && !participating.value\n const membershipSelected = useSignal(!membershipTemplates)\n const classSelected = useSignal(!classes)\n\n const nextStepUnlessInvalid = (event) => {\n event.preventDefault()\n\n if (!membershipSelected.value) {\n setError({ membership: 'Select a Membership' })\n return\n }\n\n if (!isPreview && !classSelected.value) {\n setError({ class: 'Select a Class' })\n return\n }\n\n if (event.target.checkValidity()) {\n nextStep()\n }\n }\n\n useSignalEffect(() => (primaryMember.participating = participating.value), [participating])\n\n useSignalEffect(() => {\n if (!participating.value) {\n ensureParticipant()\n }\n }, [participating])\n\n return (\n <form onSubmit={nextStepUnlessInvalid}>\n <div class=\"p-3 bg-[var(--shadow-color)] space-y-3\">\n <PrimaryMember\n member={primaryMember}\n participating={participating}\n membershipSelected={membershipSelected}\n classSelected={classSelected}\n />\n\n {showParticipants &&\n participants.map((member) => (\n <ParticipantMember\n member={member}\n membershipSelected={membershipSelected}\n classSelected={classSelected}\n />\n ))}\n </div>\n <div class=\"flex justify-between items-center gap-4 mt-4 pb-4\">\n <div class=\"label required text-[var(--secondary-color)]\">required</div>\n\n <button class=\"btn\" type=\"submit\">\n NEXT\n </button>\n </div>\n </form>\n )\n}\n\nfunction PrimaryMember({ member, participating, membershipSelected, classSelected }) {\n const { leadCaptureForm, guardianLeadCaptureForm } = useLeadCaptureForm()\n\n return (\n <>\n {guardianLeadCaptureForm && (\n <div class=\"p-3 bg-[var(--tertiary-color)]\">\n <div class=\"space-y-1\">\n <div class=\"font-medium uppercase tracking-widest required\">Who are you signing up?</div>\n\n <div class=\"space-y-0.5\">\n <div class=\"flex gap-2 items-center\">\n <input\n id=\"participating\"\n type=\"radio\"\n class=\"radio radio-sm\"\n checked={participating.value}\n onChange={({ target }) => (participating.value = target.checked)}\n />\n <label for=\"participating\">Myself (18+)</label>\n </div>\n <div class=\"flex gap-2 items-center\">\n <input\n id=\"not-participating\"\n type=\"radio\"\n class=\"radio radio-sm\"\n checked={!participating.value}\n onChange={({ target }) => (participating.value = !target.checked)}\n />\n <label for=\"not-participating\">Participant under 18</label>\n </div>\n </div>\n </div>\n </div>\n )}\n\n <div class=\"p-3 bg-[var(--tertiary-color)]\">\n <div class=\"text-base font-bold\">\n {participating.value ? 'Your contact info' : 'Guardian contact info'}\n </div>\n\n <div class=\"space-y-3\">\n {guardianLeadCaptureForm ? (\n <>\n {participating.value ? (\n <ParticipantInfo\n member={member}\n leadCaptureForm={leadCaptureForm}\n membershipSelected={membershipSelected}\n classSelected={classSelected}\n />\n ) : (\n <LeadCaptureForm member={member} leadCaptureForm={guardianLeadCaptureForm} />\n )}\n </>\n ) : (\n <ParticipantInfo\n member={member}\n leadCaptureForm={leadCaptureForm}\n membershipSelected={membershipSelected}\n classSelected={classSelected}\n />\n )}\n </div>\n </div>\n </>\n )\n}\n\nfunction ParticipantMember({ member, membershipSelected, classSelected }) {\n let { leadCaptureForm, guardianLeadCaptureForm } = useLeadCaptureForm()\n\n const usePrimaryInfo = useSignal(member.usePrimaryInfo)\n\n useSignalEffect(() => (member.usePrimaryInfo = usePrimaryInfo.value), [usePrimaryInfo])\n\n if (usePrimaryInfo.value) {\n leadCaptureForm = leadCaptureForm.filter((field) => {\n if (!guardianLeadCaptureForm.map((f) => f.key).includes(field.key)) {\n return true\n }\n\n return !['phone', 'email', 'address'].includes(field.key)\n })\n }\n\n return (\n <div className=\"p-3 bg-[var(--tertiary-color)]\">\n <div class=\"text-base font-bold mb-3\">Participant info</div>\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-2\">\n <span class={usePrimaryInfo.value ? '' : 'text-[var(--secondary-color-light)]'}>\n Use Guardian contact info\n </span>\n <input\n type=\"checkbox\"\n class=\"toggle toggle-xs\"\n checked={usePrimaryInfo.value}\n onChange={({ target }) => (usePrimaryInfo.value = target.checked)}\n />\n </div>\n\n <ParticipantInfo\n member={member}\n leadCaptureForm={leadCaptureForm}\n membershipSelected={membershipSelected}\n classSelected={classSelected}\n />\n </div>\n </div>\n )\n}\n\nfunction ParticipantInfo({ member, leadCaptureForm, membershipSelected, classSelected }) {\n return (\n <>\n <LeadCaptureForm member={member} leadCaptureForm={leadCaptureForm} />\n\n <MembershipAndClassSelection\n member={member}\n membershipSelected={membershipSelected}\n classSelected={classSelected}\n />\n </>\n )\n}\n\nfunction MembershipAndClassSelection({ member, membershipSelected, classSelected }) {\n const membershipTemplates = useMembershipTemplates()\n const { hasClasses, classesFor, required } = useClasses()\n\n const selectedTemplate = useSignal(member.membershipTemplate)\n const selectedProgram = useSignal(member.program)\n const availableClasses = useComputed(() => {\n if (!hasClasses) return\n if (!membershipSelected.value) return\n if (!selectedTemplate.value) return\n if (!selectedProgram.value) return\n\n return classesFor(selectedProgram.value.id)\n })\n\n const current = availableClasses.value?.find(({ name }) => name === member.class?.name)\n const selectedClass = useSignal(null)\n if (current) {\n selectedClass.value = current\n }\n\n useSignalEffect(() => {\n if (required || Boolean(selectedClass.value)) {\n classSelected.value = !availableClasses.value\n return\n }\n\n classSelected.value = true\n })\n\n return (\n <>\n {membershipTemplates && (\n <MembershipSelection\n member={member}\n completed={membershipSelected}\n selectedTemplate={selectedTemplate}\n selectedProgram={selectedProgram}\n />\n )}\n {availableClasses.value && (\n <ClassSelection\n member={member}\n completed={classSelected}\n availableClasses={availableClasses}\n selectedClass={selectedClass}\n selectedProgram={selectedProgram}\n />\n )}\n </>\n )\n}\n", "import React, { Fragment } from 'preact/compat'\nimport { h } from 'preact'\nimport { AddressField } from './address_field'\nimport { useError } from './landing_page'\nimport { PhoneFieldWithSms, PhoneField } from './phone_field'\nimport { Select } from './select'\nimport { useId } from 'preact/hooks'\n\nexport function LeadCaptureForm({ member = {}, leadCaptureForm }) {\n const { errors } = useError()\n const id = useId()\n\n return (\n <>\n {leadCaptureForm.map((field) => (\n <div key={field.key}>\n <label class=\"flex items-center gap-1 mb-1\" for={`${id}-${field.key}`}>\n <span\n class={`font-medium uppercase tracking-widest ${\n (field.key === 'name' || field.required) && 'required'\n }`}\n >\n {field.label}\n </span>\n {!field.required && <span class=\"text-[var(--secondary-color-light)]\">(Optional)</span>}\n </label>\n {renderField(field, member, errors, `${id}-${field.key}`)}\n </div>\n ))}\n </>\n )\n}\n\nfunction renderField(field, member, errors, id) {\n if (field.key === 'phone') {\n return (\n <PhoneFieldWithSms\n id={id}\n number={member.phone?.number}\n sendSms={member.phone?.send_sms}\n required={field.required}\n errors={errors}\n numberChange={(number) => {\n member.phone ||= {}\n member.phone.number = number\n }}\n smsChange={(sendSms) => {\n member.phone ||= {}\n member.phone.send_sms = sendSms\n }}\n />\n )\n }\n\n if (field.type === 'tel') {\n return (\n <PhoneField\n id={id}\n number={member.phone?.number}\n required={field.required}\n numberChange={(number) => {\n member[field.key] = number\n }}\n />\n )\n }\n\n if (field.key === 'address') {\n return (\n <AddressField\n id={id}\n address={member.address || {}}\n required={field.required}\n addressChange={(address) => (member.address = address)}\n />\n )\n }\n\n if (field.type === 'select') {\n return <LCFSelect id={id} field={field} member={member} />\n }\n\n return (\n <input\n id={id}\n type={field.type}\n class={`input input-border ${field.type === 'date' ? 'h-10' : ''}`}\n placeholder=\"Type here\"\n value={member[field.key] || ''}\n required={field.required}\n onInput={({ target }) => (member[field.key] = target.value)}\n />\n )\n}\n\nfunction LCFSelect({ field, id, member }) {\n return (\n <Select\n id={id}\n type={field.type}\n required={field.required}\n onInput={({ target }) => (member[field.key] = target.value)}\n >\n <option selected disabled hidden value={field.required ? '' : null}>\n Select\n </option>\n\n {field.options?.map((option) => (\n <option value={option} selected={member[field.key] === option}>\n {option}\n </option>\n ))}\n </Select>\n )\n}\n", "import React, { useEffect, useRef } from 'preact/compat'\nimport { h, Fragment } from 'preact'\n\nexport function AddressField({ address, addressChange, required, id }) {\n const controllerRef = useRef(null)\n const addressRefs = useRef({})\n\n const hiddenFields = ['street', 'city', 'state', 'zip', 'country', 'lat', 'lng']\n\n const addressChangeCallback = () => {\n const newAddress = {}\n\n newAddress.full = addressRefs.current.full?.value\n newAddress.street_2 = addressRefs.current.street_2?.value\n ;['street', 'city', 'state', 'zip', 'country', 'lat', 'lng'].forEach((name) => {\n newAddress[name] = addressRefs.current[name]?.value\n })\n\n addressChange(newAddress)\n }\n\n useEffect(() => {\n const controllerElement = controllerRef.current\n\n controllerElement?.addEventListener('address-field--component:input', addressChangeCallback)\n\n return () => {\n controllerElement?.removeEventListener('address-field--component:input', addressChangeCallback)\n }\n }, [addressChange])\n\n return (\n <div\n ref={controllerRef}\n class=\"address-field\"\n data-controller=\"address-field--component\"\n data-address-field--component-message-value=\"Please select an address from the dropdown before proceeding.\"\n >\n <div className=\"visible-fields\">\n <input\n id={id}\n type=\"text\"\n class=\"input input-border\"\n placeholder=\"Type here\"\n value={address.full}\n required={required}\n data-address-field--component-target=\"autocomplete\"\n data-action=\"address-field--component#clearHiddenFields\"\n ref={(el) => (addressRefs.current.full = el)}\n />\n <input\n type=\"text\"\n class=\"input input-border\"\n placeholder=\"(Optional) Apartment/Suite number, etc.\"\n value={address.street_2}\n ref={(el) => (addressRefs.current.street_2 = el)}\n onInput={addressChangeCallback}\n />\n </div>\n\n {hiddenFields.map((name) => (\n <input\n type=\"hidden\"\n value={address[name]}\n data-address-field--component-target={name}\n ref={(el) => (addressRefs.current[name] = el)}\n />\n ))}\n </div>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { Error } from './landing_pages/error'\n\nexport function PhoneFieldWithSms({ number, sendSms, numberChange, smsChange, required, errors, id }) {\n const errorPresent = errors['contact_info.primary_phone_number.number']\n\n return (\n <>\n <div class=\" flex items-center gap-3\">\n <div\n class=\"phone-input-field\"\n data-controller=\"phone-field--component\"\n data-phone-field--component-name-value=\"phone\"\n >\n <input\n id={id}\n type=\"tel\"\n class={`input input-border !w-40 ${errorPresent && 'input-danger'}`}\n placeholder=\"201-555-0123\"\n required={required}\n data-phone-field--component-target=\"input\"\n value={number}\n onInput={({ target }) => setTimeout(() => numberChange(target.nextElementSibling.value))}\n onBlur={({ target }) => numberChange(target.nextElementSibling.value)}\n data-action=\"phone-field--component#setHiddenInput\"\n />\n </div>\n\n <div class=\"flex items-center gap-2\">\n <span>SMS OPT-IN</span>\n <input\n type=\"checkbox\"\n class=\"toggle toggle-xs toggle-primary\"\n checked={sendSms}\n onInput={({ target }) => smsChange(target.checked)}\n />\n </div>\n </div>\n\n {errorPresent && <Error message=\"The number you've entered is invalid. Please try again.\" />}\n\n <div class=\"p-3 mt-1 text-xs text-[var(--secondary-color-light)] bg-[var(--shadow-color)]\">\n By opting in to SMS, the person agrees to receive announcements and billing alerts from{' '}\n {document.body.dataset.schoolName}. Standard messaging rates may apply. Messaging cadence may vary. Reply\n STOP to opt out.\n </div>\n </>\n )\n}\n\nexport function PhoneField({ number, numberChange, required, id }) {\n return (\n <div\n class=\"phone-input-field\"\n data-controller=\"phone-field--component\"\n data-phone-field--component-name-value=\"phone\"\n >\n <input\n id={id}\n type=\"tel\"\n class={`input input-border !w-40`}\n placeholder=\"201-555-0123\"\n required={required}\n data-phone-field--component-target=\"input\"\n value={number}\n autocomplete=\"off\"\n onInput={({ target }) => setTimeout(() => numberChange(target.nextElementSibling.value))}\n onBlur={({ target }) => numberChange(target.nextElementSibling.value)}\n data-action=\"phone-field--component#setHiddenInput\"\n />\n </div>\n )\n}\n", "/*!\n * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)>/g, function (e, r) {\n var t = o[r];\n return \"$\" + (Array.isArray(t) ? t.join(\"$\") : t);\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nconst noop = () => {};\nlet _WINDOW = {};\nlet _DOCUMENT = {};\nlet _MUTATION_OBSERVER = null;\nlet _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\nconst {\n userAgent = ''\n} = _WINDOW.navigator || {};\nconst WINDOW = _WINDOW;\nconst DOCUMENT = _DOCUMENT;\nconst MUTATION_OBSERVER = _MUTATION_OBSERVER;\nconst PERFORMANCE = _PERFORMANCE;\nconst IS_BROWSER = !!WINDOW.document;\nconst IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nconst IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar p = /fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n g = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;\nvar S = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n }\n },\n A = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n P = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\"];\nvar s = \"classic\",\n t = \"duotone\",\n r = \"sharp\",\n o = \"sharp-duotone\",\n L = [s, t, r, o];\nvar G = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n }\n };\nvar lt = {\n \"Font Awesome 6 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 6 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 6 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 6 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 6 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 6 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n }\n };\nvar pt = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }]]),\n xt = {\n classic: {\n solid: \"fas\",\n regular: \"far\",\n light: \"fal\",\n thin: \"fat\",\n brands: \"fab\"\n },\n duotone: {\n solid: \"fad\",\n regular: \"fadr\",\n light: \"fadl\",\n thin: \"fadt\"\n },\n sharp: {\n solid: \"fass\",\n regular: \"fasr\",\n light: \"fasl\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n solid: \"fasds\",\n regular: \"fasdr\",\n light: \"fasdl\",\n thin: \"fasdt\"\n }\n };\nvar Ft = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n St = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n At = [\"kit\"];\nvar Ct = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n};\nvar Lt = [\"fak\", \"fakd\"],\n Wt = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\nvar Et = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\nvar t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n r$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\"];\nvar bt$1 = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"];\nvar Yt = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n };\nvar po = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n }\n },\n I$1 = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"]\n },\n co = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n }\n },\n x = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\"],\n xo = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", ...r$1, ...x],\n m$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\"],\n c$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n F$1 = c$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n Fo = [...Object.keys(I$1), ...m$1, \"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"fw\", \"inverse\", \"layers-counter\", \"layers-text\", \"layers\", \"li\", \"pull-left\", \"pull-right\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(c$1.map(o => \"\".concat(o, \"x\"))).concat(F$1.map(o => \"w-\".concat(o)));\nvar ko = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\nconst NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nconst UNITS_IN_GRID = 16;\nconst DEFAULT_CSS_PREFIX = 'fa';\nconst DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nconst DATA_FA_I2SVG = 'data-fa-i2svg';\nconst DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nconst DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nconst DATA_PREFIX = 'data-prefix';\nconst DATA_ICON = 'data-icon';\nconst HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nconst MUTATION_APPROACH_ASYNC = 'async';\nconst TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nconst PRODUCTION = (() => {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n})();\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get(target, prop) {\n return prop in target ? target[prop] : target[s];\n }\n });\n}\nconst _PREFIX_TO_STYLE = _objectSpread2({}, S);\n\n// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n// {'fa-duotone': 'duotone'}\n_PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n}), S[s]), St['kit']), St['kit-duotone']);\nconst PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nconst _STYLE_TO_PREFIX = _objectSpread2({}, xt);\n\n// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n}), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']);\nconst STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nconst _PREFIX_TO_LONG_STYLE = _objectSpread2({}, co);\n_PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']);\nconst PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nconst _LONG_STYLE_TO_PREFIX = _objectSpread2({}, po);\n_LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']);\nconst LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nconst ICON_SELECTION_SYNTAX_PATTERN = p; // eslint-disable-line no-useless-escape\n\nconst LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nconst FONT_FAMILY_PATTERN = g;\nconst _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G);\nconst FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nconst ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nconst DUOTONE_CLASSES = A;\nconst RESERVED_CLASSES = [...At, ...Fo];\n\nconst initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(_ref => {\n let [attr, key] = _ref;\n const val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nconst _default = {\n styleDefault: 'solid',\n familyDefault: s,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\n// familyPrefix is deprecated but we must still support it if present\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nconst _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nconst config = {};\nObject.keys(_default).forEach(key => {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function (val) {\n _config[key] = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config[key];\n }\n });\n});\n\n// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function (val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nconst _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return () => {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nconst d$2 = UNITS_IN_GRID;\nconst meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n const style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n const headChildren = DOCUMENT.head.childNodes;\n let beforeChild = null;\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nconst idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n let size = 12;\n let id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n const array = [];\n for (let i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(i => i);\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce((acc, attributeName) => {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce((acc, styleName) => {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n let {\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nfunction transformForCss(_ref2) {\n let {\n transform,\n width = UNITS_IN_GRID,\n height = UNITS_IN_GRID,\n startCentered = false\n } = _ref2;\n let val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-regular: normal 400 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-light: normal 300 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-thin: normal 100 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n animation-delay: -1ms;\\n animation-duration: 1ms;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\";\n\nfunction css() {\n const dcp = DEFAULT_CSS_PREFIX;\n const drc = DEFAULT_REPLACEMENT_CLASS;\n const fp = config.cssPrefix;\n const rc = config.replacementClass;\n let s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n const dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n const customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n const rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nlet _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout() {\n return {\n dom: {\n css,\n insertCss: ensureCss\n }\n };\n },\n hooks() {\n return {\n beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nconst w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nconst functions = [];\nconst listener = function () {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(fn => fn());\n};\nlet loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n const {\n tag,\n attributes = {},\n children = []\n } = abstractNodes;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nfunction 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 >= 0xD800 && value <= 0xDBFF && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\nfunction toHex(unicode) {\n const decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n const size = string.length;\n let first = string.charCodeAt(index);\n let second;\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce((acc, iconName) => {\n const icon = icons[iconName];\n const expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n skipHooks = false\n } = params;\n const normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nconst duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]+)\".*d=\"([^\"]+)\".*path class=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nconst {\n styles,\n shims\n} = namespace;\nconst FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nconst PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce((acc, familyId) => {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n}, {});\nlet _defaultUsablePrefix = null;\nlet _byUnicode = {};\nlet _byLigature = {};\nlet _byOldName = {};\nlet _byOldUnicode = {};\nlet _byAlias = {};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n const parts = cls.split('-');\n const prefix = parts[0];\n const iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nconst build = () => {\n const lookup = reducer => {\n return reduce(styles, (o$$1, style, prefix) => {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup((acc, icon, iconName) => {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(alias => {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup((acc, icon, iconName) => {\n acc[iconName] = iconName;\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup((acc, icon, iconName) => {\n const aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n const hasRegular = 'far' in styles || config.autoFetchSvg;\n const shimLookups = reduce(shims, (acc, shim) => {\n const maybeNameMaybeUnicode = shim[0];\n let prefix = shim[1];\n const iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix,\n iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix,\n iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(c$$1 => {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n const oldUnicode = _byOldUnicode[unicode];\n const newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nconst emptyCanonicalIcon = () => {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getFamilyId(values) {\n let family = s;\n const famProps = FAMILY_NAMES.reduce((acc, familyId) => {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n L.forEach(familyId => {\n if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {\n family = familyId;\n }\n });\n return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n family = s\n } = params;\n const style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n const result = prefix || defined || null;\n return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n let rest = [];\n let iconName = null;\n classNames.forEach(cls => {\n const result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName,\n rest\n };\n}\nfunction sortedUniqueValues(arr) {\n return arr.sort().filter((value, index, arr) => {\n return arr.indexOf(value) === index;\n });\n}\nfunction getCanonicalIcon(values) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n skipLookups = false\n } = params;\n let givenPrefix = null;\n const faCombinedClasses = xo.concat(bt$1);\n const faStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => faCombinedClasses.includes(cls)));\n const nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => !xo.includes(cls)));\n const faStyles = faStyleOrFamilyClasses.filter(cls => {\n givenPrefix = cls;\n return !P.includes(cls);\n });\n const [styleFromValues = null] = faStyles;\n const family = getFamilyId(faStyleOrFamilyClasses);\n const canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values,\n family,\n styles,\n config,\n canonical,\n givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n let {\n prefix,\n iconName\n } = canonical;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix,\n iconName\n };\n }\n const shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n const aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix,\n iconName\n };\n}\nconst newCanonicalFamilies = L.filter(familyId => {\n return familyId !== s || familyId !== t;\n});\nconst newCanonicalStyles = Object.keys(co).filter(key => key !== s).map(key => Object.keys(co[key])).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n const {\n values,\n family,\n canonical,\n givenPrefix = '',\n styles = {},\n config: config$$1 = {}\n } = prefixOptions;\n const isDuotoneFamily = family === t;\n const valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n const defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n const canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n const validPrefix = Object.keys(styles).find(key => newCanonicalStyles.includes(key));\n if (validPrefix || config$$1.autoFetchSvg) {\n const defaultPrefix = pt.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n}\n\nclass Library {\n constructor() {\n this.definitions = {};\n }\n add() {\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n const additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(key => {\n this.definitions[key] = _objectSpread2(_objectSpread2({}, this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n const longPrefix = PREFIX_TO_LONG_STYLE[s][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n reset() {\n this.definitions = {};\n }\n _pullDefinitions(additions, definition) {\n const normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(key => {\n const {\n prefix,\n iconName,\n icon\n } = normalized[key];\n const aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(alias => {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n}\n\nlet _plugins = [];\nlet _hooks = {};\nconst providers = {};\nconst defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n let {\n mixoutsTo: obj\n } = _ref;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(k => {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(plugin => {\n const mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(tk => {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (typeof mixout[tk] === 'object') {\n Object.keys(mixout[tk]).forEach(sk => {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n const hooks = plugin.hooks();\n Object.keys(hooks).forEach(hook => {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n const hook = arguments[0];\n const args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n let {\n iconName\n } = iconLookup;\n const prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nconst library = new Library();\nconst noAuto = () => {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nconst dom = {\n i2svg: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot\n } = params;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(() => {\n autoReplace({\n autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nconst parse = {\n icon: icon => {\n if (icon === null) {\n return null;\n }\n if (typeof icon === 'object' && icon.prefix && icon.iconName) {\n return {\n prefix: icon.prefix,\n iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName\n };\n }\n if (Array.isArray(icon) && icon.length === 2) {\n const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];\n const prefix = getCanonicalPrefix(icon[0]);\n return {\n prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof icon === 'string' && (icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n const canonicalIcon = getCanonicalIcon(icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof icon === 'string') {\n const prefix = getDefaultUsablePrefix();\n return {\n prefix,\n iconName: byAlias(prefix, icon) || icon\n };\n }\n }\n};\nconst api = {\n noAuto,\n config,\n dom,\n parse,\n library,\n findIconDefinition,\n toHtml\n};\nconst autoReplace = function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot = DOCUMENT\n } = params;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function () {\n return val.abstract.map(a => toHtml(a));\n }\n });\n Object.defineProperty(val, 'node', {\n get: function () {\n if (!IS_DOM) return;\n const container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n let {\n children,\n main,\n mask,\n attributes,\n styles,\n transform\n } = _ref;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n const {\n width,\n height\n } = main;\n const offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes,\n children\n }];\n}\n\nfunction asSymbol (_ref) {\n let {\n prefix,\n iconName,\n children,\n attributes,\n symbol\n } = _ref;\n const id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id\n }),\n children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n const {\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n title,\n maskId,\n titleId,\n extra,\n watchable = false\n } = params;\n const {\n width,\n height\n } = mask.found ? mask : main;\n const isUploadedIcon = Lt.includes(prefix);\n const attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(c$$1 => extra.classes.indexOf(c$$1) === -1).filter(c$$1 => c$$1 !== '' || !!c$$1).concat(extra.classes).join(' ');\n let content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n const args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform,\n symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n const {\n children,\n attributes\n } = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n };\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n const {\n content,\n width,\n height,\n transform,\n title,\n extra,\n watchable = false\n } = params;\n const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n const styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform,\n startCentered: true,\n width,\n height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n const {\n content,\n title,\n extra\n } = params;\n const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n const styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\n\nconst {\n styles: styles$1\n} = namespace;\nfunction asFoundIcon(icon) {\n const width = icon[0];\n const height = icon[1];\n const [vectorData] = icon.slice(4);\n let element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nconst missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\nfunction findIcon(iconName, prefix) {\n let givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise((resolve, reject) => {\n if (givenPrefix === 'fa') {\n const shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n const icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nconst noop$1 = () => {};\nconst p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nconst preamble = \"FA \\\"6.7.1\\\"\";\nconst begin = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return () => end(name);\n};\nconst end = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin,\n end\n};\n\nconst noop$2 = () => {};\nfunction isWatched(node) {\n const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n const mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement\n } = params;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n const tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n const children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n let comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n}\nconst mutators = {\n replace: function (mutation) {\n const node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(abstract => {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n let comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function (mutation) {\n const node = mutation[0];\n const abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n const forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n const newInnerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n const callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n let frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(() => {\n const mutator = getMutator();\n const mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nlet disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nlet mo$1 = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n const {\n treeCallback = noop$2,\n nodeCallback = noop$2,\n pseudoElementsCallback = noop$2,\n observeMutationsRoot = DOCUMENT\n } = options;\n mo$1 = new MUTATION_OBSERVER(objects => {\n if (disabled) return;\n const defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(mutationRecord => {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n const {\n prefix,\n iconName\n } = getCanonicalIcon(classArray(mutationRecord.target));\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo$1.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo$1) return;\n mo$1.disconnect();\n}\n\nfunction styleParser (node) {\n const style = node.getAttribute('style');\n let val = [];\n if (style) {\n val = style.split(';').reduce((acc, style) => {\n const styles = style.split(':');\n const prop = styles[0];\n const value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\n\nfunction classParser (node) {\n const existingPrefix = node.getAttribute('data-prefix');\n const existingIconName = node.getAttribute('data-icon');\n const innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n let val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\n\nfunction attributesParser (node) {\n const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n const title = node.getAttribute('title');\n const titleId = node.getAttribute('data-fa-title-id');\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n const {\n iconName,\n prefix,\n rest: extraClasses\n } = classParser(node);\n const extraAttributes = attributesParser(node);\n const pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n let extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nconst {\n styles: styles$2\n} = namespace;\nfunction generateMutation(node) {\n const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\nfunction getKnownPrefixes() {\n return [...Ft, ...xo];\n}\nfunction onTree(root) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n const htmlClassList = DOCUMENT.documentElement.classList;\n const hclAdd = suffix => htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const hclRemove = suffix => htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const prefixes = config.autoFetchSvg ? getKnownPrefixes() : P.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n const prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(p$$1 => \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\"))).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n let candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n const mark = perf.begin('onTree');\n const mutations = candidates.reduce((acc, node) => {\n try {\n const mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise((resolve, reject) => {\n Promise.all(mutations).then(resolvedMutations => {\n perform(resolvedMutations, () => {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(e$$1 => {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(mutation => {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n let {\n mask\n } = params;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask\n }));\n };\n}\nconst render = function (iconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n symbol = false,\n mask = null,\n maskId = null,\n title = null,\n titleId = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n if (!iconDefinition) return;\n const {\n prefix,\n iconName,\n icon\n } = iconDefinition;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), () => {\n callHooks('beforeDOMElementCreation', {\n iconDefinition,\n params\n });\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix,\n iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles,\n classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n const {\n node = DOCUMENT,\n callback = () => {}\n } = params;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n const {\n iconName,\n title,\n titleId,\n prefix,\n transform,\n symbol,\n mask,\n maskId,\n extra\n } = nodeMeta;\n return new Promise((resolve, reject) => {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(_ref => {\n let [main, mask] = _ref;\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n maskId,\n title,\n titleId,\n extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref2) {\n let {\n children,\n attributes,\n main,\n transform,\n styles\n } = _ref2;\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n let nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main,\n transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children,\n attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout() {\n return {\n layer(assembler) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n classes = []\n } = params;\n return domVariants({\n type: 'layer'\n }, () => {\n callHooks('beforeDOMElementCreation', {\n assembler,\n params\n });\n let children = [];\n assembler(args => {\n Array.isArray(args) ? args.map(a => {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\"), ...classes].join(' ')\n },\n children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout() {\n return {\n counter(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'counter',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\"), ...classes]\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout() {\n return {\n text(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'text',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersTextAbstract({\n content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\"), ...classes]\n }\n });\n });\n }\n };\n },\n provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n const {\n title,\n transform,\n extra\n } = nodeMeta;\n let width = null;\n let height = null;\n if (IS_IE) {\n const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n const boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width,\n height,\n transform,\n title,\n extra,\n watchable: true\n })]);\n };\n }\n};\n\nconst CLEAN_CONTENT_PATTERN = new RegExp('\\u{22}', 'ug');\nconst SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nconst _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n}), lt), ko), Yt);\nconst FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nconst FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {\n const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];\n return acc;\n}, {});\nfunction hexValueFromContent(content) {\n const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n const codePoint = codePointAt(cleaned, 0);\n const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\nfunction getPrefix(fontFamily, fontWeight) {\n const fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n const fontWeightInteger = parseInt(fontWeight);\n const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n const pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise((resolve, reject) => {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n const children = toArray(node.children);\n const alreadyProcessedPseudoElement = children.filter(c$$1 => c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];\n const styles = WINDOW.getComputedStyle(node, position);\n const fontFamily = styles.getPropertyValue('font-family');\n const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n const fontWeight = styles.getPropertyValue('font-weight');\n const content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n const content = styles.getPropertyValue('content');\n let prefix = getPrefix(fontFamily, fontWeight);\n const {\n value: hexValue,\n isSecondary\n } = hexValueFromContent(content);\n const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n let iconName = byUnicode(prefix, hexValue);\n let iconIdentifier = iconName;\n if (isV4) {\n const iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n const meta = blankMeta();\n const {\n extra\n } = meta;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(main => {\n const abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main,\n mask: emptyCanonicalIcon()\n },\n prefix,\n iconName: iconIdentifier,\n extra,\n watchable: true\n }));\n const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(a$$1 => toHtml(a$$1)).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise((resolve, reject) => {\n const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n const end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(() => {\n end();\n enableObservation();\n resolve();\n }).catch(() => {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.pseudoElements2svg = function (params) {\n const {\n node = DOCUMENT\n } = params;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nlet _unwatched = false;\nvar MutationObserver$1 = {\n mixout() {\n return {\n dom: {\n unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks() {\n return {\n bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto() {\n disconnect();\n },\n watch(params) {\n const {\n observeMutationsRoot\n } = params;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nconst parseTransformString = transformString => {\n let transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce((acc, n) => {\n const parts = n.toLowerCase().split('-');\n const first = parts[0];\n let rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout() {\n return {\n parse: {\n transform: transformString => {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n let {\n main,\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n const operations = {\n outer,\n inner,\n path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nconst ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const maskData = node.getAttribute('data-fa-mask');\n const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n let {\n children,\n attributes,\n main,\n mask,\n maskId: explicitMaskId,\n transform\n } = _ref;\n const {\n width: mainWidth,\n icon: mainPath\n } = main;\n const {\n width: maskWidth,\n icon: maskPath\n } = mask;\n const trans = transformForSvg({\n transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n const maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n const maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n const maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n const maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n const maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n const clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n const maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n const defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children,\n attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides(providers) {\n let reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n const gChildren = [];\n const FILL = {\n fill: 'currentColor'\n };\n const ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n const OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n const dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const symbolData = node.getAttribute('data-fa-symbol');\n const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nconst noAuto$1 = api.noAuto;\nconst config$1 = api.config;\nconst library$1 = api.library;\nconst dom$1 = api.dom;\nconst parse$1 = api.parse;\nconst findIconDefinition$1 = api.findIconDefinition;\nconst toHtml$1 = api.toHtml;\nconst icon = api.icon;\nconst layer = api.layer;\nconst text = api.text;\nconst counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n", "import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright \u00A9 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n", "export * from 'preact/compat';\r\nexport { default } from 'preact/compat';\r\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nexport function Error({ message }) {\n return (\n <>\n {message && (\n <div class=\"flex gap-2 items-center\">\n <ExclamationTriangle class=\"size-4 text-danger-600 block\" />\n <div>{message}</div>\n </div>\n )}\n </>\n )\n}\n\nfunction ExclamationTriangle(props) {\n const d =\n 'M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 ' +\n '480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 ' +\n '32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 ' +\n '224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'\n\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" fill=\"currentColor\" {...props}>\n <path d={d} />\n </svg>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\n\nexport function Select({ children, ...props }) {\n const chevronClasses =\n \"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none after:content-[''] after:absolute \" +\n 'after:border-[4px] after:border-t-current after:border-x-transparent after:border-b-0 w-2 h-1'\n\n return (\n <div class=\"relative\">\n <select class=\"input input-border appearance-none cursor-pointer [&>*]:bg-[var(--shadow-color)]\" {...props}>\n {children}\n </select>\n <div class={chevronClasses}></div>\n </div>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useSignal, useSignalEffect } from '@preact/signals'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { useMembershipTemplates, useError } from '../landing_page'\nimport { Collapsible } from './collapsible'\nimport { Money, useCart } from './cart'\nimport { Error } from './error'\nimport { Select } from '../select'\n\nexport function MembershipSelection({ member, completed, selectedTemplate, selectedProgram }) {\n const { errors, clearError } = useError()\n const { addToCart, removeFromCart } = useCart()\n const membershipTemplates = useMembershipTemplates()\n\n const classes = 'size-2 rounded-full ring-2 ring-offset-[var(--shadow-color)] ring-offset-2'\n\n useSignalEffect(() => {\n if (selectedTemplate.value) {\n clearError('membership')\n }\n })\n\n useSignalEffect(() => {\n const mt = selectedTemplate.value\n\n if (mt && mt === member.membershipTemplate) {\n completed.value = true\n return\n }\n\n member.class = null\n\n if (mt) {\n const manyPrograms = mt.programs && mt.programs.length > 1\n member.membershipTemplate = mt\n\n if (manyPrograms) {\n completed.value = false\n member.program = null\n selectedProgram.value = null\n return\n }\n\n if (mt.programs) {\n member.program = mt.programs[0]\n selectedProgram.value = mt.programs[0]\n } else {\n member.program = null\n selectedProgram.value = null\n }\n\n completed.value = true\n\n return\n }\n\n completed.value = false\n member.membershipTemplate = null\n member.program = null\n })\n\n return (\n <>\n <div\n class={`bg-[var(--shadow-color)] border ${errors.membership ? 'border-danger-600' : 'border-transparent'}`}\n >\n <Collapsible\n defaultOpen={true}\n Trigger={\n <>\n <div class=\"flex items-center gap-2 size\">\n <div class=\"text-base font-bold\">Membership</div>\n {completed.value && (\n <div class=\"size-4 bg-[var(--tertiary-color)] rounded-full\">\n <FontAwesomeIcon icon=\"circle-check\" className=\"text-[var(--primary-color)] size-4 block\" />\n </div>\n )}\n </div>\n </>\n }\n Content={\n <div class=\"space-y-3\">\n {membershipTemplates.map((membershipTemplate) => (\n <MembershipTemplate\n member={member}\n membershipTemplate={membershipTemplate}\n onSelect={(event) => {\n if (\n event.target.tagName === 'SELECT' ||\n event.target.tagName === 'LABEL' ||\n event.target.tagName === 'OPTION'\n ) {\n return\n }\n\n if (selectedTemplate.value === membershipTemplate) {\n removeFromCart(membershipTemplate)\n selectedTemplate.value = null\n return\n }\n\n removeFromCart(selectedTemplate.value)\n addToCart(membershipTemplate)\n selectedTemplate.value = membershipTemplate\n }}\n onProgramSelect={({ target }) => {\n completed.value = true\n const program = selectedTemplate.value.programs.find((p) => p.id.toString() === target.value)\n member.class = null\n member.program = program\n selectedProgram.value = program\n }}\n selected={selectedTemplate.value === membershipTemplate}\n />\n ))}\n </div>\n }\n />\n </div>\n\n {errors.membership && <Error message=\"Select a Membership\" />}\n </>\n )\n}\n\nfunction MembershipTemplate({ member, membershipTemplate, onSelect, onProgramSelect, selected = false }) {\n const classes =\n 'block relative w-full bg-[var(--tertiary-color)] p-3 rounded text-left border-2 transition-colors'\n\n let selectedClasses = 'border-transparent hover:border-[var(--primary-color)]/75'\n\n if (selected) {\n selectedClasses = 'border-[var(--primary-color)]'\n }\n\n return (\n <button type=\"button\" onClick={onSelect} class={`${classes} ${selectedClasses}`}>\n {selected && (\n <div class=\"absolute -left-2 -top-2 bg-[var(--tertiary-color)] size-4 rounded-full\">\n <FontAwesomeIcon icon=\"circle-check\" className=\"block text-[var(--primary-color)] size-4\" />\n </div>\n )}\n\n <MembershipTemplateDetails membershipTemplate={membershipTemplate} />\n {membershipTemplate.description && <div class=\"mt-2\">{membershipTemplate.description}</div>}\n\n {membershipTemplate.programs && (\n <>\n <div class=\"my-2 w-full border-t border-[var(--shadow-color)]\"></div>\n {selected && membershipTemplate.programs.length > 1 ? (\n <ProgramSelector\n member={member}\n membershipTemplate={membershipTemplate}\n onProgramSelect={onProgramSelect}\n />\n ) : (\n <div>{membershipTemplate.programs.map((p) => p.name).join(', ')}</div>\n )}\n </>\n )}\n </button>\n )\n}\n\nfunction MembershipTemplateDetails({ membershipTemplate }) {\n return (\n <div class=\"flex items-center justify-between w-full\">\n <div class=\"flex gap-x-3 items-center flex-wrap\">\n <div class=\"font-bold\">{membershipTemplate.name}</div>\n {membershipTemplate.kind === 'trial' && <div class=\"pill\">trial</div>}\n <div>{membershipTemplate.interval}</div>\n </div>\n\n <div class=\"space-y-1 text-right\">\n <div>\n {membershipTemplate.price ? (\n <div class=\"flex justify-end items-center gap-1 whitespace-nowrap\">\n <Money amount={membershipTemplate.price} />\n {membershipTemplate.billing_interval && <div>{membershipTemplate.billing_interval}</div>}\n </div>\n ) : (\n 'Free'\n )}\n </div>\n {membershipTemplate.registration_fee_price > 0 && (\n <div class=\"flex justify-end items-center gap-1 whitespace-nowrap\">\n <Money amount={membershipTemplate.registration_fee_price} />\n <div>Reg. Fee</div>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nfunction ProgramSelector({ member, membershipTemplate, onProgramSelect }) {\n return (\n <div>\n <label\n for={`programs-${membershipTemplate.id}`}\n class=\"block font-medium uppercase tracking-widest required mb-1\"\n >\n program\n </label>\n <Select id={`programs-${membershipTemplate.id}`} onInput={onProgramSelect} required>\n <option selected hidden disabled value=\"\">\n Select a Program\n </option>\n {membershipTemplate.programs.map((program) => (\n <option value={program.id} selected={program.id === member.program?.id}>\n {program.name}\n </option>\n ))}\n </Select>\n </div>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useSignal } from '@preact/signals'\n\nexport function Collapsible({ defaultOpen = false, Trigger, Content }) {\n const open = useSignal(defaultOpen)\n\n const toggle = () => (open.value = !open.value)\n\n const containerClasses = open.value ? 'h-auto border-[var(--tertiary-color)]' : 'h-0 border-transparent'\n\n return (\n <>\n <button type=\"button\" class=\"py-2 px-2.5 flex items-center justify-between w-full\" onClick={toggle}>\n {Trigger}\n\n <Chevron class={open.value ? 'size-4 rotate-180 transition-all' : 'size-4 rotate-0 transition-all'} />\n </button>\n <div\n class={`border-t ${containerClasses} transition-all ease-in-out duration-300 overflow-hidden`}\n style={{ interpolateSize: 'allow-keywords', transitionBehavior: 'allow-discrete' }}\n >\n <div class=\"p-3\">{Content}</div>\n </div>\n </>\n )\n}\n\nexport function Chevron(props) {\n const d =\n 'M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 ' +\n '0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'\n\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" fill=\"currentColor\" {...props}>\n <path d={d} />\n </svg>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useContext, useCallback } from 'preact/hooks'\nimport { useBilling, LandingPageState } from '../landing_page'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nexport function useCart() {\n const { cart } = useContext(LandingPageState)\n const { merchantAccount } = useBilling()\n\n const addToCart = useCallback((item) => {\n const _cart = new Map(cart.value)\n\n if (_cart.has(item)) {\n const current = _cart.get(item)\n\n const max = item.remaining || 99\n\n _cart.set(item, Math.min(current + 1, max))\n } else {\n _cart.set(item, 1)\n }\n\n cart.value = _cart\n })\n\n const removeFromCart = useCallback((item) => {\n const _cart = new Map(cart.value)\n\n if (_cart.get(item) > 1) {\n const current = _cart.get(item)\n\n _cart.set(item, current - 1)\n } else {\n _cart.delete(item)\n }\n\n cart.value = _cart\n })\n\n const setQuantity = useCallback((item, quantity) => {\n const _cart = new Map(cart.value)\n\n quantity ||= 0\n\n const max = item.remaining || 99\n\n _cart.set(item, Math.min(Math.max(quantity, 0), max))\n\n cart.value = _cart\n })\n\n const isMembership = (item) => 'registration_fee_price' in item\n\n const priceOf = (item) => {\n if (isMembership(item)) {\n return parseFloat(item.price) + (parseFloat(item.registration_fee_price) || 0)\n }\n\n return parseFloat(item.price)\n }\n\n const taxOf = (item) => {\n if (isMembership(item)) {\n return parseFloat(item.tax) + (parseFloat(item.registration_fee_tax) || 0)\n }\n\n return parseFloat(item.tax)\n }\n\n const subtotal = () => {\n const entries = Array.from(cart.value.entries())\n\n return bankersRound(entries.reduce((acc, [item, quantity]) => acc + quantity * priceOf(item), 0))\n }\n const tax = () => {\n const entries = Array.from(cart.value.entries())\n\n return bankersRound(entries.reduce((acc, [item, quantity]) => acc + quantity * taxOf(item), 0))\n }\n const serviceFee = () => {\n if (!merchantAccount) return 0\n if (!merchantAccount.serviceFeePercentage) return 0\n\n return bankersRound((subtotal() + tax()) * merchantAccount.serviceFeePercentage)\n }\n const total = () => subtotal() + tax() + serviceFee()\n\n return {\n cart: cart.value,\n addToCart,\n removeFromCart,\n setQuantity,\n total,\n subtotal,\n tax,\n serviceFee,\n priceOf,\n isMembership,\n }\n}\n\nexport function Cart() {\n const { cart } = useCart()\n const entries = Array.from(cart.entries())\n const total = entries.reduce((acc, [_, quantity]) => acc + quantity, 0)\n\n const iconClasses =\n 'absolute top-[-6px] left-1/2 px-[0.5em] py-[0.125em] leading-none bg-danger-600 text-white rounded-full ' +\n 'flex justify-center items-center text-[0.875em]'\n let buttonClasses = 'relative flex items-center size-5'\n\n const dialogClasses =\n 'm-0 absolute bg-[var(--tertiary-color)] text-[var(--secondary-color)] p-3 z-50 shadow-lg outline-none ' +\n '[&[open]]:animate-in animate-out [&[open]]:fade-in-0 fade-out-0 [&[open]]:zoom-in-95 zoom-out-95 min-w-64 ' +\n 'max-w-xs'\n\n return (\n <div class=\"pl-2\">\n <div data-controller=\"popover\" data-popover-placement-value=\"bottom-end\">\n <button class={buttonClasses} type=\"button\" data-action=\"popover#toggle\" data-popover-target=\"trigger\">\n {total > 0 ? (\n <>\n <CartIcon class=\"text-[var(--primary-color)] fa-fw\" />\n <span class={iconClasses}>{total}</span>\n </>\n ) : (\n <CartIcon class=\"text-basic-700 fa-fw\" />\n )}\n </button>\n <dialog data-popover-target=\"body\" class={dialogClasses}>\n <div class=\"font-bold mb-3\">Cart</div>\n {total > 0 ? (\n <CartDisplay detailed={false} />\n ) : (\n <div class=\"text-[var(--secondary-color-light)]\">Your cart is empty</div>\n )}\n </dialog>\n </div>\n </div>\n )\n}\n\nexport function CartDisplay({ detailed }) {\n const { cart, priceOf, isMembership, total, subtotal, tax, serviceFee } = useCart()\n const entries = Array.from(cart.entries())\n\n return (\n <div class=\"space-y-3\">\n {entries.map(([item, quantity]) => (\n <>\n <div>\n <div class=\"flex justify-between items-center gap-4 mb-1\">\n <div class={detailed ? null : 'truncate'}>{item.name}</div>\n {priceOf(item) > 0 ? (\n <div class=\"font-bold\">\n <Money amount={priceOf(item) * quantity} />\n </div>\n ) : (\n <div>Free</div>\n )}\n </div>\n <div class=\"flex justify-between items-center gap-4\">\n {!isMembership(item) && <ItemEditor item={item} />}\n\n {quantity > 1 && (\n <div class=\"flex items-center gap-1\">\n <Money amount={priceOf(item)} />\n <span>/ ea</span>\n </div>\n )}\n </div>\n </div>\n\n <hr class=\"border-secondary\" />\n </>\n ))}\n\n <div className=\"flex items-center justify-end gap-3\">\n <div class=\"uppercase font-medium tracking-wider\">Subtotal:</div>\n <div class=\"font-semibold w-[4.5rem]\">\n <Money amount={subtotal()} class=\"text-end\" />\n </div>\n </div>\n\n {detailed && (\n <>\n <div className=\"flex items-center justify-end gap-3\">\n <div class=\"uppercase font-medium tracking-wider\">Tax:</div>\n <div class=\"font-semibold w-[4.5rem]\">\n <Money amount={tax()} class=\"text-end\" />\n </div>\n </div>\n\n {serviceFee() > 0 && (\n <div className=\"flex items-center justify-end gap-3\">\n <div class=\"uppercase font-medium tracking-wider\">Service Fee:</div>\n <div class=\"font-semibold w-[4.5rem]\">\n <Money amount={serviceFee()} class=\"text-end\" />\n </div>\n </div>\n )}\n\n <hr class=\"border-secondary\" />\n\n <div className=\"flex items-center justify-end gap-3\">\n <div class=\"uppercase font-medium tracking-wider\">Total Due:</div>\n <div class=\"font-semibold w-[4.5rem]\">\n <Money amount={total()} class=\"text-end\" />\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n\nfunction bankersRound(num) {\n const multiplier = 10 ** 2\n const x = num * multiplier\n const roundedX = Math.round(x)\n const fraction = Math.abs(x - roundedX)\n\n if (fraction === 0.5) {\n return (roundedX % 2 === 0 ? roundedX : roundedX - 1) / multiplier\n }\n\n return roundedX / multiplier\n}\n\nexport function Money({ amount, ...props }) {\n const formatted = new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: document.body.dataset.currency,\n currencySign: 'standard',\n }).format(amount)\n\n return <div {...props}>{formatted}</div>\n}\n\nexport function ItemEditor({ item }) {\n const { cart, addToCart, removeFromCart, setQuantity } = useCart()\n const quantity = cart.get(item)\n\n const inputClasses =\n 'no-spinner appearance-none bg-[var(--shadow-color)] text-center border-b-2 border-transparent ' +\n 'focus:outline-none focus:border-[var(--primary-color)]'\n\n return (\n <div class=\"rounded-full bg-[var(--shadow-color)] flex justify-between items-center w-24\">\n <button\n class=\"pl-3 py-1.5 flex-1 grid [&>*]:col-start-1 [&>*]:row-start-1\"\n type=\"button\"\n onClick={() => removeFromCart(item)}\n >\n {quantity > 1 ? (\n <FontAwesomeIcon icon=\"square-minus\" className={`size-5 text-[var(--secondary-color-light)]`} />\n ) : (\n <div class={`flex items-center justify-center size-5`}>\n <FontAwesomeIcon icon=\"trash\" className={`size-4 text-[var(--secondary-color-light)]`} />\n </div>\n )}\n </button>\n\n <input\n type=\"number\"\n value={quantity}\n class={inputClasses}\n onInput={({ target }) => {\n const newQuantity = Number(target.value)\n\n setQuantity(item, newQuantity)\n }}\n onBlur={({ target }) => {\n let newQuantity = Number(target.value)\n\n if (newQuantity < 1) {\n newQuantity = 1\n }\n\n setQuantity(item, newQuantity)\n }}\n style={`width: calc(${quantity?.toString()?.length || 1}ch + 1rem)`}\n />\n\n <button\n class=\"flex justify-end flex-1 pr-3 py-1.5 disabled:opacity-65 disabled:cursor-not-allowed\"\n type=\"button\"\n disabled={item.remaining && cart.get(item) >= item.remaining}\n onClick={() => addToCart(item)}\n >\n <FontAwesomeIcon icon=\"square-plus\" className=\"size-5 text-[var(--secondary-color-light)]\" />\n </button>\n </div>\n )\n}\n\nfunction CartIcon(props) {\n const path =\n 'M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 ' +\n '31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 ' +\n '24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 ' +\n '37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z'\n\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\" fill=\"currentColor\" {...props}>\n <path d={path} />\n </svg>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useClasses, useError, usePreview } from '../landing_page'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { Chevron, Collapsible } from './collapsible'\nimport { useSignal, useSignalEffect } from '@preact/signals'\nimport { getCsrfToken } from '../../helpers/fetch_helper'\nimport { Error } from './error'\nimport { Select } from '../select'\n\nexport function ClassSelection({ member, completed, availableClasses, selectedClass, selectedProgram }) {\n const classes = 'size-2 rounded-full ring-2 ring-offset-[var(--shadow-color)] ring-offset-2'\n\n const { required } = useClasses()\n\n const { errors } = useError()\n\n defaultComplete(member, errors, completed)\n\n const onClassSelected = ({ target }) => {\n if (target.value) {\n selectedClass.value = availableClasses.value.find((c) => c.id.toString() === target.value)\n } else {\n selectedClass.value = null\n member.class = null\n }\n }\n\n return (\n <>\n <div class={`bg-[var(--shadow-color)] border ${errors.class ? 'border-danger-600' : 'border-transparent'}`}>\n <Collapsible\n defaultOpen={true}\n Trigger={\n <>\n <div class=\"flex items-center gap-2 size\">\n <div>\n <span class=\"text-base font-bold\">Class</span>\n {!required && (\n <span class=\"text-sm text-[var(--secondary-color-light)] font-semibold ml-1\">(Optional)</span>\n )}\n </div>\n {completed.value && (\n <div class=\"size-4 bg-[var(--tertiary-color)] rounded-full\">\n <FontAwesomeIcon icon=\"circle-check\" className=\"text-[var(--primary-color)] size-4 block\" />\n </div>\n )}\n </div>\n </>\n }\n Content={\n <div class=\"p-3 bg-[var(--tertiary-color)] space-y-3\">\n <div>\n <label class={`block font-medium uppercase tracking-widest mb-1 ${required ? 'required' : ''}`}>\n Select a class\n </label>\n <Select onChange={onClassSelected} required={required}>\n <option selected={!selectedClass.value} hidden value=\"\">\n Select a class\n </option>\n {!required && <option value=\"\">None</option>}\n\n {availableClasses.value.map(({ id, name }) => (\n <option value={id} selected={id === selectedClass.value?.id}>\n {name}\n </option>\n ))}\n </Select>\n </div>\n\n <div class=\"border-t border-[var(--secondary-color-light)]\"></div>\n\n <TimeSelector\n member={member}\n selectedProgram={selectedProgram}\n selectedClass={selectedClass}\n completed={completed}\n />\n </div>\n }\n />\n </div>\n\n {errors.class && <Error message={errors.class} />}\n </>\n )\n}\n\nlet controller\n\n// eslint-disable-next-line complexity\nfunction TimeSelector({ member, selectedProgram, selectedClass, completed }) {\n const classTimes = useSignal({})\n const loadingClasses = useSignal(false)\n const isPreview = usePreview()\n const selectedEvent = useSignal(member.class)\n\n const fetchTimes = async (from) => {\n if (isPreview) return\n if (controller) return\n\n const timeout = setTimeout(() => (loadingClasses.value = true), 200)\n\n controller = new AbortController()\n\n const path = window.location.href.replace(\n '/submission/new',\n `/programs/${selectedProgram.peek().id}/classes/${selectedClass.peek().id}?from=${from}`,\n )\n const options = {\n method: 'GET',\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n 'Content-Type': 'application/json',\n },\n signal: controller.signal,\n }\n\n const response = await fetch(path, options).finally(() => {\n clearTimeout(timeout)\n loadingClasses.value = false\n controller = null\n })\n\n if (response.ok) {\n classTimes.value = await response.json()\n }\n }\n\n if (selectedEvent.value && !classTimes.value) {\n fetchTimes(selectedClass.value.start)\n }\n\n useSignalEffect(async () => {\n if (!selectedClass.value) {\n classTimes.value = {}\n return\n }\n\n if (controller) {\n controller.abort()\n controller = null\n }\n\n await fetchTimes(classTimes.peek()?.prev)\n })\n\n const next = async () => {\n await fetchTimes(classTimes.peek().next)\n }\n\n const prev = async () => {\n await fetchTimes(classTimes.peek().prev)\n }\n\n return (\n <div>\n <div class=\"flex items-center justify-between\">\n <div class=\"size-4\">\n {classTimes.value.prev && (\n <button type=\"button\" onClick={() => prev()}>\n <Chevron class=\"rotate-90 text-[var(--primary-color)] size-4\" />\n </button>\n )}\n </div>\n <div class=\"relative\">\n {classTimes.value.prev ? (\n <>\n <span>{formatMonthDay(classTimes.value.startTime)}</span>\n <span> - </span>\n <span>{formatMonthDay(classTimes.value.endTime)}</span>\n </>\n ) : (\n <>\n <span class=\"font-bold\">This</span>\n <span> week</span>\n </>\n )}\n\n <div class=\"absolute -right-6 top-px size-4\">{loadingClasses.value && <Loader />}</div>\n </div>\n <div class=\"size-4\">\n {classTimes.value.next && (\n <button type=\"button\" onClick={() => next()}>\n <Chevron class=\"-rotate-90 text-[var(--primary-color)] size-4\" />\n </button>\n )}\n </div>\n </div>\n {classTimes.value.schedule ? (\n <div class=\"space-y-2 pt-3\">\n <WeeklySchedule\n member={member}\n schedule={classTimes.value.schedule}\n selectedClass={selectedClass}\n selectedEvent={selectedEvent}\n completed={completed}\n />\n </div>\n ) : (\n <div class=\"rounded bg-[var(--shadow-color)] py-2 px-3 flex items-center justify-center mt-3\">\n {isPreview ? (\n <div>Class selection unavailable in preview</div>\n ) : (\n <div>Select a class to see time slots</div>\n )}\n </div>\n )}\n </div>\n )\n}\n\nfunction defaultComplete(member, errors, completed) {\n if (member.class && !errors.class) {\n completed.value = true\n return\n }\n}\n\nfunction Loader() {\n return <FontAwesomeIcon icon=\"fa-duotone fa-spinner-third\" className=\"animate-spin size-4\" />\n}\n\nfunction WeeklySchedule({ member, schedule, completed, selectedEvent }) {\n const { clearError } = useError()\n\n const byDayOfWeek = schedule.reduce((acc, event) => {\n const start = new Date(event.start)\n const dayOfWeek = start.toLocaleDateString('en-US', { weekday: 'long' })\n const monthDay = start.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n const key = `${dayOfWeek}, ${monthDay}`\n\n acc[key] ||= []\n acc[key].push(event)\n\n return acc\n }, {})\n\n const organized = Object.fromEntries(\n Object.entries(byDayOfWeek).map(([day, events]) => [\n day,\n events.sort((a, b) => new Date(a.start) - new Date(b.start)),\n ]),\n )\n\n const classes = 'block w-full rounded bg-[var(--tertiary-color)] p-1 flex items-center justify-center border-2'\n\n const eventIsSelected = (event) => {\n if (!selectedEvent.value) return false\n\n const selected = selectedEvent.value\n\n // javascript moment\n return JSON.stringify(selected) === JSON.stringify(event)\n }\n\n const selectedClasses = 'border-[var(--primary-color)] relative'\n\n return (\n <>\n {Object.entries(organized).map(([key, events]) => (\n <div key={key} class=\"rounded bg-[var(--shadow-color)] p-3 space-y-2\">\n <div>{key}</div>\n {events.map((event) => (\n <>\n {event.selectable ? (\n <button\n type=\"button\"\n key={event}\n class={`${classes} ${eventIsSelected(event) ? selectedClasses : 'border-transparent'}`}\n onClick={() => {\n if (eventIsSelected(event)) {\n member.class = null\n selectedEvent.value = null\n completed.value = false\n return\n }\n\n clearError('class')\n member.class = event\n selectedEvent.value = event\n completed.value = true\n }}\n >\n {eventIsSelected(event) && (\n <div class=\"absolute -left-2 -top-2 bg-[var(--tertiary-color)] size-4 rounded-full\">\n <FontAwesomeIcon icon=\"circle-check\" className=\"block text-[var(--primary-color)] size-4\" />\n </div>\n )}\n\n <div>\n <span>{formatTime(event.start)}</span>\n <span> - </span>\n <span>{formatTime(event.end)}</span>\n </div>\n </button>\n ) : (\n <div key={event} class={`${classes} border-transparent cursor-not-allowed opacity-50`}>\n <div>\n <span>{formatTime(event.start)}</span>\n <span> - </span>\n <span>{formatTime(event.end)}</span>\n {event.tooLate && (\n <>\n <span> \u2013 </span>\n <span class=\"font-semibold\">Class full</span>\n </>\n )}\n </div>\n </div>\n )}\n </>\n ))}\n </div>\n ))}\n </>\n )\n}\n\nfunction formatMonthDay(time) {\n const date = new Date(time)\n\n return date.toLocaleDateString('en-US', { month: 'long', day: 'numeric' })\n}\n\nfunction formatTime(time) {\n const date = new Date(time)\n\n return date\n .toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n })\n .toLowerCase()\n}\n", "/* global Turbo */\n/**\n * Does a get request using the fetch api\n *\n * @param {string} path - the path to the resource\n * @return {Promise} - a promise that resolves to the response\n * @example\n * get('/api/v1/users').then(response => response.json())\n */\nexport function get(path) {\n return fetch(path, {\n method: 'GET',\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n 'Content-Type': 'application/json',\n },\n })\n}\n\nexport function getStream(path) {\n return fetch(path, {\n method: 'GET',\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n 'Content-Type': 'application/json',\n Accept: 'text/vnd.turbo-stream.html',\n },\n })\n .then((r) => r.text())\n .then((html) => Turbo.renderStreamMessage(html))\n}\n\n/**\n * Does a a put request using the fetch api\n *\n * @param {string} path - the path to the resource\n * @param {Object} body - the body of the request\n * @returns {Promise} - a promise that resolves to the response\n * @example\n * put('/api/v1/users', { name: 'John' })\n */\nexport function put(path, body) {\n return fetch(path, {\n method: 'PUT',\n body: JSON.stringify(body),\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n 'Content-Type': 'application/json',\n },\n })\n}\n\n/**\n * Does a post request using the fetch api\n *\n * @param {string} path\n * @param {Object} body\n * @returns\n * @example\n * post('/api/v1/users', { name: 'John' })\n */\nexport function post(path, body) {\n return fetch(path, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n 'Content-Type': 'application/json',\n },\n })\n}\n\nexport function postStream(path, body) {\n return fetch(path, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n 'Content-Type': 'application/json',\n Accept: 'text/vnd.turbo-stream.html',\n },\n })\n}\n\n/**\n * Does a delete request using the fetch api\n *\n * @param {string} path - the path to the resource\n * @returns\n * @example\n * destroy('/api/v1/users/1')\n */\nexport function destroy(path) {\n return fetch(path, {\n method: 'DELETE',\n headers: {\n 'X-CSRF-Token': getCsrfToken(),\n },\n })\n}\n\n/**\n * A utility function to get the csrf token from the meta tag\n *\n * @returns {string} - the csrf token\n * @example\n * getCsrfToken()\n */\nexport function getCsrfToken() {\n return document.querySelector('meta[name=\"csrf-token\"]')?.content\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useMerchandise, useStep } from '../landing_page'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { ItemEditor, Money, useCart } from './cart'\n\nexport function Merchandise() {\n const { nextStep, previousStep } = useStep()\n const merchandise = useMerchandise()\n\n const outOfStockClasses = 'flex items-center gap-2 text-[var(--secondary-color-light)] cursor-not-allowed pr-4'\n const itemClasses = 'py-3 mx-3 flex gap-3 justify-between last:border-none border-b border-[var(--shadow-color)]'\n\n return (\n <form\n onSubmit={(event) => {\n event.preventDefault()\n\n nextStep()\n }}\n >\n <div class=\"p-3 bg-[var(--shadow-color)]\">\n <div class=\"p-3 bg-[var(--tertiary-color)] space-y-3\">\n {Object.entries(merchandise).map(([category, items]) => (\n <div class=\"border-x border-b border-[var(--shadow-color)]\">\n <button\n type=\"button\"\n class=\"bg-[var(--shadow-color)] flex w-full py-2 px-2.5 uppercase font-medium tracking-wider\"\n >\n {category}\n </button>\n\n {items.map((item) => (\n <div class={itemClasses}>\n <div className=\"flex flex-col gap-2\">\n <div>{item.name}</div>\n\n <Money amount={item.price} />\n </div>\n\n {!item.deliverable || (item.remaining && item.remaining > 0) ? (\n <Add item={item} />\n ) : (\n <div class={outOfStockClasses}>\n <span>Out of Stock</span>\n <FontAwesomeIcon icon={['far', 'circle-xmark']} className=\"size-4\" />\n </div>\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n <div class=\"flex justify-end items-center gap-1 mt-4 pb-4\">\n <button class=\"btn btn-back\" type=\"button\" onClick={previousStep}>\n BACK\n </button>\n <button class=\"btn\" type=\"submit\">\n NEXT\n </button>\n </div>\n </form>\n )\n}\n\nfunction Add({ item }) {\n const { cart, addToCart } = useCart()\n\n const animationClasses =\n 'opacity-100 hidden:opacity-0 transition-discrete transition-all starting:opacity-0 duration-250 ease-in-out'\n\n return (\n <div class=\"flex items-center\">\n <div class=\"grid items-center justify-items-end h-12 [&>*]:col-start-1 [&>*]:row-start-1\">\n <div class={animationClasses} hidden={!cart.has(item)}>\n <ItemEditor item={item} />\n </div>\n\n <button\n class={`active:scale-95 pl-4 py-2 pr-4 ${animationClasses}`}\n onClick={() => addToCart(item)}\n type=\"button\"\n hidden={cart.has(item)}\n >\n <FontAwesomeIcon icon=\"circle-plus\" className=\"text-[var(--primary-color)] size-4\" />\n </button>\n </div>\n </div>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useSubmit } from './submission'\nimport { useBilling, usePreview } from '../landing_page'\nimport { GenericConfirmation } from './confirmation/generic'\nimport { BasysConfirmation } from './confirmation/basys'\nimport { StripeConfirmation } from './confirmation/stripe'\nimport { UsaEpayConfirmation } from './confirmation/usa_epay'\nimport { useCart } from './cart'\nimport { useSignal } from '@preact/signals'\n\nexport function Confirmation() {\n const { paymentRequired } = useBilling()\n const { total } = useCart()\n const isPreview = usePreview()\n\n return <>{!isPreview && paymentRequired && total() > 0 ? <BillingConfirmation /> : <NoBillingConfirmation />}</>\n}\n\nfunction BillingConfirmation() {\n const { merchantAccount } = useBilling()\n\n return (\n <>\n {merchantAccount.type === 'basys' && <BasysConfirmation />}\n {merchantAccount.type === 'stripe' && <StripeConfirmation />}\n {merchantAccount.type === 'usa_epay' && <UsaEpayConfirmation />}\n </>\n )\n}\n\nfunction NoBillingConfirmation() {\n const { submit } = useSubmit()\n const submitDisabled = useSignal(false)\n\n return (\n <GenericConfirmation\n submitDisabled={submitDisabled.value}\n onSubmit={async (event) => {\n event.preventDefault()\n submitDisabled.value = true\n await submit()\n submitDisabled.value = false\n }}\n />\n )\n}\n", "import { postStream } from '../../helpers/fetch_helper'\n\nimport {\n useError,\n useFamilyCreation,\n useStep,\n useMembers,\n useLeadCaptureForm,\n useAgreements,\n usePreview,\n} from '../landing_page'\nimport { useCart } from './cart'\n\nexport function useSubmit() {\n const isPreview = usePreview()\n const { setError } = useError()\n const { jumpToStep } = useStep()\n const payload = constructPayload()\n\n const submit = async (extraPayload) => {\n if (isPreview) return true\n\n const response = await postStream(location.href.replace('/submission/new', '/submission'), {\n landing_page: { ...payload, ...extraPayload },\n })\n\n if (response.ok) {\n const stream = await response.text()\n\n window.Turbo.renderStreamMessage(stream)\n } else {\n const errors = (await response.json()).errors\n\n setError(errors)\n\n if (!errors.generic) {\n jumpToStep(1)\n }\n }\n\n return response.ok\n }\n\n return { submit }\n}\n\nfunction constructPayload() {\n const { cart } = useCart()\n const familyCreation = useFamilyCreation()\n const { members } = useMembers()\n const agreements = useAgreements()\n let payload = {}\n\n cart.forEach((quantity, item) => {\n payload.order ??= {}\n payload.order.items ??= []\n\n if ('registration_fee_price' in item) {\n return\n }\n\n payload.order.items.push({\n id: item.id,\n name: item.name,\n quantity,\n })\n })\n\n if (!familyCreation) {\n payload.members = individualMemberPayload(members)\n }\n\n if (agreements) {\n payload.agreements = {\n id: agreements[0].id,\n tokens: members[0]?.agreementTokens,\n signatures: members[0]?.signatures,\n }\n }\n\n payload.sign_up = signUpPayload(members)\n\n return payload\n}\n\nfunction individualMemberPayload(members) {\n const guardian = members[0]\n const participant = members[1]\n\n if (guardian.participating) {\n return [cleanMember(guardian)]\n }\n\n const member = cleanMember(participant)\n member.guardian = cleanMember(guardian)\n\n if (participant.usePrimaryInfo) {\n ;['phone', 'email', 'address'].forEach((contactInfo) => {\n if (member.guardian[contactInfo]) {\n member[contactInfo] = member.guardian[contactInfo]\n }\n })\n }\n\n return [member]\n}\n\nfunction signUpPayload(members) {\n const membership = membershipPayload(members) || {}\n const classData = classPayload(members) || {}\n\n return { ...membership, ...classData }\n}\n\nfunction membershipPayload(members) {\n const guardian = members[0]\n const participant = members[1]\n\n const out = {}\n\n let membershipTemplate\n let programId\n\n if (guardian.participating) {\n membershipTemplate = guardian.membershipTemplate\n programId = guardian.program?.id\n } else {\n membershipTemplate = participant.membershipTemplate\n programId = participant.program?.id\n }\n\n if (!membershipTemplate) return\n\n out.membership_template_id = membershipTemplate.id\n\n if (programId) {\n out.program_id = programId\n }\n\n return out\n}\n\nfunction classPayload(members) {\n const guardian = members[0]\n const participant = members[1]\n\n let classData\n\n if (guardian.participating) {\n classData = guardian.class\n } else {\n classData = participant.class\n }\n\n if (!classData) return\n\n const { id, type, name, start, end } = classData\n\n return { class: { id, type, name, start, end } }\n}\n\nexport function cleanMember(member) {\n const { leadCaptureForm, guardianLeadCaptureForm } = useLeadCaptureForm()\n\n if (member.participating) {\n return clean(member, leadCaptureForm)\n }\n\n return clean(member, guardianLeadCaptureForm)\n}\n\nfunction clean(dirty, lcf) {\n const lcfKeys = lcf.map((field) => field.key)\n const entries = Object.entries(dirty).filter(([key]) => lcfKeys.includes(key))\n\n const cleaned = Object.fromEntries(entries)\n\n if (cleaned.phone && !cleaned.phone.number) {\n delete cleaned.phone\n }\n\n if (cleaned.address && !cleaned.address.full) {\n delete cleaned.address\n }\n\n return cleaned\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { Members } from './members'\nimport { Cart } from './cart'\nimport { useStep, useError, usePreview } from '../../landing_page'\nimport { Payment } from './payment'\nimport { Error } from '../error'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nexport function GenericConfirmation({ submitDisabled = false, onSubmit, PaymentElement = null }) {\n const { errors, clearError } = useError()\n const { previousStep } = useStep()\n const isPreview = usePreview()\n const submitText = PaymentElement ? 'Finish & Pay' : 'Finish'\n const widthClass = PaymentElement ? 'w-32' : 'w-20'\n\n return (\n <form onSubmit={onSubmit}>\n <div class=\"p-3 bg-[var(--shadow-color)] space-y-3\">\n <Members />\n <Cart />\n\n {Boolean(PaymentElement) && <Payment PaymentElement={PaymentElement} />}\n {Boolean(errors.generic) && <Error message={errors.generic} />}\n </div>\n\n <div class=\"flex justify-end items-center gap-1 mt-4 pb-4\">\n <button\n class=\"btn btn-back\"\n onClick={() => {\n clearError('generic')\n previousStep()\n }}\n type=\"button\"\n disabled={submitDisabled}\n >\n BACK\n </button>\n\n <button class={`btn ${widthClass}`} type=\"submit\" disabled={isPreview || submitDisabled}>\n {submitDisabled ? (\n <FontAwesomeIcon icon=\"fa-duotone fa-spinner-third\" className=\"animate-spin size-4\" />\n ) : (\n <span>{submitText}</span>\n )}\n </button>\n </div>\n </form>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { useMembers, useStep, useLeadCaptureForm } from '../../landing_page'\nimport { cleanMember } from '../submission'\n\nexport function Members() {\n const { members } = useMembers()\n\n return (\n <>\n {members\n .filter((member) => Boolean(member.name))\n .map((member) => (\n <Member member={cleanMemberForDisplay(member)} />\n ))}\n </>\n )\n}\n\nfunction Member({ member }) {\n const { jumpToStep } = useStep()\n\n return (\n <div class=\"p-3 bg-[var(--tertiary-color)]\">\n <div class=\"border-b flex justify-between pb-2\">\n <div class=\"text-base font-bold\">{member.name}</div>\n <button class=\"flex items-center gap-2\" type=\"button\" onClick={() => jumpToStep(1)}>\n <FontAwesomeIcon icon=\"pencil\" className=\"text-[var(--primary-color)]\" />\n <div class=\"uppercase font-medium tracking-wide\">edit</div>\n </button>\n </div>\n\n <div class=\"space-y-2 pt-2\">\n {Object.keys(member)\n .filter((k) => k !== 'name' && k !== 'primary')\n .map((key) => (\n <div class=\"flex items-center gap-4\">\n <div class=\"uppercase font-medium tracking-wide\">{lookupFieldLabel(member, key)}:</div>\n <div>{displayMemberInfo(member, key)}</div>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nfunction lookupFieldLabel(member, key) {\n if (key === 'membershipTemplate') return 'Membership'\n if (key === 'class') return 'Class'\n\n const { leadCaptureForm, guardianLeadCaptureForm } = useLeadCaptureForm()\n const matchKey = (field) => field.key === key\n const lcfHit = leadCaptureForm.find(matchKey)\n const glcfHit = guardianLeadCaptureForm?.find(matchKey)\n\n if (!member.participating && glcfHit) {\n return glcfHit.label\n }\n\n return lcfHit.label\n}\n\nfunction cleanMemberForDisplay(member) {\n const cleaned = cleanMember(member)\n\n if (member.participating && member.membershipTemplate) {\n cleaned.membershipTemplate = member.membershipTemplate\n }\n\n if (member.participating && member.class) {\n cleaned.class = member.class\n }\n\n return cleaned\n}\n\nfunction displayMemberInfo(member, key) {\n if (key === 'address' && member.address?.full) {\n return member.address.full\n }\n\n if (key === 'phone' && member.phone?.number) {\n return member.phone.number\n }\n\n if (key === 'birthdate') {\n // Javascript parses 1999-03-19 wrong\n // but 1999/03/19 right...\n const value = member.birthdate.replace(/-/g, '/')\n\n return new Date(value).toLocaleDateString()\n }\n\n if (key === 'membershipTemplate') {\n return (\n <div class=\"flex items-center gap-2 flex-wrap\">\n <div>{member.membershipTemplate.name}</div>\n <div class=\"text-[var(--secondary-color-light)]\">\u2013</div>\n <div>{member.membershipTemplate.interval}</div>\n </div>\n )\n }\n\n if (key === 'class') {\n return (\n <div class=\"flex items-center gap-2 flex-wrap\">\n <div>{member.class.name}</div>\n <div class=\"text-[var(--secondary-color-light)]\">\u2013</div>\n <div>\n <span>{formatDate(member.class.start)} </span>\n <span>{formatTime(member.class.start)}</span>\n <span> - </span>\n <span>{formatTime(member.class.end)}</span>\n </div>\n </div>\n )\n }\n\n return member[key].toString()\n}\n\nfunction formatDate(time) {\n const date = new Date(time)\n return date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n })\n}\n\nfunction formatTime(time) {\n const date = new Date(time)\n\n return date\n .toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n })\n .toLowerCase()\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { CartDisplay, useCart } from '../cart'\n\nexport function Cart() {\n const { cart } = useCart()\n\n return (\n <>\n {cart.size > 0 && (\n <div class=\"p-3 bg-[var(--tertiary-color)]\">\n <div class=\"text-base font-bold\">Cart</div>\n\n <CartDisplay detailed={true} />\n </div>\n )}\n </>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useBilling } from '../../landing_page'\n\nexport function Payment({ PaymentElement }) {\n const { paymentRequired } = useBilling()\n\n return (\n <>\n {paymentRequired && (\n <div class=\"p-3 bg-[var(--tertiary-color)]\">\n <div class=\"text-base font-bold\">Card Details</div>\n {PaymentElement}\n </div>\n )}\n </>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useRef } from 'preact/hooks'\nimport { GenericConfirmation } from './generic'\nimport { useSubmit } from '../submission'\nimport { useBasysTokenizer } from '../tokenizers/basys'\nimport { useTheme, useBilling } from '../../landing_page'\nimport { useSignal } from '@preact/signals'\nimport { Error } from '../error'\n\nexport function BasysConfirmation() {\n const theme = useTheme()\n const { merchantAccount, strictVaulting } = useBilling()\n const { submit: defaultSubmit } = useSubmit()\n const paymentElementRef = useRef(null)\n\n const zip = useSignal(null)\n const label = useSignal(null)\n const save = useSignal(true)\n const errorText = useSignal(null)\n\n const disabled = useSignal(true)\n const tokenizer = useBasysTokenizer(\n paymentElementRef,\n theme,\n merchantAccount,\n async (token) => {\n disabled.value = true\n\n const success = await defaultSubmit({\n billing: { label, save, source: token, billing_address: { zip_code: zip } },\n })\n\n if (!success) {\n disabled.value = false\n }\n },\n () => {\n disabled.value = false\n },\n (error) => {\n disabled.value = false\n errorText.value = error\n },\n )\n\n const submit = (event) => {\n disabled.value = true\n event.preventDefault()\n\n tokenizer.submit()\n }\n\n return (\n <GenericConfirmation\n submitDisabled={disabled.value}\n onSubmit={submit}\n PaymentElement={\n <div class=\"mt-2\">\n <div class=\" grid grid-cols-[1fr_7em]\">\n <div ref={paymentElementRef}></div>\n <div class=\"pl-[5px]\">\n <input\n class=\"input input-border text-base placeholder:text-[#b8b8b8] placeholder:opacity-100\"\n type=\"text\"\n placeholder=\"ZIP\"\n maxlength=\"10\"\n required\n onInput={({ target }) => (zip.value = target.value)}\n />\n </div>\n </div>\n {save.value && (\n <div>\n <input\n class=\"input input-border text-base placeholder:text-[#b8b8b8] placeholder:opacity-100\"\n type=\"text\"\n placeholder=\"LABEL (OPTIONAL)\"\n onInput={({ target }) => (label.value = target.value)}\n />\n </div>\n )}\n <div class=\"mt-1\">\n <Error message={errorText.value} />\n </div>\n <div class=\"mt-1 text-[var(--secondary-color-light)]\">\n {strictVaulting ? (\n <>Card details will be saved to your profile.</>\n ) : (\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-primary checkbox-sm\"\n onChange={({ target }) => (save.value = target.checked)}\n id=\"save-for-later\"\n checked={save.value}\n />\n\n <label for=\"save-for-later\">Save for Later</label>\n </div>\n )}\n </div>\n </div>\n }\n />\n )\n}\n", "import { useEffect } from 'preact/hooks'\n\nlet currentTokenizer\n\nconst tokenizerProxy = {\n submit() {\n if (!currentTokenizer) return\n\n currentTokenizer.submit()\n },\n}\n\nexport function useBasysTokenizer(ref, theme, merchantAccount, onSubmit, onLoad, onError) {\n useEffect(() => {\n if (!ref.current) return\n\n currentTokenizer = buildBasysTokenizer(ref, theme, merchantAccount, onSubmit, onLoad, onError)\n\n return () => (currentTokenizer = null)\n }, [ref])\n\n return tokenizerProxy\n}\n\nfunction buildBasysTokenizer(ref, theme, merchantAccount, onSubmit, onLoad, onError) {\n if (!ref.current) return\n\n return new window.Tokenizer({\n apikey: merchantAccount.publicKey,\n container: ref.current,\n submission: (response) => {\n switch (response.status) {\n case 'success':\n onSubmit(response.token)\n\n break\n case 'error':\n onError(response.msg)\n\n break\n case 'validation':\n onError('Invalid card information')\n\n break\n default:\n break\n }\n },\n onLoad,\n settings: {\n payment: { placeholderCreditCard: 'CARD NUMBER' },\n styles: {\n '.payment input': {\n height: '44px',\n border: `solid 2px ${theme.secondary_color}BF`,\n 'border-radius': '5px',\n 'background-color': 'transparent',\n color: `${theme.secondary_color}`,\n 'line-height': '36px',\n 'font-family': '\"Hind Vadodara\", sans-serif',\n 'font-size': '16px',\n 'text-transform': 'uppercase',\n },\n '.payment input.invalid': { border: `solid 2px #d9433e` },\n },\n },\n })\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { Elements, CardElement, useStripe, useElements } from '@stripe/react-stripe-js'\nimport { useBilling, useTheme } from '../../landing_page'\nimport { useCart } from '../cart'\nimport { GenericConfirmation } from './generic'\nimport { useSignal } from '@preact/signals'\nimport { post } from '../../../helpers/fetch_helper'\nimport { useSubmit } from '../submission'\nimport { Error } from '../error'\n\nlet globalStripe\n\nexport function StripeConfirmation() {\n const { merchantAccount } = useBilling()\n const { total } = useCart()\n\n globalStripe ||= window.Stripe(merchantAccount.publicKey, { stripeAccount: merchantAccount.account })\n\n return (\n <Elements\n stripe={globalStripe}\n options={{\n mode: 'payment',\n amount: Math.floor(total()),\n currency: document.body.dataset.currency.toLowerCase(),\n }}\n >\n <Confirmation />\n </Elements>\n )\n}\n\nfunction Confirmation() {\n const stripe = useStripe()\n const elements = useElements()\n\n const { cart, isMembership } = useCart()\n const { strictVaulting } = useBilling()\n const { submit: defaultSubmit } = useSubmit()\n\n const save = useSignal(true)\n const errorText = useSignal(null)\n const disabled = useSignal(!stripe)\n\n const submit = async (event) => {\n event.preventDefault()\n\n if (!stripe || !elements) return\n\n disabled.value = true\n\n const body = {}\n\n cart.forEach((quantity, item) => {\n if (isMembership(item)) {\n body.membership = item.id\n } else {\n body.items ||= []\n\n body.items.push({\n id: item.id,\n quantity,\n })\n }\n })\n\n const response = await post(window.location.href.replace('/submission/new', '/payment_intents'), body)\n const { client_secret: clientSecret } = await response.json()\n\n const { error, paymentIntent } = await stripe.confirmCardPayment(clientSecret, {\n payment_method: { card: elements.getElement(CardElement) },\n setup_future_usage: 'off_session',\n })\n\n if (error) {\n errorText.value = error.message\n disabled.value = false\n return\n }\n\n const success = await defaultSubmit({\n billing: { save, label: null, source: paymentIntent.id },\n })\n\n if (!success) {\n disabled.value = false\n }\n }\n\n return (\n <GenericConfirmation\n submitDisabled={disabled.value}\n onSubmit={submit}\n PaymentElement={\n <div class=\"mt-2\">\n <StripePaymentElement errorText={errorText} />\n <div class=\"mt-1\">\n <Error message={errorText.value} />\n </div>\n <div class=\"mt-1 text-[var(--secondary-color-light)]\">\n {strictVaulting ? (\n <>Card details will be saved to your profile.</>\n ) : (\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-primary checkbox-sm\"\n onChange={({ target }) => (save.value = target.checked)}\n id=\"save-for-later\"\n checked={save.value}\n />\n\n <label for=\"save-for-later\">Save for Later</label>\n </div>\n )}\n </div>\n </div>\n }\n />\n )\n}\n\nfunction StripePaymentElement({ errorText }) {\n const theme = useTheme()\n\n return (\n <CardElement\n onChange={(event) => {\n if (event.error) {\n errorText.value = event.error.message\n } else {\n errorText.value = null\n }\n }}\n options={{\n style: {\n base: {\n iconColor: theme.primary_color,\n color: theme.secondary_color,\n lineHeight: '32px',\n fontFamily: '\"Hind Vadodara\", sans-serif',\n fontSize: '16px',\n textTransform: 'uppercase',\n\n '::placeholder': { color: `${theme.secondary_color}BF` },\n },\n invalid: {\n iconColor: '#d9433e',\n color: '#d9433e',\n },\n },\n }}\n />\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useRef } from 'preact/hooks'\nimport { GenericConfirmation } from './generic'\nimport { useSubmit } from '../submission'\nimport { useUsaEpayTokenizer } from '../tokenizers/usa_epay'\nimport { useTheme, useBilling } from '../../landing_page'\nimport { useSignal } from '@preact/signals'\nimport { Error } from '../error'\n\nexport function UsaEpayConfirmation() {\n const theme = useTheme()\n const { merchantAccount, strictVaulting } = useBilling()\n const { submit: defaultSubmit } = useSubmit()\n const paymentElementRef = useRef(null)\n\n const zip = useSignal(null)\n const label = useSignal(null)\n const save = useSignal(true)\n const errorText = useSignal(null)\n\n const disabled = useSignal(true)\n const tokenizer = useUsaEpayTokenizer(\n paymentElementRef,\n theme,\n merchantAccount,\n async (token) => {\n const success = await defaultSubmit({\n billing: { save, label, source: token, billing_address: { zip_code: zip } },\n })\n\n if (!success) {\n disabled.value = false\n }\n },\n () => {\n disabled.value = false\n },\n (error) => {\n const message = error.message.replace('informtion', 'information')\n\n disabled.value = false\n errorText.value = message\n },\n )\n\n const submit = (event) => {\n disabled.value = true\n event.preventDefault()\n\n tokenizer.submit()\n }\n\n return (\n <GenericConfirmation\n submitDisabled={disabled.value}\n onSubmit={submit}\n PaymentElement={\n <div class=\"mt-2\">\n <div class=\" grid gap-2 grid-cols-[1fr_7em]\">\n <div ref={paymentElementRef} id=\"usa-epay-payment-element\" class=\"h-11\"></div>\n <input\n class=\"input input-border text-base placeholder:text-[#b8b8b8] placeholder:opacity-100\"\n type=\"text\"\n placeholder=\"ZIP\"\n maxlength=\"10\"\n required\n onInput={({ target }) => (zip.value = target.value)}\n />\n </div>\n {save.value && (\n <div class=\"pt-2\">\n <input\n class=\"input input-border text-base placeholder:text-[#b8b8b8] placeholder:opacity-100\"\n type=\"text\"\n placeholder=\"LABEL (OPTIONAL)\"\n onInput={({ target }) => (label.value = target.value)}\n />\n </div>\n )}\n <div class=\"mt-1\">\n <Error message={errorText.value} />\n </div>\n <div class=\"mt-1 text-[var(--secondary-color-light)]\">\n {strictVaulting ? (\n <>Card details will be saved to your profile.</>\n ) : (\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-primary checkbox-sm\"\n onChange={({ target }) => (save.value = target.checked)}\n id=\"save-for-later\"\n checked={save.value}\n />\n\n <label for=\"save-for-later\">Save for Later</label>\n </div>\n )}\n </div>\n </div>\n }\n />\n )\n}\n", "import { useEffect } from 'preact/hooks'\n\nlet currentTokenizer\n\nconst tokenizerProxy = {\n submit() {\n if (!currentTokenizer) return\n\n const client = currentTokenizer.client\n const paymentCard = currentTokenizer.paymentCard\n\n paymentCard.addEventListener('error', (message) => currentTokenizer.onError({ message }), { once: true })\n\n client\n .getPaymentKey(paymentCard)\n .then((result) => {\n if (result.error) {\n currentTokenizer.onError(result.error)\n return\n }\n\n currentTokenizer.onSubmit(result)\n })\n .catch(() => {})\n },\n}\n\nexport function useUsaEpayTokenizer(ref, theme, merchantAccount, onSubmit, onLoad, onError) {\n useEffect(() => {\n if (!ref.current) return\n\n currentTokenizer = buildUsaEpayTokenizer(ref, theme, merchantAccount, onSubmit, onLoad, onError)\n\n return () => (currentTokenizer = null)\n }, [ref])\n\n return tokenizerProxy\n}\n\nfunction buildUsaEpayTokenizer(ref, theme, merchantAccount, onSubmit, onLoad, onError) {\n if (!ref.current) return\n\n const client = new window.usaepay.Client(merchantAccount.publicKey)\n const paymentCard = client.createPaymentCardEntry()\n const style = {\n base: {\n backgroundColor: 'transparent',\n color: theme.secondary_color,\n lineHeight: '36px',\n fontFamily: '\"Hind Vadodara\", sans-serif',\n fontSize: '16px',\n textTransform: 'uppercase',\n height: '44px',\n border: `solid 2px ${theme.secondary_color}BF !important`,\n borderRadius: '5px !important',\n padding: '20px 10px !important',\n minWidth: '90px',\n },\n // eslint-disable-next-line max-len\n '{}\\n.payjs-input-icon { display: none; } #payjs-container { height: 44px, display: flex; gap: 0.5rem; } #payjs-cnum { flex: 1 } @media (max-width: 767px) { #payjs-cvv { width: 4em; min-width: 0px !important; } #payjs-exp { width: 4em; } }':\n '',\n invalid: { color: '#d9433e' },\n }\n\n paymentCard.generateHTML(style)\n paymentCard.addHTML(ref.current.id)\n\n onLoad()\n\n return { client, paymentCard, onSubmit, onError }\n}\n", "import React, { Fragment } from 'preact/compat'\nimport { h } from 'preact'\nimport { useStep } from '../landing_page'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nexport function StepTracker() {\n const { step, numberOfSteps } = useStep()\n\n const steps = Array.from(Array(numberOfSteps).keys()).map((i) => i + 1)\n\n return (\n <div class=\"flex items-center\">\n {steps.map((s) => (\n <>\n <Step displaying={s} current={step} />\n\n {s < numberOfSteps && (\n <div\n class={s < step ? 'bg-[var(--primary-color)] h-1 w-2' : 'bg-[var(--secondary-color-light)] h-1 w-2'}\n ></div>\n )}\n </>\n ))}\n </div>\n )\n}\n\nfunction Step({ displaying, current }) {\n const classes = 'size-2 rounded-full ring-2 ring-offset-[var(--tertiary-color)] ring-offset-2'\n\n const isFinished = displaying < current\n const isCurrent = displaying === current\n const isNext = displaying > current\n\n return (\n <>\n {isFinished && <FontAwesomeIcon icon=\"circle-check\" className=\"text-[var(--primary-color)] size-4\" />}\n {isCurrent && (\n <div class=\"size-4 bg-[var(--tertiary-color)] rounded-full flex items-center justify-center\">\n <div class={`${classes} bg-[var(--primary-color)] ring-[var(--primary-color)]`}></div>\n </div>\n )}\n {isNext && (\n <div class=\"size-4 bg-[var(--tertiary-color)] rounded-full flex items-center justify-center\">\n <div class={`${classes} bg-[var(--tertiary-color)] ring-[var(--secondary-color-light)]`}></div>\n </div>\n )}\n </>\n )\n}\n", "import React from 'preact/compat'\nimport { h, Fragment } from 'preact'\nimport { useAgreements, useStep, useMembers } from './landing_page'\nimport { useEffect, useRef, useState } from 'preact/hooks'\n\nexport function Agreements() {\n const { members } = useMembers()\n const { nextStep, previousStep } = useStep()\n const agreements = useAgreements()\n let action =\n 'signature:reset->agreement-signatures#jumpTo signature:completed->agreement-signatures#updateCount ' +\n 'signature:reset->agreement-signatures#updateCount'\n\n const controllerRef = useRef(null)\n\n const [controller, setController] = useState(null)\n\n useEffect(() => {\n if (!controllerRef.current) {\n setController(null)\n return\n }\n\n const cont = window.Stimulus.getControllerForElementAndIdentifier(\n controllerRef.current,\n 'agreement-signatures',\n )\n\n setController(cont)\n }, [controllerRef])\n\n useEffect(() => {\n const tokens = members[0].agreementTokens\n\n if (!tokens) return\n\n document.querySelectorAll('[data-token]').forEach((element) => {\n const token = element.getAttribute('data-token')\n element.value = tokens[token]\n })\n })\n\n // TODO: So to get things to populate right we'll wanna effectively make `submit`\n // handle _both_ going forward and backward I think. Seems doable?\n const submit = (event) => {\n event.preventDefault()\n\n if (!controller) return\n\n const isBack = event.submitter.value\n\n if (!isBack && !controller.completed) {\n controller.scrollToCurrent()\n controller.flashValidity()\n return\n }\n\n const formData = new FormData(event.target)\n const signatures = formData.getAll('signatures[]')\n members[0].signatures = signatures\n const tokens = {}\n event.target.querySelectorAll('[data-token]').forEach((element) => {\n const token = element.getAttribute('data-token')\n tokens[token] = element.value\n })\n members[0].agreementTokens = tokens\n\n if (isBack) {\n previousStep()\n return\n }\n\n nextStep()\n }\n\n return (\n <form onSubmit={submit}>\n {agreements.map((agreement) => (\n <div\n class=\"relative\"\n data-controller=\"agreement-signatures\"\n data-agreement-signatures-signature-outlet=\".signature\"\n data-agreement-signatures-checkbox-signature-outlet=\".checkbox-signature\"\n data-action={action}\n ref={controllerRef}\n >\n <div class=\"p-3 bg-[var(--shadow-color)]\">\n <div class=\"p-3 bg-[var(--tertiary-color)] space-y-3\">\n <div>\n <h4 class=\"text-center mb-4\">{agreement.name}</h4>\n <div\n class=\"fr-view\"\n dangerouslySetInnerHTML={{ __html: agreement.sanitized_agreement_content }}\n style={{ color: 'var(--secondary-color) !important' }}\n ></div>\n </div>\n </div>\n </div>\n <div class=\"w-full flex justify-between items-center\">\n <div class=\"flex m-3 gap-1\">\n <div data-agreement-signatures-target=\"count\">0</div>\n <div>of</div>\n <div>{agreement.count}</div>\n <div data-agreement-signatures-target=\"count\">signatures completed</div>\n </div>\n <div class=\"flex m-3 gap-1\">\n <button class=\"btn btn-back\" type=\"submit\" value=\"true\" formnovalidate>\n BACK\n </button>\n <button class=\"btn\" type=\"submit\">\n NEXT\n </button>\n </div>\n </div>\n </div>\n ))}\n </form>\n )\n}\n", "import { application } from './application'\nimport { LandingPage } from './landing_page'\n\napplication.register('landing-page', LandingPage)\n\napplication.start()\n", "(function(){/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=this||self;function k(a,b){a=a.split(\".\");var c=aa;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}function m(a,b){function c(){}c.prototype=b.prototype;a.$=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.fa=function(d,e,g){for(var f=Array(arguments.length-2),h=2;h<arguments.length;h++)f[h-2]=arguments[h];return b.prototype[e].apply(d,f)}};function ba(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};function ca(a,b){a.sort(b||da)}function da(a,b){return a>b?1:a<b?-1:0};function ea(a,b){this.g=a;this.m=!!b.o;this.i=b.h;this.v=b.type;this.u=!1;switch(this.i){case fa:case ha:case ia:case ja:case ka:case la:case ma:this.u=!0}this.l=b.defaultValue}var ma=1,la=2,fa=3,ha=4,ia=6,ja=16,ka=18;function na(a,b){this.i=a;this.g={};for(a=0;a<b.length;a++){var c=b[a];this.g[c.g]=c}}function oa(a){a=ba(a.g);ca(a,function(b,c){return b.g-c.g});return a};function n(){this.g={};this.l=this.j().g;this.i=this.m=null}n.prototype.has=function(a){return null!=this.g[a.g]};n.prototype.get=function(a,b){return p(this,a.g,b)};n.prototype.set=function(a,b){q(this,a.g,b)};n.prototype.add=function(a,b){r(this,a.g,b)};\nfunction t(a,b){for(var c=oa(a.j()),d=0;d<c.length;d++){var e=c[d],g=e.g;if(null!=b.g[g]){a.i&&delete a.i[e.g];var f=11==e.i||10==e.i;if(e.m){e=u(b,g);for(var h=0;h<e.length;h++)r(a,g,f?e[h].clone():e[h])}else e=v(b,g),f?(f=v(a,g))?t(f,e):q(a,g,e.clone()):q(a,g,e)}}}n.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.g={},a.i&&(a.i={}),t(a,this));return a};\nfunction v(a,b){var c=a.g[b];if(null==c)return null;if(a.m){if(!(b in a.i)){var d=a.m,e=a.l[b];if(null!=c)if(e.m){for(var g=[],f=0;f<c.length;f++)g[f]=d.i(e,c[f]);c=g}else c=d.i(e,c);return a.i[b]=c}return a.i[b]}return c}function p(a,b,c){var d=v(a,b);return a.l[b].m?d[c||0]:d}function w(a,b){if(null!=a.g[b])a=p(a,b,void 0);else a:{a=a.l[b];if(void 0===a.l)if(b=a.v,b===Boolean)a.l=!1;else if(b===Number)a.l=0;else if(b===String)a.l=a.u?\"0\":\"\";else{a=new b;break a}a=a.l}return a}\nfunction u(a,b){return v(a,b)||[]}function x(a,b){return a.l[b].m?null!=a.g[b]?a.g[b].length:0:null!=a.g[b]?1:0}function q(a,b,c){a.g[b]=c;a.i&&(a.i[b]=c)}function r(a,b,c){a.g[b]||(a.g[b]=[]);a.g[b].push(c);a.i&&delete a.i[b]}function y(a,b){var c=[],d;for(d in b)0!=d&&c.push(new ea(d,b[d]));return new na(a,c)};function A(){}A.prototype.g=function(a){new a.i;throw Error(\"Unimplemented\");};A.prototype.i=function(a,b){if(11==a.i||10==a.i)return b instanceof n?b:this.g(a.v.prototype.j(),b);if(14==a.i)return\"string\"===typeof b&&B.test(b)&&(a=Number(b),0<a)?a:b;if(!a.u)return b;a=a.v;if(a===String){if(\"number\"===typeof b)return String(b)}else if(a===Number&&\"string\"===typeof b&&(\"Infinity\"===b||\"-Infinity\"===b||\"NaN\"===b||B.test(b)))return Number(b);return b};var B=/^-?[0-9]+$/;function C(){}m(C,A);C.prototype.g=function(a,b){a=new a.i;a.m=this;a.g=b;a.i={};return a};function D(){}m(D,C);D.prototype.i=function(a,b){return 8==a.i?!!b:A.prototype.i.apply(this,arguments)};D.prototype.g=function(a,b){return D.$.g.call(this,a,b)};function E(a,b){null!=a&&this.g.apply(this,arguments)}E.prototype.i=\"\";E.prototype.set=function(a){this.i=\"\"+a};E.prototype.g=function(a,b,c){this.i+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.i+=arguments[d];return this};E.prototype.toString=function(){return this.i};/*\n\n Protocol Buffer 2 Copyright 2008 Google Inc.\n All other code copyright its respective owners.\n Copyright (C) 2010 The Libphonenumber Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nfunction F(){n.call(this)}m(F,n);var pa=null;function G(){n.call(this)}m(G,n);var qa=null;function H(){n.call(this)}m(H,n);var ra=null;\nF.prototype.j=function(){var a=pa;a||(pa=a=y(F,{0:{name:\"NumberFormat\",s:\"i18n.phonenumbers.NumberFormat\"},1:{name:\"pattern\",required:!0,h:9,type:String},2:{name:\"format\",required:!0,h:9,type:String},3:{name:\"leading_digits_pattern\",o:!0,h:9,type:String},4:{name:\"national_prefix_formatting_rule\",h:9,type:String},6:{name:\"national_prefix_optional_when_formatting\",h:8,defaultValue:!1,type:Boolean},5:{name:\"domestic_carrier_code_formatting_rule\",h:9,type:String}}));return a};F.j=F.prototype.j;\nG.prototype.j=function(){var a=qa;a||(qa=a=y(G,{0:{name:\"PhoneNumberDesc\",s:\"i18n.phonenumbers.PhoneNumberDesc\"},2:{name:\"national_number_pattern\",h:9,type:String},9:{name:\"possible_length\",o:!0,h:5,type:Number},10:{name:\"possible_length_local_only\",o:!0,h:5,type:Number},6:{name:\"example_number\",h:9,type:String}}));return a};G.j=G.prototype.j;\nH.prototype.j=function(){var a=ra;a||(ra=a=y(H,{0:{name:\"PhoneMetadata\",s:\"i18n.phonenumbers.PhoneMetadata\"},1:{name:\"general_desc\",h:11,type:G},2:{name:\"fixed_line\",h:11,type:G},3:{name:\"mobile\",h:11,type:G},4:{name:\"toll_free\",h:11,type:G},5:{name:\"premium_rate\",h:11,type:G},6:{name:\"shared_cost\",h:11,type:G},7:{name:\"personal_number\",h:11,type:G},8:{name:\"voip\",h:11,type:G},21:{name:\"pager\",h:11,type:G},25:{name:\"uan\",h:11,type:G},27:{name:\"emergency\",h:11,type:G},28:{name:\"voicemail\",h:11,type:G},\n29:{name:\"short_code\",h:11,type:G},30:{name:\"standard_rate\",h:11,type:G},31:{name:\"carrier_specific\",h:11,type:G},33:{name:\"sms_services\",h:11,type:G},24:{name:\"no_international_dialling\",h:11,type:G},9:{name:\"id\",required:!0,h:9,type:String},10:{name:\"country_code\",h:5,type:Number},11:{name:\"international_prefix\",h:9,type:String},17:{name:\"preferred_international_prefix\",h:9,type:String},12:{name:\"national_prefix\",h:9,type:String},13:{name:\"preferred_extn_prefix\",h:9,type:String},15:{name:\"national_prefix_for_parsing\",\nh:9,type:String},16:{name:\"national_prefix_transform_rule\",h:9,type:String},18:{name:\"same_mobile_and_fixed_line_pattern\",h:8,defaultValue:!1,type:Boolean},19:{name:\"number_format\",o:!0,h:11,type:F},20:{name:\"intl_number_format\",o:!0,h:11,type:F},22:{name:\"main_country_for_code\",h:8,defaultValue:!1,type:Boolean},23:{name:\"leading_digits\",h:9,type:String},26:{name:\"leading_zero_possible\",h:8,defaultValue:!1,type:Boolean}}));return a};H.j=H.prototype.j;function I(){n.call(this)}m(I,n);var sa=null,ta={ea:0,da:1,ca:5,ba:10,aa:20};\nI.prototype.j=function(){var a=sa;a||(sa=a=y(I,{0:{name:\"PhoneNumber\",s:\"i18n.phonenumbers.PhoneNumber\"},1:{name:\"country_code\",required:!0,h:5,type:Number},2:{name:\"national_number\",required:!0,h:4,type:Number},3:{name:\"extension\",h:9,type:String},4:{name:\"italian_leading_zero\",h:8,type:Boolean},8:{name:\"number_of_leading_zeros\",h:5,defaultValue:1,type:Number},5:{name:\"raw_input\",h:9,type:String},6:{name:\"country_code_source\",h:14,defaultValue:0,type:ta},7:{name:\"preferred_domestic_carrier_code\",\nh:9,type:String}}));return a};I.ctor=I;I.ctor.j=I.prototype.j;/*\n\n Copyright (C) 2010 The Libphonenumber Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nvar J={1:\"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI\".split(\" \"),7:[\"RU\",\"KZ\"],20:[\"EG\"],27:[\"ZA\"],30:[\"GR\"],31:[\"NL\"],32:[\"BE\"],33:[\"FR\"],34:[\"ES\"],36:[\"HU\"],39:[\"IT\",\"VA\"],40:[\"RO\"],41:[\"CH\"],43:[\"AT\"],44:[\"GB\",\"GG\",\"IM\",\"JE\"],45:[\"DK\"],46:[\"SE\"],47:[\"NO\",\"SJ\"],48:[\"PL\"],49:[\"DE\"],51:[\"PE\"],52:[\"MX\"],53:[\"CU\"],54:[\"AR\"],55:[\"BR\"],56:[\"CL\"],57:[\"CO\"],58:[\"VE\"],60:[\"MY\"],61:[\"AU\",\"CC\",\"CX\"],62:[\"ID\"],63:[\"PH\"],64:[\"NZ\"],65:[\"SG\"],66:[\"TH\"],81:[\"JP\"],82:[\"KR\"],84:[\"VN\"],\n86:[\"CN\"],90:[\"TR\"],91:[\"IN\"],92:[\"PK\"],93:[\"AF\"],94:[\"LK\"],95:[\"MM\"],98:[\"IR\"],211:[\"SS\"],212:[\"MA\",\"EH\"],213:[\"DZ\"],216:[\"TN\"],218:[\"LY\"],220:[\"GM\"],221:[\"SN\"],222:[\"MR\"],223:[\"ML\"],224:[\"GN\"],225:[\"CI\"],226:[\"BF\"],227:[\"NE\"],228:[\"TG\"],229:[\"BJ\"],230:[\"MU\"],231:[\"LR\"],232:[\"SL\"],233:[\"GH\"],234:[\"NG\"],235:[\"TD\"],236:[\"CF\"],237:[\"CM\"],238:[\"CV\"],239:[\"ST\"],240:[\"GQ\"],241:[\"GA\"],242:[\"CG\"],243:[\"CD\"],244:[\"AO\"],245:[\"GW\"],246:[\"IO\"],247:[\"AC\"],248:[\"SC\"],249:[\"SD\"],250:[\"RW\"],251:[\"ET\"],252:[\"SO\"],\n253:[\"DJ\"],254:[\"KE\"],255:[\"TZ\"],256:[\"UG\"],257:[\"BI\"],258:[\"MZ\"],260:[\"ZM\"],261:[\"MG\"],262:[\"RE\",\"YT\"],263:[\"ZW\"],264:[\"NA\"],265:[\"MW\"],266:[\"LS\"],267:[\"BW\"],268:[\"SZ\"],269:[\"KM\"],290:[\"SH\",\"TA\"],291:[\"ER\"],297:[\"AW\"],298:[\"FO\"],299:[\"GL\"],350:[\"GI\"],351:[\"PT\"],352:[\"LU\"],353:[\"IE\"],354:[\"IS\"],355:[\"AL\"],356:[\"MT\"],357:[\"CY\"],358:[\"FI\",\"AX\"],359:[\"BG\"],370:[\"LT\"],371:[\"LV\"],372:[\"EE\"],373:[\"MD\"],374:[\"AM\"],375:[\"BY\"],376:[\"AD\"],377:[\"MC\"],378:[\"SM\"],380:[\"UA\"],381:[\"RS\"],382:[\"ME\"],383:[\"XK\"],385:[\"HR\"],\n386:[\"SI\"],387:[\"BA\"],389:[\"MK\"],420:[\"CZ\"],421:[\"SK\"],423:[\"LI\"],500:[\"FK\"],501:[\"BZ\"],502:[\"GT\"],503:[\"SV\"],504:[\"HN\"],505:[\"NI\"],506:[\"CR\"],507:[\"PA\"],508:[\"PM\"],509:[\"HT\"],590:[\"GP\",\"BL\",\"MF\"],591:[\"BO\"],592:[\"GY\"],593:[\"EC\"],594:[\"GF\"],595:[\"PY\"],596:[\"MQ\"],597:[\"SR\"],598:[\"UY\"],599:[\"CW\",\"BQ\"],670:[\"TL\"],672:[\"NF\"],673:[\"BN\"],674:[\"NR\"],675:[\"PG\"],676:[\"TO\"],677:[\"SB\"],678:[\"VU\"],679:[\"FJ\"],680:[\"PW\"],681:[\"WF\"],682:[\"CK\"],683:[\"NU\"],685:[\"WS\"],686:[\"KI\"],687:[\"NC\"],688:[\"TV\"],689:[\"PF\"],690:[\"TK\"],\n691:[\"FM\"],692:[\"MH\"],800:[\"001\"],808:[\"001\"],850:[\"KP\"],852:[\"HK\"],853:[\"MO\"],855:[\"KH\"],856:[\"LA\"],870:[\"001\"],878:[\"001\"],880:[\"BD\"],881:[\"001\"],882:[\"001\"],883:[\"001\"],886:[\"TW\"],888:[\"001\"],960:[\"MV\"],961:[\"LB\"],962:[\"JO\"],963:[\"SY\"],964:[\"IQ\"],965:[\"KW\"],966:[\"SA\"],967:[\"YE\"],968:[\"OM\"],970:[\"PS\"],971:[\"AE\"],972:[\"IL\"],973:[\"BH\"],974:[\"QA\"],975:[\"BT\"],976:[\"MN\"],977:[\"NP\"],979:[\"001\"],992:[\"TJ\"],993:[\"TM\"],994:[\"AZ\"],995:[\"GE\"],996:[\"KG\"],998:[\"UZ\"]},va={AC:[,[,,\"(?:[01589]\\\\d|[46])\\\\d{4}\",\n,,,,,,[5,6]],[,,\"6[2-467]\\\\d{3}\",,,,\"62889\",,,[5]],[,,\"4\\\\d{4}\",,,,\"40123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AC\",247,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:0[1-9]|[1589]\\\\d)\\\\d{4}\",,,,\"542011\",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",,,,,,,[6,8,9]],[,,\"[78]\\\\d{5}\",,,,\"712345\",,,[6]],[,,\"690\\\\d{6}|[356]\\\\d{5}\",,,,\"312345\",,,[6,9]],[,,\"180[02]\\\\d{4}\",,,,\"18001234\",,,[8]],[,,\"[19]\\\\d{5}\",,,,\"912345\",,,[6]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AD\",376,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],,[,,,,,,,,,[-1]],,,[,,\"1800\\\\d{4}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",,,,,,,[5,6,7,8,9,10,11,12]],[,,\"[2-4679][2-8]\\\\d{6}\",,,,\"22345678\",,,[8],[7]],[,,\"5[024-68]\\\\d{7}\",,,,\"501234567\",,,[9]],[,,\"400\\\\d{6}|800\\\\d{2,9}\",,,,\"800123456\"],\n[,,\"900[02]\\\\d{5}\",,,,\"900234567\",,,[9]],[,,\"700[05]\\\\d{5}\",,,,\"700012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AE\",971,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"600[25]\\\\d{5}\",,,,\"600212345\",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,\"[2-7]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\\\d{6}\",\n,,,\"234567890\",,,,[7]],[,,\"7\\\\d{8}\",,,,\"701234567\",,,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AF\",93,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AG:[,[,,\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"268(?:4(?:6[0-38]|84)|56[0-2])\\\\d{4}\",,,,\"2684601234\",\n,,,[7]],[,,\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\",,,,\"2684641234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"26848[01]\\\\d{4}\",,,,\"2684801234\",,,,[7]],\n\"AG\",1,\"011\",\"1\",,,\"1|([457]\\\\d{6})$\",\"268$1\",,,,,[,,\"26840[69]\\\\d{4}\",,,,\"2684061234\",,,,[7]],,\"268\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AI:[,[,,\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"264(?:292|4(?:6[12]|9[78]))\\\\d{4}\",,,,\"2644612345\",,,,[7]],[,,\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\",,,,\"2642351234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"AI\",1,\"011\",\"1\",,,\"1|([2457]\\\\d{6})$\",\"264$1\",,,,,[,,\"264724\\\\d{4}\",,,,\"2647241234\",,,,[7]],,\"264\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AL:[,[,,\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",,,,,,,[6,7,8,9],[5]],[,,\"4505[0-2]\\\\d{3}|(?:[2358][16-9]\\\\d[2-9]|4410)\\\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\\\d))\\\\d{5}\",,,,\"22345678\",,,[8],[5,6,7]],[,,\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\",,,,\"672123456\",,,[9]],[,,\"800\\\\d{4}\",,,,\"8001234\",,,[7]],[,,\"900[1-9]\\\\d\\\\d\",\n,,,\"900123\",,,[6]],[,,\"808[1-9]\\\\d\\\\d\",,,,\"808123\",,,[6]],[,,\"700[2-9]\\\\d{4}\",,,,\"70021234\",,,[8]],[,,,,,,,,,[-1]],\"AL\",355,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AM:[,[,,\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",\n,,,,,,[8],[5,6]],[,,\"(?:(?:1[0-25]|47)\\\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\\\d{5}\",,,,\"10123456\",,,,[5,6]],[,,\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\",,,,\"77123456\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"90[016]\\\\d{5}\",,,,\"90012345\"],[,,\"80[1-4]\\\\d{5}\",,,,\"80112345\"],[,,,,,,,,,[-1]],[,,\"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\\\d|9[01])\\\\d{4}\",,,,\"60271234\"],\"AM\",374,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AO:[,[,,\"[29]\\\\d{8}\",,,,,,,[9]],[,,\"2\\\\d(?:[0134][25-9]|[25-9]\\\\d)\\\\d{5}\",,,,\"222123456\"],[,,\"9[1-49]\\\\d{7}\",,,,\"923123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AO\",244,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],AR:[,[,,\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",,,,,,,[10,11],[6,7,8]],[,,\"3888[013-9]\\\\d{5}|(?:29(?:54|66)|3(?:777|865))[2-8]\\\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|(?:2(?:284|302|657|920)|3(?:4(?:8[27]|92)|541|755|878))[2-7]\\\\d{5}|(?:2(?:(?:26|62)2|32[03]|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:(?:11[1-8]|670)\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:[03][45]|[17][2-6]|[58][3-6])))\\\\d{6}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",\n,,,\"1123456789\",,,[10],[6,7,8]],[,,\"93888[013-9]\\\\d{5}|9(?:29(?:54|66)|3(?:777|865))[2-8]\\\\d{5}|93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:284|302|657|920)|3(?:4(?:8[27]|92)|541|755|878))[2-7]\\\\d{5}|9(?:2(?:(?:26|62)2|32[03]|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:[03][45]|[17][2-6]|[58][3-6]))))\\\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",\n,,,\"91123456789\",,,,[6,7,8]],[,,\"800\\\\d{7,8}\",,,,\"8001234567\"],[,,\"60[04579]\\\\d{7}\",,,,\"6001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AR\",54,\"00\",\"0\",,,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\n\"9$1\",,,[[,\"(\\\\d{3})\",\"$1\",[\"0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911\"]],[,\"(\\\\d{2})(\\\\d{4})\",\"$1-$2\",[\"[1-9]\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[1-8]\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",,1],[,\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\"]],[[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",,1],[,\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"]],\n[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"91\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,\"810\\\\d{7}\",,,,,,,[10]],[,,\"810\\\\d{7}\",,,,\"8101234567\",,,[10]],,,[,,,,,,,,,[-1]]],AS:[,[,,\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"6846(?:22|33|44|55|77|88|9[19])\\\\d{4}\",,,,\"6846221234\",,,,[7]],[,,\"684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\\\d{4}\",,,,\"6847331234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"AS\",1,\"011\",\"1\",,,\"1|([267]\\\\d{6})$\",\"684$1\",,,,,[,,,,,,,,,[-1]],,\"684\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AT:[,[,,\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",\n,,,,,,[4,5,6,7,8,9,10,11,12,13],[3]],[,,\"1(?:11\\\\d|[2-9]\\\\d{3,11})|(?:316|463|(?:51|66|73)2)\\\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\\\d{4,10}\",,,,\"1234567890\",,,,[3]],[,,\"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\",,,,\"664123456\",,,[7,8,9,10,11,12,13]],[,,\"800\\\\d{6,10}\",\n,,,\"800123456\",,,[9,10,11,12,13]],[,,\"(?:8[69][2-68]|9(?:0[01]|3[019]))\\\\d{6,10}\",,,,\"900123456\",,,[9,10,11,12,13]],[,,\"8(?:10|2[018])\\\\d{6,10}|828\\\\d{5}\",,,,\"810123456\",,,[8,9,10,11,12,13]],[,,,,,,,,,[-1]],[,,\"5(?:0[1-9]|17|[79]\\\\d)\\\\d{2,10}|7[28]0\\\\d{6,10}\",,,,\"780123456\",,,[5,6,7,8,9,10,11,12,13]],\"AT\",43,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"1\"]],\n[,\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],\n[,\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AU:[,[,,\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",,,,,,,[5,6,7,8,9,10,12]],[,,\"(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",\n,,,\"212345678\",,,[9],[8]],[,,\"4(?:83[0-38]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"AU\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"0|(183[12])\",\n,\"0011\",,[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"13\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"19\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"180\",\"1802\"]],[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"19\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\",\"$CC ($1)\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",\n[\"130\"]]],[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\",\"$CC ($1)\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],[,,\"163\\\\d{2,6}\",,,,\"1631234\",,,[5,6,7,8,9]],1,,[,,\"1(?:3(?:00\\\\d{5}|45[0-4])|802)\\\\d{3}|1[38]00\\\\d{6}|13\\\\d{4}\",,,,,,,[6,7,8,10,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AW:[,[,,\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",\n,,,,,,[7]],[,,\"5(?:2\\\\d|8[1-9])\\\\d{4}\",,,,\"5212345\"],[,,\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\",,,,\"5601234\"],[,,\"800\\\\d{4}\",,,,\"8001234\"],[,,\"900\\\\d{4}\",,,,\"9001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:28\\\\d|501)\\\\d{4}\",,,,\"5011234\"],\"AW\",297,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AX:[,[,,\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",\n,,,,,,[5,6,7,8,9,10,11,12]],[,,\"18[1-8]\\\\d{3,6}\",,,,\"181234567\",,,[6,7,8,9]],[,,\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",,,,\"412345678\",,,[6,7,8,9,10]],[,,\"800\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"[67]00\\\\d{5,6}\",,,,\"600123456\",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AX\",358,\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"0\",,,\"0\",,\"00\",,,,[,,,,,,,,,[-1]],,\"18\",[,,,,,,,,,[-1]],[,,\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\",\n,,,\"10112345\"],,,[,,,,,,,,,[-1]]],AZ:[,[,,\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",,,,,,,[9],[7]],[,,\"(?:2[12]428|3655[02])\\\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\\\d{5}|(?:(?:1[28]|46)\\\\d|2(?:[014-6]2|[23]3))\\\\d{6}\",,,,\"123123456\",,,,[7]],[,,\"36554\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\\\d{7}\",,,,\"401234567\"],[,,\"88\\\\d{7}\",,,,\"881234567\"],[,,\"900200\\\\d{3}\",,,,\"900200123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AZ\",994,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[1-9]\"]],[,\n\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[13-9]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BA:[,[,,\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",,,,,,,[8,9],[6]],[,,\"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\\\d{5}\",,,,\"30212345\",,,[8],[6]],[,,\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\",,,,\"61123456\"],[,,\"8[08]\\\\d{6}\",,,,\"80123456\",,,[8]],[,,\"9[0246]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"8[12]\\\\d{6}\",,,,\"82123456\",,,[8]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BA\",387,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,\"703[235]0\\\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\\\d{4}\",,,,\"70341234\",,,[8]],,,[,,,,,,,,,[-1]]],BB:[,[,,\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\\\d|3[2-9])|5(?:20|[34]\\\\d|54|7[1-3])|6(?:2\\\\d|38)|7[35]7|9(?:1[89]|63))\\\\d{4}\",,,,\"2464123456\",,,,[7]],[,,\"246(?:2(?:[3568]\\\\d|4[0-57-9])|45\\\\d|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d{4}\",,,,\"2462501234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"(?:246976|900[2-9]\\\\d\\\\d)\\\\d{4}\",\n,,,\"9002123456\",,,,[7]],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"24631\\\\d{5}\",,,,\"2463101234\",,,,[7]],\"BB\",1,\"011\",\"1\",,,\"1|([2-9]\\\\d{6})$\",\"246$1\",,,,,[,,,,,,,,,[-1]],,\"246\",[,,,,,,,,,[-1]],[,,\"246(?:292|367|4(?:1[7-9]|3[01]|44|67)|7(?:36|53))\\\\d{4}\",,,,\"2464301234\",,,,\n[7]],,,[,,,,,,,,,[-1]]],BD:[,[,,\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",,,,,,,[6,7,8,9,10]],[,,\"(?:4(?:31\\\\d\\\\d|423)|5222)\\\\d{3}(?:\\\\d{2})?|8332[6-9]\\\\d\\\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\\\d{4}|(?:2(?:222|[45]\\\\d)\\\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\\\d{5}|[59]1\\\\d{5}\",\n,,,\"27111234\"],[,,\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\",,,,\"1812345678\",,,[10]],[,,\"80[03]\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\\\d{6}\",,,,\"9604123456\",,,[10]],\"BD\",880,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[,\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BE:[,[,,\"4\\\\d{8}|[1-9]\\\\d{7}\",,,,,,,[8,9]],[,,\"80[2-8]\\\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\\\d{6}\",,,,\"12345678\",,,[8]],[,,\"4[5-9]\\\\d{7}\",,,,\"470123456\",,,[9]],[,,\"800[1-9]\\\\d{4}\",,,,\"80012345\",,,[8]],[,,\"(?:70(?:2[0-57]|3[04-7]|44|69|7[0579])|90(?:0[0-8]|1[36]|2[0-3568]|3[013-689]|[47][2-68]|5[1-68]|6[0-378]|9[34679]))\\\\d{4}\",\n,,,\"90012345\",,,[8]],[,,\"7879\\\\d{4}\",,,,\"78791234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BE\",32,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"78(?:0[57]|1[0458]|2[25]|3[15-8]|48|[56]0|7[078]|9\\\\d)\\\\d{4}\",,,,\"78102345\",,,[8]],\n,,[,,,,,,,,,[-1]]],BF:[,[,,\"[025-7]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:0(?:49|5[23]|6[56]|9[016-9])|4(?:4[569]|5[4-6]|6[56]|7[0179])|5(?:[34]\\\\d|50|6[5-7]))\\\\d{4}\",,,,\"20491234\"],[,,\"(?:0[1267]|5[1-8]|[67]\\\\d)\\\\d{6}\",,,,\"70123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BF\",226,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BG:[,[,,\"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",\n,,,,,,[6,7,8,9],[4,5]],[,,\"2\\\\d{5,7}|(?:43[1-6]|70[1-9])\\\\d{4,5}|(?:[36]\\\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\\\d{5,6}\",,,,\"2123456\",,,[6,7,8],[4,5]],[,,\"(?:43[07-9]|99[69]\\\\d)\\\\d{5}|(?:8[7-9]|98)\\\\d{7}\",,,,\"43012345\",,,[8,9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"90\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"700\\\\d{5}\",,,,\"70012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BG\",359,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{6})\",\"$1\",[\"1\"]],[,\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",\n[\"43[1-6]|70[1-9]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BH:[,[,,\"[136-9]\\\\d{7}\",,,,,,,[8]],[,,\"(?:1(?:3[1356]|6[0156]|7\\\\d)\\\\d|6(?:1[16]\\\\d|500|6(?:0\\\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\\\d\\\\d))\\\\d{4}\",\n,,,\"17001234\"],[,,\"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\",,,,\"36001234\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"(?:87|9[014578])\\\\d{6}\",,,,\"90123456\"],[,,\"84\\\\d{6}\",,,,\"84123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BH\",973,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[047]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BI:[,[,,\"(?:[267]\\\\d|31)\\\\d{6}\",,,,,,,[8]],[,,\"(?:22|31)\\\\d{6}\",,,,\"22201234\"],[,,\"(?:29|6[1257-9]|7[125-9])\\\\d{6}\",\n,,,\"79561234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BI\",257,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BJ:[,[,,\"[25689]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:02|1[037]|2[45]|3[68])\\\\d{5}\",,,,\"20211234\"],[,,\"(?:5[1-8]|6\\\\d|9[013-9])\\\\d{6}\",,,,\"90011234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"857[58]\\\\d{4}\",,,,\"85751234\"],\"BJ\",229,\"00\",\n,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[25689]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"81\\\\d{6}\",,,,\"81123456\"],,,[,,,,,,,,,[-1]]],BL:[,[,,\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",,,,,,,[9]],[,,\"590(?:2[7-9]|5[12]|87)\\\\d{4}\",,,,\"590271234\"],[,,\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\",,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"976[01]\\\\d{5}\",,,,\"976012345\"],\"BL\",590,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,\n,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BM:[,[,,\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"441(?:[46]\\\\d\\\\d|5(?:4\\\\d|60|89))\\\\d{4}\",,,,\"4414123456\",,,,[7]],[,,\"441(?:[2378]\\\\d|5[0-39])\\\\d{5}\",,,,\"4413701234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"BM\",1,\"011\",\"1\",,,\"1|([2-8]\\\\d{6})$\",\"441$1\",,,,,[,,,,,,,,,[-1]],,\"441\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BN:[,[,,\"[2-578]\\\\d{6}\",,,,,,,[7]],[,,\"22[0-7]\\\\d{4}|(?:2[013-9]|[34]\\\\d|5[0-25-9])\\\\d{5}\",,,,\"2345678\"],[,,\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\",,,,\"7123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[34]\\\\d{5}\",,,,\"5345678\"],\"BN\",673,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BO:[,[,,\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",,,,,,,[8,9],[7]],[,,\"(?:2(?:2\\\\d\\\\d|5(?:11|[258]\\\\d|9[67])|6(?:12|2\\\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\\\d\\\\d|4(?:6\\\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\\\d\\\\d|6(?:11|[24689]\\\\d|72)))\\\\d{4}\",,,,\"22123456\",,,[8],[7]],[,,\"[67]\\\\d{7}\",,,,\"71234567\",,,[8]],[,,\"8001[07]\\\\d{4}\",,,,\"800171234\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BO\",591,\"00(?:1\\\\d)?\",\"0\",\n,,\"0(1\\\\d)?\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"],,\"0$CC $1\"],[,\"(\\\\d{8})\",\"$1\",[\"[67]\"],,\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],,\"0$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,\"8001[07]\\\\d{4}\",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BQ:[,[,,\"(?:[34]1|7\\\\d)\\\\d{5}\",,,,,,,[7]],[,,\"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\\\d)\\\\d{3}\",,,,\"7151234\"],[,,\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\",,,,\"3181234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,\n,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BQ\",599,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"[347]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BR:[,[,,\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-24679]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",,,,,,,[8,9,10,11]],[,,\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\\\d{7}\",,,,\"1123456789\",,,[10],[8]],[,,\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\",,,,\"11961234567\",,,[10,11],[8,9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\",,\n,[9,10]],[,,\"300\\\\d{6}|[59]00\\\\d{6,7}\",,,,\"300123456\",,,[9,10]],[,,\"300\\\\d{7}|[34]00\\\\d{5}|4(?:02|37)0\\\\d{4}\",,,,\"40041234\",,,[8,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BR\",55,\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"0\",,,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\",,,[[,\"(\\\\d{3,6})\",\"$1\",[\"1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[2-57]\",\n\"[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"9\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\",\"0 $CC ($1)\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\",\"0 $CC ($1)\"]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\",\"0 $CC ($1)\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\",\"0 $CC ($1)\"]],[,,,,,,,,,[-1]],,,[,,\"4020\\\\d{4}|[34]00\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BS:[,[,,\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\\\d{4}\",,,,\"2423456789\",,,,[7]],[,,\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\",\n,,,\"2423591234\",,,,[7]],[,,\"242300\\\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\",,,,[7]],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"BS\",1,\"011\",\"1\",,,\"1|([3-8]\\\\d{6})$\",\"242$1\",,,,,[,,,,,,,,,[-1]],,\"242\",[,,,,\n,,,,,[-1]],[,,\"242225\\\\d{4}\",,,,\"2422250123\"],,,[,,,,,,,,,[-1]]],BT:[,[,,\"[17]\\\\d{7}|[2-8]\\\\d{6}\",,,,,,,[7,8],[6]],[,,\"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\\\d{5}\",,,,\"2345678\",,,[7],[6]],[,,\"(?:1[67]|77)\\\\d{6}\",,,,\"17123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BT\",975,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[2-7]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]],\n[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BW:[,[,,\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\\\d{4}\",,,,\"2401234\",,,[7]],[,,\"(?:321|7(?:[1-7]\\\\d|8[01]))\\\\d{5}\",,\n,,\"71123456\",,,[8]],[,,\"(?:0800|800\\\\d)\\\\d{6}\",,,,\"0800012345\",,,[10]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"79(?:1(?:[01]\\\\d|20)|2[0-25-7]\\\\d)\\\\d{3}\",,,,\"79101234\",,,[8]],\"BW\",267,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-79]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,\n,,[-1]],,,[,,,,,,,,,[-1]]],BY:[,[,,\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",,,,,,,[6,7,8,9,10,11],[5]],[,,\"(?:1(?:5(?:1[1-5]|[24]\\\\d|6[2-4]|9[1-7])|6(?:[235]\\\\d|4[1-7])|7\\\\d\\\\d)|2(?:1(?:[246]\\\\d|3[0-35-9]|5[1-9])|2(?:[235]\\\\d|4[0-8])|3(?:[26]\\\\d|3[02-79]|4[024-7]|5[03-7])))\\\\d{5}\",,,,\"152450911\",,,[9],[5,6,7]],[,,\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\",,,,\"294911911\",,,[9]],[,,\"800\\\\d{3,7}|8(?:0[13]|20\\\\d)\\\\d{7}\",\n,,,\"8011234567\"],[,,\"(?:810|902)\\\\d{7}\",,,,\"9021234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"249\\\\d{6}\",,,,\"249123456\",,,[9]],\"BY\",375,\"810\",\"8\",,,\"0|80?\",,\"8~10\",,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,\"800\\\\d{3,7}|(?:8(?:0[13]|10|20\\\\d)|902)\\\\d{7}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BZ:[,[,,\"(?:0800\\\\d|[2-8])\\\\d{6}\",,,,,,,[7,11]],[,,\"(?:2(?:[02]\\\\d|36|[68]0)|[3-58](?:[02]\\\\d|[68]0)|7(?:[02]\\\\d|32|[68]0))\\\\d{4}\",,,,\"2221234\",,,[7]],[,,\"6[0-35-7]\\\\d{5}\",,,,\"6221234\",,,[7]],[,,\"0800\\\\d{7}\",,,,\"08001234123\",\n,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BZ\",501,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CA:[,[,,\"(?:[2-8]\\\\d|90)\\\\d{8}\",,,,,,,[10],[7]],[,,\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|74)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\",,,,\"5062345678\",\n,,,[7]],[,,\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|74)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\",,,,\"5062345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,\"600[2-9]\\\\d{6}\",,,,\"6002012345\"],\"CA\",1,\"011\",\"1\",,,\"1\",,,1,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CC:[,[,,\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",,,,,,,[6,7,8,9,10,12]],[,,\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",,,,\"891621234\",,,[9],[8]],[,,\"4(?:83[0-38]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",\n,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"CC\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"0|([59]\\\\d{7})$\",\"8$1\",\"0011\",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CD:[,[,,\"[189]\\\\d{8}|[1-68]\\\\d{6}\",,,,,,\n,[7,9]],[,,\"12\\\\d{7}|[1-6]\\\\d{6}\",,,,\"1234567\"],[,,\"88\\\\d{5}|(?:8[0-59]|9[017-9])\\\\d{7}\",,,,\"991234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CD\",243,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CF:[,[,,\n\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",,,,,,,[8]],[,,\"2[12]\\\\d{6}\",,,,\"21612345\"],[,,\"7[02457]\\\\d{6}\",,,,\"70012345\"],[,,,,,,,,,[-1]],[,,\"8776\\\\d{4}\",,,,\"87761234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CF\",236,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CG:[,[,,\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",,,,,,,[9]],[,,\"222[1-589]\\\\d{5}\",,,,\"222123456\"],[,,\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\",\n,,,\"061234567\"],[,,,,,,,,,[-1]],[,,\"80(?:0\\\\d\\\\d|120)\\\\d{4}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CG\",242,\"00\",,,,,,,,[[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CH:[,[,,\"8\\\\d{11}|[2-9]\\\\d{8}\",,,,,,,[9,12]],[,,\"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\\\d{7}\",,,,\"212345678\",,,[9]],[,,\"7[35-9]\\\\d{7}\",,,,\"781234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",\n,,[9]],[,,\"90[016]\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"84[0248]\\\\d{6}\",,,,\"840123456\",,,[9]],[,,\"878\\\\d{6}\",,,,\"878123456\",,,[9]],[,,,,,,,,,[-1]],\"CH\",41,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],,[,,\"74[0248]\\\\d{6}\",,,,\"740123456\",,,[9]],,,[,,,,,,,,,[-1]],[,,\"5[18]\\\\d{7}\",,,,\"581234567\",,,[9]],,,[,,\"860\\\\d{9}\",,,,\"860123456789\",\n,,[12]]],CI:[,[,,\"[02]\\\\d{9}\",,,,,,,[10]],[,,\"2(?:[15]\\\\d{3}|7(?:2(?:0[23]|1[2357]|[23][45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\\\d{5}\",,,,\"2123456789\"],[,,\"0704[0-7]\\\\d{5}|0(?:[15]\\\\d\\\\d|7(?:0[0-37-9]|[4-9][7-9]))\\\\d{6}\",,,,\"0123456789\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CI\",225,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,\n,[,,,,,,,,,[-1]]],CK:[,[,,\"[2-578]\\\\d{4}\",,,,,,,[5]],[,,\"(?:2\\\\d|3[13-7]|4[1-5])\\\\d{3}\",,,,\"21234\"],[,,\"[578]\\\\d{4}\",,,,\"71234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CK\",682,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CL:[,[,,\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",,,,,,,[9,10,11]],[,,\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\\\d\\\\d|3(?:[034]\\\\d|1[0-35-9]|2[1-9]|5[0-2])|600)|6469)|80[1-9]\\\\d\\\\d|9(?:3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|7[1-9]\\\\d\\\\d|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\\\d{7}\",\n,,,\"221234567\",,,[9]],[,,\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\\\d\\\\d|3(?:[034]\\\\d|1[0-35-9]|2[1-9]|5[0-2])|600)|6469)|80[1-9]\\\\d\\\\d|9(?:3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|7[1-9]\\\\d\\\\d|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\\\d{7}\",,,,\"221234567\",,,[9]],[,,\"(?:123|8)00\\\\d{6}\",,,,\"800123456\",,,[9,11]],[,,,,,,,,,[-1]],[,,\"600\\\\d{7,8}\",,\n,,\"6001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,\"44\\\\d{7}\",,,,\"441234567\",,,[9]],\"CL\",56,\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",,,,,,,1,[[,\"(\\\\d{4})\",\"$1\",[\"1(?:[03-589]|21)|[29]0|78\"]],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],[[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",\n[\"60|8\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],[,,,,,,,,,[-1]],,,[,,\"600\\\\d{7,8}\",,,,,,,[10,11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CM:[,[,,\"[26]\\\\d{8}|88\\\\d{6,7}\",,,,,,,[8,9]],[,,\"2(?:22|33)\\\\d{6}\",,,,\"222123456\",,,[9]],[,,\"(?:24[23]|6[5-9]\\\\d)\\\\d{6}\",,,,\"671234567\",,,[9]],[,,\"88\\\\d{6,7}\",,,,\"88012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CM\",237,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"88\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CN:[,[,,\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",,,,,,,[7,8,9,10,11,12],[5,6]],[,,\"(?:10(?:[02-79]\\\\d\\\\d|[18](?:0[1-9]|[1-9]\\\\d))|21(?:[18](?:0[1-9]|[1-9]\\\\d)|[2-79]\\\\d\\\\d))\\\\d{5}|(?:43[35]|754)\\\\d{7,8}|8(?:078\\\\d{7}|51\\\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\\\d\\\\d|95\\\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\\\d{7}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{3})?|[1-9]\\\\d{5})|[1-9]\\\\d{6})|9(?:[0-46-9]\\\\d{6}|5\\\\d{3}(?:\\\\d(?:\\\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]\\\\d{6}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{2})?|[1-9]\\\\d{4})|[1-9]\\\\d{5})|9(?:[0-46-9]\\\\d{5}|5\\\\d{3,5}))\",\n,,,\"1012345678\",,,[7,8,9,10,11],[5,6]],[,,\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|5[0-35-9]|6[25-7]|7[0-35-8]|9[0135-9])\\\\d{8}\",,,,\"13123456789\",,,[11]],[,,\"(?:(?:10|21)8|8)00\\\\d{7}\",,,,\"8001234567\",,,[10,12]],[,,\"16[08]\\\\d{5}\",,,,\"16812345\",,,[8]],[,,\"400\\\\d{7}|950\\\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))96\\\\d{3,4}\",\n,,,\"4001234567\",,,[7,8,9,10,11],[5,6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CN\",86,\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"0\",,,\"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\",,\"00\",,[[,\"(\\\\d{5,6})\",\"$1\",[\"96\"]],[,\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"(?:10|2[0-57-9])(?:100|9[56])\"],\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\",\"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])\",\"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\n\"$1 $2\",[\"16[08]\"]],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\",\"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])\",\"26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])\",\n\"26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])\"]],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{7,8})\",\n\"$1 $2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",,1]],[[,\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"(?:10|2[0-57-9])(?:100|9[56])\"],\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\n\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\n\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\n\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"],,\"$CC $1\"],\n[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",,1]],[,,,,,,,,,[-1]],,,[,,\"(?:(?:10|21)8|[48])00\\\\d{7}|950\\\\d{7,8}\",,,,,,,[10,11,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CO:[,[,,\"(?:(?:1\\\\d|[36])\\\\d{3}|9101)\\\\d{6}|[124-8]\\\\d{7}\",,,,,,,[8,10,11],[7]],[,,\"60[124-8][2-9]\\\\d{6}|[124-8][2-9]\\\\d{6}\",,,,\"12345678\",,,[8,10],[7]],[,,\"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\",,,,\"3211234567\",,,[10]],[,,\"1800\\\\d{7}\",\n,,,\"18001234567\",,,[11]],[,,\"19(?:0[01]|4[78])\\\\d{7}\",,,,\"19001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CO\",57,\"00(?:4(?:[14]4|56)|[579])\",\"0\",,,\"0([3579]|4(?:[14]4|56))?\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[146][2-9]|[2578]\"],\"($1)\",\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"[39]\"],,\"0$CC $1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[146][2-9]|[2578]\"],\"($1)\",\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",\n[\"6\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"[39]\"],,\"0$CC $1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CR:[,[,,\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",,,,,,,[8,10]],[,,\"210[7-9]\\\\d{4}|2(?:[024-7]\\\\d|1[1-9])\\\\d{5}\",,,,\"22123456\",,,[8]],[,,\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\",,,,\"83123456\",,,[8]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"90[059]\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,\"(?:210[0-6]|4\\\\d{3}|5100)\\\\d{4}\",,,,\"40001234\",,,[8]],\"CR\",506,\"00\",,,,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\",,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CU:[,[,,\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\",,,,,,,[6,7,8,10],[4,5]],[,,\"(?:3[23]|48)\\\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\\\d)\\\\d{6}|(?:2[1-4]|4[1257]|7\\\\d)\\\\d{5,6}\",,,,\"71234567\",\n,,,[4,5]],[,,\"5\\\\d{7}\",,,,\"51234567\",,,[8]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"807\\\\d{7}\",,,,\"8071234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CU\",53,\"119\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"5\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CV:[,[,,\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",,,,,,,[7]],[,,\"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\\\d|7[1-3]|8[1-5])\\\\d{4}\",\n,,,\"2211234\"],[,,\"(?:[34][36]|5[1-389]|9\\\\d)\\\\d{5}\",,,,\"9911234\"],[,,\"800\\\\d{4}\",,,,\"8001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CV\",238,\"0\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CW:[,[,,\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",,,,,,,[7,8]],[,,\"9(?:4(?:3[0-5]|4[14]|6\\\\d)|50\\\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\\\d|7[01]|8[57-9]))\\\\d{4}\",,,,\"94351234\"],[,,\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\",\n,,,\"95181234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"60[0-2]\\\\d{4}\",,,,\"6001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CW\",599,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],,[,,\"955\\\\d{5}\",,,,\"95581234\",,,[8]],1,\"[69]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CX:[,[,,\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",,,,,,,[6,7,8,9,10,12]],[,,\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",\n,,,\"891641234\",,,[9],[8]],[,,\"4(?:83[0-38]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"CX\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"0|([59]\\\\d{7})$\",\n\"8$1\",\"0011\",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CY:[,[,,\"(?:[279]\\\\d|[58]0)\\\\d{6}\",,,,,,,[8]],[,,\"2[2-6]\\\\d{6}\",,,,\"22345678\"],[,,\"9[4-79]\\\\d{6}\",,,,\"96123456\"],[,,\"800\\\\d{5}\",,,,\"80001234\"],[,,\"90[09]\\\\d{5}\",,,,\"90012345\"],[,,\"80[1-9]\\\\d{5}\",,,,\"80112345\"],[,,\"700\\\\d{5}\",,,,\"70012345\"],[,,,,,,,,,[-1]],\"CY\",357,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:50|77)\\\\d{6}\",,,,\"77123456\"],,,[,,,,,,,,,[-1]]],CZ:[,\n[,,\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",,,,,,,[9,10,11,12]],[,,\"(?:2\\\\d|3[1257-9]|4[16-9]|5[13-9])\\\\d{7}\",,,,\"212345678\",,,[9]],[,,\"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\",,,,\"601123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"9(?:0[05689]|76)\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"8[134]\\\\d{7}\",,,,\"811234567\",,,[9]],[,,\"70[01]\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"9[17]0\\\\d{6}\",,,,\"910123456\",,,[9]],\"CZ\",420,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"96\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"9(?:5\\\\d|7[2-4])\\\\d{6}\",,,,\"972123456\",,,[9]],,,[,,\"9(?:3\\\\d{9}|6\\\\d{7,10})\",,,,\"93123456789\"]],DE:[,[,,\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:1\\\\d|2[02-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[05]\\\\d|[23]1|[46][1-8])\\\\d{1,9}\",,,,,,,[4,5,6,7,8,9,10,11,12,\n13,14,15],[2,3]],[,,\"32\\\\d{9,11}|49[2-6]\\\\d{10}|49[0-7]\\\\d{3,9}|(?:[34]0|[68]9)\\\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\\\d|[589][0-7]|6[0-8]|7[0-467]))\\\\d{3,12}\",,\n,,\"30123456\",,,[5,6,7,8,9,10,11,12,13,14,15],[2,3,4]],[,,\"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\",,,,\"15123456789\",,,[10,11]],[,,\"800\\\\d{7,12}\",,,,\"8001234567890\",,,[10,11,12,13,14,15]],[,,\"(?:137[7-9]|900(?:[135]|9\\\\d))\\\\d{6}\",,,,\"9001234567\",,,[10,11]],[,,\"180\\\\d{5,11}|13(?:7[1-6]\\\\d\\\\d|8)\\\\d{4}\",,,,\"18012345\",,,[7,8,9,10,11,12,13,14]],[,,\"700\\\\d{8}\",,,,\"70012345678\",,,[11]],[,,,,,,,,,[-1]],\"DE\",49,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,12})\",\n\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],\n[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],,[,,\"16(?:4\\\\d{1,10}|[89]\\\\d{1,11})\",,,,\"16412345\",,,[4,5,6,7,8,9,10,11,12,13,14]],,,[,,,,,,,,,[-1]],[,,\"18(?:1\\\\d{5,11}|[2-9]\\\\d{8})\",,,,\"18500123456\",,,[8,9,10,11,12,13,14]],,,[,,\"1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\\\d{7,8}|15(?:(?:[03-68]00|113)\\\\d|2\\\\d55|7\\\\d99|9\\\\d33)\\\\d{7}\",\n,,,\"177991234567\",,,[12,13]]],DJ:[,[,,\"(?:2\\\\d|77)\\\\d{6}\",,,,,,,[8]],[,,\"2(?:1[2-5]|7[45])\\\\d{5}\",,,,\"21360003\"],[,,\"77\\\\d{6}\",,,,\"77831001\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"DJ\",253,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DK:[,[,,\"[2-9]\\\\d{7}\",,,,,,,[8]],[,,\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\",,,,\"32123456\"],[,,\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\",\n,,,\"32123456\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"90\\\\d{6}\",,,,\"90123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"DK\",45,\"00\",,,,,,,1,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DM:[,[,,\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\\\d{4}\",,,,\"7674201234\",,,,[7]],[,,\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\",,,,\"7672251234\",,,,[7]],\n[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"DM\",1,\"011\",\"1\",,,\"1|([2-7]\\\\d{6})$\",\"767$1\",,,,,[,,,,,,,,,[-1]],,\"767\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nDO:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"8(?:[04]9[2-9]\\\\d\\\\d|29(?:2(?:[0-59]\\\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\\\d|4[7-9])|[45]\\\\d\\\\d|6(?:[0-27-9]\\\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\\\d{4}\",,,,\"8092345678\",,,,[7]],[,,\"8[024]9[2-9]\\\\d{6}\",,,,\"8092345678\",,,,[7]],[,,\"8(?:00(?:14|[2-9]\\\\d)|(?:33|44|55|66|77|88)[2-9]\\\\d)\\\\d{5}\",\n,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"DO\",1,\"011\",\"1\",,,\"1\",,,,,,[,,,,,,,,,[-1]],,\"8001|8[024]9\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DZ:[,[,,\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",,,,,,,[8,9]],[,\n,\"9619\\\\d{5}|(?:1\\\\d|2[013-79]|3[0-8]|4[013-689])\\\\d{6}\",,,,\"12345678\"],[,,\"(?:5(?:4[0-29]|5\\\\d|6[0-2])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\",,,,\"551234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"80[3-689]1\\\\d{5}\",,,,\"808123456\",,,[9]],[,,\"80[12]1\\\\d{5}\",,,,\"801123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"98[23]\\\\d{6}\",,,,\"983123456\",,,[9]],\"DZ\",213,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],\n[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EC:[,[,,\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",,,,,,,[8,9,10,11],[7]],[,,\"[2-7][2-7]\\\\d{6}\",,,,\"22123456\",,,[8],[7]],[,,\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\",,,,\"991234567\",,,[9]],[,,\"1800\\\\d{7}|1[78]00\\\\d{6}\",,,,\"18001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[2-7]890\\\\d{4}\",,,,\"28901234\",,,[8]],\"EC\",593,\"00\",\"0\",,,\n\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-7]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-7]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EE:[,[,,\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:3[23589]|4[3-8]|6\\\\d|7[1-9]|88)\\\\d{5}\",\n,,,\"3212345\",,,[7]],[,,\"(?:5\\\\d{5}|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:23|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[24-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9])\\\\d|7(?:[679]\\\\d|8[13-9])|8(?:[2-6]\\\\d|7[01]))\\\\d)|[349]\\\\d{4}))\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\",,,,\"51234567\",,,[7,8]],[,,\"800(?:(?:0\\\\d\\\\d|1)\\\\d|[2-9])\\\\d{3}\",,,,\"80012345\"],[,,\"(?:40\\\\d\\\\d|900)\\\\d{4}\",,,,\"9001234\",,,[7,8]],[,,,,,,,,,[-1]],[,,\"70[0-2]\\\\d{5}\",,,,\"70012345\",,,[8]],[,,,,\n,,,,,[-1]],\"EE\",372,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,\"800[2-9]\\\\d{3}\",,,,,,,[7]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EG:[,[,,\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",\n,,,,,,[8,9,10],[6,7]],[,,\"13[23]\\\\d{6}|(?:15|57)\\\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\\\d{7}\",,,,\"234567890\",,,[8,9],[6,7]],[,,\"1[0-25]\\\\d{8}\",,,,\"1001234567\",,,[10]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"EG\",20,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[189]\"],\n\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EH:[,[,,\"[5-8]\\\\d{8}\",,,,,,,[9]],[,,\"528[89]\\\\d{5}\",,,,\"528812345\"],[,,\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|6[0-367]))\\\\d{6}\",,,,\"650123456\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,\"89\\\\d{7}\",,,,\"891234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"592(?:4[0-2]|93)\\\\d{4}\",,,,\"592401234\"],\"EH\",212,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,\"528[89]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ER:[,[,,\"[178]\\\\d{6}\",,,,,,,[7],\n[6]],[,,\"(?:1(?:1[12568]|[24]0|55|6[146])|8\\\\d\\\\d)\\\\d{4}\",,,,\"8370362\",,,,[6]],[,,\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\",,,,\"7123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ER\",291,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ES:[,[,,\"[5-9]\\\\d{8}\",,,,,,,[9]],[,,\"96906(?:0[0-8]|1[1-9]|[2-9]\\\\d)\\\\d\\\\d|9(?:69(?:0[0-57-9]|[1-9]\\\\d)|73(?:[0-8]\\\\d|9[1-9]))\\\\d{4}|(?:8(?:[1356]\\\\d|[28][0-8]|[47][1-9])|9(?:[135]\\\\d|[268][0-8]|4[1-9]|7[124-9]))\\\\d{6}\",\n,,,\"810123456\"],[,,\"(?:590[16]00\\\\d|9(?:6906(?:09|10)|7390\\\\d\\\\d))\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\",,,,\"612345678\"],[,,\"[89]00\\\\d{6}\",,,,\"800123456\"],[,,\"80[367]\\\\d{6}\",,,,\"803123456\"],[,,\"90[12]\\\\d{6}\",,,,\"901123456\"],[,,\"70\\\\d{7}\",,,,\"701234567\"],[,,,,,,,,,[-1]],\"ES\",34,\"00\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"905\"]],[,\"(\\\\d{6})\",\"$1\",[\"[79]9\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],\n[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"51\\\\d{7}\",,,,\"511234567\"],,,[,,,,,,,,,[-1]]],ET:[,[,,\"(?:11|[2-59]\\\\d)\\\\d{7}\",,,,,,,[9],[7]],[,,\"11667[01]\\\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\\\d)))\\\\d{4}\",\n,,,\"111112345\",,,,[7]],[,,\"9\\\\d{8}\",,,,\"911234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ET\",251,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-59]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FI:[,[,,\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",,,,,,,[5,6,7,8,9,10,11,12]],[,,\"(?:1[3-79][1-8]|[235689][1-8]\\\\d)\\\\d{2,6}\",,,,\"131234567\",,,[5,6,7,8,9]],[,,\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",\n,,,\"412345678\",,,[6,7,8,9,10]],[,,\"800\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"[67]00\\\\d{5,6}\",,,,\"600123456\",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FI\",358,\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{5})\",\"$1\",[\"75[12]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"11\"]],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[,\n\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],[,,,,,,,,,[-1]],1,\"1[03-79]|[2-9]\",[,,\"20(?:2[023]|9[89])\\\\d{1,6}|(?:60[12]\\\\d|7099)\\\\d{4,5}|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:[1-3]00|7(?:0[1-5]\\\\d\\\\d|5[03-9]))\\\\d{3,7}\"],[,,\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\",\n,,,\"10112345\"],,,[,,,,,,,,,[-1]]],FJ:[,[,,\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",,,,,,,[7,11]],[,,\"603\\\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\\\d{5}\",,,,\"3212345\",,,[7]],[,,\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\",,,,\"7012345\",,,[7]],[,,\"0800\\\\d{7}\",,,,\"08001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FJ\",679,\"0(?:0|52)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,\n[-1]],,,[,,,,,,,,,[-1]]],FK:[,[,,\"[2-7]\\\\d{4}\",,,,,,,[5]],[,,\"[2-47]\\\\d{4}\",,,,\"31234\"],[,,\"[56]\\\\d{4}\",,,,\"51234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FK\",500,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FM:[,[,,\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",,,,,,,[7]],[,,\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\\\d)\\\\d)\\\\d{3}\",,,,\"3201234\"],[,,\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\",\n,,,\"3501234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FM\",691,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FO:[,[,,\"[2-9]\\\\d{5}\",,,,,,,[6]],[,,\"(?:20|[34]\\\\d|8[19])\\\\d{4}\",,,,\"201234\"],[,,\"(?:[27][1-9]|5\\\\d|91)\\\\d{4}\",,,,\"211234\"],[,,\"80[257-9]\\\\d{3}\",,,,\"802123\"],[,,\"90(?:[13-5][15-7]|2[125-7]|9\\\\d)\\\\d\\\\d\",,,,\"901123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:6[0-36]|88)\\\\d{4}\",,\n,,\"601234\"],\"FO\",298,\"00\",,,,\"(10(?:01|[12]0|88))\",,,,[[,\"(\\\\d{6})\",\"$1\",[\"[2-9]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FR:[,[,,\"[1-9]\\\\d{8}\",,,,,,,[9]],[,,\"(?:[1-35]\\\\d|4[1-9])\\\\d{7}\",,,,\"123456789\"],[,,\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7(?:00|[3-9]\\\\d))\\\\d{6}\",,,,\"612345678\"],[,,\"80[0-5]\\\\d{6}\",,,,\"801234567\"],[,,\"836(?:0[0-36-9]|[1-9]\\\\d)\\\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\\\d|8[0-35-9])\\\\d{6}\",,,,\"891123456\"],[,,\"8(?:1[01]|2[0156]|84)\\\\d{6}\",\n,,,\"884012345\"],[,,,,,,,,,[-1]],[,,\"9\\\\d{8}\",,,,\"912345678\"],\"FR\",33,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"10\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"80[6-9]\\\\d{6}\",,,,\"806123456\"],\n,,[,,,,,,,,,[-1]]],GA:[,[,,\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",,,,,,,[7,8]],[,,\"[01]1\\\\d{6}\",,,,\"01441234\",,,[8]],[,,\"(?:(?:0[2-7]|7[467])\\\\d|6(?:0[0-4]|10|[256]\\\\d))\\\\d{5}|[2-7]\\\\d{6}\",,,,\"06031234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GA\",241,\"00\",,,,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\",,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GB:[,[,,\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",,,,,,,[7,9,10],[4,5,6,8]],[,,\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:[0-5]\\\\d\\\\d|69[7-9]|70[0359])|(?:5[0-26-9]|[78][0-49])\\\\d\\\\d|6(?:[0-4]\\\\d\\\\d|50[0-24-69]))|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d\\\\d|1(?:[0-7]\\\\d\\\\d|8(?:[02]\\\\d|1[0-278])))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",\n,,,\"1212345678\",,,[9,10],[4,5,6,7,8]],[,,\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",,,,\"7400123456\",,,[10]],[,,\"80[08]\\\\d{7}|800\\\\d{6}|8001111\",,,,\"8001234567\"],[,,\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",,,,\"9012345678\",,,[7,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,\"56\\\\d{8}\",,,,\"5612345678\",\n,,[10]],\"GB\",44,\"00\",\"0\",\" x\",,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\n\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",,,,\"7640123456\",,,[10]],1,,[,,,,,,,,,[-1]],[,,\"(?:3[0347]|55)\\\\d{8}\",,,,\"5512345678\",,,[10]],,,[,,,,,,,,,[-1]]],GD:[,[,,\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\\\d{4}\",\n,,,\"4732691234\",,,,[7]],[,,\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\",,,,\"4734031234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"GD\",\n1,\"011\",\"1\",,,\"1|([2-9]\\\\d{6})$\",\"473$1\",,,,,[,,,,,,,,,[-1]],,\"473\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GE:[,[,,\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",,,,,,,[9],[6,7]],[,,\"(?:3(?:[256]\\\\d|4[124-9]|7[0-4])|4(?:1\\\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\\\d{6}\",,,,\"322123456\",,,,[6,7]],[,,\"5(?:(?:0555|1177)[5-9]|757(?:7[7-9]|8[01]))\\\\d{3}|5(?:0070|(?:11|33)33|[25]222)[0-4]\\\\d{3}|5(?:00(?:0\\\\d|50)|11(?:00|1\\\\d|2[0-4])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\\\d|2[0-4])|58[89]|8(?:55|88)))\\\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\",\n,,,\"555123456\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"70[67]\\\\d{6}\",,,,\"706123456\"],\"GE\",995,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"70[67]\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GF:[,[,,\"(?:[56]94|80\\\\d|976)\\\\d{6}\",\n,,,,,,[9]],[,,\"594(?:[023]\\\\d|1[01]|4[03-9]|5[6-9]|6[0-3]|80|9[0-6])\\\\d{4}\",,,,\"594101234\"],[,,\"694(?:[0-249]\\\\d|3[0-48])\\\\d{4}\",,,,\"694201234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"976\\\\d{6}\",,,,\"976012345\"],\"GF\",594,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GG:[,[,,\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",\n,,,,,,[7,9,10],[6]],[,,\"1481[25-9]\\\\d{5}\",,,,\"1481256789\",,,[10],[6]],[,,\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",,,,\"7781123456\",,,[10]],[,,\"80[08]\\\\d{7}|800\\\\d{6}|8001111\",,,,\"8001234567\"],[,,\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",,,,\"9012345678\",,,[7,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,\"56\\\\d{8}\",,,,\"5612345678\",,,[10]],\"GG\",44,\"00\",\"0\",,,\"0|([25-9]\\\\d{5})$\",\"1481$1\",,,,,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",\n,,,\"7640123456\",,,[10]],,,[,,,,,,,,,[-1]],[,,\"(?:3[0347]|55)\\\\d{8}\",,,,\"5512345678\",,,[10]],,,[,,,,,,,,,[-1]]],GH:[,[,,\"(?:[235]\\\\d{3}|800)\\\\d{5}\",,,,,,,[8,9],[7]],[,,\"3082[0-5]\\\\d{4}|3(?:0(?:[237]\\\\d|8[01])|[167](?:2[0-6]|7\\\\d|80)|2(?:2[0-5]|7\\\\d|80)|3(?:2[0-3]|7\\\\d|80)|4(?:2[013-9]|3[01]|7\\\\d|80)|5(?:2[0-7]|7\\\\d|80)|8(?:2[0-2]|7\\\\d|80)|9(?:[28]0|7\\\\d))\\\\d{5}\",,,,\"302345678\",,,[9],[7]],[,,\"(?:2(?:[0346-8]\\\\d|5[67])|5(?:[0457]\\\\d|6[01]|9[1-9]))\\\\d{6}\",,,,\"231234567\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",\n,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GH\",233,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[237]|8[0-2]\"]],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"800\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GI:[,[,,\"(?:[25]\\\\d\\\\d|606)\\\\d{5}\",,,,,,,[8]],[,,\"21(?:6[24-7]\\\\d|90[0-2])\\\\d{3}|2(?:00|2[25])\\\\d{5}\",\n,,,\"20012345\"],[,,\"(?:5[146-8]\\\\d|606)\\\\d{5}\",,,,\"57123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GI\",350,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GL:[,[,,\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",,,,,,,[6]],[,,\"(?:19|3[1-7]|6[14689]|70|8[14-79]|9\\\\d)\\\\d{4}\",,,,\"321000\"],[,,\"[245]\\\\d{5}\",,,,\"221234\"],[,,\"80\\\\d{4}\",,,,\"801234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3[89]\\\\d{4}\",\n,,,\"381234\"],\"GL\",299,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GM:[,[,,\"[2-9]\\\\d{6}\",,,,,,,[7]],[,,\"(?:4(?:[23]\\\\d\\\\d|4(?:1[024679]|[6-9]\\\\d))|5(?:5(?:3\\\\d|4[0-7])|6[67]\\\\d|7(?:1[04]|2[035]|3[58]|48))|8\\\\d{3})\\\\d{3}\",,,,\"5661234\"],[,,\"(?:[23679]\\\\d|5[0-389])\\\\d{5}\",,,,\"3012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GM\",220,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",\n[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GN:[,[,,\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\\\d\\\\d)\\\\d{4}\",,,,\"30241234\",,,[8]],[,,\"6[0-356]\\\\d{7}\",,,,\"601123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"722\\\\d{6}\",,,,\"722123456\",,,[9]],\"GN\",224,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[67]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GP:[,[,,\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",,,,,,,[9]],[,,\"590(?:0[1-68]|1[0-24-7]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\",,,,\"590201234\"],[,,\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\",,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"976[01]\\\\d{5}\",,,,\"976012345\"],\"GP\",590,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[569]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GQ:[,[,,\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",,,,,,,[9]],[,,\"33[0-24-9]\\\\d[46]\\\\d{4}|3(?:33|5\\\\d)\\\\d[7-9]\\\\d{4}\",,,,\"333091234\"],[,,\"(?:222|55\\\\d)\\\\d{6}\",,,,\"222123456\"],[,,\"80\\\\d[1-9]\\\\d{5}\",,,,\"800123456\"],[,,\"90\\\\d[1-9]\\\\d{5}\",,,,\"900123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GQ\",240,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",\n[\"[235]\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GR:[,[,,\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",,,,,,,[10,11,12]],[,,\"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\",\n,,,\"2123456789\",,,[10]],[,,\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\",,,,\"6912345678\",,,[10]],[,,\"800\\\\d{7,9}\",,,,\"8001234567\"],[,,\"90[19]\\\\d{7}\",,,,\"9091234567\",,,[10]],[,,\"8(?:0[16]|12|[27]5|50)\\\\d{7}\",,,,\"8011234567\",,,[10]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,,,,,,,,[-1]],\"GR\",30,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\n\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"5005000\\\\d{3}\",,,,\"5005000123\",,,[10]],,,[,,,,,,,,,[-1]]],GT:[,[,,\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",,,,,,,[8,11]],[,,\"[267][2-9]\\\\d{6}\",,,,\"22456789\",,,[8]],[,,\"[3-5]\\\\d{7}\",,,,\"51234567\",,,[8]],[,,\"18[01]\\\\d{8}\",,,,\"18001112222\",,,[11]],[,,\"19\\\\d{9}\",,,,\"19001112222\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GT\",502,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GU:[,[,,\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\",,,,\"6713001234\",,,,[7]],[,,\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\",\n,,,\"6713001234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"GU\",1,\"011\",\"1\",,,\"1|([3-9]\\\\d{6})$\",\"671$1\",,1,,,[,,,,,,,,,[-1]],,\"671\",[,,,,,,,,,[-1]],[,,,,,,,\n,,[-1]],,,[,,,,,,,,,[-1]]],GW:[,[,,\"[49]\\\\d{8}|4\\\\d{6}\",,,,,,,[7,9]],[,,\"443\\\\d{6}\",,,,\"443201234\",,,[9]],[,,\"9(?:5\\\\d|6[569]|77)\\\\d{6}\",,,,\"955012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"40\\\\d{5}\",,,,\"4012345\",,,[7]],\"GW\",245,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GY:[,[,,\"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|862)\\\\d{4}\",,,,,,,[7]],[,,\"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\\\d|7[0-24-79])|3(?:2[25-9]|3\\\\d)|4(?:4[0-24]|5[56])|77[1-57])\\\\d{4}\",\n,,,\"2201234\"],[,,\"(?:6\\\\d\\\\d|70[015-7])\\\\d{4}\",,,,\"6091234\"],[,,\"(?:289|862)\\\\d{4}\",,,,\"2891234\"],[,,\"9008\\\\d{3}\",,,,\"9008123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GY\",592,\"001\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HK:[,[,,\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",,,,,,,[5,6,7,8,9,11]],[,,\"(?:2(?:[13-9]\\\\d|2[013-9])\\\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\\\d|8(?:4[0-8]|5[0-5]|9\\\\d))|58(?:0[1-8]|1[2-9]))\\\\d{4}\",\n,,,\"21234567\",,,[8]],[,,\"(?:46(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8])|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|929[013-9])\\\\d{4}|(?:4(?:40|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-24679])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\",,,,\"51234567\",,,[8]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"900(?:[0-24-9]\\\\d{7}|3\\\\d{1,4})\",,,,\"90012345678\",,,[5,6,7,8,11]],[,,,,,,,,,[-1]],[,,\"8(?:1[0-4679]\\\\d|2(?:[0-36]\\\\d|7[0-4])|3(?:[034]\\\\d|2[09]|70))\\\\d{4}\",\n,,,\"81123456\",,,[8]],[,,,,,,,,,[-1]],\"HK\",852,\"00(?:30|5[09]|[126-9]?)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],,[,,\"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\\\d|1[18]|7[27-9])|3(?:[0-38]\\\\d|7[0-369]|9[2357-9])|47\\\\d|5(?:[178]\\\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\\\d)|7(?:[27]\\\\d|8[7-9])|8(?:[23689]\\\\d|7[1-9])|9(?:[025]\\\\d|6[0-246-8]|7[0-36-9]|8[238]))\\\\d{4}\",\n,,,\"71123456\",,,[8]],,,[,,,,,,,,,[-1]],[,,\"30(?:0[1-9]|[15-7]\\\\d|2[047]|89)\\\\d{4}\",,,,\"30161234\",,,[8]],,,[,,,,,,,,,[-1]]],HN:[,[,,\"8\\\\d{10}|[237-9]\\\\d{7}\",,,,,,,[8,11]],[,,\"2(?:2(?:0[0-39]|1[1-367]|[23]\\\\d|4[03-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[78]|2[3-59]|3[13-9]|4[0-68]|5[1-35])|5(?:0[7-9]|16|4[03-5]|5\\\\d|6[014-6]|7[04]|80)|6(?:[056]\\\\d|17|2[067]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\\\d{4}\",,,,\"22123456\",,,[8]],[,,\"[37-9]\\\\d{7}\",\n,,,\"91234567\",,,[8]],[,,\"8002\\\\d{7}\",,,,\"80021234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"HN\",504,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]],[,,,,,,,,,[-1]],,,[,,\"8002\\\\d{7}\",,,,,,,[11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HR:[,[,,\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",,,,,,,[6,7,8,9]],[,,\"1\\\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\\\d{6,7}\",\n,,,\"12345678\",,,[8,9],[6,7]],[,,\"9(?:751\\\\d{5}|8\\\\d{6,7})|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\",,,,\"921234567\",,,[8,9]],[,,\"80[01]\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"6[01459]\\\\d{6}|6[01]\\\\d{4,5}\",,,,\"611234\",,,[6,7,8]],[,,,,,,,,,[-1]],[,,\"7[45]\\\\d{6}\",,,,\"74123456\",,,[8]],[,,,,,,,,,[-1]],\"HR\",385,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"62\\\\d{6,7}|72\\\\d{6}\",,,,\"62123456\",,,[8,9]],,,[,,,,,,,,,[-1]]],HT:[,[,,\"[2-489]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:2\\\\d|5[1-5]|81|9[149])\\\\d{5}\",,,,\"22453300\"],[,,\"[34]\\\\d{7}\",,,,\"34101234\"],[,,\"8\\\\d{7}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:[67][0-4]|8[0-3589]|9\\\\d)\\\\d{5}\",\n,,,\"98901234\"],\"HT\",509,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-489]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HU:[,[,,\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"(?:1\\\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\\\d{6}\",,,,\"12345678\",,,[8],[6,7]],[,,\"(?:[257]0|3[01])\\\\d{7}\",,,,\"201234567\",,,[9]],[,,\"(?:[48]0\\\\d|680[29])\\\\d{5}\",,,,\"80123456\"],[,,\"9[01]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"21\\\\d{7}\",\n,,,\"211234567\",,,[9]],\"HU\",36,\"00\",\"06\",,,\"06\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],,[,,,,,,,,,[-1]],,,[,,\"(?:[48]0\\\\d|680[29])\\\\d{5}\"],[,,\"38\\\\d{7}\",,,,\"381234567\",,,[9]],,,[,,,,,,,,,[-1]]],ID:[,[,,\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",,,,,,,[7,8,9,10,11,12,13],[5,6]],\n[,,\"2[124]\\\\d{7,8}|619\\\\d{8}|2(?:1(?:14|500)|2\\\\d{3})\\\\d{3}|61\\\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\\\d{5,8}\",,,,\"218350123\",,,[7,8,9,10,11],[5,6]],[,,\"8[1-35-9]\\\\d{7,10}\",\n,,,\"812345678\",,,[9,10,11,12]],[,,\"00[17]803\\\\d{7}|(?:177\\\\d|800)\\\\d{5,7}|001803\\\\d{6}\",,,,\"8001234567\",,,[8,9,10,11,12,13]],[,,\"809\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,\"804\\\\d{7}\",,,,\"8041234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ID\",62,\"00[89]\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[,\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",\n[\"8[1-35-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"001\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[,\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],\n[,\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"001803\\\\d{6,7}|(?:007803\\\\d|8071)\\\\d{6}\",,,,,,,[10,12,13]],[,,\"(?:1500|8071\\\\d{3})\\\\d{3}\",,,,\"8071123456\",,,[7,10]],,,[,,,,,,,,,[-1]]],IE:[,[,,\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",\n,,,,,,[7,8,9,10],[5,6]],[,,\"(?:1\\\\d|21)\\\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\\\d|7)|5(?:0[45]|1\\\\d|8)|6(?:1\\\\d|[237-9])|9(?:1\\\\d|[35-9]))\\\\d{5}|(?:23|4(?:[1-469]|8\\\\d)|5[23679]|6[4-6]|7[14]|9[04])\\\\d{7}\",,,,\"2212345\",,,,[5,6]],[,,\"8(?:22|[35-9]\\\\d)\\\\d{6}\",,,,\"850123456\",,,[9]],[,,\"1800\\\\d{6}\",,,,\"1800123456\",,,[10]],[,,\"15(?:1[2-8]|[2-8]0|9[089])\\\\d{6}\",,,,\"1520123456\",,,[10]],[,,\"18[59]0\\\\d{6}\",,,,\"1850123456\",,,[10]],[,,\"700\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"76\\\\d{7}\",,,,\"761234567\",,,[9]],\"IE\",353,\"00\",\n\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"18[59]0\\\\d{6}\",,,,,,,[10]],[,,\"818\\\\d{6}\",,,,\"818123456\",,,[9]],,,[,,\"88210[1-9]\\\\d{4}|8(?:[35-79]5\\\\d\\\\d|8(?:[013-9]\\\\d\\\\d|2(?:[01][1-9]|[2-9]\\\\d)))\\\\d{5}\",,,,\"8551234567\",,,[10]]],IL:[,[,,\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",,,,,,,[7,8,9,10,11,12]],[,,\"153\\\\d{8,9}|29[1-9]\\\\d{5}|(?:2[0-8]|[3489]\\\\d)\\\\d{6}\",,,,\"21234567\",,,[8,11,12],[7]],[,,\"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\",\n,,,\"502345678\",,,[9]],[,,\"1(?:255|80[019]\\\\d{3})\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"1212\\\\d{4}|1(?:200|9(?:0[0-2]|19))\\\\d{6}\",,,,\"1919123456\",,,[8,10]],[,,\"1700\\\\d{6}\",,,,\"1700123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"7(?:380|8(?:33|55|77|81))\\\\d{5}|7(?:18|2[23]|3[237]|47|6[58]|7\\\\d|82|9[235-9])\\\\d{6}\",,,,\"771234567\",,,[9]],\"IL\",972,\"0(?:0|1[2-9])\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],\n[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[,\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],,[,,,,,,,,,[-1]],,,[,,\"1700\\\\d{6}\",,,,,,,[10]],[,,\"1599\\\\d{6}\",,,,\"1599123456\",,,[10]],,,[,,\"151\\\\d{8,9}\",,,,\"15112340000\",,,[11,12]]],IM:[,[,,\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",,,,,,,[10],[6]],[,,\"1624(?:230|[5-8]\\\\d\\\\d)\\\\d{3}\",,,,\"1624756789\",\n,,,[6]],[,,\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\",,,,\"7924123456\"],[,,\"808162\\\\d{4}\",,,,\"8081624567\"],[,,\"8(?:440[49]06|72299\\\\d)\\\\d{3}|(?:8(?:45|70)|90[0167])624\\\\d{4}\",,,,\"9016247890\"],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\"],[,,\"56\\\\d{8}\",,,,\"5612345678\"],\"IM\",44,\"00\",\"0\",,,\"0|([25-8]\\\\d{5})$\",\"1624$1\",,,,,[,,,,,,,,,[-1]],,\"74576|(?:16|7[56])24\",[,,,,,,,,,[-1]],[,,\"3440[49]06\\\\d{3}|(?:3(?:08162|3\\\\d{4}|45624|7(?:0624|2299))|55\\\\d{4})\\\\d{4}\",,,,\"5512345678\"],,,[,,,,,,,,,[-1]]],\nIN:[,[,,\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",,,,,,,[8,9,10,11,12,13],[6,7]],[,,\"2717(?:[2-7]\\\\d|95)\\\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\\\d|4(?:20[24]|72[2-8])|552[1-7])\\\\d{6}|(?:11|33|4[04]|80)[2-7]\\\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\\\d)\\\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\\\d[2-7]\\\\d{5}\",\n,,,\"7410410123\",,,[10],[6,7,8]],[,,\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\",\n,,,\"8123456789\",,,[10]],[,,\"000800\\\\d{7}|1(?:600\\\\d{6}|80(?:0\\\\d{4,9}|3\\\\d{9}))\",,,,\"1800123456\"],[,,\"186[12]\\\\d{9}\",,,,\"1861123456789\",,,[13]],[,,\"1860\\\\d{7}\",,,,\"18603451234\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IN\",91,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{7})\",\"$1\",[\"575\"]],[,\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],,,1],[,\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"140\"],,,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\n\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",,1],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],,,1]],[[,\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],,,1],[,\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],,,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\n\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\n\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",,1],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],,,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3 $4\",[\"18\"],,,1]],[,,,,,,,,,[-1]],,,[,,\"1(?:600\\\\d{6}|800\\\\d{4,9})|(?:000800|18(?:03\\\\d\\\\d|6(?:0|[12]\\\\d\\\\d)))\\\\d{7}\"],[,,\"140\\\\d{7}\",,,,\"1409305260\",,,[10]],,,[,,,,,,,,,[-1]]],IO:[,[,,\"3\\\\d{6}\",,,,,,,[7]],[,,\"37\\\\d{5}\",,,,\"3709100\"],[,,\"38\\\\d{5}\",,,,\"3801234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IO\",246,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IQ:[,[,,\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",\n,,,,,,[8,9,10],[6,7]],[,,\"1\\\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\\\d{6,7}\",,,,\"12345678\",,,[8,9],[6,7]],[,,\"7[3-9]\\\\d{8}\",,,,\"7912345678\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IQ\",964,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IR:[,\n[,,\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",,,,,,,[4,5,6,7,10],[8]],[,,\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\\\d{7}|[16]\\\\d{3}(?:\\\\d{4})?|[289]\\\\d{3}(?:\\\\d(?:\\\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\\\d)|30[0-2]\\\\d|4(?:111|40\\\\d))\\\\d{4}\",,,,\"2123456789\",,,[6,7,10],[4,5,8]],[,,\"9(?:(?:0(?:[0-35]\\\\d|4[4-6])|(?:[13]\\\\d|2[0-3])\\\\d)\\\\d|9(?:[0-46]\\\\d\\\\d|5[15]0|8(?:1\\\\d|88)|9(?:0[013]|[19]\\\\d|21|77|8[7-9])))\\\\d{5}\",,,,\"9123456789\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IR\",98,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"9(?:4440\\\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))\",,,,,,,[4,5,10]],[,,\"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])\",\n,,,\"9601\",,,[4,5]],,,[,,,,,,,,,[-1]]],IS:[,[,,\"(?:38\\\\d|[4-9])\\\\d{6}\",,,,,,,[7,9]],[,,\"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\\\d|8[0-36-8])|5(?:05|[156]\\\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\\\d{4}\",,,,\"4101234\",,,[7]],[,,\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[28]))\\\\d{4}\",,,,\"6111234\"],[,,\"80[0-8]\\\\d{4}\",,,,\"8001234\",,,[7]],[,,\"90(?:0\\\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\\\d{3}\",\n,,,\"9001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"49[0-24-79]\\\\d{4}\",,,,\"4921234\",,,[7]],\"IS\",354,\"00|1(?:0(?:01|[12]0)|100)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"809\\\\d{4}\",,,,\"8091234\",,,[7]],,,[,,\"(?:689|8(?:7[18]|80)|95[48])\\\\d{4}\",,,,\"6891234\",,,[7]]],IT:[,[,,\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",,,,,,,[6,7,8,9,10,11,12]],[,,\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",\n,,,\"0212345678\",,,[6,7,8,9,10,11]],[,,\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",,,,\"3123456789\",,,[9,10]],[,,\"80(?:0\\\\d{3}|3)\\\\d{3}\",,,,\"800123456\",,,[6,9]],[,,\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",,,,\"899123456\",,,[6,8,9,10]],[,,\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",,,,\"848123456\",,,[6,9]],[,,\"1(?:78\\\\d|99)\\\\d{6}\",,,,\"1781234567\",,,[9,10]],[,,\"55\\\\d{8}\",,,,\"5512345678\",,,[10]],\"IT\",39,\"00\",,,,,,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"1(?:0|9[246])\",\"1(?:0|9(?:2[2-9]|[46]))\"]],\n[,\"(\\\\d{6})\",\"$1\",[\"1(?:1|92)\"]],[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[,\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[38]\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\n\"$1 $2 $3\",[\"0[26]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[,\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[38]\"]],\n[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],[,,,,,,,,,[-1]],1,,[,,\"848\\\\d{6}\",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,\"3[2-8]\\\\d{9,10}\",,,,\"33101234501\",,,[11,12]]],JE:[,[,,\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",,,,,,,[10],[6]],[,,\"1534[0-24-8]\\\\d{5}\",,,,\"1534456789\",,,,[6]],[,,\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\",,,,\"7797712345\"],\n[,,\"80(?:07(?:35|81)|8901)\\\\d{4}\",,,,\"8007354567\"],[,,\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\",,,,\"9018105678\"],[,,,,,,,,,[-1]],[,,\"701511\\\\d{4}\",,,,\"7015115678\"],[,,\"56\\\\d{8}\",,,,\"5612345678\"],\"JE\",44,\"00\",\"0\",,,\"0|([0-24-8]\\\\d{5})$\",\"1534$1\",,,,,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",,,,\"7640123456\"],,,[,,,,,,,,,[-1]],[,,\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\",\n,,,\"5512345678\"],,,[,,,,,,,,,[-1]]],JM:[,[,,\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"8766060\\\\d{3}|(?:658(?:2(?:[0-8]\\\\d|9[0-46-9])|[3-9]\\\\d\\\\d)|876(?:52[35]|6(?:0[1-3579]|1[0237-9]|[23]\\\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\\\d|9[2-468])))\\\\d{4}\",,,,\"8765230123\",,,,[7]],[,,\"(?:658295|876(?:2(?:0[2-9]|[14-9]\\\\d|2[013-9]|3[3-9])|[348]\\\\d\\\\d|5(?:0[1-9]|[1-9]\\\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\",\n,,,\"8762101234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"JM\",1,\"011\",\"1\",,,\"1\",,,,,,[,,,,,,,,,[-1]],,\"658|876\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,\n,[-1]]],JO:[,[,,\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",,,,,,,[8,9]],[,,\"87(?:000|90[01])\\\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\\\d{4}\",\n,,,\"62001234\",,,[8]],[,,\"7(?:[78][0-25-9]|9\\\\d)\\\\d{6}\",,,,\"790123456\",,,[9]],[,,\"80\\\\d{6}\",,,,\"80012345\",,,[8]],[,,\"9\\\\d{7}\",,,,\"90012345\",,,[8]],[,,\"85\\\\d{6}\",,,,\"85012345\",,,[8]],[,,\"70\\\\d{7}\",,,,\"700123456\",,,[9]],[,,,,,,,,,[-1]],\"JO\",962,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,\"74(?:66|77)\\\\d{5}\",,,,\"746612345\",\n,,[9]],,,[,,,,,,,,,[-1]],[,,\"8(?:10|8\\\\d)\\\\d{5}\",,,,\"88101234\",,,[8]],,,[,,,,,,,,,[-1]]],JP:[,[,,\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",,,,,,,[8,9,10,11,12,13,14,15,16,17]],[,,\"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\\\d|4(?:[2-578]\\\\d|6[02-8]|9[2-59])|5(?:[2-589]\\\\d|6[1-9]|7[2-8])|7(?:[25-9]\\\\d|3[4-9]|4[02-9])|8(?:[2679]\\\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\\\d|[679][1-9]))\\\\d{6}\",,,,\"312345678\",,,[9]],[,,\"[7-9]0[1-9]\\\\d{7}\",\n,,,\"9012345678\",,,[10]],[,,\"00777(?:[01]|5\\\\d)\\\\d\\\\d|(?:00(?:7778|882[1245])|(?:120|800\\\\d)\\\\d\\\\d)\\\\d{4}|00(?:37|66|78)\\\\d{6,13}\",,,,\"120123456\"],[,,\"990\\\\d{6}\",,,,\"990123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"60\\\\d{7}\",,,,\"601234567\",,,[9]],[,,\"50[1-9]\\\\d{7}\",,,,\"5012345678\",,,[10]],\"JP\",81,\"010\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"007\",\"0077\",\"00777\",\"00777[01]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\",\n\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{3,4})\",\"$1-$2-$3\",[\"007\",\"0077\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"008\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{5})(\\\\d{5,6})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{6})(\\\\d{6,7})\",\"$1-$2-$3\",\n[\"0\"]]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],[,,\"20\\\\d{8}\",,,,\"2012345678\",,,[10]],,,[,,\"00(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d|00(?:37|66|78)\\\\d{6,13}\"],[,,\"570\\\\d{6}\",,,,\"570123456\",,,[9]],,,[,,,,,,,,,[-1]]],KE:[,[,,\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",,,,,,,[7,8,9,10]],[,,\"(?:4[245]|5[1-79]|6[01457-9])\\\\d{5,7}|(?:4[136]|5[08]|62)\\\\d{7}|(?:[24]0|66)\\\\d{6,7}\",\n,,,\"202012345\",,,[7,8,9]],[,,\"(?:1(?:0[0-6]|1[0-5]|2[014])|7\\\\d\\\\d)\\\\d{6}\",,,,\"712123456\",,,[9]],[,,\"800[2-8]\\\\d{5,6}\",,,,\"800223456\",,,[9,10]],[,,\"900[02-9]\\\\d{5}\",,,,\"900223456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KE\",254,\"000\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KG:[,[,,\"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\",\n,,,,,,[9,10],[5,6]],[,,\"312(?:5[0-79]\\\\d|9(?:[0-689]\\\\d|7[0-24-9]))\\\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\\\d)|5(?:22|3[4-7]|59|6\\\\d)|6(?:22|5[35-7]|6\\\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\\\d)|9(?:22|4[1-8]|6\\\\d))|6(?:09|12|2[2-4])\\\\d)\\\\d{5}\",,,,\"312123456\",,,[9],[5,6]],[,,\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|7(?:[07]\\\\d|55)|880|99[05-9])\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\n,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KG\",996,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KH:[,[,,\"1\\\\d{9}|[1-9]\\\\d{7,8}\",,,,,,,[8,9,10],[6,7]],[,,\"23(?:4(?:[2-4]|[56]\\\\d)|[568]\\\\d\\\\d)\\\\d{4}|23[236-9]\\\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\\\d)\\\\d{5}|6\\\\d{5,6})\",\n,,,\"23756789\",,,[8,9],[6,7]],[,,\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\",,,,\"91234567\",,,[8,9]],[,,\"1800(?:1\\\\d|2[019])\\\\d{4}\",,,,\"1800123456\",,,[10]],[,,\"1900(?:1\\\\d|2[09])\\\\d{4}\",,,,\"1900123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KH\",855,\"00[14-9]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\n,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KI:[,[,,\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",,,,,,,[5,8]],[,,\"(?:[24]\\\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\\\d\\\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\\\d{3}\",,,,\"31234\"],[,,\"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\",,,,\"72001234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"30(?:0[01]\\\\d\\\\d|12(?:11|20))\\\\d\\\\d\",,,,\"30010000\",,,[8]],\n\"KI\",686,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KM:[,[,,\"[3478]\\\\d{6}\",,,,,,,[7],[4]],[,,\"7[4-7]\\\\d{5}\",,,,\"7712345\",,,,[4]],[,,\"[34]\\\\d{6}\",,,,\"3212345\"],[,,,,,,,,,[-1]],[,,\"8\\\\d{6}\",,,,\"8001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KM\",269,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KN:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\\\d{4}\",\n,,,\"8692361234\",,,,[7]],[,,\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\",,,,\"8697652917\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"KN\",1,\"011\",\"1\",,,\"1|([2-7]\\\\d{6})$\",\n\"869$1\",,,,,[,,,,,,,,,[-1]],,\"869\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KP:[,[,,\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",,,,,,,[8,10],[6,7]],[,,\"(?:(?:195|2)\\\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\\\d{6}\",,,,\"21234567\",,,,[6,7]],[,,\"19[1-3]\\\\d{7}\",,,,\"1921234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KP\",850,\"00|99\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"238[02-9]\\\\d{4}|2(?:[0-24-9]\\\\d|3[0-79])\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KR:[,[,,\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",,,,,,,[5,6,8,9,10,11,12,13,14],[3,4,7]],[,,\"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\\\d{2,3}\",,,,\"22123456\",,,[5,6,8,9,10],[3,4,7]],[,,\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\",\n,,,\"1020000000\",,,[9,10]],[,,\"00(?:308\\\\d{6,7}|798\\\\d{7,9})|(?:00368|80)\\\\d{7}\",,,,\"801234567\",,,[9,11,12,13,14]],[,,\"60[2-9]\\\\d{6}\",,,,\"602345678\",,,[9]],[,,,,,,,,,[-1]],[,,\"50\\\\d{8,9}\",,,,\"5012345678\",,,[10,11]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],\"KR\",82,\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"0\",,,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\",,,,[[,\"(\\\\d{5})\",\"$1\",[\"1[016-9]1\",\"1[016-9]11\",\"1[016-9]114\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\",\"0$CC-$1\"],[,\n\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{5})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"003\",\"0030\"]],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{5})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{5})(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3 $4\",[\"0\"]]],[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\",\"0$CC-$1\"]],[,,\"15\\\\d{7,8}\",,,,\"1523456789\",\n,,[9,10]],,,[,,\"00(?:3(?:08\\\\d{6,7}|68\\\\d{7})|798\\\\d{7,9})\",,,,,,,[11,12,13,14]],[,,\"1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[168]|88)|8(?:00|33|55|77|99))\\\\d{4}\",,,,\"15441234\",,,[8]],,,[,,,,,,,,,[-1]]],KW:[,[,,\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",,,,,,,[7,8]],[,,\"2(?:[23]\\\\d\\\\d|4(?:[1-35-9]\\\\d|44)|5(?:0[034]|[2-46]\\\\d|5[1-3]|7[1-7]))\\\\d{4}\",,,,\"22345678\",,,[8]],[,,\"(?:41\\\\d\\\\d|5(?:(?:[05]\\\\d|1[0-7]|6[56])\\\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\\\d)\\\\d|111|222|333|444|7(?:0[013-9]|[67]\\\\d)|888|9(?:[069]\\\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\\\d|8[057-9])\\\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\\\d)))\\\\d{4}\",\n,,,\"50012345\",,,[8]],[,,\"18\\\\d{5}\",,,,\"1801234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KW\",965,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KY:[,[,,\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\\\d{4}\",,\n,,\"3452221234\",,,,[7]],[,,\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\",,,,\"3453231234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"(?:345976|900[2-9]\\\\d\\\\d)\\\\d{4}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"KY\",1,\"011\",\"1\",,,\"1|([2-9]\\\\d{6})$\",\"345$1\",,,,,[,,\"345849\\\\d{4}\",,,,\"3458491234\"],,\"345\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KZ:[,[,,\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",,,,,,,[10,14],[5,6,7]],[,,\"(?:33622|7(?:1(?:0(?:[23]\\\\d|4[0-3]|59|63)|1(?:[23]\\\\d|4[0-79]|59)|2(?:[23]\\\\d|59)|3(?:2\\\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\\\d|3[013-9]|5[1-9])|5(?:2\\\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\\\d|5[19]|61)|72\\\\d|8(?:[27]\\\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\\\d|4[46-9]|5[3469])|2(?:2\\\\d|3[0679]|46|5[12679])|3(?:[2-4]\\\\d|5[139])|4(?:2\\\\d|3[1-35-9]|59)|5(?:[23]\\\\d|4[0-246-8]|59|61)|6(?:2\\\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\\\d|40|5[279])|8(?:[23]\\\\d|4[0-3]|59)|9(?:2\\\\d|3[124578]|59))))\\\\d{5}\",\n,,,\"7123456789\",,,[10],[5,6,7]],[,,\"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\\\d{7}\",,,,\"7710009998\",,,[10]],[,,\"8(?:00|108\\\\d{3})\\\\d{7}\",,,,\"8001234567\"],[,,\"809\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"808\\\\d{7}\",,,,\"8081234567\",,,[10]],[,,\"751\\\\d{7}\",,,,\"7511234567\",,,[10]],\"KZ\",7,\"810\",\"8\",,,\"8\",,\"8~10\",,,,[,,,,,,,,,[-1]],,\"33|7\",[,,\"751\\\\d{7}\",,,,,,,[10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LA:[,[,,\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",,,,,,,[8,9,10],[6]],[,,\"(?:2[13]|[35-7][14]|41|8[1468])\\\\d{6}\",\n,,,\"21212862\",,,[8],[6]],[,,\"(?:20(?:[239]\\\\d|5[24-9]|7[6-8]|88)|302\\\\d)\\\\d{6}\",,,,\"2023123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LA\",856,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"30[013-9]\\\\d{6}\",,,,\"301234567\",,,[9]],,,\n[,,,,,,,,,[-1]]],LB:[,[,,\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",,,,,,,[7,8]],[,,\"7(?:62|8[0-7]|9[04-9])\\\\d{4}|(?:[14-69]\\\\d|2(?:[14-69]\\\\d|[78][1-9])|7[2-57]|8[02-9])\\\\d{5}\",,,,\"1123456\"],[,,\"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\",,,,\"71123456\"],[,,,,,,,,,[-1]],[,,\"9[01]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"80\\\\d{6}\",,,,\"80123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LB\",961,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LC:[,[,,\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"758(?:234|4(?:30|5\\\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\\\d{4}\",,,,\"7584305678\",,,,[7]],[,,\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\",,,,\"7582845678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],\n[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"LC\",1,\"011\",\"1\",,,\"1|([2-8]\\\\d{6})$\",\"758$1\",,,,,[,,,,,,,,,[-1]],,\"758\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LI:[,[,,\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",,,,,,,[7,9]],[,,\"(?:2(?:01|1[27]|2[02]|3\\\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\\\d{4}\",\n,,,\"2345678\",,,[7]],[,,\"(?:6(?:(?:4[5-9]|5[0-4])\\\\d|6(?:[0245]\\\\d|[17]0|3[7-9]))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\",,,,\"660234567\"],[,,\"8002[28]\\\\d\\\\d|80(?:05\\\\d|9)\\\\d{4}\",,,,\"8002222\"],[,,\"90(?:02[258]|1(?:23|3[14])|66[136])\\\\d\\\\d\",,,,\"9002222\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LI\",423,\"00\",\"0\",,,\"0|(1001)\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"69\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"870(?:28|87)\\\\d\\\\d\",,,,\"8702812\",,,[7]],,,[,,\"697(?:42|56|[78]\\\\d)\\\\d{4}\",,,,\"697861234\",,,[9]]],LK:[,[,,\"[1-9]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:12[2-9]|602|8[12]\\\\d|9(?:1\\\\d|22|9[245]))\\\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\\\d{6}\",,,,\"112345678\",,,,[7]],[,,\"7(?:[0-25-8]\\\\d|4[0-4])\\\\d{6}\",,,,\"712345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,\n,,,,,[-1]],[,,,,,,,,,[-1]],\"LK\",94,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"1973\\\\d{5}\",,,,\"197312345\"],,,[,,,,,,,,,[-1]]],LR:[,[,,\"(?:2|33|5\\\\d|77|88)\\\\d{7}|[4-6]\\\\d{6}\",,,,,,,[7,8,9]],[,,\"(?:2\\\\d{3}|33333)\\\\d{4}\",,,,\"21234567\",,,[8,9]],[,,\"(?:(?:330|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|[56]\\\\d{6}\",,,,\"770123456\",,,[7,9]],[,,,,,,,,,[-1]],[,,\"332(?:02|[34]\\\\d)\\\\d{4}\",,,,\"332021234\",\n,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LR\",231,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[4-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LS:[,[,,\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"2\\\\d{7}\",,,,\"22123456\"],[,,\"[56]\\\\d{7}\",,,,\"50123456\"],[,,\"800[256]\\\\d{4}\",,,,\"80021234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,\n,[-1]],[,,,,,,,,,[-1]],\"LS\",266,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LT:[,[,,\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",,,,,,,[8]],[,,\"(?:3[1478]|4[124-6]|52)\\\\d{6}\",,,,\"31234567\"],[,,\"6\\\\d{7}\",,,,\"61234567\"],[,,\"80[02]\\\\d{5}\",,,,\"80012345\"],[,,\"9(?:0[0239]|10)\\\\d{5}\",,,,\"90012345\"],[,,\"808\\\\d{5}\",,,,\"80812345\"],[,,\"70[05]\\\\d{5}\",,,,\"70012345\"],[,,\"[89]01\\\\d{5}\",,,,\"80123456\"],\"LT\",370,\"00\",\"8\",,,\"[08]\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",,1],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",,1],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",,1],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"70[67]\\\\d{5}\",,,,\"70712345\"],,,[,,,,,,,,,[-1]]],LU:[,[,,\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",,,,,,,[4,5,6,7,8,9,10,11]],[,,\"(?:35[013-9]|80[2-9]|90[89])\\\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\\\d|8[13-9]|9[2-579])\\\\d{2,9}\",\n,,,\"27123456\"],[,,\"6(?:[269][18]|5[1568]|7[189]|81)\\\\d{6}\",,,,\"628123456\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"90[015]\\\\d{5}\",,,,\"90012345\",,,[8]],[,,\"801\\\\d{5}\",,,,\"80112345\",,,[8]],[,,,,,,,,,[-1]],[,,\"20(?:1\\\\d{5}|[2-689]\\\\d{1,7})\",,,,\"20201234\",,,[4,5,6,7,8,9,10]],\"LU\",352,\"00\",,,,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\",,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"],\n,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",\n[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LV:[,[,,\"(?:[268]\\\\d|90)\\\\d{6}\",,,,,,,[8]],[,,\"6\\\\d{7}\",,,,\"63123456\"],[,,\"2\\\\d{7}\",,,,\"21234567\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"90\\\\d{6}\",,,,\"90123456\"],[,,\"81\\\\d{6}\",,,,\"81123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LV\",371,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nLY:[,[,,\"[2-9]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:2(?:0[56]|[1-6]\\\\d|7[124579]|8[124])|3(?:1\\\\d|2[2356])|4(?:[17]\\\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\\\d|5[2-57]|8[1-5])|7(?:[13]\\\\d|2[13-79])|8(?:[124]\\\\d|5[124]|84))\\\\d{6}\",,,,\"212345678\",,,,[7]],[,,\"9[1-6]\\\\d{7}\",,,,\"912345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LY\",218,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MA:[,[,,\"[5-8]\\\\d{8}\",,,,,,,[9]],[,,\"5(?:29(?:[189][05]|2[29]|3[01])|38(?:8[057]|9[05]))\\\\d{4}|5(?:2(?:[0-25-7]\\\\d|3[1-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\",,,,\"520123456\"],[,,\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|6[0-367]))\\\\d{6}\",,,,\"650123456\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,\"89\\\\d{7}\",,,,\"891234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"592(?:4[0-2]|93)\\\\d{4}\",,,,\"592401234\"],\"MA\",212,\"00\",\"0\",\n,,\"0\",,,,[[,\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29|38)[89]\",\"5(?:29|38)[89]0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MC:[,[,,\"(?:[3489]|6\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"(?:870|9[2-47-9]\\\\d)\\\\d{5}\",\n,,,\"99123456\",,,[8]],[,,\"4(?:[46]\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\",,,,\"612345678\"],[,,\"(?:800|90\\\\d)\\\\d{5}\",,,,\"90123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MC\",377,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"8[07]0\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MD:[,[,,\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",,,,,,,[8]],[,,\"(?:(?:2[1-9]|3[1-79])\\\\d|5(?:33|5[257]))\\\\d{5}\",,,,\"22212345\"],[,,\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\",,,,\"62112345\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"90[056]\\\\d{5}\",,,,\"90012345\"],[,,\"808\\\\d{5}\",,,,\"80812345\"],[,,,,,,,,,[-1]],\n[,,\"3[08]\\\\d{6}\",,,,\"30123456\"],\"MD\",373,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"803\\\\d{5}\",,,,\"80312345\"],,,[,,,,,,,,,[-1]]],ME:[,[,,\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",,,,,,,[8,9],[6]],[,,\"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\\\d{5}\",,,,\"30234567\",,,[8],[6]],[,,\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\",\n,,,\"67622901\",,,[8]],[,,\"80(?:[0-2578]|9\\\\d)\\\\d{5}\",,,,\"80080002\"],[,,\"9(?:4[1568]|5[178])\\\\d{5}\",,,,\"94515151\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"78[1-49]\\\\d{5}\",,,,\"78108780\",,,[8]],\"ME\",382,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"77[1-9]\\\\d{5}\",,,,\"77273012\",,,[8]],,,[,,,,,,,,,[-1]]],MF:[,[,,\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",,,,,,,[9]],[,,\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\",,,,\"590271234\"],[,,\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\",\n,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"976[01]\\\\d{5}\",,,,\"976012345\"],\"MF\",590,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MG:[,[,,\"[23]\\\\d{8}\",,,,,,,[9],[7]],[,,\"2072[29]\\\\d{4}|20(?:2\\\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\\\d{5}\",,,,\"202123456\",,,,[7]],[,,\"3[2-489]\\\\d{7}\",,,,\"321234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"22\\\\d{7}\",,,,\"221234567\"],\"MG\",\n261,\"00\",\"0\",,,\"0|([24-9]\\\\d{6})$\",\"20$1\",,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MH:[,[,,\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",,,,,,,[7]],[,,\"(?:247|528|625)\\\\d{4}\",,,,\"2471234\"],[,,\"(?:(?:23|54)5|329|45[56])\\\\d{4}\",,,,\"2351234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"635\\\\d{4}\",,,,\"6351234\"],\"MH\",692,\"011\",\"1\",,,\"1\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],,[,,,,,,,,\n,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MK:[,[,,\"[2-578]\\\\d{7}\",,,,,,,[8],[6,7]],[,,\"(?:(?:2(?:62|77)0|3444)\\\\d|4[56]440)\\\\d{3}|(?:34|4[357])700\\\\d{3}|(?:2(?:[23]\\\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\\\d{5}\",,,,\"22012345\",,,,[6,7]],[,,\"7(?:3555|4(?:60\\\\d|747)|94(?:[01]\\\\d|2[0-4]))\\\\d{3}|7(?:[0-25-8]\\\\d|3[1-4]|42|9[23])\\\\d{5}\",,,,\"72345678\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"5[02-9]\\\\d{6}\",,,,\"50012345\"],\n[,,\"8(?:0[1-9]|[1-9]\\\\d)\\\\d{5}\",,,,\"80123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MK\",389,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ML:[,[,,\"[24-9]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:07[0-8]|12[67])\\\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\\\d{5}\",,,,\"20212345\"],\n[,,\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[239])\\\\d{6}\",,,,\"65012345\"],[,,\"80\\\\d{6}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ML\",223,\"00\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"67[057-9]|74[045]\",\"67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],[,,,,,,,,,[-1]],,,[,,\"80\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MM:[,[,,\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",\n,,,,,,[6,7,8,9,10],[5]],[,,\"(?:1(?:(?:2\\\\d|3[56]|[89][0-6])\\\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\\\d|2[246]|39|46|62|7[0-3]|83)|51\\\\d\\\\d)|4(?:2(?:2\\\\d\\\\d|48[0-3])|3(?:20\\\\d|4(?:70|83)|56)|420\\\\d|5470)|6(?:0(?:[23]|88\\\\d)|(?:124|[56]2\\\\d)\\\\d|247[23]|3(?:20\\\\d|470)|4(?:2[04]\\\\d|47[23])|7(?:(?:3\\\\d|8[01459])\\\\d|4(?:39|60|7[013]))))\\\\d{4}|5(?:2(?:2\\\\d{5,6}|47[023]\\\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\\\d|6(?:20\\\\d|483)|7(?:20\\\\d|48[0-2])|8(?:20\\\\d|47[02])|9(?:20\\\\d|47[01]))\\\\d{4})|7(?:(?:0470|4(?:25\\\\d|470)|5(?:202|470|96\\\\d))\\\\d{4}|1(?:20\\\\d{4,5}|4(?:70|83)\\\\d{4}))|8(?:1(?:2\\\\d{5,6}|4(?:10|7[01]\\\\d)\\\\d{3})|2(?:2\\\\d{5,6}|(?:320|490\\\\d)\\\\d{3})|(?:3(?:2\\\\d\\\\d|470)|4[24-7]|5(?:2\\\\d|4[1-9]|51)\\\\d|6[23])\\\\d{4})|(?:1[2-6]\\\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\\\d))\\\\d{4}|25\\\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\\\d{4}\",\n,,,\"1234567\",,,[6,7,8,9],[5]],[,,\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|8[89]|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\",,,,\"92123456\",,,[7,8,9,10]],[,,\"80080(?:[01][1-9]|2\\\\d)\\\\d{3}\",,,,\"8008001234\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"1333\\\\d{4}|[12]468\\\\d{4}\",,,,\"13331234\",,,[8]],\"MM\",95,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\n\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[,\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],,[,,,\n,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MN:[,[,,\"[12]\\\\d{7,9}|[57-9]\\\\d{7}\",,,,,,,[8,9,10],[4,5,6]],[,,\"[12]2[1-3]\\\\d{5,6}|7(?:0[0-5]\\\\d|128)\\\\d{4}|(?:[12](?:1|27)|5[368])\\\\d{6}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\\\d{6,7}\",,,,\"53123456\",,,,[4,5,6]],[,,\"(?:83[01]|920)\\\\d{5}|(?:5[05]|8[05689]|9[013-9])\\\\d{6}\",,,,\"88123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"712[0-79]\\\\d{4}|7(?:1[013-9]|[5-8]\\\\d)\\\\d{5}\",,,,\"75123456\",,,[8]],\"MN\",976,\"001\",\n\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MO:[,[,,\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",,,,,,,[7,8]],[,,\"(?:28[2-9]|8(?:11|[2-57-9]\\\\d))\\\\d{5}\",\n,,,\"28212345\",,,[8]],[,,\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\",,,,\"66123456\",,,[8]],[,,\"0800\\\\d{3}\",,,,\"0800501\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MO\",853,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MP:[,[,,\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",,,,,,,[10],[7]],[,,\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\",\n,,,\"6702345678\",,,,[7]],[,,\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\",,,,\"6702345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"MP\",1,\"011\",\"1\",,,\"1|([2-9]\\\\d{6})$\",\"670$1\",,1,,,[,,,,,,,,,[-1]],,\"670\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MQ:[,[,,\"(?:69|80)\\\\d{7}|(?:59|97)6\\\\d{6}\",,,,,,,[9]],[,,\"596(?:[04-7]\\\\d|10|2[7-9]|3[014-9]|8[09]|9[4-9])\\\\d{4}\",,,,\"596301234\"],[,,\"69(?:6(?:[0-46-9]\\\\d|5[0-6])|727)\\\\d{4}\",,,,\"696201234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"976(?:6\\\\d|7[0-367])\\\\d{4}\",,,,\"976612345\"],\"MQ\",596,\"00\",\"0\",,,\"0\",\n,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MR:[,[,,\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"(?:25[08]|35\\\\d|45[1-7])\\\\d{5}\",,,,\"35123456\"],[,,\"[2-4][0-46-9]\\\\d{6}\",,,,\"22123456\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MR\",222,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[2-48]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MS:[,[,,\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"6644(?:1[0-3]|91)\\\\d{4}\",,,,\"6644912345\",,,,[7]],[,,\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\",,,,\"6644923456\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"MS\",1,\"011\",\"1\",,,\"1|([34]\\\\d{6})$\",\"664$1\",,,,,[,,,,,,,,,[-1]],,\"664\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MT:[,[,,\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"20(?:3[1-4]|6[059])\\\\d{4}|2(?:0[19]|[1-357]\\\\d|60)\\\\d{5}\",,,,\"21001234\"],[,,\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\",,,,\"96961234\"],[,,\"800[3467]\\\\d{4}\",,,,\"80071234\"],[,,\"5(?:0(?:0(?:37|43)|(?:6\\\\d|70|9[0168])\\\\d)|[12]\\\\d0[1-5])\\\\d{3}\",,,,\"50037123\"],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3550\\\\d{4}\",,,,\"35501234\"],\"MT\",356,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]],,[,,\"7117\\\\d{4}\",,,,\"71171234\"],,,[,,,,,,,,,[-1]],[,,\"501\\\\d{5}\",,,,\"50112345\"],,,[,,,,,,,,,[-1]]],MU:[,[,,\"(?:5|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",,,,,,,[7,8,10]],[,,\"(?:2(?:[0346-8]\\\\d|1[0-7])|4(?:[013568]\\\\d|2[4-7])|54(?:[3-5]\\\\d|71)|6\\\\d\\\\d|8(?:14|3[129]))\\\\d{4}\",,,,\"54480123\",,,[7,8]],[,,\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|5(?:2[5-9]|4[3-689]|[57]\\\\d|8[0-689]|9[0-8])\\\\d{5}\",\n,,,\"52512345\",,,[8]],[,,\"802\\\\d{7}|80[0-2]\\\\d{4}\",,,,\"8001234\",,,[7,10]],[,,\"30\\\\d{5}\",,,,\"3012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3(?:20|9\\\\d)\\\\d{4}\",,,,\"3201234\",,,[7]],\"MU\",230,\"0(?:0|[24-7]0|3[03])\",,,,,,\"020\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"5\"]],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MV:[,[,,\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",,,,,,,[7,10]],[,,\"(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\\\d{4}\",\n,,,\"6701234\",,,[7]],[,,\"46[46]\\\\d{4}|(?:7\\\\d|9[13-9])\\\\d{5}\",,,,\"7712345\",,,[7]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MV\",960,\"0(?:0|19)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[3467]|9[13-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"4[05]0\\\\d{4}\",,,,\"4001234\",,,[7]],,,[,,,,,,,,,[-1]]],MW:[,[,,\"(?:[129]\\\\d|31|77|88)\\\\d{7}|1\\\\d{6}\",,,,,,,[7,9]],[,,\"(?:1[2-9]|2[12]\\\\d\\\\d)\\\\d{5}\",\n,,,\"1234567\"],[,,\"111\\\\d{6}|(?:31|77|88|9[89])\\\\d{7}\",,,,\"991234567\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MW\",265,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MX:[,[,,\"1(?:(?:44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[017]\\\\d|[235][1-9]|4[0-35-9]|6[0-46-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\",\n,,,,,,[10,11],[7,8]],[,,\"6571\\\\d{6}|(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\\\d))\\\\d{7}\",,,,\"2001234567\",,,[10],[7,8]],[,,\"6571\\\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\\\d))\\\\d{7}\",\n,,,\"12221234567\",,,,[7,8]],[,,\"8(?:00|88)\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,\"300\\\\d{7}\",,,,\"3001234567\",,,[10]],[,,\"500\\\\d{7}\",,,,\"5001234567\",,,[10]],[,,,,,,,,,[-1]],\"MX\",52,\"0[09]\",\"01\",,,\"0(?:[12]|4[45])|1\",,\"00\",,[[,\"(\\\\d{5})\",\"$1\",[\"53\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],,,1],[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],,,1],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\n\"$2 $3 $4\",[\"1\"],,,1]],[[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],,,1],[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],,,1],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],,,1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MY:[,[,,\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",,,,,,,[8,9,10],[6,7]],[,,\"(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\\\d|9[0-57])\\\\d|4(?:2[0-689]|[3-79]\\\\d|8[1-35689])|5(?:2[0-589]|[3468]\\\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\\\d|[3489][0-8]))\\\\d{5}\",\n,,,\"323856789\",,,[8,9],[6,7]],[,,\"1(?:1888[69]|4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0134]\\\\d|2[1-9]|5[0-6]))|(?:(?:[269]|59)\\\\d|[37][1-9]|4[235-9])\\\\d|8(?:1[23]|[236]\\\\d|4[06]|5[7-9]|7[016-9]|8[01]|9[0-8]))\\\\d{5}\",,,,\"123456789\",,,[9,10]],[,,\"1[378]00\\\\d{6}\",,,,\"1300123456\",,,[10]],[,,\"1600\\\\d{6}\",,,,\"1600123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"15(?:4(?:6[0-4]\\\\d|8(?:0[125]|[17]\\\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\\\d))\\\\d{4}\",\n,,,\"1546012345\",,,[10]],\"MY\",60,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9])|8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1[36-8]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MZ:[,[,,\"(?:2|8\\\\d)\\\\d{7}\",\n,,,,,,[8,9]],[,,\"2(?:[1346]\\\\d|5[0-2]|[78][12]|93)\\\\d{5}\",,,,\"21123456\",,,[8]],[,,\"8[2-79]\\\\d{7}\",,,,\"821234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MZ\",258,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NA:[,[,,\"[68]\\\\d{7,8}\",,,,,,,[8,9]],[,,\"64426\\\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\\\d{4,5}|6(?:1(?:(?:0\\\\d|2[0189]|3[24-69]|4[5-9])\\\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\\\d{4}\",\n,,,\"61221234\"],[,,\"(?:60|8[1245])\\\\d{7}\",,,,\"811234567\",,,[9]],[,,\"80\\\\d{7}\",,,,\"800123456\",,,[9]],[,,\"8701\\\\d{5}\",,,,\"870123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"8(?:3\\\\d\\\\d|86)\\\\d{5}\",,,,\"88612345\"],\"NA\",264,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,\n[-1]],,,[,,,,,,,,,[-1]]],NC:[,[,,\"[2-57-9]\\\\d{5}\",,,,,,,[6]],[,,\"(?:2[03-9]|3[0-5]|4[1-7]|88)\\\\d{4}\",,,,\"201234\"],[,,\"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\",,,,\"751234\"],[,,,,,,,,,[-1]],[,,\"36\\\\d{4}\",,,,\"366711\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NC\",687,\"00\",,,,,,,,[[,\"(\\\\d{3})\",\"$1\",[\"5[6-8]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[2-57-9]\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[2-57-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NE:[,[,,\"[027-9]\\\\d{7}\",\n,,,,,,[8]],[,,\"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\\\d{4}\",,,,\"20201234\"],[,,\"(?:23|7[04]|[89]\\\\d)\\\\d{6}\",,,,\"93123456\"],[,,\"08\\\\d{6}\",,,,\"08123456\"],[,,\"09\\\\d{6}\",,,,\"09123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NE\",227,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[04]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NF:[,[,\n,\"[13]\\\\d{5}\",,,,,,,[6],[5]],[,,\"(?:1(?:06|17|28|39)|3[0-2]\\\\d)\\\\d{3}\",,,,\"106609\",,,,[5]],[,,\"(?:14|3[58])\\\\d{4}\",,,,\"381234\",,,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NF\",672,\"00\",,,,\"([0-258]\\\\d{4})$\",\"3$1\",,,[[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[,\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NG:[,[,,\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",,,,,,,[7,8,10,11,12,13,14],[5,6]],\n[,,\"(?:(?:[1-356]\\\\d|4[02-8]|8[2-9])\\\\d|9(?:0[3-9]|[1-9]\\\\d))\\\\d{5}|7(?:0(?:[013-689]\\\\d|2[0-24-9])\\\\d{3,4}|[1-79]\\\\d{6})|(?:[12]\\\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\\\d{5}\",,,,\"18040123\",,,[7,8],[5,6]],[,,\"(?:702[0-24-9]|8(?:01|19)[01])\\\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[2356]))\\\\d{7}\",,,,\"8021234567\",,,[10]],[,,\"800\\\\d{7,11}\",,,,\"80017591759\",,,[10,11,12,13,14]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NG\",234,\"009\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\n\"$1 $2 $3\",[\"78\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"700\\\\d{7,11}\",,,,\"7001234567\",,,[10,11,12,13,14]],,,[,,,,,,,,,[-1]]],NI:[,[,,\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",,,,,,,[8]],[,,\"2\\\\d{7}\",\n,,,\"21234567\"],[,,\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\",,,,\"81234567\"],[,,\"1800\\\\d{4}\",,,,\"18001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NI\",505,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NL:[,[,,\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\",,,,,,,[5,6,7,8,9,10]],[,,\"(?:1(?:[035]\\\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\\\d\\\\d)\\\\d{6}\",\n,,,\"101234567\",,,[9]],[,,\"6[1-58]\\\\d{7}\",,,,\"612345678\",,,[9]],[,,\"800\\\\d{4,7}\",,,,\"8001234\",,,[7,8,9,10]],[,,\"90[069]\\\\d{4,7}\",,,,\"9061234\",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:85|91)\\\\d{7}\",,,,\"851234567\",,,[9]],\"NL\",31,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"1[238]|[34]\"]],[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"14\"]],[,\"(\\\\d{6})\",\"$1\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[,\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-57-9]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[,\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-57-9]\"],\"0$1\"]],[,,\"66\\\\d{7}\",,,,\"662345678\",,,[9]],,,[,,\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\\\d\",\n,,,,,,[5,6]],[,,\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\\\d{6})\\\\d\",,,,\"14020\",,,[5,6,9]],,,[,,,,,,,,,[-1]]],NO:[,[,,\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",,,,,,,[5,8]],[,,\"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\\\d{6}\",,,,\"21234567\",,,[8]],[,,\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\",,,,\"40612345\",,,[8]],[,,\"80[01]\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"82[09]\\\\d{5}\",,,,\"82012345\",,,[8]],[,,\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",,,,\"81021234\",,,[8]],[,,\"880\\\\d{5}\",\n,,,\"88012345\",,,[8]],[,,\"85[0-5]\\\\d{5}\",,,,\"85012345\",,,[8]],\"NO\",47,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[489]|59\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-7]\"]]],,[,,,,,,,,,[-1]],1,\"[02-689]|7[0-8]\",[,,,,,,,,,[-1]],[,,\"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\",,,,\"02000\"],,,[,,\"81[23]\\\\d{5}\",,,,\"81212345\",,,[8]]],NP:[,[,,\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",,,,,,,[8,10,11],[6,7]],[,,\"(?:1[0-6]\\\\d|99[02-6])\\\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\\\d{5}\",\n,,,\"14567890\",,,[8],[6,7]],[,,\"9(?:6[0-3]|7[245]|8[0-24-68])\\\\d{7}\",,,,\"9841234567\",,,[10]],[,,\"1(?:66001|800\\\\d\\\\d)\\\\d{5}\",,,,\"16600101234\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NP\",977,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-579]|6[2-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{5})\",\"$1-$2-$3\",[\"1\"]]],[[,\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6})\",\n\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-579]|6[2-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NR:[,[,,\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",,,,,,,[7]],[,,\"444\\\\d{4}\",,,,\"4441234\"],[,,\"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\",,,,\"5551234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NR\",674,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nNU:[,[,,\"(?:[47]|888\\\\d)\\\\d{3}\",,,,,,,[4,7]],[,,\"[47]\\\\d{3}\",,,,\"7012\",,,[4]],[,,\"888[4-9]\\\\d{3}\",,,,\"8884012\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NU\",683,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NZ:[,[,,\"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\",,,,,,,[5,6,7,8,9,10]],[,,\"24099\\\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\\\d{6}\",\n,,,\"32345678\",,,[8],[7]],[,,\"2[0-27-9]\\\\d{7,8}|21\\\\d{6}\",,,,\"211234567\",,,[8,9,10]],[,,\"508\\\\d{6,7}|80\\\\d{6,8}\",,,,\"800123456\",,,[8,9,10]],[,,\"(?:11\\\\d{5}|50(?:0[08]|30|66|77|88))\\\\d{3}|90\\\\d{6,8}\",,,,\"900123456\",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{7}\",,,,\"701234567\",,,[9]],[,,,,,,,,,[-1]],\"NZ\",64,\"0(?:0|161)\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-579]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|[89]0\",\"50(?:[0367]|88)|[89]0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\n\"$1-$2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[59]|80\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7|86\"],\"0$1\"]],,[,,\"[28]6\\\\d{6,7}\",,,,\"26123456\",,,[8,9]],,,[,,,,,,,,,[-1]],[,,\"8(?:1[6-9]|22|3\\\\d|4[045]|5[459]|7[0-3579]|90)\\\\d{2,7}\",,,,\"83012378\"],,,[,,,,,,,,,[-1]]],OM:[,[,,\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",,,,,,,[7,8,9]],[,,\"2[2-6]\\\\d{6}\",\n,,,\"23123456\",,,[8]],[,,\"1505\\\\d{4}|(?:7(?:[1289]\\\\d|7[0-4])|9(?:0[1-9]|[1-9]\\\\d))\\\\d{5}\",,,,\"92123456\",,,[8]],[,,\"8007\\\\d{4,5}|(?:500|800[05])\\\\d{4}\",,,,\"80071234\"],[,,\"900\\\\d{5}\",,,,\"90012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"OM\",968,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PA:[,[,,\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",\n,,,,,,[7,8,10,11]],[,,\"(?:1(?:0\\\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[1389])|2(?:[0235-79]\\\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\\\d|1[0-7]|2[0-5]|33|4[0-79]|5[05]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\\\d|7[0-57-9])|5(?:[01]\\\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[6-9]|90)|8(?:09|2[89]|3\\\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\\\d))\\\\d{4}\",,,,\"2001234\",,,[7]],[,,\"(?:1[16]1|21[89]|6\\\\d{3}|8(?:1[01]|7[23]))\\\\d{4}\",\n,,,\"61234567\",,,[7,8]],[,,\"800\\\\d{4,5}|(?:00800|800\\\\d)\\\\d{6}\",,,,\"8001234\"],[,,\"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\\\d{4}\",,,,\"8601234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PA\",507,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PE:[,[,,\"(?:[14-8]|9\\\\d)\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"(?:(?:4[34]|5[14])[0-8]\\\\d|7(?:173|3[0-8]\\\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[569]|[56]0)))\\\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\\\d{6}\",\n,,,\"11234567\",,,[8],[6,7]],[,,\"9\\\\d{8}\",,,,\"912345678\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"805\\\\d{5}\",,,,\"80512345\",,,[8]],[,,\"801\\\\d{5}\",,,,\"80112345\",,,[8]],[,,\"80[24]\\\\d{5}\",,,,\"80212345\",,,[8]],[,,,,,,,,,[-1]],\"PE\",51,\"19(?:1[124]|77|90)00\",\"0\",\" Anexo \",,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,\n,,,,,[-1]],,,[,,,,,,,,,[-1]]],PF:[,[,,\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",,,,,,,[6,8,9]],[,,\"4(?:0[4-689]|9[4-68])\\\\d{5}\",,,,\"40412345\",,,[8]],[,,\"8[7-9]\\\\d{6}\",,,,\"87123456\",,,[8]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"499\\\\d{5}\",,,,\"49901234\",,,[8]],\"PF\",689,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],,[,,,\n,,,,,,[-1]],,,[,,\"44\\\\d{4}\",,,,,,,[6]],[,,\"44\\\\d{4}\",,,,\"440123\",,,[6]],,,[,,,,,,,,,[-1]]],PG:[,[,,\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",,,,,,,[7,8]],[,,\"(?:(?:3[0-2]|4[257]|5[34]|9[78])\\\\d|64[1-9]|85[02-46-9])\\\\d{4}\",,,,\"3123456\",,,[7]],[,,\"(?:7\\\\d|8[18])\\\\d{6}\",,,,\"70123456\",,,[8]],[,,\"180\\\\d{4}\",,,,\"1801234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"2(?:0[0-47]|7[568])\\\\d{4}\",,,,\"2751234\",,,[7]],\"PG\",675,\"00|140[1-3]\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],\n[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],,[,,\"27[01]\\\\d{4}\",,,,\"2700123\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PH:[,[,,\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",,,,,,,[6,8,9,10,11,12,13],[4,5,7]],[,,\"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\\\d{3}|88(?:22\\\\d\\\\d|42))\\\\d{4}|(?:2|8[2-8]\\\\d\\\\d)\\\\d{5}\",,,,\"232345678\",,,[6,8,9,10],[4,5,7]],[,,\"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\\\d|4[2-9]|8[135-9]|9[1-9]))\\\\d{7}\",,,,\"9051234567\",,,[10]],[,,\"1800\\\\d{7,9}\",\n,,,\"180012345678\",,,[11,12,13]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PH\",63,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PK:[,[,,\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",,,,,,\n,[8,9,10,11,12],[5,6,7]],[,,\"(?:(?:21|42)[2-9]|58[126])\\\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\\\d{5,6}\",,,,\"2123456789\",,,[9,10],[5,6,7,8]],[,,\"3(?:[0-24]\\\\d|3[0-7]|55|64)\\\\d{7}\",,,,\"3012345678\",,,[10]],[,,\"800\\\\d{5}(?:\\\\d{3})?\",,,,\"80012345\",,,[8,11]],[,,\"900\\\\d{5}\",,,,\"90012345\",,,[8]],[,,,,,,,,,[-1]],[,,\"122\\\\d{6}\",\n,,,\"122044444\",,,[9]],[,,,,,,,,,[-1]],\"PK\",92,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\\\d{6}\",\n,,,\"21111825888\",,,[11,12]],,,[,,,,,,,,,[-1]]],PL:[,[,,\"6\\\\d{5}(?:\\\\d{2})?|8\\\\d{9}|[1-9]\\\\d{6}(?:\\\\d{2})?\",,,,,,,[6,7,8,9,10]],[,,\"47\\\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\\\d{6}|1(?:[0-8]\\\\d{5}|9\\\\d{3}(?:\\\\d{2})?))\",,,,\"123456789\",,,[7,9]],[,,\"21(?:1(?:[145]\\\\d|3[1-5])|2[0-4]\\\\d)\\\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\",,,,\"512345678\",,,[9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\",,,[9,10]],[,,\"70[01346-8]\\\\d{6}\",,,,\"701234567\",,,[9]],[,,\"801\\\\d{6}\",\n,,,\"801234567\",,,[9]],[,,,,,,,,,[-1]],[,,\"39\\\\d{7}\",,,,\"391234567\",,,[9]],\"PL\",48,\"00\",,,,,,,,[[,\"(\\\\d{5})\",\"$1\",[\"19\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|64\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],\n[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]],,[,,\"64\\\\d{4,7}\",,,,\"641234567\",,,[6,7,8,9]],,,[,,,,,,,,,[-1]],[,,\"804\\\\d{6}\",,,,\"804123456\",,,[9]],,,[,,,,,,,,,[-1]]],PM:[,[,,\"(?:[45]|80\\\\d\\\\d)\\\\d{5}\",,,,,,,[6,9]],[,,\"(?:4[1-3]|50)\\\\d{4}\",,,,\"430123\",,,[6]],[,,\"(?:4[02-4]|5[056])\\\\d{4}\",,,,\"551234\",,,[6]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PM\",\n508,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PR:[,[,,\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",,,,,,,[10],[7]],[,,\"(?:787|939)[2-9]\\\\d{6}\",,,,\"7872345678\",,,,[7]],[,,\"(?:787|939)[2-9]\\\\d{6}\",,,,\"7872345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"PR\",1,\"011\",\"1\",,,\"1\",,,1,,,[,,,,,,,,,[-1]],,\"787|939\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PS:[,[,,\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",,,,,,,[8,9,10],[7]],[,,\"(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\\\d{5}\",,,,\"22234567\",,,[8],[7]],[,,\"5[69]\\\\d{7}\",,,,\"599123456\",,,[9]],[,,\"1800\\\\d{6}\",,,,\"1800123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"1700\\\\d{6}\",,,,\"1700123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PS\",970,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"[2489]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PT:[,[,,\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",,,,,,,[9]],[,,\"2(?:[12]\\\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\\\d{6}\",,,,\"212345678\"],[,,\"6[0356]92(?:30|9\\\\d)\\\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\",,,,\"912345678\"],[,,\"80[02]\\\\d{6}\",,,,\"800123456\"],[,,\"(?:6(?:0[178]|4[68])\\\\d|76(?:0[1-57]|1[2-47]|2[237]))\\\\d{5}\",\n,,,\"760123456\"],[,,\"80(?:8\\\\d|9[1579])\\\\d{5}\",,,,\"808123456\"],[,,\"884[0-4689]\\\\d{5}\",,,,\"884123456\"],[,,\"30\\\\d{7}\",,,,\"301234567\"],\"PT\",351,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"70(?:7\\\\d|8[17])\\\\d{5}\",,,,\"707123456\"],,,[,,\"600\\\\d{6}\",,,,\"600110000\"]],PW:[,[,,\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",,,,,,,[7]],[,,\"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\\\d{4}\",\n,,,\"2771234\"],[,,\"(?:46[0-5]|6[2-4689]0)\\\\d{4}|(?:45|77|88)\\\\d{5}\",,,,\"6201234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PW\",680,\"01[12]\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PY:[,[,,\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",,,,,,,[6,7,8,9,10,11],[5]],[,,\"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\\\d|6[1-578]|75|8[0-8])|858)\\\\d{5,6}\",\n,,,\"212345678\",,,[7,8,9],[5,6]],[,,\"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\",,,,\"961456789\",,,[9]],[,,\"9800\\\\d{5,7}\",,,,\"98000123456\",,,[9,10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"8700[0-4]\\\\d{4}\",,,,\"870012345\",,,[9]],\"PY\",595,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"[2-9]0\\\\d{4,7}\",,,,\"201234567\",,,[6,7,8,9]],,,[,,,,,,,,,[-1]]],QA:[,[,,\"[2-7]\\\\d{7}|800\\\\d{4}(?:\\\\d{2})?|2\\\\d{6}\",,,,,,,[7,8,9]],[,,\"4141\\\\d{4}|(?:23|4[04])\\\\d{6}\",,,,\"44123456\",\n,,[8]],[,,\"(?:2[89]|[35-7]\\\\d)\\\\d{6}\",,,,\"33123456\",,,[8]],[,,\"800\\\\d{4}(?:\\\\d{2})?\",,,,\"8001234\",,,[7,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"QA\",974,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[126]|8\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]]],,[,,\"2(?:[12]\\\\d|61)\\\\d{4}\",,,,\"2123456\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RE:[,[,,\"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"26(?:2\\\\d\\\\d|30[0-5])\\\\d{4}\",,,,\"262161234\"],[,,\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-27]|8[0-8]|9[0-479]))|9769\\\\d)\\\\d{4}\",\n,,,\"692123456\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,\"89[1-37-9]\\\\d{6}\",,,,\"891123456\"],[,,\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RE\",262,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,\"26[23]|69|[89]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RO:[,[,,\"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",,,,,,,[6,9]],[,,\"[23][13-6]\\\\d{7}|(?:2(?:19\\\\d|[3-6]\\\\d9)|31\\\\d\\\\d)\\\\d\\\\d\",,,,\"211234567\"],[,,\"7020\\\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\\\d|8[03-8]|9[019])\\\\d{6}\",\n,,,\"712034567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"90[0136]\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"801\\\\d{6}\",,,,\"801123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RO\",40,\"00\",\"0\",\" int \",,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:37\\\\d|80[578])\\\\d{6}\",,,,\"372123456\",\n,,[9]],,,[,,,,,,,,,[-1]]],RS:[,[,,\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",,,,,,,[6,7,8,9,10,11,12],[4,5]],[,,\"(?:11[1-9]\\\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\\\d))\\\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\\\d{4,9}\",,,,\"10234567\",,,[7,8,9,10,11,12],[4,5,6]],[,,\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\",,,,\"601234567\",,,[8,9,10]],[,,\"800\\\\d{3,9}\",,,,\"80012345\"],[,,\"(?:78\\\\d|90[0169])\\\\d{3,7}\",,,,\"90012345\",,,[6,7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,\n,,,,,,,,[-1]],\"RS\",381,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"7[06]\\\\d{4,10}\",,,,\"700123456\"],,,[,,,,,,,,,[-1]]],RU:[,[,,\"8\\\\d{13}|[347-9]\\\\d{9}\",,,,,,,[10,14],[7]],[,,\"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\\\d{7}\",,,,\"3011234567\",,,[10],[7]],[,,\"9\\\\d{9}\",\n,,,\"9123456789\",,,[10]],[,,\"8(?:0[04]|108\\\\d{3})\\\\d{7}\",,,,\"8001234567\"],[,,\"80[39]\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"808\\\\d{7}\",,,,\"8081234567\",,,[10]],[,,,,,,,,,[-1]],\"RU\",7,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"[0-79]\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",,1],[,\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",,1],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],[[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",,1],[,\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\n\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",,1],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],[,,,,,,,,,[-1]],1,\"3[04-689]|[489]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RW:[,[,,\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",,,,,,,[8,9]],[,,\"(?:06|2[23568]\\\\d)\\\\d{6}\",,,,\"250123456\"],[,,\"7[2389]\\\\d{7}\",,,,\"720123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\n\"900\\\\d{6}\",,,,\"900123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RW\",250,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SA:[,[,,\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",,,,,,,[9,10],[7]],[,,\"1(?:1\\\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\\\d{6}\",,,,\"112345678\",,,[9],[7]],[,,\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-36-8])\\\\d{6}\",\n,,,\"512345678\",,,[9]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"925\\\\d{6}\",,,,\"925012345\",,,[9]],[,,\"920\\\\d{6}\",,,,\"920012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SA\",966,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"811\\\\d{7}\",,,,\"8110123456\",\n,,[10]],,,[,,,,,,,,,[-1]]],SB:[,[,,\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",,,,,,,[5,7]],[,,\"(?:1[4-79]|[23]\\\\d|4[0-2]|5[03]|6[0-37])\\\\d{3}\",,,,\"40123\",,,[5]],[,,\"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\",,,,\"7421234\"],[,,\"1[38]\\\\d{3}\",,,,\"18123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[12]\\\\d{3}\",,,,\"51123\",,,[5]],\"SB\",677,\"0[01]\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]],,[,,,,,,,,,[-1]],,,\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SC:[,[,,\"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\",,,,,,,[7]],[,,\"4[2-46]\\\\d{5}\",,,,\"4217123\"],[,,\"2[5-8]\\\\d{5}\",,,,\"2510123\"],[,,\"8000\\\\d{3}\",,,,\"8000000\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"971\\\\d{4}|(?:64|95)\\\\d{5}\",,,,\"6412345\"],\"SC\",248,\"010|0[0-2]\",,,,,,\"00\",,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SD:[,[,,\"[19]\\\\d{8}\",,,,,,,[9]],[,,\"1(?:5\\\\d|8[35-7])\\\\d{6}\",\n,,,\"153123456\"],[,,\"(?:1[0-2]|9[0-3569])\\\\d{7}\",,,,\"911231234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SD\",249,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SE:[,[,,\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",,,,,,,[6,7,8,9,10,12]],[,,\"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}\",\n,,,\"8123456\",,,[7,8,9]],[,,\"7[02369]\\\\d{7}\",,,,\"701234567\",,,[9]],[,,\"20\\\\d{4,7}\",,,,\"20123456\",,,[6,7,8,9]],[,,\"649\\\\d{6}|9(?:00|39|44)[1-8]\\\\d{3,6}\",,,,\"9001234567\",,,[7,8,9,10]],[,,\"77[0-7]\\\\d{6}\",,,,\"771234567\",,,[9]],[,,\"75[1-8]\\\\d{6}\",,,,\"751234567\",,,[9]],[,,,,,,,,,[-1]],\"SE\",46,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\"],\n[,\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1-$2 $3 $4\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1 $2 $3\",[\"20\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"9(?:00|39|44)\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"]],[,\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1 $2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1 $2 $3\",[\"9(?:00|39|44)\"]],[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"10|7\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]\"]]],[,,\"74[02-9]\\\\d{6}\",,,,\"740123456\",,,[9]],,,[,,,,,,,,,[-1]],[,,\"10[1-8]\\\\d{6}\",,,,\"102345678\",,,[9]],,,[,,\"(?:25[245]|67[3-68])\\\\d{9}\",,,,\"254123456789\",,,[12]]],SG:[,[,,\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",,,,,,,[8,10,11]],[,,\"662[0-24-9]\\\\d{4}|6(?:[0-578]\\\\d|6[013-57-9]|9[0-35-9])\\\\d{5}\",\n,,,\"61234567\",,,[8]],[,,\"8(?:051|95[0-2])\\\\d{4}|(?:8(?:0[1-4]|[1-8]\\\\d|9[0-4])|9[0-8]\\\\d)\\\\d{5}\",,,,\"81234567\",,,[8]],[,,\"(?:18|8)00\\\\d{7}\",,,,\"18001234567\",,,[10,11]],[,,\"1900\\\\d{7}\",,,,\"19001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:3[12]\\\\d|666)\\\\d{5}\",,,,\"31234567\",,,[8]],\"SG\",65,\"0[0-3]\\\\d\",,,,,,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"1[013-9]|77\",\"1(?:[013-8]|9(?:0[1-9]|[1-9]))|77\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-5]|[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\n\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-5]|[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"7000\\\\d{7}\",,,,\"70001234567\",,,[11]],,,[,,,,,,,,,[-1]]],SH:[,[,,\"(?:[256]\\\\d|8)\\\\d{3}\",,,,,,,[4,5]],[,,\"2(?:[0-57-9]\\\\d|6[4-9])\\\\d\\\\d\",,,,\"22158\"],[,,\"[56]\\\\d{4}\",,,,\"51234\",,,[5]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"262\\\\d\\\\d\",,,,\"26212\",,,[5]],\"SH\",290,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],1,\"[256]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SI:[,[,,\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",,,,,,,[5,6,7,8]],[,,\"(?:[1-357][2-8]|4[24-8])\\\\d{6}\",,,,\"12345678\",,,[8],[7]],[,,\"65(?:1\\\\d|55|[67]0)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\",,,,\"31234567\",,,[8]],[,,\"80\\\\d{4,6}\",,,,\"80123456\",,,[6,7,8]],[,,\"89[1-3]\\\\d{2,5}|90\\\\d{4,6}\",,,,\"90123456\"],[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],[,,\"(?:59\\\\d\\\\d|8(?:1(?:[67]\\\\d|8[0-489])|2(?:0\\\\d|2[0-37-9]|8[0-2489])|3[389]\\\\d))\\\\d{4}\",,,,\"59012345\",,,[8]],\"SI\",386,\"00|10(?:22|66|88|99)\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SJ:[,[,,\"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\",\n,,,,,,[5,8]],[,,\"79\\\\d{6}\",,,,\"79123456\",,,[8]],[,,\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\",,,,\"41234567\",,,[8]],[,,\"80[01]\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"82[09]\\\\d{5}\",,,,\"82012345\",,,[8]],[,,\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",,,,\"81021234\",,,[8]],[,,\"880\\\\d{5}\",,,,\"88012345\",,,[8]],[,,\"85[0-5]\\\\d{5}\",,,,\"85012345\",,,[8]],\"SJ\",47,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"79\",[,,,,,,,,,[-1]],[,,\"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\",,,,\"02000\"],,,[,,\"81[23]\\\\d{5}\",,,,\"81212345\",,,[8]]],SK:[,[,,\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",\n,,,,,,[6,7,9]],[,,\"(?:2(?:16|[2-9]\\\\d{3})|(?:(?:[3-5][1-8]\\\\d|819)\\\\d|601[1-5])\\\\d)\\\\d{4}|(?:2|[3-5][1-8])1[67]\\\\d{3}|[3-5][1-8]16\\\\d\\\\d\",,,,\"221234567\"],[,,\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\",,,,\"912123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"9(?:00|[78]\\\\d)\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"8[5-9]\\\\d{7}\",,,,\"850123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"6(?:02|5[0-4]|9[0-6])\\\\d{6}\",,,,\"690123456\",,,[9]],\"SK\",421,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",\n[\"21\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"909\",\"9090\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],[,,\"9090\\\\d{3}\",,,,\"9090123\",,,[7]],,,[,,\"9090\\\\d{3}|(?:602|8(?:00|[5-9]\\\\d)|9(?:00|[78]\\\\d))\\\\d{6}\",,,,,,,[7,9]],[,,\"96\\\\d{7}\",,,,\"961234567\",,,[9]],,,[,,,,,,,,,[-1]]],SL:[,[,,\"(?:[237-9]\\\\d|66)\\\\d{6}\",,,,,,,[8],[6]],[,,\"22[2-4][2-9]\\\\d{4}\",,,,\"22221234\",,,,[6]],[,,\"(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\\\d{6}\",,,,\"25123456\"],[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SL\",232,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SM:[,[,,\"(?:0549|[5-7]\\\\d)\\\\d{6}\",,,,,,,[8,10],[6]],[,,\"0549(?:8[0157-9]|9\\\\d)\\\\d{4}\",,,,\"0549886377\",,,[10],[6]],[,,\"6[16]\\\\d{6}\",,,,\"66661212\",,,[8]],[,,,,,,,,,[-1]],[,,\"7[178]\\\\d{6}\",,,,\"71123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[158]\\\\d{6}\",,,,\"58001110\",,,[8]],\"SM\",378,\"00\",,,\n,\"([89]\\\\d{5})$\",\"0549$1\",,,[[,\"(\\\\d{6})\",\"$1\",[\"[89]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SN:[,[,,\"(?:[378]\\\\d|93)\\\\d{7}\",,,,,,,[9]],[,,\"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\\\d{5}\",,,,\"301012345\"],[,,\"75(?:01|[38]3)\\\\d{5}|7(?:[06-8]\\\\d|21|5[4-7]|90)\\\\d{6}\",\n,,,\"701234567\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,\"88[4689]\\\\d{6}\",,,,\"884123456\"],[,,\"81[02468]\\\\d{6}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,\"(?:3(?:392|9[01]\\\\d)\\\\d|93(?:3[13]0|929))\\\\d{4}\",,,,\"933301234\"],\"SN\",221,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SO:[,[,,\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",,,,,,,[6,7,8,9]],[,,\n\"(?:1\\\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\\\d{5}|(?:[134]\\\\d|8[125])\\\\d{4}\",,,,\"4012345\",,,[6,7]],[,,\"(?:(?:15|(?:3[59]|4[89]|79|8[08])\\\\d|6(?:0[5-7]|[1-9]\\\\d)|9(?:0\\\\d|[2-9]))\\\\d|2(?:4\\\\d|8))\\\\d{5}|(?:6\\\\d|7[1-9])\\\\d{6}\",,,,\"71123456\",,,[7,8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SO\",252,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[,\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[,\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[,\"(\\\\d)(\\\\d{7})\",\n\"$1 $2\",[\"24|[67]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3478]|64|90\"]],[,\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6(?:0[5-7]|[1-35-9])|9[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SR:[,[,,\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",,,,,,,[6,7]],[,,\"(?:2[1-3]|3[0-7]|(?:4|68)\\\\d|5[2-58])\\\\d{4}\",,,,\"211234\"],[,,\"(?:7[124-7]|8[124-9])\\\\d{5}\",,,,\"7412345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"56\\\\d{4}\",,,,\"561234\",,,[6]],\"SR\",597,\"00\",,,,,,,\n,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SS:[,[,,\"[19]\\\\d{8}\",,,,,,,[9]],[,,\"1[89]\\\\d{7}\",,,,\"181234567\"],[,,\"(?:12|9[1257-9])\\\\d{7}\",,,,\"977123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SS\",211,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,\n,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ST:[,[,,\"(?:22|9\\\\d)\\\\d{5}\",,,,,,,[7]],[,,\"22\\\\d{5}\",,,,\"2221234\"],[,,\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\",,,,\"9812345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ST\",239,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SV:[,[,,\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",,,,,,,[7,8,11]],[,,\"2(?:[1-6]\\\\d{3}|[79]90[034]|890[0245])\\\\d{3}\",,,,\"21234567\",\n,,[8]],[,,\"66(?:[02-9]\\\\d\\\\d|1(?:[02-9]\\\\d|16))\\\\d{3}|(?:6[0-57-9]|7\\\\d)\\\\d{6}\",,,,\"70123456\",,,[8]],[,,\"800\\\\d{4}(?:\\\\d{4})?\",,,,\"8001234\",,,[7,11]],[,,\"900\\\\d{4}(?:\\\\d{4})?\",,,,\"9001234\",,,[7,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SV\",503,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SX:[,[,,\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",\n,,,,,,[10],[7]],[,,\"7215(?:4[2-8]|8[239]|9[056])\\\\d{4}\",,,,\"7215425678\",,,,[7]],[,,\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\",,,,\"7215205678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,\n,\"5002345678\"],[,,,,,,,,,[-1]],\"SX\",1,\"011\",\"1\",,,\"1|(5\\\\d{6})$\",\"721$1\",,,,,[,,,,,,,,,[-1]],,\"721\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SY:[,[,,\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"21\\\\d{6,7}|(?:1(?:[14]\\\\d|[2356])|2[235]|3(?:[13]\\\\d|4)|4[134]|5[1-3])\\\\d{6}\",,,,\"112345678\",,,,[6,7]],[,,\"9(?:22|[3-689]\\\\d)\\\\d{6}\",,,,\"944567890\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SY\",963,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SZ:[,[,,\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",,,,,,,[8,9]],[,,\"[23][2-5]\\\\d{6}\",,,,\"22171234\",,,[8]],[,,\"7[6-9]\\\\d{6}\",,,,\"76123456\",,,[8]],[,,\"0800\\\\d{4}\",,,,\"08001234\",,,[8]],[,,\"900\\\\d{6}\",,,,\"900012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"70\\\\d{6}\",,,,\"70012345\",,,[8]],\"SZ\",268,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[,\n\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,\"0800\\\\d{4}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TA:[,[,,\"8\\\\d{3}\",,,,,,,[4]],[,,\"8\\\\d{3}\",,,,\"8999\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TA\",290,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"8\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TC:[,[,,\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"649(?:266|712|9(?:4\\\\d|50))\\\\d{4}\",,,,\"6497121234\",,,,[7]],[,,\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\",\n,,,\"6492311234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"649(?:71[01]|966)\\\\d{4}\",,,,\"6497101234\",,,,[7]],\"TC\",1,\"011\",\"1\",,,\"1|([2-479]\\\\d{6})$\",\"649$1\",,,,,[,,,,,,,,\n,[-1]],,\"649\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TD:[,[,,\"(?:22|[69]\\\\d|77)\\\\d{6}\",,,,,,,[8]],[,,\"22(?:[37-9]0|5[0-5]|6[89])\\\\d{4}\",,,,\"22501234\"],[,,\"(?:6[023568]|77|9\\\\d)\\\\d{6}\",,,,\"63012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TD\",235,\"00|16\",,,,,,\"00\",,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TG:[,[,,\"[279]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\\\d{5}\",\n,,,\"22212345\"],[,,\"(?:7[09]|9[0-36-9])\\\\d{6}\",,,,\"90112345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TG\",228,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TH:[,[,,\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",,,,,,,[8,9,10,13]],[,,\"(?:1[0689]|2\\\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\\\d{6}\",,,,\"21234567\",,,[8]],[,,\"671[0-8]\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\",,,,\"812345678\",\n,,[9]],[,,\"(?:001800\\\\d|1800)\\\\d{6}\",,,,\"1800123456\",,,[10,13]],[,,\"1900\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"6[08]\\\\d{7}\",,,,\"601234567\",,,[9]],\"TH\",66,\"00[1-9]\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TJ:[,[,,\"(?:00|[1-57-9]\\\\d)\\\\d{7}\",,,,,,,[9],[3,5,6,7]],[,,\"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\\\d{6}\",\n,,,\"372123456\",,,,[3,5,6,7]],[,,\"41[18]\\\\d{6}|(?:[034]0|[17][017]|2[02]|5[05]|8[08]|9\\\\d)\\\\d{7}\",,,,\"917123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TJ\",992,\"810\",,,,,,\"8~10\",,[[,\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[34]7|91[78]\"]],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nTK:[,[,,\"[2-47]\\\\d{3,6}\",,,,,,,[4,5,6,7]],[,,\"(?:2[2-4]|[34]\\\\d)\\\\d{2,5}\",,,,\"3101\"],[,,\"7[2-4]\\\\d{2,5}\",,,,\"7290\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TK\",690,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TL:[,[,,\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",,,,,,,[7,8]],[,,\"(?:2[1-5]|3[1-9]|4[1-4])\\\\d{5}\",,,,\"2112345\",,,[7]],[,,\"7[2-8]\\\\d{6}\",,,,\"77212345\",,,[8]],[,,\"80\\\\d{5}\",,,,\"8012345\",,,[7]],[,,\"90\\\\d{5}\",,,,\"9012345\",\n,,[7]],[,,,,,,,,,[-1]],[,,\"70\\\\d{5}\",,,,\"7012345\",,,[7]],[,,,,,,,,,[-1]],\"TL\",670,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TM:[,[,,\"[1-6]\\\\d{7}\",,,,,,,[8]],[,,\"(?:1(?:2\\\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\\\d{5}\",,,,\"12345678\"],[,,\"6\\\\d{7}\",,,,\"66123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],\"TM\",993,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TN:[,[,,\"[2-57-9]\\\\d{7}\",,,,,,,[8]],[,,\"81200\\\\d{3}|(?:3[0-2]|7\\\\d)\\\\d{6}\",,,,\"30010123\"],[,,\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-7])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\",,,,\"20123456\"],[,,\"8010\\\\d{4}\",\n,,,\"80101234\"],[,,\"88\\\\d{6}\",,,,\"88123456\"],[,,\"8[12]10\\\\d{4}\",,,,\"81101234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TN\",216,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TO:[,[,,\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",,,,,,,[5,7]],[,,\"(?:2\\\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\\\d{3}\",,,,\"20123\",,,[5]],[,,\"(?:55[4-6]|6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\",,,,\"7715123\",,,[7]],\n[,,\"0800\\\\d{3}\",,,,\"0800222\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"55[0-37-9]\\\\d{4}\",,,,\"5510123\",,,[7]],\"TO\",676,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TR:[,[,,\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[7,10,12,13]],[,,\"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\\\d{7}\",\n,,,\"2123456789\",,,[10]],[,,\"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\",,,,\"5012345678\",,,[10]],[,,\"8(?:00\\\\d{7}(?:\\\\d{2,3})?|11\\\\d{7})\",,,,\"8001234567\",,,[10,12,13]],[,,\"(?:8[89]8|900)\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"592(?:21[12]|461)\\\\d{4}\",,,,\"5922121234\",,,[10]],[,,\"850\\\\d{7}\",,,,\"8500123456\",,,[10]],\"TR\",90,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d)(\\\\d{3})\",\"$1 $2 $3\",[\"444\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",,1]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\n\"$1 $2 $3\",[\"80\"],\"0$1\",,1]],[,,\"512\\\\d{7}\",,,,\"5123456789\",,,[10]],,,[,,\"(?:444|811\\\\d{3})\\\\d{4}\",,,,,,,[7,10]],[,,\"444\\\\d{4}\",,,,\"4441444\",,,[7]],,,[,,,,,,,,,[-1]]],TT:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"868(?:2(?:0[13]|1[89]|[23]\\\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\\\d|7[0-79])|82[124])\\\\d{4}\",,,,\"8682211234\",,,,[7]],[,,\"868(?:(?:2[5-9]|3\\\\d)\\\\d|4(?:3[0-6]|[6-9]\\\\d)|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\",,,,\"8682911234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"TT\",1,\"011\",\"1\",,,\"1|([2-46-8]\\\\d{6})$\",\"868$1\",,,,,[,,,,,,,,,[-1]],,\"868\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"868619\\\\d{4}\",,,,\"8686191234\",,,,[7]]],TV:[,[,,\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",\n,,,,,,[5,6,7]],[,,\"2[02-9]\\\\d{3}\",,,,\"20123\",,,[5]],[,,\"(?:7[01]\\\\d|90)\\\\d{4}\",,,,\"901234\",,,[6,7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TV\",688,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TW:[,[,,\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",,,,,,,[7,8,9,10,11]],[,,\"(?:2[2-8]\\\\d|370|55[01]|7[1-9])\\\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\\\d)|1[023]\\\\d)\\\\d{4,5}|(?:[239]\\\\d\\\\d|4(?:0[56]|12|49))\\\\d{5})|6(?:[01]\\\\d{7}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|8(?:(?:2(?:3\\\\d|4[0-269]|[578]0|66)|36[24-9]|90\\\\d\\\\d)\\\\d{4}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|(?:2(?:2(?:0\\\\d\\\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\\\d|1[0-4])|(?:4\\\\d|5[0-49]|6[0-29]|7[0-5])\\\\d)\\\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\\\d\\\\d|4(?:2(?:[089]\\\\d|7[1-9])|(?:3[0-4]|[78]\\\\d|9[01])\\\\d))\\\\d)\\\\d{3}\",\n,,,\"221234567\",,,[8,9]],[,,\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\",,,,\"912345678\",,,[9]],[,,\"80[0-79]\\\\d{6}|800\\\\d{5}\",,,,\"800123456\",,,[8,9]],[,,\"20(?:[013-9]\\\\d\\\\d|2)\\\\d{4}\",,,,\"203123456\",,,[7,9]],[,,,,,,,,,[-1]],[,,\"99\\\\d{7}\",,,,\"990123456\",,,[9]],[,,\"7010(?:[0-2679]\\\\d|3[0-7]|8[0-5])\\\\d{5}|70\\\\d{8}\",,,,\"7012345678\",,,[10,11]],\"TW\",886,\"0(?:0[25-79]|19)\",\"0\",\"#\",,\"0\",,,,[[,\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"50[0-46-9]\\\\d{6}\",,,,\"500123456\",,,[9]],,,[,,,,,,,,,[-1]]],TZ:[,[,,\"(?:[26-8]\\\\d|41|90)\\\\d{7}\",,,,,,,[9]],[,,\"2[2-8]\\\\d{7}\",,,,\"222345678\"],[,,\"77[2-9]\\\\d{6}|(?:6[1-9]|7[1-689])\\\\d{7}\",,,,\"621234567\"],[,,\"80[08]\\\\d{6}\",,,,\"800123456\"],[,,\"90\\\\d{7}\",\n,,,\"900123456\"],[,,\"8(?:40|6[01])\\\\d{6}\",,,,\"840123456\"],[,,,,,,,,,[-1]],[,,\"41\\\\d{7}\",,,,\"412345678\"],\"TZ\",255,\"00[056]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"(?:8(?:[04]0|6[01])|90\\\\d)\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UA:[,[,,\"[89]\\\\d{9}|[3-9]\\\\d{8}\",,,,,,,[9,10],[5,6,7]],[,,\"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\\\d{7}\",,,\n,\"311234567\",,,[9],[5,6,7]],[,,\"(?:50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\",,,,\"501234567\",,,[9]],[,,\"800[1-8]\\\\d{5,6}\",,,,\"800123456\"],[,,\"900[239]\\\\d{5,6}\",,,,\"900212345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"89[1-579]\\\\d{6}\",,,,\"891234567\",,,[9]],\"UA\",380,\"00\",\"0\",,,\"0\",,\"0~0\",,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\",\"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UG:[,[,,\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",,,,,,,[9],[5,6,7]],[,,\"20(?:(?:(?:24|81)0|30[67])\\\\d|6(?:00[0-2]|30[0-4]))\\\\d{3}|(?:20(?:[0147]\\\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\\\d{3})\\\\d{5}\",\n,,,\"312345678\",,,,[5,6,7]],[,,\"726[01]\\\\d{5}|7(?:[0157-9]\\\\d|20|36|[46][0-4])\\\\d{6}\",,,,\"712345678\"],[,,\"800[1-3]\\\\d{5}\",,,,\"800123456\"],[,,\"90[1-3]\\\\d{6}\",,,,\"901123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UG\",256,\"00[057]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],US:[,[,,\"[2-9]\\\\d{9}\",\n,,,,,,[10],[7]],[,,\"5(?:05(?:[2-57-9]\\\\d\\\\d|6(?:[0-35-9]\\\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|33)|4(?:00|4[24]|65|82)|5(?:00|29|83)|6(?:00|66|82)|777|8(?:00|88)|9(?:00|9[89])))\\\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[39]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01579]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\",\n,,,\"2015550123\",,,,[7]],[,,\"5(?:05(?:[2-57-9]\\\\d\\\\d|6(?:[0-35-9]\\\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|33)|4(?:00|4[24]|65|82)|5(?:00|29|83)|6(?:00|66|82)|777|8(?:00|88)|9(?:00|9[89])))\\\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[39]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01579]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\",\n,,,\"2015550123\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"US\",1,\"011\",\"1\",,,\"1\",,,1,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",\n[\"[2-9]\"],,,1]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-9]\"]]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UY:[,[,,\"4\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:1(?:770|987)|(?:2\\\\d|4[2-7])\\\\d\\\\d)\\\\d{4}\",,,,\"21231234\",,,[8],[7]],[,,\"9[1-9]\\\\d{6}\",,,,\"94231234\",,,[8]],[,,\"(?:4\\\\d{5}|80[05])\\\\d{4}|405\\\\d{4}\",,,,\"8001234\",,,[7,10]],[,,\"90[0-8]\\\\d{4}\",,,,\"9001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UY\",598,\"0(?:0|1[3-9]\\\\d)\",\"0\",\n\" int. \",,\"0\",,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"405|8|90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UZ:[,[,,\"(?:33|55|[679]\\\\d|88)\\\\d{7}\",,,,,,,[9]],[,,\"(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\\\d\\\\d|7(?:[23]\\\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\\\d)\\\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\\\d{5}\",\n,,,\"669050123\"],[,,\"(?:(?:33|88|9[0-57-9])\\\\d{3}|55(?:50[013]|90\\\\d)|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:[07]\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\",\n,,,\"912345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UZ\",998,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[35-9]\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VA:[,[,,\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",,,,,,,[6,7,8,9,10,11,12]],[,,\"06698\\\\d{1,6}\",,,,\"0669812345\",,,[6,7,8,9,10,11]],[,,\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",,,,\"3123456789\",,,[9,10]],[,,\"80(?:0\\\\d{3}|3)\\\\d{3}\",\n,,,\"800123456\",,,[6,9]],[,,\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",,,,\"899123456\",,,[6,8,9,10]],[,,\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",,,,\"848123456\",,,[6,9]],[,,\"1(?:78\\\\d|99)\\\\d{6}\",,,,\"1781234567\",,,[9,10]],[,,\"55\\\\d{8}\",,,,\"5512345678\",,,[10]],\"VA\",39,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"06698\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"3[2-8]\\\\d{9,10}\",,,,\"33101234501\",,,[11,12]]],VC:[,[,,\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",,,,,,,[10],[7]],\n[,,\"784(?:266|3(?:6[6-9]|7\\\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\\\d{4}\",,,,\"7842661234\",,,,[7]],[,,\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\",,,,\"7844301234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VC\",1,\"011\",\"1\",,,\"1|([2-7]\\\\d{6})$\",\"784$1\",,,,,[,,,,,,,,,[-1]],,\"784\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VE:[,[,,\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",,,,,,,[10],[7]],[,,\"(?:2(?:12|3[457-9]|[467]\\\\d|[58][1-9]|9[1-6])|[4-6]00)\\\\d{7}\",,,,\"2121234567\",,,,[7]],[,,\"4(?:1[24-8]|2[46])\\\\d{7}\",,,,\"4121234567\"],[,,\"800\\\\d{7}\",,,,\"8001234567\"],[,,\"90[01]\\\\d{7}\",,,,\"9001234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"VE\",58,\"00\",\"0\",,,\"0\",,,,[[,\n\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\",\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"501\\\\d{7}\",,,,\"5010123456\",,,,[7]],,,[,,,,,,,,,[-1]]],VG:[,[,,\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"284496[0-5]\\\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\\\d{4}\",,,,\"2842291234\",,,,[7]],[,,\"284496[6-9]\\\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\\\d{4}\",,,,\"2843001234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",\n,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VG\",1,\"011\",\"1\",,,\"1|([2-578]\\\\d{6})$\",\"284$1\",,,,,[,,,,,,,,,[-1]],,\"284\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VI:[,[,,\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",,,,,,,[10],[7]],[,,\"340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\",\n,,,\"3406421234\",,,,[7]],[,,\"340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\",,,,\"3406421234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VI\",1,\"011\",\"1\",,,\"1|([2-9]\\\\d{6})$\",\"340$1\",,1,,,[,,,,,,,,,[-1]],,\"340\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VN:[,[,,\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",,,,,,,[7,8,9,10]],[,,\"2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\\\d{7}\",,,,\"2101234567\",,,[10]],[,,\"(?:5(?:2[238]|59)|89[689]|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\",,,,\"912345678\",,,[9]],[,,\"1800\\\\d{4,6}|12(?:0[13]|28)\\\\d{4}\",\n,,,\"1800123456\",,,[8,9,10]],[,,\"1900\\\\d{4,6}\",,,,\"1900123456\",,,[8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"672\\\\d{6}\",,,,\"672012345\",,,[9]],\"VN\",84,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[17]99\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"69\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],,,1],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2[48]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",,1]],[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],,,1],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",,1]],[,,,,,,,,,[-1]],,,[,,\"[17]99\\\\d{4}|69\\\\d{5,6}\",,,,,,,[7,8]],[,,\"(?:[17]99|80\\\\d)\\\\d{4}|69\\\\d{5,6}\",\n,,,\"1992000\",,,[7,8]],,,[,,,,,,,,,[-1]]],VU:[,[,,\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",,,,,,,[5,7]],[,,\"(?:38[0-8]|48[4-9])\\\\d\\\\d|(?:2[02-9]|3[4-7]|88)\\\\d{3}\",,,,\"22123\",,,[5]],[,,\"(?:[58]\\\\d|7[013-7])\\\\d{5}\",,,,\"5912345\",,,[7]],[,,\"81[18]\\\\d\\\\d\",,,,\"81123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:0[1-9]|1[01])\\\\d{4}\",,,,\"9010123\",,,[7]],\"VU\",678,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:3[03]|900\\\\d)\\\\d{3}\",,,,\"30123\"],,\n,[,,,,,,,,,[-1]]],WF:[,[,,\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",,,,,,,[6,9]],[,,\"72\\\\d{4}\",,,,\"721234\",,,[6]],[,,\"(?:72|8[23])\\\\d{4}\",,,,\"821234\",,,[6]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"WF\",681,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"[48]0\\\\d{4}\",,,,\"401234\",,,[6]]],WS:[,[,,\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",\n,,,,,,[5,6,7,10]],[,,\"6[1-9]\\\\d{3}|(?:[2-5]|60)\\\\d{4}\",,,,\"22123\",,,[5,6]],[,,\"(?:7[1-35-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\",,,,\"7212345\",,,[7,10]],[,,\"800\\\\d{3}\",,,,\"800123\",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"WS\",685,\"0\",,,,,,,,[[,\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],XK:[,[,,\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",,,,,,,[8,\n9]],[,,\"(?:2[89]|39)0\\\\d{6}|[23][89]\\\\d{6}\",,,,\"28012345\"],[,,\"4[3-9]\\\\d{6}\",,,,\"43201234\",,,[8]],[,,\"800\\\\d{5}\",,,,\"80001234\",,,[8]],[,,\"900\\\\d{5}\",,,,\"90001234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"XK\",383,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YE:[,[,,\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",\n,,,,,,[7,8,9],[6]],[,,\"78[0-7]\\\\d{4}|17\\\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\\\d{5}\",,,,\"1234567\",,,[7,8],[6]],[,,\"7[0137]\\\\d{7}\",,,,\"712345678\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"YE\",967,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7[24-68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YT:[,[,,\"80\\\\d{7}|(?:26|63)9\\\\d{6}\",\n,,,,,,[9]],[,,\"269(?:0[67]|5[0-3]|6\\\\d|[78]0)\\\\d{4}\",,,,\"269601234\"],[,,\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\",,,,\"639012345\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"YT\",262,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,\"269|63\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZA:[,[,,\"[1-79]\\\\d{8}|8\\\\d{4,9}\",,,,,,,[5,6,7,8,9,10]],[,,\"(?:2(?:0330|4302)|52087)0\\\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\\\d|5[1346-8])\\\\d{7}\",,,,\"101234567\",\n,,[9]],[,,\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\",,,,\"711234567\",,,[5,6,7,8,9]],[,,\"80\\\\d{7}\",,,,\"801234567\",,,[9]],[,,\"(?:86[2-9]|9[0-2]\\\\d)\\\\d{6}\",,,,\"862345678\",,,[9]],[,,\"860\\\\d{6}\",,,,\"860123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\\\d)\\\\d{5}\",\n,,,\"871234567\",,,[9]],\"ZA\",27,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"861\\\\d{6,7}\",,,,\"861123456\",,,[9,10]],,,[,,,,,,,,,[-1]]],ZM:[,[,,\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",,,,,,,[9],[6]],[,,\"21[1-8]\\\\d{6}\",,,,\n\"211234567\",,,,[6]],[,,\"(?:7[679]|9[5-8])\\\\d{7}\",,,,\"955123456\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"63\\\\d{7}\",,,,\"630123456\"],\"ZM\",260,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[1-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,\n,,,,,,,,[-1]]],ZW:[,[,,\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",,,,,,,[5,6,7,8,9,10],[3,4]],[,,\"(?:1(?:(?:3\\\\d|9)\\\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\\\d\\\\d|[56](?:[14]\\\\d\\\\d|20)|7(?:[089]|2[03]|[35]\\\\d\\\\d))\\\\d|4(?:2\\\\d\\\\d|8))\\\\d|1(?:2|[39]\\\\d{4}))|3(?:(?:123|(?:29\\\\d|92)\\\\d)\\\\d\\\\d|7(?:[19]|[56]\\\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\\\d{3}|83)|5(?:25\\\\d\\\\d|[78])|[689]\\\\d)|6(?:(?:[16-8]21|28|52[013])\\\\d\\\\d|[39])|8(?:[1349]28|523)\\\\d\\\\d)\\\\d{3}|(?:4\\\\d\\\\d|9[2-9])\\\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\\\d|7[1-7])\\\\d|2(?:[278]\\\\d|92)|58(?:2\\\\d|3))|3(?:[26]|9\\\\d{3})|5(?:4\\\\d|5)\\\\d\\\\d)\\\\d|6(?:(?:(?:[0-246]|[78]\\\\d)\\\\d|37)\\\\d|5[2-8]))\\\\d\\\\d|(?:2(?:[569]\\\\d|8[2-57-9])|3(?:[013-59]\\\\d|8[37])|6[89]8)\\\\d{3}\",\n,,,\"1312345\",,,,[3,4]],[,,\"7(?:[178]\\\\d|3[1-9])\\\\d{6}\",,,,\"712345678\",,,[9]],[,,\"80(?:[01]\\\\d|20|8[0-8])\\\\d{3}\",,,,\"8001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"86(?:1[12]|22|30|44|55|77|8[368])\\\\d{6}\",,,,\"8686123456\",,,[10]],\"ZW\",263,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],\n[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],800:[,[,,\"(?:005|[1-9]\\\\d\\\\d)\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:005|[1-9]\\\\d\\\\d)\\\\d{5}\",,,,\"12345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",800,,,,,,,,1,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],,,[,,,,,,,,,[-1]]],808:[,[,,\"[1-9]\\\\d{7}\",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[1-9]\\\\d{7}\",,,,\"12345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",808,,,,,,,,1,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],870:[,[,,\"7\\\\d{11}|[35-7]\\\\d{8}\",,,,,,,[9,12]],[,,,,,,,,,[-1]],[,,\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\",,,,\"301234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,\n[-1]],[,,,,,,,,,[-1]],\"001\",870,,,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],878:[,[,,\"10\\\\d{10}\",,,,,,,[12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"10\\\\d{10}\",,,,\"101234567890\"],\"001\",878,,,,,,,,1,[[,\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],881:[,[,,\"[0-36-9]\\\\d{8}\",,,,,,,[9]],\n[,,,,,,,,,[-1]],[,,\"[0-36-9]\\\\d{8}\",,,,\"612345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",881,,,,,,,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-36-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],882:[,[,,\"[13]\\\\d{6}(?:\\\\d{2,5})?|285\\\\d{9}|(?:[19]\\\\d|49)\\\\d{6}\",,,,,,,[7,8,9,10,11,12]],[,,,,,,,,,[-1]],[,,\"342\\\\d{4}|(?:337|49)\\\\d{6}|3(?:2|47|7\\\\d{3})\\\\d{7}\",,,,\"3421234\",,,[7,8,9,10,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,\n,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:(?:285\\\\d\\\\d|3(?:45|[69]\\\\d{3}))\\\\d|9[89])\\\\d{6}\",,,,\"390123456789\"],\"001\",882,,,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"4\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34[57]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"34\"]],[,\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-3]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"348[57]\\\\d{7}\",,,,\"34851234567\",,,[11]]],883:[,[,,\"(?:210|370\\\\d\\\\d)\\\\d{7}|51\\\\d{7}(?:\\\\d{3})?\",,,,,,,[9,10,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:210|(?:370[1-9]|51[013]0)\\\\d)\\\\d{7}|5100\\\\d{5}\",,,,\"510012345\"],\"001\",883,,,,,,,,1,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[35]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],888:[,[,,\"\\\\d{11}\",,,,,,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",888,,,,,,,,1,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"\\\\d{11}\",,,,\"12345678901\"],,,[,,,,,,,,,[-1]]],979:[,[,,\n\"[1359]\\\\d{8}\",,,,,,,[9],[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[1359]\\\\d{8}\",,,,\"123456789\",,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",979,,,,,,,,1,[[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]]};/*\n\n Copyright (C) 2010 The Libphonenumber Authors.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nfunction K(){this.g={}}K.i=void 0;K.g=function(){return K.i?K.i:K.i=new K};\nvar wa={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",\"\\uff10\":\"0\",\"\\uff11\":\"1\",\"\\uff12\":\"2\",\"\\uff13\":\"3\",\"\\uff14\":\"4\",\"\\uff15\":\"5\",\"\\uff16\":\"6\",\"\\uff17\":\"7\",\"\\uff18\":\"8\",\"\\uff19\":\"9\",\"\\u0660\":\"0\",\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u06f0\":\"0\",\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\"},xa={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",\n7:\"7\",8:\"8\",9:\"9\",\"\\uff10\":\"0\",\"\\uff11\":\"1\",\"\\uff12\":\"2\",\"\\uff13\":\"3\",\"\\uff14\":\"4\",\"\\uff15\":\"5\",\"\\uff16\":\"6\",\"\\uff17\":\"7\",\"\\uff18\":\"8\",\"\\uff19\":\"9\",\"\\u0660\":\"0\",\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u06f0\":\"0\",\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\",A:\"2\",B:\"2\",C:\"2\",D:\"3\",E:\"3\",F:\"3\",G:\"4\",H:\"4\",I:\"4\",J:\"5\",K:\"5\",L:\"5\",M:\"6\",N:\"6\",O:\"6\",P:\"7\",\nQ:\"7\",R:\"7\",S:\"7\",T:\"8\",U:\"8\",V:\"8\",W:\"9\",X:\"9\",Y:\"9\",Z:\"9\"},L=/^[+\\uff0b]+/,ya=/([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])/,za=/[+\\uff0b0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]/,Aa=/[\\\\\\/] *x/,Ba=/[^0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9A-Za-z#]+$/,Ca=/(?:.*?[A-Za-z]){3}.*/;function N(a){return\"([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]{1,\"+a+\"})\"}\nfunction Da(){return\";ext=\"+N(\"20\")+\"|[ \\u00a0\\\\t,]*(?:e?xt(?:ensi(?:o\\u0301?|\\u00f3))?n?|\\uff45?\\uff58\\uff54\\uff4e?|\\u0434\\u043e\\u0431|anexo)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\"+(N(\"20\")+\"#?|[ \\u00a0\\\\t,]*(?:[x\\uff58#\\uff03~\\uff5e]|int|\\uff49\\uff4e\\uff54)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(N(\"9\")+\"#?|[- ]+\")+(N(\"6\")+\"#|[ \\u00a0\\\\t]*(?:,{2}|;)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(N(\"15\")+\"#?|[ \\u00a0\\\\t]*(?:,)+[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(N(\"9\")+\"#?\")}\nvar Ea=new RegExp(\"(?:\"+Da()+\")$\",\"i\"),Fa=new RegExp(\"^[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]{2}$|^[+\\uff0b]*(?:[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e*]*[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]){3,}[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e*A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]*(?:\"+Da()+\")?$\",\"i\"),Ga=/(\\$\\d)/;\nfunction Ha(a){return 2>a.length?!1:O(Fa,a)}function Ia(a){return O(Ca,a)?P(a,xa):P(a,wa)}function Ja(a){var b=Ia(a.toString());a.i=\"\";a.g(b)}function Ka(a){return null!=a&&(1!=x(a,9)||-1!=u(a,9)[0])}function P(a,b){for(var c=new E,d,e=a.length,g=0;g<e;++g)d=a.charAt(g),d=b[d.toUpperCase()],null!=d&&c.g(d);return c.toString()}function Q(a){return null!=a&&isNaN(a)&&a.toUpperCase()in va}\nfunction La(a,b,c){if(0==p(b,2)&&null!=b.g[5]){var d=w(b,5);if(0<d.length)return d}d=w(b,1);var e=R(b);if(0==c)return Ma(d,0,e,\"\");if(!(d in J))return e;a=S(a,d,T(d));b=null!=b.g[3]&&0!=p(b,3).length?3==c?\";ext=\"+p(b,3):null!=a.g[13]?p(a,13)+w(b,3):\" ext. \"+w(b,3):\"\";a:{a=0==u(a,20).length||2==c?u(a,19):u(a,20);for(var g,f=a.length,h=0;h<f;++h){g=a[h];var l=x(g,3);if(0==l||0==e.search(p(g,3,l-1)))if(l=new RegExp(p(g,1)),O(l,e)){a=g;break a}}a=null}null!=a&&(f=a,a=w(f,2),g=new RegExp(p(f,1)),w(f,5),\nf=w(f,4),e=2==c&&null!=f&&0<f.length?e.replace(g,a.replace(Ga,f)):e.replace(g,a),3==c&&(e=e.replace(/^[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\[\\]/~\\u2053\\u223c\\uff5e]+/,\"\"),e=e.replace(/[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\[\\]/~\\u2053\\u223c\\uff5e]+/g,\"-\")));return Ma(d,c,e,b)}function S(a,b,c){return\"001\"==c?U(a,\"\"+b):U(a,c)}\nfunction R(a){if(null==a.g[2])return\"\";var b=\"\"+p(a,2);return null!=a.g[4]&&p(a,4)&&0<w(a,8)?Array(w(a,8)+1).join(\"0\")+b:b}function Ma(a,b,c,d){switch(b){case 0:return\"+\"+a+c+d;case 1:return\"+\"+a+\" \"+c+d;case 3:return\"tel:+\"+a+\"-\"+c+d;default:return c+d}}\nfunction V(a,b){switch(b){case 4:return p(a,5);case 3:return p(a,4);case 1:return p(a,3);case 0:case 2:return p(a,2);case 5:return p(a,6);case 6:return p(a,8);case 7:return p(a,7);case 8:return p(a,21);case 9:return p(a,25);case 10:return p(a,28);default:return p(a,1)}}function W(a,b){return X(a,p(b,1))?X(a,p(b,5))?4:X(a,p(b,4))?3:X(a,p(b,6))?5:X(a,p(b,8))?6:X(a,p(b,7))?7:X(a,p(b,21))?8:X(a,p(b,25))?9:X(a,p(b,28))?10:X(a,p(b,2))?p(b,18)||X(a,p(b,3))?2:0:!p(b,18)&&X(a,p(b,3))?1:-1:-1}\nfunction U(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.g[b];if(null==c){c=va[b];if(null==c)return null;c=(new D).g(H.j(),c);a.g[b]=c}return c}function X(a,b){var c=a.length;return 0<x(b,9)&&-1==u(b,9).indexOf(c)?!1:O(w(b,2),a)}\nfunction Na(a,b){if(null==b)return null;var c=w(b,1);c=J[c];if(null==c)a=null;else if(1==c.length)a=c[0];else a:{b=R(b);for(var d,e=c.length,g=0;g<e;g++){d=c[g];var f=U(a,d);if(null!=f.g[23]){if(0==b.search(p(f,23))){a=d;break a}}else if(-1!=W(b,f)){a=d;break a}}a=null}return a}function T(a){a=J[a];return null==a?\"ZZ\":a[0]}\nfunction Y(a,b,c,d){var e=V(c,d),g=0==x(e,9)?u(p(c,1),9):u(e,9);e=u(e,10);if(2==d)if(Ka(V(c,0)))a=V(c,1),Ka(a)&&(g=g.concat(0==x(a,9)?u(p(c,1),9):u(a,9)),g.sort(),0==e.length?e=u(a,10):(e=e.concat(u(a,10)),e.sort()));else return Y(a,b,c,1);if(-1==g[0])return 5;b=b.length;if(-1<e.indexOf(b))return 4;c=g[0];return c==b?0:c>b?2:g[g.length-1]<b?3:-1<g.indexOf(b,1)?0:5}function Oa(a,b){var c=R(b);b=w(b,1);if(!(b in J))return 1;b=S(a,b,T(b));return Y(a,c,b,-1)}\nfunction Pa(a,b,c,d,e,g){if(0==b.length)return 0;b=new E(b);var f;null!=c&&(f=p(c,11));null==f&&(f=\"NonMatch\");var h=b.toString();if(0==h.length)f=20;else if(L.test(h))h=h.replace(L,\"\"),b.i=\"\",b.g(Ia(h)),f=1;else{h=new RegExp(f);Ja(b);f=b.toString();if(0==f.search(h)){h=f.match(h)[0].length;var l=f.substring(h).match(ya);l&&null!=l[1]&&0<l[1].length&&\"0\"==P(l[1],wa)?f=!1:(b.i=\"\",b.g(f.substring(h)),f=!0)}else f=!1;f=f?5:20}e&&q(g,6,f);if(20!=f){if(2>=b.i.length)throw Error(\"Phone number too short after IDD\");\na:{a=b.toString();if(0!=a.length&&\"0\"!=a.charAt(0))for(e=a.length,b=1;3>=b&&b<=e;++b)if(c=parseInt(a.substring(0,b),10),c in J){d.g(a.substring(b));d=c;break a}d=0}if(0!=d)return q(g,1,d),d;throw Error(\"Invalid country calling code\");}if(null!=c&&(f=w(c,10),h=\"\"+f,l=b.toString(),0==l.lastIndexOf(h,0)&&(h=new E(l.substring(h.length)),l=p(c,1),l=new RegExp(w(l,2)),Qa(h,c,null),h=h.toString(),!O(l,b.toString())&&O(l,h)||3==Y(a,b.toString(),c,-1))))return d.g(h),e&&q(g,6,10),q(g,1,f),f;q(g,1,0);return 0}\nfunction Qa(a,b,c){var d=a.toString(),e=d.length,g=p(b,15);if(0!=e&&null!=g&&0!=g.length){var f=new RegExp(\"^(?:\"+g+\")\");if(e=f.exec(d)){g=new RegExp(w(p(b,1),2));var h=O(g,d),l=e.length-1;b=p(b,16);if(null==b||0==b.length||null==e[l]||0==e[l].length){if(!h||O(g,d.substring(e[0].length)))null!=c&&0<l&&null!=e[l]&&c.g(e[1]),a.set(d.substring(e[0].length))}else if(d=d.replace(f,b),!h||O(g,d))null!=c&&0<l&&c.g(e[1]),a.set(d)}}}\nfunction Z(a,b,c){if(!Q(c)&&0<b.length&&\"+\"!=b.charAt(0))throw Error(\"Invalid country calling code\");return Ra(a,b,c,!0)}\nfunction Ra(a,b,c,d){if(null==b)throw Error(\"The string supplied did not seem to be a phone number\");if(250<b.length)throw Error(\"The string supplied is too long to be a phone number\");var e=new E,g=b.indexOf(\";phone-context=\");if(0<=g){var f=g+15;if(\"+\"==b.charAt(f)){var h=b.indexOf(\";\",f);0<h?e.g(b.substring(f,h)):e.g(b.substring(f))}f=b.indexOf(\"tel:\");e.g(b.substring(0<=f?f+4:0,g))}else g=e.g,f=b.search(za),0<=f?(f=b.substring(f),f=f.replace(Ba,\"\"),h=f.search(Aa),0<=h&&(f=f.substring(0,h))):f=\n\"\",g.call(e,f);g=e.toString();f=g.indexOf(\";isub=\");0<f&&(e.i=\"\",e.g(g.substring(0,f)));if(!Ha(e.toString()))throw Error(\"The string supplied did not seem to be a phone number\");g=e.toString();if(!(Q(c)||null!=g&&0<g.length&&L.test(g)))throw Error(\"Invalid country calling code\");g=new I;d&&q(g,5,b);a:{b=e.toString();f=b.search(Ea);if(0<=f&&Ha(b.substring(0,f))){h=b.match(Ea);for(var l=h.length,z=1;z<l;++z)if(null!=h[z]&&0<h[z].length){e.i=\"\";e.g(b.substring(0,f));b=h[z];break a}}b=\"\"}0<b.length&&\nq(g,3,b);f=U(a,c);b=new E;h=0;l=e.toString();try{h=Pa(a,l,f,b,d,g)}catch(M){if(\"Invalid country calling code\"==M.message&&L.test(l)){if(l=l.replace(L,\"\"),h=Pa(a,l,f,b,d,g),0==h)throw M;}else throw M;}0!=h?(e=T(h),e!=c&&(f=S(a,h,e))):(Ja(e),b.g(e.toString()),null!=c?(h=w(f,10),q(g,1,h)):d&&(delete g.g[6],g.i&&delete g.i[6]));if(2>b.i.length)throw Error(\"The string supplied is too short to be a phone number\");null!=f&&(c=new E,e=new E(b.toString()),Qa(e,f,c),a=Y(a,e.toString(),f,-1),2!=a&&4!=a&&5!=\na&&(b=e,d&&0<c.toString().length&&q(g,7,c.toString())));d=b.toString();a=d.length;if(2>a)throw Error(\"The string supplied is too short to be a phone number\");if(17<a)throw Error(\"The string supplied is too long to be a phone number\");if(1<d.length&&\"0\"==d.charAt(0)){q(g,4,!0);for(a=1;a<d.length-1&&\"0\"==d.charAt(a);)a++;1!=a&&q(g,8,a)}q(g,2,parseInt(d,10));return g}function O(a,b){return(a=\"string\"==typeof a?b.match(\"^(?:\"+a+\")$\"):b.match(a))&&a[0].length==b.length?!0:!1};k(\"intlTelInputUtils\",{});k(\"intlTelInputUtils.formatNumber\",function(a,b,c){try{var d=K.g(),e=Z(d,a,b),g=Oa(d,e);return 0==g||4==g?La(d,e,\"undefined\"==typeof c?0:c):a}catch(f){return a}});k(\"intlTelInputUtils.getExampleNumber\",function(a,b,c){try{var d=K.g();a:{if(Q(a)){var e=V(U(d,a),c);try{if(null!=e.g[6]){var g=p(e,6);var f=Ra(d,g,a,!1);break a}}catch(h){}}f=null}return La(d,f,b?2:1)}catch(h){return\"\"}});k(\"intlTelInputUtils.getExtension\",function(a,b){try{return p(Z(K.g(),a,b),3)}catch(c){return\"\"}});\nk(\"intlTelInputUtils.getNumberType\",function(a,b){try{var c=K.g();var d=Z(c,a,b),e=Na(c,d),g=S(c,w(d,1),e);if(null==g)var f=-1;else{var h=R(d);f=W(h,g)}return f}catch(l){return-99}});\nk(\"intlTelInputUtils.getValidationError\",function(a,b){try{var c=K.g(),d=Z(c,a,b);return Oa(c,d)}catch(e){return\"Invalid country calling code\"==e.message?1:\"Phone number too short after IDD\"==e.message||\"The string supplied is too short to be a phone number\"==e.message?2:\"The string supplied is too long to be a phone number\"==e.message?3:-99}});\nk(\"intlTelInputUtils.isValidNumber\",function(a,b){try{var c=K.g(),d=Z(c,a,b);var e=Na(c,d),g=w(d,1),f=S(c,g,e),h;if(!(h=null==f)){var l;if(l=\"001\"!=e){var z=U(c,e);if(null==z)throw Error(\"Invalid region code: \"+e);var M=w(z,10);l=g!=M}h=l}if(h)var ua=!1;else{var Sa=R(d);ua=-1!=W(Sa,f)}return ua}catch(Ta){return!1}});k(\"intlTelInputUtils.numberFormat\",{E164:0,INTERNATIONAL:1,NATIONAL:2,RFC3966:3});\nk(\"intlTelInputUtils.numberType\",{FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3,PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1});k(\"intlTelInputUtils.validationError\",{IS_POSSIBLE:0,INVALID_COUNTRY_CODE:1,TOO_SHORT:2,TOO_LONG:3,IS_POSSIBLE_LOCAL_ONLY:4,INVALID_LENGTH:5});})();\n", "/*\nStimulus 3.2.1\nCopyright \u00A9 2022 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^(?:(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[1];\n let keyFilter = matches[2];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[3]),\n eventName,\n eventOptions: matches[6] ? parseEventOptions(matches[6]) : {},\n identifier: matches[4],\n methodName: matches[5],\n keyFilter,\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n constructor(element, index, descriptor, schema) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n isFilterTarget(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filteres = this.keyFilter.split(\"+\");\n const modifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\n const [meta, ctrl, alt, shift] = modifiers.map((modifier) => filteres.includes(modifier));\n if (event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift) {\n return true;\n }\n const standardFilter = filteres.filter((key) => !modifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n this.invokeWithEvent(event);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n const { params } = this.action;\n const actionEvent = Object.assign(event, { params });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.isFilterTarget(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(node, attributeName) {\n const element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass SelectorObserver {\n constructor(element, selector, delegate, details = {}) {\n this.selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const matches = element.matches(this.selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n elementMatched(element) {\n this.selectorMatched(element);\n }\n elementUnmatched(element) {\n this.selectorUnmatched(element);\n }\n elementAttributeChanged(element, _attributeName) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(this.selector, element);\n if (!matches && matchedBefore) {\n this.selectorUnmatched(element);\n }\n }\n selectorMatched(element) {\n if (this.delegate.selectorMatched) {\n this.delegate.selectorMatched(element, this.selector, this.details);\n this.matchesByElement.add(this.selector, element);\n }\n }\n selectorUnmatched(element) {\n this.delegate.selectorUnmatched(element, this.selector, this.details);\n this.matchesByElement.delete(this.selector, element);\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n }\n start() {\n if (this.selectorObserverMap.size === 0) {\n this.outletDefinitions.forEach((outletName) => {\n const selector = this.selector(outletName);\n const details = { outletName };\n if (selector) {\n this.selectorObserverMap.set(outletName, new SelectorObserver(document.body, selector, this, details));\n }\n });\n this.selectorObserverMap.forEach((observer) => observer.start());\n }\n this.dependentContexts.forEach((context) => context.refresh());\n }\n stop() {\n if (this.selectorObserverMap.size > 0) {\n this.disconnectAllOutlets();\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\n }\n selectorMatched(element, _selector, { outletName }) {\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, { outletName }) {\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, { outletName }) {\n return (this.hasOutlet(element, outletName) &&\n element.matches(`[${this.context.application.schema.controllerAttribute}~=${outletName}]`));\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap\n .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach((module) => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find(...outletNames) {\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll(...outletNames) {\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector)\n return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope\n ? this\n : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad(definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n const outletController = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (outletController) {\n return outletController;\n }\n else {\n throw new Error(`Missing \"data-controller=${name}\" attribute on outlet element for \"${this.identifier}\" controller`);\n }\n }\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outlet) => {\n const controller = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (controller) {\n return controller;\n }\n else {\n console.warn(`The provided outlet element is missing the outlet controller \"${name}\" for \"${this.identifier}\"`, outlet);\n }\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n return outlet;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n },\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n if (!typeFromObject)\n return;\n const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n if (typeFromObject !== defaultValueType) {\n const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n }\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const typeFromObject = parseValueTypeObject({\n controller: payload.controller,\n token: payload.token,\n typeObject: payload.typeDefinition,\n });\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined)\n return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const key = `${dasherize(payload.token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(payload.typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(payload.typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value);\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [\n ClassPropertiesBlessing,\n TargetPropertiesBlessing,\n ValuePropertiesBlessing,\n OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "import { Application } from '@hotwired/stimulus'\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.debug = window.location.protocol === 'http:'\nwindow.Stimulus = application\n\nexport { application }\n", "import { Controller } from '@hotwired/stimulus'\nimport intlTelInput from 'intl-tel-input'\n\nexport default class extends Controller {\n static values = { name: String }\n static targets = ['input']\n\n connect() {\n this.intlTelInput = intlTelInput(this.inputTarget, {\n utilsScript: '/assets/intl-tel-input/utils.js',\n formatOnDisplay: true,\n separateDialCode: true,\n hiddenInput: this.nameValue,\n initialCountry: document.body.dataset.countryCode || 'us',\n })\n }\n\n disconnect() {\n this.inputTarget.value = this.intlTelInput.getNumber()\n this.intlTelInput.destroy()\n }\n\n setHiddenInput() {\n this.inputTarget.nextElementSibling.value = this.intlTelInput.getNumber()\n }\n}\n", "/* eslint-disable no-undef */\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['autocomplete', 'id', 'street', 'city', 'state', 'zip', 'country', 'lat', 'lng']\n static values = { message: String }\n\n initialize() {\n // A bit unfortunate that we have to do this, but Google doesn't have an NPM version of the maps API\n // that is meant to run in the browser so we have to pull it from the global scope :(\n this.autocomplete = new google.maps.places.Autocomplete(this.autocompleteTarget, { types: ['address'] })\n this.autocomplete.addListener('place_changed', this.placeChanged.bind(this))\n }\n\n clearHiddenFields(event) {\n this.streetTarget.removeAttribute('value')\n this.cityTarget.removeAttribute('value')\n this.stateTarget.removeAttribute('value')\n this.zipTarget.removeAttribute('value')\n this.countryTarget.removeAttribute('value')\n this.latTarget.removeAttribute('value')\n this.lngTarget.removeAttribute('value')\n\n if (event.target.value === '') {\n this.autocompleteTarget.setCustomValidity('')\n } else if (this.autocompleteTarget.checkValidity()) {\n this.autocompleteTarget.setCustomValidity(this.messageValue)\n }\n\n this.dispatch('input')\n }\n\n ///\n /// private\n ///\n placeChanged() {\n const place = this.autocomplete.getPlace()\n if (place.geometry) {\n this.autocompleteTarget.value = place.formatted_address\n }\n\n const [street, city, state, zip, country] = this.parseComponent(place.address_components)\n\n this.streetTarget.value = street\n this.cityTarget.value = city\n this.stateTarget.value = state\n this.zipTarget.value = zip\n this.countryTarget.value = country\n this.latTarget.value = place.geometry.location.lat()\n this.lngTarget.value = place.geometry.location.lng()\n\n this.autocompleteTarget.setCustomValidity('')\n this.dispatch('input')\n this.zipTarget.dispatchEvent(new Event('change', { bubbles: true }))\n }\n\n // A function that takes a Google API Places address component array and returns an array of strings\n // for the street, city, state, zip, and country fields.\n parseComponent(components) {\n const street_number = components.find((component) => component.types.includes('street_number'))\n const route = components.find((component) => component.types.includes('route'))\n const city = components.find((component) => component.types.includes('locality'))\n const state = components.find((component) => component.types.includes('administrative_area_level_1'))\n const zip = components.find((component) => component.types.includes('postal_code'))\n const country = components.find((component) => component.types.includes('country'))\n\n return [\n street_number && route ? `${street_number.long_name} ${route.long_name}` : '',\n city ? city.long_name : '',\n state ? state.long_name : '',\n zip ? zip.long_name : '',\n country ? country.long_name : '',\n ]\n }\n\n get validInput() {\n return Boolean(this.latTarget.value) && Boolean(this.lngTarget.value)\n }\n\n get submitButton() {\n return this.element.closest('form').querySelector('input[type=\"submit\"]')\n }\n}\n", "/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n", "import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element \u2014\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n", "function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n", "import { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(selector => {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(data.floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element \u2014\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, flip, hide, inline, limitShift, platform, shift, size };\n", "// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nconst candidateSelectors = [\n 'input:not([inert])',\n 'select:not([inert])',\n 'textarea:not([inert])',\n 'a[href]:not([inert])',\n 'button:not([inert])',\n '[tabindex]:not(slot):not([inert])',\n 'audio[controls]:not([inert])',\n 'video[controls]:not([inert])',\n '[contenteditable]:not([contenteditable=\"false\"]):not([inert])',\n 'details>summary:first-of-type:not([inert])',\n 'details:not([inert])',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n ? function () {}\n : Element.prototype.matches ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n !NoElement && Element.prototype.getRootNode\n ? (element) => element?.getRootNode?.()\n : (element) => element?.ownerDocument;\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nconst isInert = function (node, lookUp = true) {\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n const inertAtt = node?.getAttribute?.('inert');\n const inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n const result = inert || (lookUp && node && isInert(node.parentNode)); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nconst isContentEditable = function (node) {\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n const attValue = node?.getAttribute?.('contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n\n let candidates = Array.prototype.slice.apply(\n el.querySelectorAll(candidateSelector)\n );\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nconst getCandidatesIteratively = function (\n elements,\n includeContainer,\n options\n) {\n const candidates = [];\n const elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n const element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n const assigned = element.assignedElements();\n const content = assigned.length ? assigned : element.children;\n const nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // check candidate element\n const validCandidate = matches.call(element, candidateSelector);\n if (\n validCandidate &&\n options.filter(element) &&\n (includeContainer || !elements.includes(element))\n ) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n const shadowRoot =\n element.shadowRoot ||\n // check for an undisclosed shadow\n (typeof options.getShadowRoot === 'function' &&\n options.getShadowRoot(element));\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n const validShadowRoot =\n !isInert(shadowRoot, false) &&\n (!options.shadowRootFilter || options.shadowRootFilter(element));\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n const nestedCandidates = getCandidatesIteratively(\n shadowRoot === true ? element.children : shadowRoot.children,\n true,\n options\n );\n\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift(...element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nconst hasTabIndex = function (node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nconst getTabIndex = function (node) {\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (\n (/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) ||\n isContentEditable(node)) &&\n !hasTabIndex(node)\n ) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nconst getSortOrderTabIndex = function (node, isScope) {\n const tabIndex = getTabIndex(node);\n\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n\n return tabIndex;\n};\n\nconst sortOrderedTabbables = function (a, b) {\n return a.tabIndex === b.tabIndex\n ? a.documentOrder - b.documentOrder\n : a.tabIndex - b.tabIndex;\n};\n\nconst isInput = function (node) {\n return node.tagName === 'INPUT';\n};\n\nconst isHiddenInput = function (node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nconst isDetailsWithSummary = function (node) {\n const r =\n node.tagName === 'DETAILS' &&\n Array.prototype.slice\n .apply(node.children)\n .some((child) => child.tagName === 'SUMMARY');\n return r;\n};\n\nconst getCheckedRadio = function (nodes, form) {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nconst isTabbableRadio = function (node) {\n if (!node.name) {\n return true;\n }\n const radioScope = node.form || getRootNode(node);\n const queryRadios = function (name) {\n return radioScope.querySelectorAll(\n 'input[type=\"radio\"][name=\"' + name + '\"]'\n );\n };\n\n let radioSet;\n if (\n typeof window !== 'undefined' &&\n typeof window.CSS !== 'undefined' &&\n typeof window.CSS.escape === 'function'\n ) {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\n 'Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s',\n err.message\n );\n return false;\n }\n }\n\n const checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nconst isRadio = function (node) {\n return isInput(node) && node.type === 'radio';\n};\n\nconst isNonTabbableRadio = function (node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nconst isNodeAttached = function (node) {\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n let nodeRoot = node && getRootNode(node);\n let nodeRootHost = nodeRoot?.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n let attached = false;\n if (nodeRoot && nodeRoot !== node) {\n attached = !!(\n nodeRootHost?.ownerDocument?.contains(nodeRootHost) ||\n node?.ownerDocument?.contains(node)\n );\n\n while (!attached && nodeRootHost) {\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = nodeRoot?.host;\n attached = !!nodeRootHost?.ownerDocument?.contains(nodeRootHost);\n }\n }\n\n return attached;\n};\n\nconst isZeroArea = function (node) {\n const { width, height } = node.getBoundingClientRect();\n return width === 0 && height === 0;\n};\nconst isHidden = function (node, { displayCheck, getShadowRoot }) {\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n const isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n const nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (\n !displayCheck ||\n displayCheck === 'full' ||\n displayCheck === 'legacy-full'\n ) {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n const originalNode = node;\n while (node) {\n const parentElement = node.parentElement;\n const rootNode = getRootNode(node);\n if (\n parentElement &&\n !parentElement.shadowRoot &&\n getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nconst isDisabledFromFieldset = function (node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n let parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (let i = 0; i < parentNode.children.length; i++) {\n const child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *')\n ? true\n : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\n\nconst isNodeMatchingSelectorFocusable = function (options, node) {\n if (\n node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) ||\n isHiddenInput(node) ||\n isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) ||\n isDisabledFromFieldset(node)\n ) {\n return false;\n }\n return true;\n};\n\nconst isNodeMatchingSelectorTabbable = function (options, node) {\n if (\n isNonTabbableRadio(node) ||\n getTabIndex(node) < 0 ||\n !isNodeMatchingSelectorFocusable(options, node)\n ) {\n return false;\n }\n return true;\n};\n\nconst isValidShadowRootTabbable = function (shadowHostNode) {\n const tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nconst sortByOrder = function (candidates) {\n const regularTabbables = [];\n const orderedTabbables = [];\n candidates.forEach(function (item, i) {\n const isScope = !!item.scopeParent;\n const element = isScope ? item.scopeParent : item;\n const candidateTabindex = getSortOrderTabIndex(element, isScope);\n const elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope\n ? regularTabbables.push(...elements)\n : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements,\n });\n }\n });\n\n return orderedTabbables\n .sort(sortOrderedTabbables)\n .reduce((acc, sortable) => {\n sortable.isScope\n ? acc.push(...sortable.content)\n : acc.push(sortable.content);\n return acc;\n }, [])\n .concat(regularTabbables);\n};\n\nconst tabbable = function (container, options) {\n options = options || {};\n\n let candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively(\n [container],\n options.includeContainer,\n {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable,\n }\n );\n } else {\n candidates = getCandidates(\n container,\n options.includeContainer,\n isNodeMatchingSelectorTabbable.bind(null, options)\n );\n }\n return sortByOrder(candidates);\n};\n\nconst focusable = function (container, options) {\n options = options || {};\n\n let candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively(\n [container],\n options.includeContainer,\n {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot,\n }\n );\n } else {\n candidates = getCandidates(\n container,\n options.includeContainer,\n isNodeMatchingSelectorFocusable.bind(null, options)\n );\n }\n\n return candidates;\n};\n\nconst isTabbable = function (node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nconst focusableCandidateSelector = /* #__PURE__ */ candidateSelectors\n .concat('iframe')\n .join(',');\n\nconst isFocusable = function (node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { tabbable, focusable, isTabbable, isFocusable, getTabIndex };\n", "import {\n tabbable,\n focusable,\n isFocusable,\n isTabbable,\n getTabIndex,\n} from 'tabbable';\n\nconst activeFocusTraps = {\n activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n const activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n\n deactivateTrap(trapStack, trap) {\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n },\n};\n\nconst isSelectableInput = function (node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n};\n\nconst isEscapeEvent = function (e) {\n return e?.key === 'Escape' || e?.key === 'Esc' || e?.keyCode === 27;\n};\n\nconst isTabEvent = function (e) {\n return e?.key === 'Tab' || e?.keyCode === 9;\n};\n\n// checks for TAB by default\nconst isKeyForward = function (e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nconst isKeyBackward = function (e) {\n return isTabEvent(e) && e.shiftKey;\n};\n\nconst delay = function (fn) {\n return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\nconst findIndex = function (arr, fn) {\n let idx = -1;\n\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n\n return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nconst valueOrHandler = function (value, ...params) {\n return typeof value === 'function' ? value(...params) : value;\n};\n\nconst getActualTarget = function (event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function'\n ? event.composedPath()[0]\n : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nconst internalTrapStack = [];\n\nconst createFocusTrap = function (elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n const doc = userOptions?.document || document;\n\n const trapStack = userOptions?.trapStack || internalTrapStack;\n\n const config = {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward,\n isKeyBackward,\n ...userOptions,\n };\n\n const state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // posTabIndexesFound: boolean,\n // firstTabbableNode: HTMLElement|undefined,\n // lastTabbableNode: HTMLElement|undefined,\n // firstDomTabbableNode: HTMLElement|undefined,\n // lastDomTabbableNode: HTMLElement|undefined,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [], // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined,\n };\n\n let trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n const getOption = (configOverrideOptions, optionName, configOptionName) => {\n return configOverrideOptions &&\n configOverrideOptions[optionName] !== undefined\n ? configOverrideOptions[optionName]\n : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n const findContainerIndex = function (element, event) {\n const composedPath =\n typeof event?.composedPath === 'function'\n ? event.composedPath()\n : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(\n ({ container, tabbableNodes }) =>\n container.contains(element) ||\n // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath?.includes(container) ||\n tabbableNodes.find((node) => node === element)\n );\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n const getNodeForOption = function (optionName, ...params) {\n let optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n optionValue = optionValue(...params);\n }\n\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\n `\\`${optionName}\\` was specified but was not a node, or did not return a node`\n );\n }\n\n let node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\n `\\`${optionName}\\` as selector refers to no known node`\n );\n }\n }\n\n return node;\n };\n\n const getInitialFocusNode = function () {\n let node = getNodeForOption('initialFocus');\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n\n if (node === undefined || !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n const firstTabbableGroup = state.tabbableGroups[0];\n const firstTabbableNode =\n firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error(\n 'Your focus-trap needs to have at least one focusable element'\n );\n }\n\n return node;\n };\n\n const updateTabbableNodes = function () {\n state.containerGroups = state.containers.map((container) => {\n const tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n const focusableNodes = focusable(container, config.tabbableOptions);\n\n const firstTabbableNode =\n tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n const lastTabbableNode =\n tabbableNodes.length > 0\n ? tabbableNodes[tabbableNodes.length - 1]\n : undefined;\n\n const firstDomTabbableNode = focusableNodes.find((node) =>\n isTabbable(node)\n );\n const lastDomTabbableNode = focusableNodes\n .slice()\n .reverse()\n .find((node) => isTabbable(node));\n\n const posTabIndexesFound = !!tabbableNodes.find(\n (node) => getTabIndex(node) > 0\n );\n\n return {\n container,\n tabbableNodes,\n focusableNodes,\n\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound,\n\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode,\n\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode(node, forward = true) {\n const nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes\n .slice(focusableNodes.indexOf(node) + 1)\n .find((el) => isTabbable(el));\n }\n\n return focusableNodes\n .slice(0, focusableNodes.indexOf(node))\n .reverse()\n .find((el) => isTabbable(el));\n }\n\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n },\n };\n });\n\n state.tabbableGroups = state.containerGroups.filter(\n (group) => group.tabbableNodes.length > 0\n );\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (\n state.tabbableGroups.length <= 0 &&\n !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error(\n 'Your focus-trap must have at least one container with at least one tabbable node in it at all times'\n );\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (\n state.containerGroups.find((g) => g.posTabIndexesFound) &&\n state.containerGroups.length > 1\n ) {\n throw new Error(\n \"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\"\n );\n }\n };\n\n /**\n * Gets the current activeElement. If it's a web-component and has open shadow-root\n * it will recursively search inside shadow roots for the \"true\" activeElement.\n *\n * @param {Document | ShadowRoot} el\n *\n * @returns {HTMLElement} The element that currently has the focus\n **/\n const getActiveElement = function (el) {\n const activeElement = el.activeElement;\n\n if (!activeElement) {\n return;\n }\n\n if (\n activeElement.shadowRoot &&\n activeElement.shadowRoot.activeElement !== null\n ) {\n return getActiveElement(activeElement.shadowRoot);\n }\n\n return activeElement;\n };\n\n const tryFocus = function (node) {\n if (node === false) {\n return;\n }\n\n if (node === getActiveElement(document)) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({ preventScroll: !!config.preventScroll });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n const getReturnFocusNode = function (previousActiveElement) {\n const node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n const findNextNavNode = function ({ target, event, isBackward = false }) {\n target = target || getActualTarget(event);\n updateTabbableNodes();\n\n let destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n const containerIndex = findContainerIndex(target, event);\n const containerGroup =\n containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode =\n state.tabbableGroups[state.tabbableGroups.length - 1]\n .lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n let startOfGroupIndex = findIndex(\n state.tabbableGroups,\n ({ firstTabbableNode }) => target === firstTabbableNode\n );\n\n if (\n startOfGroupIndex < 0 &&\n (containerGroup.container === target ||\n (isFocusable(target, config.tabbableOptions) &&\n !isTabbable(target, config.tabbableOptions) &&\n !containerGroup.nextTabbableNode(target, false)))\n ) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n const destinationGroupIndex =\n startOfGroupIndex === 0\n ? state.tabbableGroups.length - 1\n : startOfGroupIndex - 1;\n\n const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n\n destinationNode =\n getTabIndex(target) >= 0\n ? destinationGroup.lastTabbableNode\n : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n let lastOfGroupIndex = findIndex(\n state.tabbableGroups,\n ({ lastTabbableNode }) => target === lastTabbableNode\n );\n\n if (\n lastOfGroupIndex < 0 &&\n (containerGroup.container === target ||\n (isFocusable(target, config.tabbableOptions) &&\n !isTabbable(target, config.tabbableOptions) &&\n !containerGroup.nextTabbableNode(target)))\n ) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n const destinationGroupIndex =\n lastOfGroupIndex === state.tabbableGroups.length - 1\n ? 0\n : lastOfGroupIndex + 1;\n\n const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n\n destinationNode =\n getTabIndex(target) >= 0\n ? destinationGroup.firstTabbableNode\n : destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n const checkPointerDown = function (e) {\n const target = getActualTarget(e);\n\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate,\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n const checkFocusIn = function (event) {\n const target = getActualTarget(event);\n const targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n let nextNode; // next node to focus, if we find one\n let navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n const mruContainerIdx = findContainerIndex(\n state.mostRecentlyFocusedNode\n );\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n const { tabbableNodes } = state.containerGroups[mruContainerIdx];\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n const mruTabIdx = tabbableNodes.findIndex(\n (node) => node === state.mostRecentlyFocusedNode\n );\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (\n !state.containerGroups.some((g) =>\n g.tabbableNodes.some((n) => getTabIndex(n) > 0)\n )\n ) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent),\n });\n }\n\n if (nextNode) {\n tryFocus(nextNode);\n } else {\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n const checkKeyNav = function (event, isBackward = false) {\n state.recentNavEvent = event;\n\n const destinationNode = findNextNavNode({ event, isBackward });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n\n const checkKey = function (event) {\n if (\n isEscapeEvent(event) &&\n valueOrHandler(config.escapeDeactivates, event) !== false\n ) {\n event.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n const checkClick = function (e) {\n const target = getActualTarget(e);\n\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n const addListeners = function () {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus\n ? delay(function () {\n tryFocus(getInitialFocusNode());\n })\n : tryFocus(getInitialFocusNode());\n\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false,\n });\n\n return trap;\n };\n\n const removeListeners = function () {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n const checkDomRemoval = function (mutations) {\n const isFocusedNodeRemoved = mutations.some(function (mutation) {\n const removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n const mutationObserver =\n typeof window !== 'undefined' && 'MutationObserver' in window\n ? new MutationObserver(checkDomRemoval)\n : undefined;\n\n const updateObservedNodes = function () {\n if (!mutationObserver) {\n return;\n }\n\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true,\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n const onActivate = getOption(activateOptions, 'onActivate');\n const onPostActivate = getOption(activateOptions, 'onPostActivate');\n const checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n onActivate?.();\n\n const finishActivation = () => {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate?.();\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(\n finishActivation,\n finishActivation\n );\n return this;\n }\n\n finishActivation();\n return this;\n },\n\n deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n const options = {\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus,\n ...deactivateOptions,\n };\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n\n activeFocusTraps.deactivateTrap(trapStack, trap);\n\n const onDeactivate = getOption(options, 'onDeactivate');\n const onPostDeactivate = getOption(options, 'onPostDeactivate');\n const checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n const returnFocus = getOption(\n options,\n 'returnFocus',\n 'returnFocusOnDeactivate'\n );\n\n onDeactivate?.();\n\n const finishDeactivation = () => {\n delay(() => {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate?.();\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(\n getReturnFocusNode(state.nodeFocusedBeforeActivation)\n ).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n\n pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n\n const onPause = getOption(pauseOptions, 'onPause');\n const onPostPause = getOption(pauseOptions, 'onPostPause');\n\n state.paused = true;\n onPause?.();\n\n removeListeners();\n updateObservedNodes();\n\n onPostPause?.();\n return this;\n },\n\n unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n\n const onUnpause = getOption(unpauseOptions, 'onUnpause');\n const onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n\n state.paused = false;\n onUnpause?.();\n\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n\n onPostUnpause?.();\n return this;\n },\n\n updateContainerElements(containerElements) {\n const elementsAsArray = [].concat(containerElements).filter(Boolean);\n\n state.containers = elementsAsArray.map((element) =>\n typeof element === 'string' ? doc.querySelector(element) : element\n );\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n updateObservedNodes();\n\n return this;\n },\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n\n return trap;\n};\n\nexport { createFocusTrap };\n", "import { Controller } from '@hotwired/stimulus'\nimport { autoUpdate, computePosition, autoPlacement, offset, arrow } from '@floating-ui/dom'\nimport * as focusTrap from 'focus-trap'\n\nexport default class extends Controller {\n static targets = ['trigger', 'body', 'arrow']\n static values = { opened: Boolean, placement: String }\n\n connect() {\n this.focusTrap = focusTrap.createFocusTrap(this.bodyTarget, {\n fallbackFocus: this.bodyTarget,\n setReturnFocus: this.triggerTarget,\n allowOutsideClick: this.#allowClickOutside.bind(this),\n onDeactivate: () => (this.openedValue = false),\n })\n }\n\n toggle() {\n this.openedValue = !this.openedValue\n }\n\n close() {\n this.openedValue = false\n }\n\n openedValueChanged(opened) {\n this.triggerTarget.setAttribute('aria-expanded', opened)\n\n if (!this.focusTrap) return\n\n if (opened) {\n this.#openBody()\n this.focusTrap.activate()\n return\n }\n\n this.#closeBody()\n this.focusTrap.deactivate()\n }\n\n placementValueChanged(_, prevPosition) {\n if (!prevPosition) return\n\n this.#computePosition()\n }\n\n #openBody() {\n this.#computePosition()\n\n this.bodyTarget.show()\n\n this.bodyTarget.classList.add('block')\n }\n\n #closeBody() {\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate()\n }\n\n this.bodyTarget.close()\n\n this.bodyTarget.addEventListener(\n 'animationend',\n () => {\n this.bodyTarget.classList.remove('block')\n },\n { once: true },\n )\n }\n\n #computePosition() {\n const middleware = [offset(8)]\n\n if (this.placementValue === 'auto') {\n middleware.push(autoPlacement())\n }\n\n if (this.hasArrowTarget) {\n middleware.push(arrow({ element: this.arrowTarget }))\n }\n\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate()\n }\n\n this.cleanupAutoUpdate = autoUpdate(this.triggerTarget, this.bodyTarget, () => {\n computePosition(this.triggerTarget, this.bodyTarget, {\n placement: this.placementValue,\n middleware,\n }).then(({ x, y, middlewareData, placement }) => {\n Object.assign(this.bodyTarget.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n\n const parsedPlacement = placement.split('-')[0]\n\n this.bodyTarget.setAttribute('data-side', parsedPlacement)\n\n if (!middlewareData.arrow) return\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n let position = {\n left: arrowX === undefined ? '' : `${arrowX}px`,\n top: arrowY === undefined ? '' : `${arrowY}px`,\n }\n\n switch (parsedPlacement) {\n case 'bottom':\n position.top = this.#halfArrowWidth\n break\n case 'top':\n position.bottom = this.#halfArrowWidth\n break\n case 'right':\n position.left = this.#halfArrowWidth\n break\n case 'left':\n position.right = this.#halfArrowWidth\n break\n default:\n position.bottom = this.#halfArrowWidth\n }\n\n Object.assign(this.arrowTarget.style, position)\n })\n })\n }\n\n #allowClickOutside({ target }) {\n if (target === this.triggerTarget) {\n return true\n }\n\n if (getComputedStyle(target).position === 'absolute') {\n return false\n }\n\n this.openedValue = false\n return true\n }\n\n get #halfArrowWidth() {\n return `-${this.arrowTarget.offsetWidth / 2}px`\n }\n}\n", "var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n", "export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n", "import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n", "import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n", "function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n", "import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n", "// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don\u2019t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n", "function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n", "import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n", "export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n", "import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n", "export default function(update) {\n return new Array(update.length);\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n", "export default function(x) {\n return function() {\n return x;\n };\n}\n", "import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don\u2019t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn\u2019t worried about \u201Clive\u201D collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don\u2019t; we\u2019d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n", "export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n", "export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n", "export default function() {\n return Array.from(this);\n}\n", "export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n", "export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n", "export default function() {\n return !this.node();\n}\n", "export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n", "import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n", "export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n", "import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n", "function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n", "function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n", "function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n", "function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n", "function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n", "function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n", "import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n", "import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n", "function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n", "function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n", "export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n", "function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n", "import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n", "export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n", "import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n", "import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n", "export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n", "export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n", "import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n", "export default x => () => x;\n", "import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n", "import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n", "export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n", "import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n", "var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n", "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n", "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n", "var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n", "import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n", "import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n", "import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n", "import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n", "import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n", "import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n", "import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n", "import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n", "import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n", "import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n", "import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n", "import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n", "function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n", "import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n", "import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n", "import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n", "function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n", "import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n", "function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n", "import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n", "import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n", "import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n", "export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n", "import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n", "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name \u201C__brush\u201D rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n", "export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n", "import { Controller } from '@hotwired/stimulus'\nimport { select } from 'd3'\nimport { interpolate } from 'flubber'\nimport SignaturePad from 'signature_pad'\n\nexport default class extends Controller {\n static targets = ['signature', 'input', 'svg', 'reset']\n\n UNCHECK_PATH = 'M0 0H48.0652L67 18L48.0652 36H0V0Z'\n CHECK_PATH = `M18 36C22.7739 36 27.3523 34.1036 30.7279 30.7279C34.1036 27.3523 36 22.7739 36 18C36 13.2261\n 34.1036 8.64773 30.7279 5.27208C27.3523 1.89642 22.7739 0 18 0C13.2261 0 8.64773 1.89642 5.27208\n 5.27208C1.89642 8.64773 0 13.2261 0 18C0 22.7739 1.89642 27.3523 5.27208 30.7279C8.64773 34.1036 13.2261 36 18\n 36ZM25.9453 14.6953L16.9453 23.6953C16.2844 24.3562 15.2156 24.3562 14.5617 23.6953L10.0617 19.1953C9.40078\n 18.5344 9.40078 17.4656 10.0617 16.8117C10.7227 16.1578 11.7914 16.1508 12.4453 16.8117L15.75 20.1164L23.5547\n 12.3047C24.2156 11.6437 25.2844 11.6437 25.9383 12.3047C26.5922 12.9656 26.5992 14.0344 25.9383 14.6883L25.9453\n 14.6953Z`\n CHECK_FILL = '#5CB85C'\n ANIMATION_DURATION = 750\n\n initialize() {\n this.signaturePad = new SignaturePad(this.signatureTarget, {\n backgroundColor: 'rgb(217, 217, 217)',\n })\n\n this.signaturePad.addEventListener('endStroke', () => {\n this.drawEnd()\n this.inputTarget.dispatchEvent(new Event('change'))\n })\n }\n\n reset() {\n requestAnimationFrame(() => {\n this.uncheckSvg(this.completed)\n })\n\n this.signaturePad.clear()\n\n this.inputTarget.value = ''\n\n this.resetTarget.classList.remove('opacity-100')\n this.resetTarget.classList.add('opacity-0')\n\n this.dispatch('reset', { bubbles: true })\n }\n\n highlight() {\n this.signatureTarget.classList.add('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n this.signatureTarget.classList.remove('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n }\n\n unhighlight() {\n this.signatureTarget.classList.remove('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n this.signatureTarget.classList.remove('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n }\n\n flashValidity() {\n this.signatureTarget.classList.remove('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n this.signatureTarget.classList.add('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n\n setTimeout(() => {\n this.signatureTarget.classList.remove('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n\n if (this.completed) return\n\n this.signatureTarget.classList.add('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n }, 1500)\n }\n\n get completed() {\n return this.inputTarget.value.length > 0\n }\n\n ///\n /// private\n ///\n drawEnd() {\n if (this.signaturePad.isEmpty()) return\n\n const wasCompleted = this.completed\n\n requestAnimationFrame(() => {\n this.checkSvg(wasCompleted)\n })\n\n this.inputTarget.value = this.signaturePad.toDataURL()\n\n requestAnimationFrame(() => {\n this.resetTarget.classList.remove('opacity-0')\n this.resetTarget.classList.add('opacity-100')\n })\n\n if (!wasCompleted) this.dispatch('completed', { bubbles: true })\n }\n\n checkSvg(completed) {\n if (completed) return\n\n select(this.svgTarget.querySelector('path'))\n .style('display', 'block')\n .call((sel) => {\n this.animate(sel, this.UNCHECK_PATH, this.CHECK_PATH, this.CHECK_FILL)\n })\n }\n\n uncheckSvg(completed) {\n if (!completed) return\n\n select(this.svgTarget.querySelector('path'))\n .style('display', 'block')\n .call((sel) => {\n this.animate(sel, this.CHECK_PATH, this.UNCHECK_PATH)\n })\n }\n\n animate(sel, start, end, fill) {\n sel\n .datum({ start, end })\n .transition()\n .duration(this.ANIMATION_DURATION)\n .attrTween('d', function (d) {\n return interpolate(d.start, d.end, { maxSegmentLength: 0.1 })\n })\n .style('viewBox', '0 0 48 48')\n .style('fill', fill)\n }\n}\n", null, null, null, null, null, "import { Controller } from '@hotwired/stimulus'\nimport { select } from 'd3'\nimport { interpolate } from 'flubber'\n\nexport default class extends Controller {\n static targets = ['signature', 'input', 'svg']\n\n UNCHECK_PATH = 'M0 0H48.0652L67 18L48.0652 36H0V0Z'\n CHECK_PATH = `M18 36C22.7739 36 27.3523 34.1036 30.7279 30.7279C34.1036 27.3523 36 22.7739 36 18C36 13.2261\n 34.1036 8.64773 30.7279 5.27208C27.3523 1.89642 22.7739 0 18 0C13.2261 0 8.64773 1.89642 5.27208\n 5.27208C1.89642 8.64773 0 13.2261 0 18C0 22.7739 1.89642 27.3523 5.27208 30.7279C8.64773 34.1036 13.2261 36 18\n 36ZM25.9453 14.6953L16.9453 23.6953C16.2844 24.3562 15.2156 24.3562 14.5617 23.6953L10.0617 19.1953C9.40078\n 18.5344 9.40078 17.4656 10.0617 16.8117C10.7227 16.1578 11.7914 16.1508 12.4453 16.8117L15.75 20.1164L23.5547\n 12.3047C24.2156 11.6437 25.2844 11.6437 25.9383 12.3047C26.5922 12.9656 26.5992 14.0344 25.9383 14.6883L25.9453\n 14.6953Z`\n CHECK_FILL = '#5CB85C'\n ANIMATION_DURATION = 750\n\n toggleSign() {\n if (this.completed) {\n this.checkSvg()\n this.dispatch('completed', { prefix: 'signature', bubbles: true })\n } else {\n this.uncheckSvg()\n this.dispatch('reset', { prefix: 'signature', bubbles: true })\n }\n }\n\n highlight() {\n this.signatureTarget.classList.add('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n this.signatureTarget.classList.remove('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n }\n\n unhighlight() {\n this.signatureTarget.classList.remove('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n this.signatureTarget.classList.remove('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n }\n\n flashValidity() {\n this.signatureTarget.classList.remove('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n this.signatureTarget.classList.add('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n\n setTimeout(() => {\n this.signatureTarget.classList.remove('shadow-[0px_0px_12px_0px]', 'shadow-red-500')\n\n if (this.completed) return\n\n this.signatureTarget.classList.add('shadow-[0px_0px_8px_0px]', 'shadow-kicksite-yellow-600')\n }, 1500)\n }\n\n get completed() {\n return this.signatureTarget.checked\n }\n ///\n /// private\n ///\n\n checkSvg() {\n select(this.svgTarget.querySelector('path'))\n .style('display', 'block')\n .call((sel) => {\n this.animate(sel, this.UNCHECK_PATH, this.CHECK_PATH, this.CHECK_FILL)\n })\n }\n\n uncheckSvg() {\n select(this.svgTarget.querySelector('path'))\n .style('display', 'block')\n .call((sel) => {\n this.animate(sel, this.CHECK_PATH, this.UNCHECK_PATH)\n })\n }\n\n animate(sel, start, end, fill) {\n sel\n .datum({ start, end })\n .transition()\n .duration(this.ANIMATION_DURATION)\n .attrTween('d', function (d) {\n return interpolate(d.start, d.end, { maxSegmentLength: 0.1 })\n })\n .style('viewBox', '0 0 48 48')\n .style('fill', fill)\n }\n}\n", "import { Controller } from '@hotwired/stimulus'\nimport { getStream } from '../helpers/fetch_helper'\n\nexport default class ApplicationController extends Controller {\n clickOn({ params: { selector } }) {\n this.element.querySelector(selector)?.click()\n }\n\n setFrame({ params: { frame, src } }) {\n const frameElement = document.querySelector(`#${frame}`)\n if (!frameElement) return\n\n frameElement.src = src\n }\n\n refreshClosestFrame({ target }) {\n target.closest('turbo-frame')?.reload()\n }\n\n refreshFormFrame({ target, params: { url } }) {\n const params = new URLSearchParams(new FormData(target.form))\n params.delete('utf8')\n params.delete('_method')\n params.delete('authenticity_token')\n\n const src = `${url}?${params.toString()}`\n\n window.Turbo.visit(src, { frame: target.closest('turbo-frame').id })\n }\n\n flushAlerts() {\n getStream('/flush_notifications')\n }\n\n resetAlerts() {\n this.alertsFrame.innerHTML = ''\n }\n\n preventDefault(event) {\n event.preventDefault()\n }\n\n submitClosestForm({ currentTarget }) {\n currentTarget.closest('form')?.requestSubmit()\n }\n\n resetClosestForm({ currentTarget }) {\n const form = currentTarget.closest('form')\n\n if (!form) return\n\n form.reset()\n form.querySelectorAll('input[type=\"hidden\"]').forEach((input) => (input.value = null))\n form.requestSubmit()\n }\n\n get alertsFrame() {\n return document.querySelector('#global-alerts')\n }\n\n get currentURL() {\n return new URL(window.location.href)\n }\n\n ///\n /// private\n ///\n\n modifyQueryStringInline(key, value) {\n const url = new URL(window.location.href)\n const params = new URLSearchParams(url.search)\n\n if (value) {\n params.set(key, value)\n } else {\n params.delete(key)\n }\n\n url.search = params.toString()\n\n window.history.replaceState({}, '', url.toString())\n }\n\n clearDataAttributes(element) {\n for (const attribute of element.getAttributeNames()) {\n if (attribute.startsWith('data-')) {\n element.removeAttribute(attribute)\n }\n }\n }\n\n waitForAnimations(element, callback) {\n return Promise.all(element.getAnimations().map((animation) => animation.finished)).then(callback)\n }\n\n vibrate(duration) {\n if (navigator.vibrate) {\n navigator.vibrate(duration)\n }\n }\n\n focus(element) {\n if (!element) return\n\n document.activeElement.blur()\n element.focus()\n }\n}\n", "import ApplicationController from './application_controller'\n\nexport default class extends ApplicationController {\n static targets = ['count', 'navigation', 'submit']\n static outlets = ['signature', 'checkbox-signature']\n\n _currentIndex = 0\n _outlets = []\n\n signatureOutletConnected() {\n // We need to push this down the call stack so that the signature outlets\n // have time to connect\n setTimeout(this.update.bind(this))\n }\n\n checkboxSignatureOutletConnected() {\n // We need to push this down the call stack so that the signature outlets\n // have time to connect\n setTimeout(this.update.bind(this))\n }\n\n updateCount() {\n const count = this.allOutlets.filter((signatureOutlet) => signatureOutlet.completed).length\n this.countTarget.textContent = count\n }\n\n next() {\n this.incrementCurrentIndex(this.currentIndex)\n this.update()\n this.scrollToCurrent()\n }\n\n previous() {\n this.decrementCurrentIndex(this.currentIndex)\n this.update()\n this.scrollToCurrent()\n }\n\n jumpTo({ target }) {\n this.allOutlets.find((signatureOutlet, index) => {\n if (signatureOutlet.element === target) {\n this.currentIndex = index\n\n this.update()\n\n return true\n }\n\n return false\n })\n }\n\n jumpToNext({ target }) {\n const outlet = this.allOutlets.find((signatureOutlet) => {\n if (signatureOutlet.element === target) {\n return true\n }\n\n return false\n })\n\n const index = this.allOutlets.indexOf(outlet)\n this.incrementCurrentIndex(index)\n\n this.update()\n }\n\n scrollToCurrent() {\n const signatureOutlet = this.allOutlets[this.currentIndex]\n\n signatureOutlet.signatureTarget.scrollIntoView({ behavior: 'smooth', block: 'center' })\n }\n\n flashValidity() {\n const signatureOutlet = this.allOutlets[this.currentIndex]\n\n signatureOutlet.flashValidity()\n }\n\n get completed() {\n return this.allOutlets.every((outlet) => outlet.completed)\n }\n\n ///\n /// private\n ///\n\n update() {\n this.allOutlets.forEach((signatureOutlet) => {\n signatureOutlet.unhighlight()\n })\n\n const signatureOutlet = this.allOutlets[this.currentIndex]\n\n const count = this.allOutlets.filter((outlet) => outlet.completed).length\n\n if (count === this.allOutlets.length) {\n if (this.hasNavigationTarget) {\n this.navigationTarget.classList.add('hidden')\n this.submitTarget.classList.remove('hidden')\n }\n if (this.hasSubmitTarget) this.submitTarget.disabled = false\n\n this.allOutlets.forEach((outlet) => {\n outlet.unhighlight()\n })\n } else {\n if (this.hasNavigationTarget) {\n this.navigationTarget.classList.remove('hidden')\n this.submitTarget.classList.add('hidden')\n }\n if (this.hasSubmitTarget) this.submitTarget.disabled = true\n }\n\n if (signatureOutlet.completed) return\n\n signatureOutlet.highlight()\n }\n\n incrementCurrentIndex(start) {\n this.currentIndex = start + 1\n\n if (this.allOutlets[this.currentIndex].completed) {\n this.currentIndex = this.nextUnsignedIndex(start)\n }\n }\n\n decrementCurrentIndex(start) {\n this.currentIndex = start - 1\n\n if (this.allOutlets[this.currentIndex].completed) {\n this.currentIndex = this.previousUnsignedIndex(start)\n }\n }\n\n nextUnsignedIndex(start) {\n let nextIndex = this.allOutlets.findIndex((signatureOutlet, index) => {\n if (index <= start) return false\n\n return !signatureOutlet.completed\n })\n\n if (nextIndex === -1) {\n nextIndex = this.allOutlets.findIndex((signatureOutlet) => !signatureOutlet.completed)\n }\n\n return nextIndex\n }\n\n previousUnsignedIndex(start) {\n const reversedStart = this.allOutlets.length - start - 1\n const reversedOutlets = this.allOutlets.slice().reverse()\n\n let previousIndex = reversedOutlets.findIndex((signatureOutlet, index) => {\n if (index <= reversedStart) return false\n\n return !signatureOutlet.completed\n })\n\n if (previousIndex === -1) {\n previousIndex = reversedOutlets.findIndex((signatureOutlet) => !signatureOutlet.completed)\n }\n\n return this.allOutlets.length - previousIndex - 1\n }\n\n get allOutlets() {\n if (this._outlets.length) return this._outlets\n\n const outlets = this.signatureOutlets.concat(this.checkboxSignatureOutlets)\n\n outlets.sort((a, b) => {\n if (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1\n }\n\n return 1\n })\n\n this._outlets = outlets\n\n return this._outlets\n }\n\n get currentIndex() {\n return this._currentIndex\n }\n\n set currentIndex(index) {\n if (index < 0) {\n index = this.allOutlets.length - 1\n }\n\n this._currentIndex = index % this.allOutlets.length\n }\n}\n", "import { application } from './../application'\n\nimport PhoneField from '../../../components/phone_field/component_controller'\napplication.register('phone-field--component', PhoneField)\n\nimport AddressField from '../../../components/address_field/component_controller.js'\napplication.register('address-field--component', AddressField)\n\nimport Popover from '../../../components/popover/component_controller'\napplication.register('popover', Popover)\n\nimport SignatureController from '../../../components/signature/full_name/component_controller'\napplication.register('signature', SignatureController)\n\nimport CheckboxSignatureController from '../../../components/signature/checkbox/component_controller'\napplication.register('checkbox-signature', CheckboxSignatureController)\n\nimport AgreementSignaturesController from './../agreement_signatures_controller'\napplication.register('agreement-signatures', AgreementSignaturesController)\n", "import '@hotwired/turbo-rails'\nimport { StreamActions } from '@hotwired/turbo'\nimport TurboPower from 'turbo_power'\nTurboPower.initialize(StreamActions)\n\nimport './components'\nimport '../../vendor/assets/javascripts/intl-tel-input/utils'\nimport './controllers/public/marketing_tools'\n\nStreamActions.marketing_tools_submission = function () {\n const gtagUrl = this.getAttribute('gtag-url')\n if (gtagUrl) {\n postGtag(gtagUrl, this.getAttribute('gtag-payload'))\n }\n\n const fromKiosk = Boolean(this.getAttribute('kiosk'))\n const redirectUrl = this.getAttribute('redirect-url')\n\n if (fromKiosk) {\n setTimeout(() => {\n window.location.reload()\n }, 5000)\n } else if (redirectUrl) {\n redirect(redirectUrl, Boolean(this.getAttribute('within-iframe')))\n }\n}\n\nfunction postGtag(url, payload) {\n if (window === window.parent) return\n\n try {\n window.parent.postMessage(payload, url)\n } catch (error) {\n window.console && window.console.log(error)\n }\n}\n\nfunction redirect(url, withinIframe) {\n let location = window.top.location\n\n if (withinIframe) {\n location = window.location\n }\n\n location.href = url\n}\n"], "mappings": "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mB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,kBAAkB,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,oBAAoB,mBAAmB,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,EAAE,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,iBAAiB,EAAE,CAAC,oBAAoB,mBAAmB,mBAAmB,kBAAkB,oBAAoB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,EAAE,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,mBAAmB,kBAAkB,mBAAmB,kBAAkB,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,EAAE,oBAAoB,mBAAmB,oBAAoB,mBAAmB,oBAAoB,mBAAmB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,iBAAiB,gBAAgB,mBAAmB,iBAAiB,EAAE,CAAC,oBAAoB,mBAAmB,oBAAoB,mBAAmB,oBAAoB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,oBAAoB,mBAAmB,oBAAoB,mBAAmB,oBAAoB,mBAAmB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,kBAAkB,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,EAAE,CAAC,oBAAoB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,mBAAmB,iBAAiB,CAAC,EAAEC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,kBAAkB,iBAAiB,EAAE,CAAC,kBAAkB,kBAAkB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,kBAAkB,iBAAiB,EAAE,CAAC,iBAAiB,iBAAiB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,kBAAkB,EAAE,CAAC,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,kBAAkB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,oBAAoB,oBAAoB,oBAAoB,mBAAmB,EAAE,CAAC,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,kBAAkB,EAAE,CAAC,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,gBAAgB,gBAAgB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,oBAAoB,mBAAmB,EAAE,CAAC,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,oBAAoB,mBAAmB,EAAE,CAAC,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,kBAAkB,kBAAkB,oBAAoB,oBAAoB,oBAAoB,oBAAoB,oBAAoB,mBAAmB,EAAE,CAAC,mBAAmB,mBAAmB,mBAAmB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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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I,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EACrf,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAC5f,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,I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,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpf,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,C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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CACpf,eAAe,CAAC,CAAC,CA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", "names": ["adapters_default", "init_adapters", "__esmMin", "logger_default", "init_logger", "__esmMin", "init_adapters", "messages", "adapters_default", "now", "secondsSince", "ConnectionMonitor", "connection_monitor_default", "init_connection_monitor", "__esmMin", "init_logger", "time", "connection", "logger_default", "staleThreshold", "reconnectionBackoffRate", "backoff", "jitter", "internal_default", "init_internal", "__esmMin", "message_types", "protocols", "supportedProtocols", "indexOf", "Connection", "connection_default", "init_connection", "__esmMin", "init_adapters", "init_connection_monitor", "init_internal", "init_logger", "internal_default", "consumer", "connection_monitor_default", "data", "logger_default", "adapters_default", "allowReconnect", "error", "states", "state", "eventName", "handler", "event", "identifier", "message", "reason", "reconnect", "type", "extend", "Subscription", "init_subscription", "__esmMin", "object", "properties", "key", "value", "consumer", "params", "mixin", "action", "data", "SubscriptionGuarantor", "subscription_guarantor_default", "init_subscription_guarantor", "__esmMin", "init_logger", "subscriptions", "subscription", "logger_default", "s", "Subscriptions", "init_subscriptions", "__esmMin", "init_subscription", "init_subscription_guarantor", "init_logger", "consumer", "subscription_guarantor_default", "channelName", "mixin", "channel", "params", "subscription", "Subscription", "identifier", "s", "callbackName", "args", "subscriptions", "logger_default", "command", "createWebSocketURL", "url", "a", "Consumer", "init_consumer", "__esmMin", "init_connection", "init_subscriptions", "Subscriptions", "connection_default", "data", "src_exports", "__export", "connection_default", "connection_monitor_default", "Consumer", "internal_default", "Subscription", "subscription_guarantor_default", "Subscriptions", "adapters_default", "createConsumer", "createWebSocketURL", "getConfig", "logger_default", "url", "name", "element", "init_src", "__esmMin", "init_connection", "init_connection_monitor", "init_consumer", "init_internal", "init_subscription", "init_subscriptions", "init_subscription_guarantor", "init_adapters", "init_logger", "assign", "obj", "props", "i", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "slice", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "constructor", "__v", "vnodeId", "__i", "__u", "options", "createRef", "current", "Fragment", "BaseComponent", "context", "this", "getDomSibling", "childIndex", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "rerenderQueue", "push", "process", "__r", "prevDebounce", "debounceRendering", "defer", "renderQueueLength", "component", "newVNode", "oldVNode", "oldDom", "commitQueue", "refQueue", "sort", "depthSort", "shift", "__P", "diff", "__n", "namespaceURI", "commitRoot", "diffChildren", "parentDom", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "namespace", "excessDomChildren", "isHydrating", "childVNode", "newDom", "firstChildDom", "oldChildren", "EMPTY_ARR", "newChildrenLength", "constructNewChildrenArray", "EMPTY_OBJ", "applyRef", "insert", "nextSibling", "skewedIndex", "matchingIndex", "oldChildrenLength", "remainingOldChildren", "skew", "String", "isArray", "findMatchingIndex", "unmount", "parentVNode", "contains", "insertBefore", "nodeType", "toChildArray", "out", "some", "x", "y", "setStyle", "style", "value", "setProperty", "IS_NON_DIMENSIONAL", "test", "dom", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "l", "_attached", "eventClock", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "createEventProxy", "eventHandler", "_dispatched", "event", "tmp", "isNew", "oldProps", "oldState", "snapshot", "clearProcessingException", "newProps", "isClassComponent", "provider", "componentContext", "renderHook", "count", "newType", "outer", "prototype", "render", "contextType", "__E", "doRender", "sub", "state", "__h", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "componentWillUpdate", "componentDidUpdate", "getChildContext", "getSnapshotBeforeUpdate", "MODE_HYDRATE", "indexOf", "diffElementNodes", "diffed", "root", "cb", "newHtml", "oldHtml", "newChildren", "inputValue", "checked", "localName", "document", "createTextNode", "createElementNS", "is", "__m", "data", "childNodes", "attributes", "__html", "innerHTML", "hasRefUnmount", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "hydrate", "cloneElement", "createContext", "defaultValue", "contextId", "Consumer", "contextValue", "Provider", "subs", "ctx", "Set", "_props", "forEach", "add", "old", "delete", "isValidElement", "init_preact_module", "__esmMin", "Array", "error", "errorInfo", "ctor", "handled", "getDerivedStateFromError", "setState", "componentDidCatch", "undefined", "update", "callback", "s", "forceUpdate", "Promise", "then", "bind", "resolve", "setTimeout", "a", "b", "getHookState", "index", "type", "options", "__h", "currentComponent", "currentHook", "hooks", "__H", "__", "length", "push", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "currentIndex", "_reducer", "__c", "action", "currentValue", "__N", "nextValue", "setState", "_hasScuFromHooks", "updateHookState", "p", "s", "c", "stateHooks", "filter", "x", "every", "prevScu", "call", "this", "shouldUpdate", "forEach", "hookItem", "props", "shouldComponentUpdate", "prevCWU", "componentWillUpdate", "__e", "tmp", "useEffect", "callback", "args", "state", "__s", "argsChanged", "_pendingArgs", "useLayoutEffect", "useRef", "initialValue", "useMemo", "current", "useImperativeHandle", "ref", "createHandle", "concat", "factory", "useCallback", "useContext", "context", "provider", "sub", "value", "useDebugValue", "formatter", "n", "useErrorBoundary", "cb", "errState", "componentDidCatch", "err", "errorInfo", "undefined", "useId", "root", "__v", "__m", "mask", "flushAfterPaintEffects", "component", "afterPaintEffects", "shift", "__P", "invokeCleanup", "invokeEffect", "e", "afterNextFrame", "raf", "done", "clearTimeout", "timeout", "HAS_RAF", "cancelAnimationFrame", "setTimeout", "requestAnimationFrame", "hook", "comp", "cleanup", "oldArgs", "newArgs", "some", "arg", "f", "previousComponent", "prevRaf", "oldBeforeDiff", "oldBeforeRender", "oldAfterDiff", "oldCommit", "oldBeforeUnmount", "oldRoot", "_options", "__b", "__r", "diffed", "unmount", "vnode", "parentDom", "__k", "commitQueue", "hasErrored", "shallowDiffers", "a", "b", "i", "PureComponent", "p", "c", "this", "props", "context", "memo", "comparer", "shouldUpdate", "nextProps", "ref", "updateRef", "call", "current", "Memoed", "shouldComponentUpdate", "createElement", "displayName", "name", "prototype", "isReactComponent", "__f", "forwardRef", "fn", "Forwarded", "result", "$$typeof", "REACT_FORWARD_SYMBOL", "render", "detachedClone", "vnode", "detachedParent", "parentDom", "__c", "__H", "__", "forEach", "effect", "obj", "__P", "__k", "map", "child", "removeOriginal", "originalParent", "__v", "__e", "appendChild", "Suspense", "__u", "_suspenders", "__b", "suspended", "component", "__a", "lazy", "loader", "prom", "error", "Lazy", "then", "exports", "default", "e", "SuspenseList", "_next", "_map", "ContextProvider", "getChildContext", "children", "Portal", "_this", "container", "_container", "componentWillUnmount", "_temp", "nodeType", "parentNode", "childNodes", "contains", "push", "insertBefore", "before", "removeChild", "splice", "indexOf", "createPortal", "el", "containerInfo", "parent", "callback", "textContent", "preactRender", "hydrate", "preactHydrate", "empty", "isPropagationStopped", "cancelBubble", "isDefaultPrevented", "defaultPrevented", "createFactory", "type", "bind", "isValidElement", "element", "REACT_ELEMENT_TYPE", "isFragment", "Fragment", "isMemo", "String", "startsWith", "cloneElement", "preactCloneElement", "apply", "arguments", "unmountComponentAtNode", "findDOMNode", "base", "startTransition", "cb", "useDeferredValue", "val", "useTransition", "useSyncExternalStore", "subscribe", "getSnapshot", "value", "_useState", "useState", "_instance", "_getSnapshot", "forceUpdate", "useLayoutEffect", "didSnapshotChange", "useEffect", "inst", "x", "y", "latestGetSnapshot", "prevValue", "nextValue", "oldDiffHook", "mapFn", "Children", "oldCatchError", "oldUnmount", "resolve", "CAMEL_PROPS", "ON_ANI", "CAMEL_REPLACE", "IS_DOM", "onChangeInputType", "oldEventHook", "currentComponent", "classNameDescriptorNonEnumberable", "oldVNodeHook", "oldBeforeRender", "oldDiffed", "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED", "version", "unstable_batchedUpdates", "flushSync", "StrictMode", "useInsertionEffect", "isElement", "index", "Component", "isPureReactComponent", "state", "options", "Symbol", "for", "toChildArray", "count", "length", "only", "normalized", "toArray", "newVNode", "oldVNode", "errorInfo", "unmount", "__R", "promise", "suspendingVNode", "suspendingComponent", "resolved", "onResolved", "onSuspensionComplete", "suspendedVNode", "__O", "setState", "pop", "document", "detachedComponent", "fallback", "list", "node", "delete", "revealOrder", "size", "delegated", "get", "unsuspend", "wrappedUnsuspend", "Map", "reverse", "set", "componentDidUpdate", "componentDidMount", "test", "key", "Object", "defineProperty", "configurable", "v", "writable", "event", "persist", "nativeEvent", "enumerable", "class", "normalizedProps", "isNonDashedType", "lowerCased", "toLowerCase", "replace", "multiple", "Array", "isArray", "selected", "defaultValue", "className", "__r", "diffed", "dom", "ReactCurrentDispatcher", "readContext", "__n", "useCallback", "useContext", "useDebugValue", "useId", "useImperativeHandle", "useMemo", "useReducer", "useRef", "arg", "createContext", "createRef", "require_ReactPropTypesSecret", "__commonJSMin", "exports", "module", "ReactPropTypesSecret", "require_factoryWithThrowingShims", "__commonJSMin", "exports", "module", "ReactPropTypesSecret", "emptyFunction", "emptyFunctionWithReset", "shim", "props", "propName", "componentName", "location", "propFullName", "secret", "err", "getShim", "ReactPropTypes", "require_prop_types", "__commonJSMin", "exports", "module", "ReactIs", "throwOnDirectAccess", "require_react", "__commonJSMin", "exports", "module", "require_react_stripe_umd", "__commonJSMin", "exports", "module", "global", "factory", "React", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread2", "target", "i", "source", "key", "_defineProperty", "_typeof", "obj", "value", "_objectWithoutPropertiesLoose", "excluded", "sourceKeys", "_objectWithoutProperties", "sourceSymbolKeys", "_slicedToArray", "arr", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_i", "_arr", "_n", "_d", "_s", "_e", "err", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "getDefaultExportFromCjs", "x", "propTypes", "ReactPropTypesSecret_1", "hasRequiredReactPropTypesSecret", "requireReactPropTypesSecret", "ReactPropTypesSecret", "factoryWithThrowingShims", "hasRequiredFactoryWithThrowingShims", "requireFactoryWithThrowingShims", "emptyFunction", "emptyFunctionWithReset", "shim", "props", "propName", "componentName", "location", "propFullName", "secret", "getShim", "ReactPropTypes", "propTypesExports", "PropTypes", "useAttachEvent", "element", "event", "cb", "cbDefined", "cbRef", "decoratedCb", "usePrevious", "ref", "isUnknownObject", "raw", "isPromise", "isStripe", "PLAIN_OBJECT_STR", "isEqual", "left", "right", "leftArray", "rightArray", "leftPlainObject", "rightPlainObject", "leftKeys", "rightKeys", "keySet", "allKeys", "l", "r", "pred", "extractAllowedOptionsUpdates", "options", "prevOptions", "immutableKeys", "newOptions", "isUpdated", "INVALID_STRIPE_ERROR$2", "validateStripe", "maybeStripe", "errorMsg", "parseStripeProp", "result", "stripe", "registerWithStripeJs", "ElementsContext", "parseElementsContext", "ctx", "useCase", "Elements", "_ref", "rawStripeProp", "children", "parsed", "_React$useState", "_React$useState2", "setContext", "isMounted", "safeSetContext", "prevStripe", "updates", "useElementsContextWithUseCase", "useCaseMessage", "useElements", "_useElementsContextWi", "elements", "ElementsConsumer", "_ref2", "_excluded", "CheckoutSdkContext", "parseCheckoutSdkContext", "CheckoutContext", "extractCheckoutContextValue", "checkoutSdk", "sessionState", "actions", "INVALID_STRIPE_ERROR$1", "CheckoutProvider", "session", "setSession", "_React$useState3", "_React$useState4", "initCheckoutCalledRef", "_prevOptions$elements", "_options$elementsOpti", "previousAppearance", "currentAppearance", "checkoutContextValue", "useCheckoutSdkContextWithUseCase", "useCaseString", "useElementsOrCheckoutSdkContextWithUseCase", "checkoutSdkContext", "elementsContext", "useCheckout", "capitalized", "str", "createElementComponent", "type", "isServer", "displayName", "ClientElement", "id", "className", "_ref$options", "onBlur", "onFocus", "onReady", "onChange", "onEscape", "onClick", "onLoadError", "onLoaderStart", "onNetworksChange", "onConfirm", "onCancel", "onShippingAddressChange", "onShippingRateChange", "setElement", "elementRef", "domNode", "readyCallback", "newElement", "error", "ServerElement", "Element", "EmbeddedCheckoutContext", "useEmbeddedCheckoutContext", "INVALID_STRIPE_ERROR", "EmbeddedCheckoutProvider", "embeddedCheckoutPromise", "loadedStripe", "setStripeAndInitEmbeddedCheckout", "embeddedCheckout", "EmbeddedCheckoutClientElement", "_useEmbeddedCheckoutC", "e", "EmbeddedCheckoutServerElement", "EmbeddedCheckout", "useStripe", "_useElementsOrCheckou", "AuBankAccountElement", "CardElement", "CardNumberElement", "CardExpiryElement", "CardCvcElement", "FpxBankElement", "IbanElement", "IdealBankElement", "P24BankElement", "EpsBankElement", "PaymentElement", "ExpressCheckoutElement", "CurrencySelectorElement", "PaymentRequestButtonElement", "LinkAuthenticationElement", "AddressElement", "ShippingAddressElement", "PaymentMethodMessagingElement", "AffirmMessageElement", "AfterpayClearpayMessageElement", "require_intlTelInput", "__commonJSMin", "exports", "module", "factory", "undefined", "allCountries", "i", "c", "_classCallCheck", "instance", "Constructor", "_defineProperties", "target", "props", "descriptor", "_createClass", "protoProps", "staticProps", "intlTelInputGlobals", "input", "id", "defaults", "regionlessNanpNumbers", "forEachProp", "obj", "callback", "keys", "forEachInstance", "method", "key", "Iti", "options", "_this", "customOptions", "value", "_this2", "autoCountryPromise", "resolve", "reject", "utilsScriptPromise", "iso2", "countryCode", "priority", "index", "lowerCaseOnlyCountries", "country", "lowerCaseExcludeCountries", "iso", "a", "b", "_i", "_c", "rootCountryCode", "j", "areaCode", "k", "partialDialCode", "countryData", "name", "attrs", "container", "el", "parentClass", "wrapper", "hiddenInputName", "countries", "className", "preferred", "tmp", "idSuffix", "attributeValue", "inputValue", "useAttribute", "val", "dialCode", "isRegionlessNanp", "_this$options", "initialCountry", "nationalMode", "autoHideDialCode", "separateDialCode", "_this3", "_this4", "e", "label", "isDropdownHidden", "_this5", "_this6", "number", "max", "_this7", "numeric", "s", "shouldHaveClass", "_this8", "pos", "windowTop", "inputTop", "dropdownHeight", "dropdownFitsBelow", "dropdownFitsAbove", "extraTop", "_this9", "listItem", "isOpening", "query", "queryTimer", "next", "originalNumber", "useNational", "_intlTelInputUtils$nu", "NATIONAL", "INTERNATIONAL", "format", "selectedDialCode", "isNanp", "countryCodes", "alreadySelected", "isRegionlessNanpNumber", "shouldFocus", "prevItem", "ignoreOnlyCountriesOption", "allowFail", "countryList", "prevCountry", "title", "selectedFlagWidth", "nextItem", "containerClone", "flagsContainerClone", "selectedFlagClone", "width", "shouldSetPlaceholder", "numberType", "placeholder", "flagChanged", "len", "element", "middle", "containerHeight", "containerTop", "containerBottom", "elementHeight", "elementTop", "elementBottom", "newScrollTop", "middleOffset", "heightDifference", "newDialCodeBare", "hasSelectedListItem", "inputVal", "newDialCode", "newNumber", "prevDialCode", "includeAreaCode", "numericChars", "prefix", "numericVal", "start", "form", "originalCountryCode", "type", "injectScript", "path", "handleSuccess", "handleFailure", "script", "iti", "require_intl_tel_input", "__commonJSMin", "exports", "module", "require_flubber_min", "__commonJSMin", "exports", "module", "t", "n", "an", "e", "a", "s", "i", "o", "h", "u", "r", "rn", "c", "f", "l", "p", "g", "v", "x", "y", "d", "m", "M", "w", "b", "L", "A", "q", "k", "P", "ln", "on", "wn", "_", "qn", "Ln", "An", "E", "S", "kn", "C", "Z", "Pn", "bn", "T", "F", "z", "j", "I", "V", "H", "X", "Y", "G", "nn", "O", "yn", "D", "N", "Q", "U", "R", "Cn", "B", "Sn", "W", "en", "$", "J", "K", "tn", "tt", "Tn", "nt", "et", "ut", "it", "Et", "kt", "Mt", "Pt", "rt", "mt", "pt", "ot", "at", "st", "ht", "yt", "vt", "wt", "Lt", "dt", "qt", "xt", "ct", "ft", "lt", "gt", "bt", "At", "_t", "St", "Ct", "Vn", "In", "Zt", "Tt", "Yn", "Ft", "Dn", "zt", "jt", "Hn", "On", "Xn", "It", "zn", "Vt", "Xt", "Qn", "Dt", "Gt", "Ot", "Zn", "Un", "Ht", "Rt", "Bt", "Jt", "Nt", "Qt", "Wt", "Kt", "Ut", "$t", "sn", "hn", "un", "cn", "fn", "pn", "gn", "vn", "xn", "dn", "mn", "Mn", "_n", "Fn", "jn", "Gn", "Nn", "BuiltInHTMLElement", "wrapperForTheName", "prototype", "submitter", "validateSubmitter", "form", "raise", "errorConstructor", "message", "name", "submittersByForm", "findSubmitterFromClickTarget", "target", "element", "candidate", "clickCaptured", "event", "FrameLoadingStyle", "FrameElement", "value", "frameLoadingStyleFromString", "_a", "_b", "style", "expandURL", "locatable", "getAnchor", "url", "anchorMatch", "getAction", "action", "getExtension", "getLastPathComponent", "isHTML", "isPrefixedBy", "baseURL", "prefix", "getPrefix", "locationIsVisitable", "location", "rootLocation", "getRequestURL", "anchor", "toCacheKey", "urlsAreEqual", "left", "right", "getPathComponents", "addTrailingSlash", "FetchResponse", "response", "isAction", "activateScriptElement", "createdScriptElement", "cspNonce", "getMetaContent", "copyElementAttributes", "destinationElement", "sourceElement", "createDocumentFragment", "html", "template", "dispatch", "eventName", "cancelable", "detail", "nextAnimationFrame", "resolve", "nextEventLoopTick", "nextMicrotask", "parseHTMLDocument", "unindent", "strings", "values", "lines", "interpolate", "match", "indent", "line", "result", "string", "uuid", "_", "i", "getAttribute", "attributeName", "elements", "hasAttribute", "markAsBusy", "clearBusyState", "waitForLoad", "timeoutInMilliseconds", "onComplete", "getHistoryMethodForAction", "getVisitAction", "getMetaElement", "setMetaContent", "content", "FetchMethod", "fetchMethodFromString", "method", "FetchRequest", "delegate", "body", "_value", "__async", "fetchOptions", "error", "fetchResponse", "mimeType", "requestInterception", "AppearanceObserver", "entries", "lastEntry", "StreamMessage", "fragment", "importStreamElements", "streamElement", "inertScriptElement", "FormSubmissionState", "FormEnctype", "formEnctypeFromString", "encoding", "FormSubmission", "formElement", "mustRedirect", "buildFormData", "mergeFormDataEntries", "_element", "_submitter", "formElementAction", "initialized", "requesting", "confirmationMessage", "stopping", "stopped", "headers", "request", "token", "getCookieValue", "_request", "responseSucceededWithoutRedirect", "formData", "cookieName", "cookie", "searchParams", "Snapshot", "inertDisabledOrHidden", "queryPermanentElementsAll", "id", "getPermanentElementById", "snapshot", "permanentElementMap", "currentPermanentElement", "newPermanentElement", "node", "FormSubmitObserver", "eventTarget", "submissionDoesNotDismissDialog", "submissionDoesNotTargetIFrame", "View", "x", "y", "renderer", "isPreview", "shouldRender", "renderInterception", "options", "reason", "FrameView", "LinkInterceptor", "_event", "LinkClickObserver", "link", "doesNotTargetIFrame", "FormLinkClickObserver", "originalEvent", "turboFrame", "turboAction", "turboConfirm", "Bardo", "callback", "bardo", "permanentElement", "placeholder", "createPlaceholderForPermanentElement", "clone", "Renderer", "currentSnapshot", "newSnapshot", "renderElement", "willRender", "reject", "elementIsFocusable", "FrameRenderer", "currentElement", "newElement", "destinationRange", "frameElement", "sourceRange", "block", "readScrollLogicalPosition", "behavior", "readScrollBehavior", "activatedScriptElement", "defaultValue", "ProgressBar", "HeadSnapshot", "elementIsNoscript", "elementWithoutNonce", "outerHTML", "details", "elementType", "elementIsTracked", "matchedType", "type", "tracked", "elementIsMetaElementWithName", "elementIsScript", "elementIsStylesheet", "tagName", "PageSnapshot", "headSnapshot", "head", "clonedElement", "selectElements", "clonedSelectElements", "index", "source", "option", "clonedPasswordInput", "root", "TimingMetric", "VisitState", "defaultOptions", "SystemStatusCode", "Visit", "restorationIdentifier", "historyChanged", "referrer", "snapshotHTML", "visitCachedSnapshot", "updateHistory", "shouldCacheSnapshot", "acceptsStreamResponse", "actionForHistory", "statusCode", "isSuccessful", "responseHTML", "_response", "redirected", "_error", "scrollPosition", "metric", "BrowserAdapter", "session", "visit", "_visit", "_formSubmission", "CacheObserver", "staleElements", "FrameRedirector", "_location", "frame", "meta", "History", "turbo", "state", "additionalData", "restorationData", "Navigator", "formSubmission", "visitOptions", "currentAnchor", "isRestorationToTop", "oldURL", "newURL", "PageStage", "PageObserver", "readyState", "ScrollObserver", "position", "StreamMessageRenderer", "getPermanentElementMapForFragment", "permanentElementsInDocument", "permanentElementInDocument", "elementInStream", "StreamObserver", "fetchResponseFromEvent", "fetchResponseIsStream", "ErrorRenderer", "documentElement", "replaceableElement", "parentNode", "PageRenderer", "newStylesheetElements", "loadingElements", "SnapshotCache", "size", "key", "PageView", "cachedSnapshot", "Preloader", "responseText", "Session", "adapter", "delay", "mode", "extendURLWithDeprecatedProperties", "defaultPrevented", "render", "_snapshot", "_isPreview", "ev", "newBody", "timing", "submitterIsNavigatable", "container", "withinFrame", "deprecatedLocationPropertyDescriptors", "Cache", "StreamActions", "cache", "navigator$1", "start", "registerAdapter", "connectStreamSource", "disconnectStreamSource", "renderStreamMessage", "clearCache", "setProgressBarDelay", "setConfirmMethod", "confirmMethod", "setFormMode", "Turbo", "FrameController", "_fetchResponse", "src", "newFrameElement", "fetchRequest", "newFrame", "_newElement", "_0", "_1", "wrapped", "getFrameElementById", "activateElement", "sourceURL", "currentURL", "StreamElement", "c", "existingChildren", "e", "newChildrenIds", "actionFunction", "StreamSourceElement", "consumer", "getConsumer", "__async", "setConsumer", "createConsumer", "newConsumer", "subscribeTo", "channel", "mixin", "subscriptions", "walk", "obj", "acc", "key", "camel", "m", "x", "TurboCableStreamSourceElement", "__async", "connectStreamSource", "subscribeTo", "disconnectStreamSource", "data", "event", "channel", "signed_stream_name", "__spreadValues", "walk", "encodeMethodIntoRequestBody", "event", "form", "fetchOptions", "submitter", "method", "encodeMethodIntoRequestBody", "DOCUMENT_FRAGMENT_NODE", "morphAttrs", "fromNode", "toNode", "toNodeAttrs", "attr", "attrName", "attrNamespaceURI", "attrValue", "fromValue", "i", "fromNodeAttrs", "d", "range", "NS_XHTML", "doc", "HAS_TEMPLATE_SUPPORT", "HAS_RANGE_SUPPORT", "createFragmentFromTemplate", "str", "template", "createFragmentFromRange", "fragment", "createFragmentFromWrap", "toElement", "compareNodeNames", "fromEl", "toEl", "fromNodeName", "toNodeName", "fromCodeStart", "toCodeStart", "createElementNS", "name", "namespaceURI", "moveChildren", "curChild", "nextChild", "syncBooleanAttrProp", "specialElHandlers", "parentNode", "parentName", "newValue", "firstChild", "oldValue", "selectedIndex", "optgroup", "nodeName", "ELEMENT_NODE", "DOCUMENT_FRAGMENT_NODE$1", "TEXT_NODE", "COMMENT_NODE", "noop", "defaultGetNodeKey", "node", "morphdomFactory", "options", "toNodeHtml", "getNodeKey", "onBeforeNodeAdded", "onNodeAdded", "onBeforeElUpdated", "onElUpdated", "onBeforeNodeDiscarded", "onNodeDiscarded", "onBeforeElChildrenUpdated", "skipFromChildren", "addChild", "parent", "child", "childrenOnly", "fromNodesLookup", "keyedRemovalList", "addKeyedRemoval", "key", "walkDiscardedChildNodes", "skipKeyedNodes", "removeNode", "indexTree", "handleNodeAdded", "el", "nextSibling", "unmatchedFromEl", "morphEl", "cleanupFromEl", "curFromNodeChild", "curFromNodeKey", "fromNextSibling", "toElKey", "morphChildren", "skipFrom", "curToNodeChild", "curToNodeKey", "toNextSibling", "matchingFromEl", "outer", "curFromNodeType", "isCompatible", "onBeforeNodeAddedResult", "specialElHandler", "morphedNode", "morphedNodeType", "toNodeType", "len", "elToRemove", "morphdom", "morph", "element", "initialize$1", "streamActions", "camelize", "value", "_", "char", "capitalize", "dasherize", "tokenize", "typecast", "e", "Utils", "add_css_class", "classes", "remove_attribute", "attribute", "remove_css_class", "set_attribute", "set_dataset_attribute", "set_property", "set_style", "set_styles", "styles", "set_value", "toggle_css_class", "className", "replace_css_class", "from", "to", "registerAttributesActions", "reload", "scroll_into_view", "alignToTop", "block", "inline", "behavior", "set_focus", "set_title", "title", "titleElement", "registerBrowserActions", "console_log", "message", "level", "console_table", "data", "columns", "registerDebugActions", "invoke", "registerDeprecatedActions", "CookieStringBuilder", "streamElement", "cookieString", "streamElementAttribute", "cookieKey", "isBooleanAttribute", "cookieValue", "cookieKeyPair", "set_cookie", "cookie", "set_cookie_item", "cookieStringBuilder", "registerDocumentActions", "graft", "selector", "inner_html", "html", "insert_adjacent_html", "position", "insert_adjacent_text", "outer_html", "set_meta", "content", "meta", "text_content", "text", "registerDOMActions", "dispatch_event", "detail", "event", "error", "registerEventsActions", "reset_form", "form", "registerFormActions", "push_state", "url", "state", "replace_state", "history_back", "history_forward", "history_go", "delta", "registerHistoryActions", "PERMITTED_ATTRIBUTES", "createNotification", "attributes", "notification", "permission", "registerNotificationActions", "storage", "type", "clear_storage", "set_storage_item", "remove_storage_item", "registerStorageActions", "Proxy", "redirect_to", "turboAction", "turboFrame", "turbo", "turbo_clear_cache", "registerTurboActions", "turbo_progress_bar_set_value", "turbo_progress_bar_show", "turbo_progress_bar_hide", "registerTurboProgressBarActions", "turbo_frame_reload", "turbo_frame_set_src", "src", "registerTurboFrameActions", "register$1", "Actions", "initialize", "register", "action", "index", "init_preact_module", "PreactComponents", "PreactComponentElement", "name", "component", "__publicField", "application", "_preactElement", "preactElement_get", "__privateAdd", "D", "__privateGet", "B", "props", "type", "_", "init_compat_module", "init_preact_module", "init_hooks_module", "init_hooks_module", "BRAND_SYMBOL", "Symbol", "endBatch", "batchDepth", "error", "hasError", "batchedEffect", "effect", "batchIteration", "next", "_nextBatchedEffect", "_flags", "needsToRecompute", "_callback", "err", "evalContext", "batchedEffect", "batchDepth", "batchIteration", "globalVersion", "addDependency", "signal", "evalContext", "node", "_node", "_target", "_version", "_source", "_prevSource", "_sources", "_nextSource", "_prevTarget", "_nextTarget", "_rollbackNode", "_flags", "_subscribe", "Signal", "value", "this", "_value", "_targets", "prototype", "brand", "BRAND_SYMBOL", "_refresh", "_unsubscribe", "prev", "next", "subscribe", "fn", "_this", "effect", "prevContext", "valueOf", "toString", "toJSON", "peek", "Object", "defineProperty", "get", "set", "Error", "_notify", "endBatch", "needsToRecompute", "target", "prepareSources", "rollbackNode", "cleanupSources", "head", "Computed", "call", "undefined", "_fn", "_globalVersion", "OUTDATED", "err", "computed", "cleanupEffect", "cleanup", "_cleanup", "disposeEffect", "endEffect", "Effect", "_nextBatchedEffect", "_callback", "finish", "_start", "bind", "_dispose", "currentComponent", "finishUpdate", "hook", "hookName", "hookFn", "options", "bind", "setCurrentUpdater", "updater", "_start", "SignalValue", "_ref", "_this", "this", "data", "currentSignal", "useSignal", "value", "s", "useMemo", "v", "__v", "__", "__c", "_updateFlags", "_updater", "_callback", "_this$base", "isValidElement", "peek", "base", "nodeType", "setState", "computed", "displayName", "Object", "defineProperties", "Signal", "prototype", "constructor", "configurable", "undefined", "type", "props", "get", "__b", "old", "vnode", "signalProps", "i", "__np", "component", "update", "effect", "createUpdater", "error", "oldVNode", "dom", "__e", "renderedProps", "updaters", "_updaters", "prop", "_dispose", "signal", "createPropUpdater", "_update", "propSignal", "setAsProperty", "ownerSVGElement", "changeSignal", "newSignal", "newProps", "setAttribute", "removeAttribute", "index", "Component", "shouldComponentUpdate", "state", "_sources", "HAS_PENDING_UPDATE", "useComputed", "compute", "$compute", "useRef", "current", "useSignalEffect", "cb", "callback", "useEffect", "init_compat_module", "init_preact_module", "init_compat_module", "init_preact_module", "init_compat_module", "init_preact_module", "AddressField", "address", "addressChange", "required", "id", "controllerRef", "A", "addressRefs", "hiddenFields", "addressChangeCallback", "_a", "_b", "newAddress", "name", "y", "controllerElement", "_", "el", "init_compat_module", "init_preact_module", "_defineProperty", "r", "t", "_toPropertyKey", "ownKeys", "r", "t", "o", "_objectSpread2", "_defineProperty", "_toPrimitive", "t", "r", "e", "i", "_toPropertyKey", "noop", "_WINDOW", "_DOCUMENT", "_MUTATION_OBSERVER", "_PERFORMANCE", "userAgent", "WINDOW", "DOCUMENT", "MUTATION_OBSERVER", "PERFORMANCE", "IS_BROWSER", "IS_DOM", "IS_IE", "p", "g", "S", "A", "P", "s", "t", "r", "o", "L", "G", "lt", "pt", "xt", "Ft", "St", "At", "Ct", "Lt", "Wt", "Et", "t$1", "r$1", "bt$1", "Yt", "po", "I$1", "co", "x", "xo", "m$1", "c$1", "F$1", "Fo", "ko", "NAMESPACE_IDENTIFIER", "UNITS_IN_GRID", "DEFAULT_CSS_PREFIX", "DEFAULT_REPLACEMENT_CLASS", "DATA_FA_I2SVG", "DATA_FA_PSEUDO_ELEMENT", "DATA_FA_PSEUDO_ELEMENT_PENDING", "DATA_PREFIX", "DATA_ICON", "HTML_CLASS_I2SVG_BASE_CLASS", "MUTATION_APPROACH_ASYNC", "TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS", "PRODUCTION", "e$$1", "familyProxy", "obj", "target", "prop", "_PREFIX_TO_STYLE", "_objectSpread2", "PREFIX_TO_STYLE", "_STYLE_TO_PREFIX", "STYLE_TO_PREFIX", "_PREFIX_TO_LONG_STYLE", "PREFIX_TO_LONG_STYLE", "_LONG_STYLE_TO_PREFIX", "LONG_STYLE_TO_PREFIX", "ICON_SELECTION_SYNTAX_PATTERN", "LAYERS_TEXT_CLASSNAME", "FONT_FAMILY_PATTERN", "_FONT_WEIGHT_TO_PREFIX", "FONT_WEIGHT_TO_PREFIX", "ATTRIBUTES_WATCHED_FOR_MUTATION", "DUOTONE_CLASSES", "RESERVED_CLASSES", "initial", "getAttrConfig", "attr", "element", "coerce", "val", "_ref", "key", "_default", "_config", "config", "_onChangeCb", "cb", "onChange", "d$2", "meaninglessTransform", "insertCss", "css", "style", "headChildren", "beforeChild", "child", "tagName", "idPool", "nextUniqueId", "size", "id", "toArray", "array", "i", "classArray", "node", "htmlEscape", "str", "joinAttributes", "attributes", "acc", "attributeName", "joinStyles", "styles", "styleName", "transformIsMeaningful", "transform", "transformForSvg", "containerWidth", "iconWidth", "outer", "innerTranslate", "innerScale", "innerRotate", "inner", "path", "transformForCss", "_ref2", "width", "height", "startCentered", "baseStyles", "dcp", "drc", "fp", "rc", "dPatt", "customPropPatt", "rPatt", "_cssInserted", "ensureCss", "InjectCSS", "w", "namespace", "functions", "listener", "loaded", "fn", "domready", "toHtml", "abstractNodes", "tag", "children", "iconFromMapping", "mapping", "prefix", "iconName", "bindInternal4", "func", "thisContext", "a", "b", "c", "d", "reduce", "subject", "initialValue", "keys", "length", "iterator", "result", "ucs2decode", "string", "output", "counter", "value", "extra", "toHex", "unicode", "decoded", "codePointAt", "index", "first", "second", "normalizeIcons", "icons", "icon", "defineIcons", "params", "skipHooks", "normalized", "styles", "shims", "namespace", "FAMILY_NAMES", "PREFIX_TO_LONG_STYLE", "PREFIXES_FOR_FAMILY", "acc", "familyId", "_defaultUsablePrefix", "_byUnicode", "_byLigature", "_byOldName", "_byOldUnicode", "_byAlias", "isReserved", "name", "RESERVED_CLASSES", "getIconName", "cssPrefix", "cls", "parts", "prefix", "iconName", "build", "lookup", "reducer", "reduce", "o$$1", "style", "icon", "a$$1", "alias", "aliases", "hasRegular", "config", "shimLookups", "shim", "maybeNameMaybeUnicode", "getCanonicalPrefix", "onChange", "c$$1", "byUnicode", "unicode", "byLigature", "ligature", "byAlias", "byOldName", "byOldUnicode", "oldUnicode", "newUnicode", "getDefaultUsablePrefix", "emptyCanonicalIcon", "getFamilyId", "values", "family", "s", "famProps", "L", "v$$1", "styleOrPrefix", "params", "PREFIX_TO_STYLE", "t", "STYLE_TO_PREFIX", "defined", "moveNonFaClassesToRest", "classNames", "rest", "result", "sortedUniqueValues", "arr", "value", "index", "getCanonicalIcon", "skipLookups", "givenPrefix", "faCombinedClasses", "xo", "bt$1", "faStyleOrFamilyClasses", "nonStyleOrFamilyClasses", "faStyles", "P", "styleFromValues", "canonical", "_objectSpread2", "getDefaultCanonicalPrefix", "applyShimAndAlias", "aliasIconName", "newCanonicalFamilies", "newCanonicalStyles", "co", "key", "prefixOptions", "config$$1", "isDuotoneFamily", "valuesHasDuotone", "defaultFamilyIsDuotone", "canonicalPrefixIsDuotone", "defaultPrefix", "pt", "Library", "_len", "definitions", "_key", "additions", "defineIcons", "longPrefix", "definition", "normalized", "_plugins", "_hooks", "providers", "defaultProviderKeys", "registerPlugins", "nextPlugins", "_ref", "obj", "k", "plugin", "mixout", "tk", "sk", "hooks", "hook", "chainHooks", "accumulator", "args", "hookFn", "callHooks", "_len2", "_key2", "callProvided", "findIconDefinition", "iconLookup", "iconFromMapping", "library", "noAuto", "dom", "IS_DOM", "autoReplaceSvgRoot", "domready", "autoReplace", "parse", "ICON_SELECTION_SYNTAX_PATTERN", "canonicalIcon", "api", "toHtml", "DOCUMENT", "domVariants", "val", "abstractCreator", "a", "container", "asIcon", "children", "main", "mask", "attributes", "transform", "transformIsMeaningful", "width", "height", "offset", "joinStyles", "asSymbol", "symbol", "id", "makeInlineSvgAbstract", "title", "maskId", "titleId", "extra", "watchable", "isUploadedIcon", "Lt", "attrClass", "content", "uploadedIconWidthStyle", "DATA_FA_I2SVG", "nextUniqueId", "makeLayersTextAbstract", "transformForCss", "styleString", "makeLayersCounterAbstract", "styles$1", "asFoundIcon", "vectorData", "element", "DUOTONE_CLASSES", "missingIconResolutionMixin", "maybeNotifyMissing", "PRODUCTION", "findIcon", "resolve", "reject", "noop$1", "p$2", "PERFORMANCE", "preamble", "begin", "end", "perf", "noop$2", "isWatched", "node", "hasPrefixAndIcon", "DATA_PREFIX", "DATA_ICON", "hasBeenReplaced", "getMutator", "mutators", "createElementNS", "tag", "createElement", "convertSVG", "abstractObj", "ceFn", "child", "nodeAsComment", "comment", "mutation", "abstract", "classArray", "forSvg", "splitClasses", "newInnerHTML", "performOperationSync", "op", "perform", "mutations", "callback", "callbackFunction", "frame", "MUTATION_APPROACH_ASYNC", "WINDOW", "mutator", "mark", "disabled", "disableObservation", "enableObservation", "mo$1", "observe", "options", "MUTATION_OBSERVER", "treeCallback", "nodeCallback", "pseudoElementsCallback", "observeMutationsRoot", "objects", "toArray", "mutationRecord", "ATTRIBUTES_WATCHED_FOR_MUTATION", "disconnect", "styleParser", "prop", "classParser", "existingPrefix", "existingIconName", "innerText", "toHex", "attributesParser", "extraAttributes", "attr", "blankMeta", "meaninglessTransform", "parseMeta", "parser", "extraClasses", "pluginMeta", "extraStyles", "styles$2", "generateMutation", "nodeMeta", "LAYERS_TEXT_CLASSNAME", "getKnownPrefixes", "Ft", "onTree", "root", "htmlClassList", "hclAdd", "suffix", "HTML_CLASS_I2SVG_BASE_CLASS", "hclRemove", "prefixes", "prefixesDomQuery", "p$$1", "candidates", "e$$1", "resolvedMutations", "onNode", "resolveIcons", "next", "maybeIconDefinition", "iconDefinition", "render", "classes", "ReplaceElements", "providers$$1", "_ref2", "nextChild", "Layers", "assembler", "LayersCounter", "LayersText", "IS_IE", "computedFontSize", "boundingClientRect", "CLEAN_CONTENT_PATTERN", "SECONDARY_UNICODE_RANGE", "_FONT_FAMILY_WEIGHT_TO_PREFIX", "lt", "ko", "Yt", "FONT_FAMILY_WEIGHT_TO_PREFIX", "FONT_FAMILY_WEIGHT_FALLBACK", "fontFamily", "weights", "hexValueFromContent", "cleaned", "codePoint", "codePointAt", "isPrependTen", "isDoubled", "getPrefix", "fontWeight", "fontFamilySanitized", "fontWeightInteger", "fontWeightSanitized", "replaceForPosition", "position", "pendingAttribute", "DATA_FA_PSEUDO_ELEMENT_PENDING", "alreadyProcessedPseudoElement", "DATA_FA_PSEUDO_ELEMENT", "fontFamilyMatch", "FONT_FAMILY_PATTERN", "hexValue", "isSecondary", "isV4", "iconIdentifier", "iconName4", "meta", "replace", "processable", "TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS", "searchPseudoElements", "operations", "PseudoElements", "_unwatched", "MutationObserver$1", "parseTransformString", "transformString", "n", "first", "PowerTransforms", "containerWidth", "iconWidth", "outer", "innerTranslate", "innerScale", "innerRotate", "inner", "path", "ALL_SPACE", "fillBlack", "force", "deGroup", "Masks", "maskData", "explicitMaskId", "mainWidth", "mainPath", "maskWidth", "maskPath", "trans", "transformForSvg", "maskRect", "maskInnerGroupChildrenMixin", "maskInnerGroup", "maskOuterGroup", "clipId", "maskTag", "defs", "MissingIconIndicator", "reduceMotion", "gChildren", "FILL", "ANIMATION_BASE", "OPACITY_ANIMATE", "dot", "SvgSymbols", "symbolData", "plugins", "InjectCSS", "noAuto$1", "config$1", "library$1", "dom$1", "parse$1", "findIconDefinition$1", "toHtml$1", "layer", "text", "counter", "import_prop_types", "init_compat_module", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread2", "target", "i", "source", "key", "_defineProperty", "_typeof", "obj", "value", "_objectWithoutPropertiesLoose", "excluded", "sourceKeys", "_objectWithoutProperties", "sourceSymbolKeys", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "_arrayLikeToArray", "iter", "o", "minLen", "len", "arr2", "classList", "props", "_classes", "beat", "fade", "beatFade", "bounce", "shake", "flash", "spin", "spinPulse", "spinReverse", "pulse", "fixedWidth", "inverse", "border", "listItem", "flip", "size", "rotation", "pull", "classes", "_isNumerical", "camelize", "string", "match", "chr", "_excluded", "capitalize", "val", "styleToObject", "style", "s", "acc", "pair", "prop", "convert", "createElement", "element", "extraProps", "children", "child", "mixins", "_extraProps$style", "existingStyle", "remaining", "PRODUCTION", "log", "_console", "normalizeIconArgs", "icon", "parse$1", "objectWithKey", "defaultProps", "FontAwesomeIcon", "xn", "ref", "allProps", "iconArgs", "maskArgs", "symbol", "className", "title", "titleId", "maskId", "iconLookup", "transform", "mask", "renderedIcon", "abstract", "convertCurry", "PropTypes", "init_compat_module", "init_preact_module", "Error", "message", "_", "b", "ExclamationTriangle", "props", "d", "__spreadValues", "PhoneFieldWithSms", "number", "sendSms", "numberChange", "smsChange", "required", "errors", "id", "errorPresent", "_", "b", "target", "Error", "PhoneField", "init_compat_module", "init_preact_module", "Select", "_a", "_b", "children", "props", "__objRest", "chevronClasses", "_", "__spreadValues", "init_hooks_module", "LeadCaptureForm", "member", "leadCaptureForm", "errors", "useError", "id", "g", "_", "b", "field", "renderField", "_a", "_b", "_c", "PhoneFieldWithSms", "number", "sendSms", "PhoneField", "AddressField", "address", "LCFSelect", "target", "Select", "option", "init_compat_module", "init_preact_module", "init_compat_module", "init_preact_module", "Collapsible", "defaultOpen", "Trigger", "Content", "open", "useSignal", "toggle", "containerClasses", "_", "b", "Chevron", "props", "d", "__spreadValues", "init_compat_module", "init_preact_module", "init_hooks_module", "useCart", "cart", "x", "LandingPageState", "merchantAccount", "useBilling", "addToCart", "q", "item", "_cart", "current", "max", "removeFromCart", "setQuantity", "quantity", "isMembership", "priceOf", "taxOf", "subtotal", "entries", "bankersRound", "acc", "tax", "serviceFee", "total", "Cart", "_", "iconClasses", "buttonClasses", "dialogClasses", "b", "CartIcon", "CartDisplay", "detailed", "Money", "ItemEditor", "num", "roundedX", "_a", "_b", "amount", "props", "__objRest", "formatted", "__spreadValues", "inputClasses", "FontAwesomeIcon", "target", "newQuantity", "path", "MembershipSelection", "member", "completed", "selectedTemplate", "selectedProgram", "errors", "clearError", "useError", "addToCart", "removeFromCart", "useCart", "membershipTemplates", "useMembershipTemplates", "classes", "useSignalEffect", "mt", "manyPrograms", "_", "b", "Collapsible", "FontAwesomeIcon", "membershipTemplate", "MembershipTemplate", "event", "target", "program", "p", "Error", "onSelect", "onProgramSelect", "selected", "selectedClasses", "MembershipTemplateDetails", "ProgramSelector", "Money", "Select", "_a", "init_compat_module", "init_preact_module", "getStream", "path", "getCsrfToken", "r", "html", "post", "path", "body", "getCsrfToken", "postStream", "getCsrfToken", "_a", "ClassSelection", "member", "completed", "availableClasses", "selectedClass", "selectedProgram", "classes", "required", "useClasses", "errors", "useError", "defaultComplete", "onClassSelected", "target", "c", "_", "b", "Collapsible", "FontAwesomeIcon", "Select", "id", "name", "_a", "TimeSelector", "Error", "controller", "classTimes", "useSignal", "loadingClasses", "isPreview", "usePreview", "selectedEvent", "fetchTimes", "from", "__async", "timeout", "path", "options", "getCsrfToken", "response", "useSignalEffect", "next", "prev", "Chevron", "formatMonthDay", "Loader", "WeeklySchedule", "schedule", "clearError", "byDayOfWeek", "acc", "event", "start", "dayOfWeek", "monthDay", "key", "organized", "day", "events", "a", "eventIsSelected", "selected", "selectedClasses", "formatTime", "time", "SignUp", "membershipTemplates", "useMembershipTemplates", "classes", "useClasses", "members", "ensureParticipant", "useMembers", "nextStep", "useStep", "setError", "useError", "familyCreation", "useFamilyCreation", "isPreview", "usePreview", "primaryMember", "participants", "participating", "useSignal", "showParticipants", "membershipSelected", "classSelected", "nextStepUnlessInvalid", "event", "useSignalEffect", "_", "PrimaryMember", "member", "ParticipantMember", "leadCaptureForm", "guardianLeadCaptureForm", "useLeadCaptureForm", "b", "target", "ParticipantInfo", "LeadCaptureForm", "usePrimaryInfo", "field", "f", "MembershipAndClassSelection", "_a", "hasClasses", "classesFor", "required", "selectedTemplate", "selectedProgram", "availableClasses", "useComputed", "current", "name", "selectedClass", "MembershipSelection", "ClassSelection", "init_compat_module", "init_preact_module", "Merchandise", "nextStep", "previousStep", "useStep", "merchandise", "useMerchandise", "outOfStockClasses", "itemClasses", "_", "event", "category", "items", "item", "Money", "Add", "FontAwesomeIcon", "cart", "addToCart", "useCart", "animationClasses", "ItemEditor", "init_compat_module", "init_preact_module", "useSubmit", "isPreview", "usePreview", "setError", "useError", "jumpToStep", "useStep", "payload", "constructPayload", "extraPayload", "__async", "response", "postStream", "__spreadValues", "stream", "errors", "_a", "_b", "cart", "useCart", "familyCreation", "useFamilyCreation", "members", "useMembers", "agreements", "useAgreements", "quantity", "item", "_c", "individualMemberPayload", "signUpPayload", "guardian", "participant", "cleanMember", "member", "contactInfo", "membership", "membershipPayload", "classData", "classPayload", "out", "membershipTemplate", "programId", "id", "type", "name", "start", "end", "leadCaptureForm", "guardianLeadCaptureForm", "useLeadCaptureForm", "clean", "dirty", "lcf", "lcfKeys", "field", "entries", "key", "cleaned", "init_compat_module", "init_preact_module", "init_compat_module", "init_preact_module", "Members", "members", "useMembers", "_", "b", "member", "Member", "cleanMemberForDisplay", "jumpToStep", "useStep", "FontAwesomeIcon", "k", "key", "lookupFieldLabel", "displayMemberInfo", "leadCaptureForm", "guardianLeadCaptureForm", "useLeadCaptureForm", "matchKey", "field", "lcfHit", "glcfHit", "cleaned", "cleanMember", "_a", "_b", "value", "formatDate", "formatTime", "time", "init_compat_module", "init_preact_module", "Cart", "cart", "useCart", "_", "b", "CartDisplay", "init_compat_module", "init_preact_module", "Payment", "PaymentElement", "paymentRequired", "useBilling", "_", "b", "GenericConfirmation", "submitDisabled", "onSubmit", "PaymentElement", "errors", "clearError", "useError", "previousStep", "useStep", "isPreview", "usePreview", "submitText", "widthClass", "_", "Members", "Cart", "Payment", "Error", "FontAwesomeIcon", "init_compat_module", "init_preact_module", "init_hooks_module", "init_hooks_module", "currentTokenizer", "tokenizerProxy", "useBasysTokenizer", "ref", "theme", "merchantAccount", "onSubmit", "onLoad", "onError", "y", "buildBasysTokenizer", "response", "BasysConfirmation", "theme", "useTheme", "merchantAccount", "strictVaulting", "useBilling", "defaultSubmit", "useSubmit", "paymentElementRef", "A", "zip", "useSignal", "label", "save", "errorText", "disabled", "tokenizer", "useBasysTokenizer", "token", "__async", "error", "submit", "event", "_", "GenericConfirmation", "target", "Error", "b", "init_compat_module", "init_preact_module", "import_react_stripe_js", "globalStripe", "StripeConfirmation", "merchantAccount", "useBilling", "total", "useCart", "_", "Confirmation", "stripe", "elements", "cart", "isMembership", "strictVaulting", "defaultSubmit", "useSubmit", "save", "useSignal", "errorText", "disabled", "submit", "event", "__async", "body", "quantity", "item", "response", "post", "clientSecret", "error", "paymentIntent", "GenericConfirmation", "StripePaymentElement", "Error", "b", "target", "theme", "useTheme", "init_compat_module", "init_preact_module", "init_hooks_module", "init_hooks_module", "currentTokenizer", "tokenizerProxy", "client", "paymentCard", "message", "result", "useUsaEpayTokenizer", "ref", "theme", "merchantAccount", "onSubmit", "onLoad", "onError", "y", "buildUsaEpayTokenizer", "style", "UsaEpayConfirmation", "theme", "useTheme", "merchantAccount", "strictVaulting", "useBilling", "defaultSubmit", "useSubmit", "paymentElementRef", "A", "zip", "useSignal", "label", "save", "errorText", "disabled", "tokenizer", "useUsaEpayTokenizer", "token", "__async", "error", "message", "submit", "event", "_", "GenericConfirmation", "target", "Error", "b", "Confirmation", "paymentRequired", "useBilling", "total", "useCart", "isPreview", "usePreview", "_", "b", "BillingConfirmation", "NoBillingConfirmation", "merchantAccount", "BasysConfirmation", "StripeConfirmation", "UsaEpayConfirmation", "submit", "useSubmit", "submitDisabled", "useSignal", "GenericConfirmation", "event", "__async", "init_compat_module", "init_preact_module", "StepTracker", "step", "numberOfSteps", "useStep", "steps", "i", "_", "s", "b", "Step", "displaying", "current", "classes", "isFinished", "isCurrent", "isNext", "FontAwesomeIcon", "init_compat_module", "init_preact_module", "init_hooks_module", "Agreements", "members", "useMembers", "nextStep", "previousStep", "useStep", "agreements", "useAgreements", "action", "controllerRef", "A", "controller", "setController", "h", "y", "cont", "tokens", "element", "token", "_", "event", "isBack", "signatures", "agreement", "LandingPageState", "G", "d", "useLeadCaptureForm", "leadCaptureForm", "guardianLeadCaptureForm", "x", "useFamilyCreation", "familyCreation", "useBilling", "merchantAccount", "cart", "members", "strictVaulting", "member", "_a", "useAgreements", "agreements", "useMerchandise", "merchandise", "useStep", "step", "numberOfSteps", "nextStep", "jumpToStep", "newStep", "previousStep", "useMembers", "addMember", "ensureParticipant", "useMembershipTemplates", "membershipTemplates", "useClasses", "classes", "classesFor", "programId", "useError", "errors", "setError", "value", "clearError", "key", "useTheme", "theme", "usePreview", "preview", "LandingPageCore", "_", "StepTracker", "Cart", "SignUp", "Merchandise", "Agreements", "Confirmation", "LandingPage", "application", "LandingPage", "aa", "k", "a", "b", "c", "d", "m", "e", "g", "f", "h", "ba", "ca", "da", "ea", "fa", "ha", "ia", "ja", "ka", "la", "ma", "na", "oa", "n", "p", "q", "r", "t", "u", "v", "w", "x", "y", "A", "B", "C", "D", "E", "F", "pa", "G", "qa", "H", "ra", "I", "sa", "ta", "J", "va", "K", "wa", "xa", "L", "ya", "za", "Aa", "Ba", "Ca", "N", "Da", "Ea", "Fa", "Ga", "Ha", "O", "Ia", "P", "Ja", "Ka", "Q", "La", "R", "Ma", "S", "T", "l", "U", "V", "W", "X", "Na", "Y", "Oa", "Pa", "Qa", "Z", "Ra", "z", "M", "ua", "Sa", "Ta", "EventListener", "eventTarget", "eventName", "eventOptions", "binding", "event", "extendedEvent", "extendEvent", "left", "right", "leftIndex", "rightIndex", "stopImmediatePropagation", "Dispatcher", "application", "eventListener", "listeners", "map", "clearEventListeners", "error", "message", "detail", "eventListenerMap", "cacheKey", "parts", "key", "defaultActionDescriptorFilters", "value", "element", "descriptorPattern", "parseActionDescriptorString", "descriptorString", "matches", "keyFilter", "parseEventTarget", "parseEventOptions", "eventTargetName", "options", "token", "stringifyEventTarget", "camelize", "_", "char", "namespaceCamelize", "capitalize", "dasherize", "tokenize", "Action", "index", "descriptor", "schema", "getDefaultEventNameForElement", "eventFilter", "filteres", "modifiers", "meta", "ctrl", "alt", "shift", "modifier", "standardFilter", "params", "pattern", "name", "match", "typecast", "defaultEventNames", "tagName", "o_O", "Binding", "context", "action", "method", "actionDescriptorFilters", "passes", "filter", "target", "currentTarget", "actionEvent", "identifier", "controller", "ElementObserver", "delegate", "mutations", "callback", "mutation", "node", "attributeName", "nodes", "tree", "processor", "AttributeObserver", "add", "fetch", "del", "prune", "values", "Multimap", "set", "size", "_key", "_values", "SelectorObserver", "element", "selector", "delegate", "details", "ElementObserver", "Multimap", "callback", "matches", "tree", "match", "_attributeName", "matchedBefore", "StringMapObserver", "mutations", "attributeName", "mutation", "oldValue", "key", "value", "attribute", "TokenListObserver", "AttributeObserver", "unmatchedTokens", "matchedTokens", "tokens", "token", "previousTokens", "currentTokens", "firstDifferingIndex", "zip", "previousToken", "currentToken", "tokensAreEqual", "tokenString", "parseTokenString", "content", "index", "left", "right", "length", "_", "ValueListObserver", "parseResult", "valuesByToken", "error", "BindingObserver", "context", "action", "binding", "Binding", "Action", "ValueObserver", "receiver", "descriptor", "name", "defaultValue", "writer", "rawValue", "rawOldValue", "changedMethodName", "changedMethod", "valueDescriptorMap", "descriptors", "hasMethodName", "capitalize", "TargetObserver", "_a", "readInheritableStaticArrayValues", "constructor", "propertyName", "ancestors", "getAncestorsForConstructor", "values", "getOwnStaticArrayValues", "readInheritableStaticObjectPairs", "pairs", "getOwnStaticObjectPairs", "definition", "OutletObserver", "outletName", "observer", "_selector", "outlet", "dependencies", "module", "identifiers", "Context", "scope", "functionName", "detail", "identifier", "controller", "message", "namespaceCamelize", "methodName", "args", "bless", "shadow", "getBlessedProperties", "properties", "shadowConstructor", "extend", "shadowProperties", "getShadowProperties", "blessedProperties", "blessing", "prototype", "getOwnKeys", "getShadowedDescriptor", "shadowingDescriptor", "object", "extendWithReflect", "extended", "testReflectExtension", "b", "blessDefinition", "Module", "application", "ClassMap", "tokenize", "DataMap", "dasherize", "Guide", "logger", "warnedKeys", "attributeValueContainsToken", "TargetSet", "targetName", "targetNames", "target", "targets", "targetDescriptor", "revisedAttributeName", "OutletSet", "controllerElement", "outletNames", "outlets", "controllerAttribute", "Scope", "schema", "ScopeObserver", "scopesByIdentifier", "referenceCount", "Router", "contexts", "afterLoad", "defaultSchema", "objectFromEntries", "c", "n", "array", "memo", "k", "v", "Application", "Dispatcher", "defaultActionDescriptorFilters", "__async", "domReady", "controllerConstructor", "filter", "head", "rest", "resolve", "ClassPropertiesBlessing", "classDefinition", "propertiesForClassDefinition", "classes", "OutletPropertiesBlessing", "outletDefinition", "propertiesForOutletDefinition", "camelizedName", "outletController", "TargetPropertiesBlessing", "targetDefinition", "propertiesForTargetDefinition", "ValuePropertiesBlessing", "valueDefinitionPairs", "propertyDescriptorMap", "result", "valueDefinitionPair", "valueDescriptor", "parseValueDefinitionPair", "propertiesForValueDefinitionPair", "read", "write", "typeDefinition", "valueDescriptorForTokenAndTypeDefinition", "parseValueTypeConstant", "constant", "parseValueTypeDefault", "parseValueTypeObject", "payload", "typeFromObject", "defaultValueType", "propertyPath", "parseValueTypeDefinition", "typeFromDefaultValue", "typeFromConstant", "type", "defaultValueForDefinition", "defaultValuesByType", "camelize", "readers", "writers", "writeString", "writeJSON", "Controller", "_identifier", "_application", "eventName", "prefix", "bubbles", "cancelable", "event", "application", "Application", "import_intl_tel_input", "component_controller_default", "Controller", "intlTelInput", "__publicField", "component_controller_default", "Controller", "event", "place", "street", "city", "state", "zip", "country", "components", "street_number", "component", "route", "__publicField", "sides", "alignments", "placements", "acc", "side", "min", "max", "round", "floor", "createCoords", "v", "oppositeSideMap", "oppositeAlignmentMap", "clamp", "start", "value", "end", "evaluate", "param", "getSide", "placement", "getAlignment", "getOppositeAxis", "axis", "getAxisLength", "getSideAxis", "getAlignmentAxis", "getAlignmentSides", "rects", "rtl", "alignment", "alignmentAxis", "length", "mainAlignmentSide", "getOppositePlacement", "getOppositeAlignmentPlacement", "placement", "alignment", "oppositeAlignmentMap", "getOppositePlacement", "placement", "side", "oppositeSideMap", "expandPaddingObject", "padding", "__spreadValues", "getPaddingObject", "rectToClientRect", "rect", "__spreadProps", "computeCoordsFromPlacement", "_ref", "placement", "rtl", "reference", "floating", "sideAxis", "getSideAxis", "alignmentAxis", "getAlignmentAxis", "alignLength", "getAxisLength", "side", "getSide", "isVertical", "commonX", "commonY", "commonAlign", "coords", "getAlignment", "computePosition", "config", "__async", "strategy", "middleware", "platform", "validMiddleware", "rects", "x", "y", "statefulPlacement", "middlewareData", "resetCount", "i", "name", "fn", "nextX", "nextY", "data", "reset", "__spreadProps", "__spreadValues", "detectOverflow", "state", "options", "_await$platform$isEle", "elements", "boundary", "rootBoundary", "elementContext", "altBoundary", "padding", "evaluate", "paddingObject", "getPaddingObject", "element", "clippingClientRect", "rectToClientRect", "rect", "offsetParent", "offsetScale", "elementClientRect", "arrow", "axis", "length", "arrowDimensions", "isYAxis", "minProp", "maxProp", "clientProp", "endDiff", "startDiff", "arrowOffsetParent", "clientSize", "centerToReference", "largestPossiblePadding", "minPadding", "min", "maxPadding", "min$1", "max", "center", "offset", "clamp", "shouldAddOffset", "alignmentOffset", "getPlacementList", "alignment", "autoAlignment", "allowedPlacements", "getOppositeAlignmentPlacement", "autoPlacement", "_middlewareData$autoP", "_middlewareData$autoP2", "_placementsThatFitOnE", "_a", "crossAxis", "placements", "detectOverflowOptions", "__objRest", "placements$1", "overflow", "currentIndex", "currentPlacement", "alignmentSides", "getAlignmentSides", "currentOverflows", "allOverflows", "nextPlacement", "placementsSortedByMostSpace", "d", "acc", "v", "a", "b", "resetPlacement", "convertValueToCoords", "state", "options", "__async", "placement", "platform", "elements", "rtl", "side", "getSide", "alignment", "getAlignment", "isVertical", "getSideAxis", "mainAxisMulti", "crossAxisMulti", "rawValue", "evaluate", "mainAxis", "crossAxis", "alignmentAxis", "__spreadValues", "offset", "_middlewareData$offse", "_middlewareData$arrow", "x", "y", "middlewareData", "diffCoords", "__spreadProps", "getNodeName", "node", "isNode", "getWindow", "_node$ownerDocument", "getDocumentElement", "_ref", "value", "isElement", "isHTMLElement", "isShadowRoot", "isOverflowElement", "element", "overflow", "overflowX", "overflowY", "display", "getComputedStyle", "isTableElement", "isContainingBlock", "webkit", "isWebKit", "css", "getContainingBlock", "currentNode", "getParentNode", "isLastTraversableNode", "getNodeScroll", "result", "getNearestOverflowAncestor", "parentNode", "getOverflowAncestors", "list", "traverseIframes", "_node$ownerDocument2", "scrollableAncestor", "isBody", "win", "getCssDimensions", "element", "css", "getComputedStyle", "width", "height", "hasOffset", "isHTMLElement", "offsetWidth", "offsetHeight", "shouldFallback", "round", "unwrapElement", "isElement", "getScale", "domElement", "createCoords", "rect", "$", "x", "y", "noOffsets", "getVisualOffsets", "win", "getWindow", "isWebKit", "shouldAddVisualOffsets", "isFixed", "floatingOffsetParent", "getBoundingClientRect", "includeScale", "isFixedStrategy", "offsetParent", "clientRect", "scale", "visualOffsets", "offsetWin", "currentWin", "currentIFrame", "iframeScale", "iframeRect", "left", "top", "rectToClientRect", "topLayerSelectors", "isTopLayer", "floating", "selector", "e", "convertOffsetParentRelativeRectToViewportRelativeRect", "_ref", "elements", "strategy", "documentElement", "getDocumentElement", "topLayer", "scroll", "offsets", "isOffsetParentAnElement", "getNodeName", "isOverflowElement", "getNodeScroll", "offsetRect", "getClientRects", "getWindowScrollBarX", "getDocumentRect", "html", "body", "max", "getViewportRect", "visualViewport", "visualViewportBased", "getInnerBoundingClientRect", "getClientRectFromClippingAncestor", "clippingAncestor", "__spreadProps", "__spreadValues", "hasFixedPositionAncestor", "stopNode", "parentNode", "getParentNode", "isLastTraversableNode", "getClippingElementAncestors", "cache", "cachedResult", "result", "getOverflowAncestors", "el", "currentContainingBlockComputedStyle", "elementIsFixed", "currentNode", "computedStyle", "currentNodeIsContaining", "isContainingBlock", "ancestor", "getClippingRect", "boundary", "rootBoundary", "clippingAncestors", "firstClippingAncestor", "clippingRect", "accRect", "min", "getDimensions", "getRectRelativeToOffsetParent", "getTrueOffsetParent", "polyfill", "getOffsetParent", "window", "isTableElement", "getContainingBlock", "getElementRects", "data", "__async", "getOffsetParentFn", "getDimensionsFn", "isRTL", "platform", "observeMove", "onMove", "io", "timeoutId", "root", "cleanup", "_io", "refresh", "skip", "threshold", "insetTop", "floor", "insetRight", "insetBottom", "insetLeft", "options", "isFirstUpdate", "handleObserve", "entries", "ratio", "autoUpdate", "reference", "update", "ancestorScroll", "ancestorResize", "elementResize", "layoutShift", "animationFrame", "referenceEl", "ancestors", "cleanupIo", "reobserveFrame", "resizeObserver", "firstEntry", "_resizeObserver", "frameId", "prevRefRect", "frameLoop", "nextRefRect", "_resizeObserver2", "autoPlacement", "arrow", "computePosition", "reference", "floating", "options", "cache", "mergedOptions", "__spreadValues", "platform", "platformWithCache", "__spreadProps", "candidateSelectors", "candidateSelector", "join", "NoElement", "Element", "matches", "prototype", "msMatchesSelector", "webkitMatchesSelector", "getRootNode", "element", "_element$getRootNode", "call", "ownerDocument", "isInert", "node", "lookUp", "_node$getAttribute", "inertAtt", "getAttribute", "inert", "result", "parentNode", "isContentEditable", "_node$getAttribute2", "attValue", "getCandidates", "el", "includeContainer", "filter", "candidates", "Array", "slice", "apply", "querySelectorAll", "unshift", "getCandidatesIteratively", "elements", "options", "elementsToCheck", "from", "length", "shift", "tagName", "assigned", "assignedElements", "content", "children", "nestedCandidates", "flatten", "push", "scopeParent", "validCandidate", "includes", "shadowRoot", "getShadowRoot", "validShadowRoot", "shadowRootFilter", "hasTabIndex", "isNaN", "parseInt", "getTabIndex", "Error", "tabIndex", "test", "getSortOrderTabIndex", "isScope", "sortOrderedTabbables", "a", "b", "documentOrder", "isInput", "isHiddenInput", "type", "isDetailsWithSummary", "r", "some", "child", "getCheckedRadio", "nodes", "form", "i", "checked", "isTabbableRadio", "name", "radioScope", "queryRadios", "radioSet", "window", "CSS", "escape", "err", "console", "error", "message", "isRadio", "isNonTabbableRadio", "isNodeAttached", "_nodeRoot", "nodeRoot", "nodeRootHost", "host", "attached", "_nodeRootHost", "_nodeRootHost$ownerDo", "_node$ownerDocument", "contains", "_nodeRoot2", "_nodeRootHost2", "_nodeRootHost2$ownerD", "isZeroArea", "_node$getBoundingClie", "getBoundingClientRect", "width", "height", "isHidden", "_ref", "displayCheck", "getComputedStyle", "visibility", "isDirectSummary", "nodeUnderDetails", "parentElement", "originalNode", "rootNode", "assignedSlot", "getClientRects", "isDisabledFromFieldset", "disabled", "item", "isNodeMatchingSelectorFocusable", "isNodeMatchingSelectorTabbable", "isValidShadowRootTabbable", "shadowHostNode", "sortByOrder", "regularTabbables", "orderedTabbables", "forEach", "candidateTabindex", "sort", "reduce", "acc", "sortable", "concat", "tabbable", "container", "bind", "focusable", "isTabbable", "focusableCandidateSelector", "isFocusable", "activeFocusTraps", "activateTrap", "trapStack", "trap", "length", "activeTrap", "pause", "trapIndex", "indexOf", "splice", "push", "deactivateTrap", "unpause", "isSelectableInput", "node", "tagName", "toLowerCase", "select", "isEscapeEvent", "e", "key", "keyCode", "isTabEvent", "isKeyForward", "shiftKey", "isKeyBackward", "delay", "fn", "setTimeout", "findIndex", "arr", "idx", "every", "value", "i", "valueOrHandler", "_len", "arguments", "params", "Array", "_key", "apply", "getActualTarget", "event", "target", "shadowRoot", "composedPath", "internalTrapStack", "createFocusTrap", "elements", "userOptions", "doc", "document", "config", "_objectSpread", "returnFocusOnDeactivate", "escapeDeactivates", "delayInitialFocus", "state", "containers", "containerGroups", "tabbableGroups", "nodeFocusedBeforeActivation", "mostRecentlyFocusedNode", "active", "paused", "delayInitialFocusTimer", "undefined", "recentNavEvent", "getOption", "configOverrideOptions", "optionName", "configOptionName", "findContainerIndex", "element", "_ref", "container", "tabbableNodes", "contains", "includes", "find", "getNodeForOption", "optionValue", "_len2", "_key2", "Error", "concat", "querySelector", "getInitialFocusNode", "isFocusable", "tabbableOptions", "activeElement", "firstTabbableGroup", "firstTabbableNode", "updateTabbableNodes", "map", "tabbable", "focusableNodes", "focusable", "lastTabbableNode", "firstDomTabbableNode", "isTabbable", "lastDomTabbableNode", "slice", "reverse", "posTabIndexesFound", "getTabIndex", "nextTabbableNode", "forward", "nodeIdx", "el", "filter", "group", "g", "getActiveElement", "tryFocus", "focus", "preventScroll", "getReturnFocusNode", "previousActiveElement", "findNextNavNode", "_ref2", "_ref2$isBackward", "isBackward", "destinationNode", "containerIndex", "containerGroup", "startOfGroupIndex", "_ref3", "destinationGroupIndex", "destinationGroup", "lastOfGroupIndex", "_ref4", "checkPointerDown", "clickOutsideDeactivates", "deactivate", "returnFocus", "allowOutsideClick", "preventDefault", "checkFocusIn", "targetContained", "Document", "stopImmediatePropagation", "nextNode", "navAcrossContainers", "mruContainerIdx", "mruTabIdx", "some", "n", "checkKeyNav", "checkKey", "checkClick", "addListeners", "addEventListener", "capture", "passive", "removeListeners", "removeEventListener", "checkDomRemoval", "mutations", "isFocusedNodeRemoved", "mutation", "removedNodes", "from", "mutationObserver", "window", "MutationObserver", "updateObservedNodes", "disconnect", "observe", "subtree", "childList", "activate", "activateOptions", "onActivate", "onPostActivate", "checkCanFocusTrap", "finishActivation", "then", "deactivateOptions", "options", "onDeactivate", "onPostDeactivate", "checkCanReturnFocus", "clearTimeout", "finishDeactivation", "pauseOptions", "onPause", "onPostPause", "unpauseOptions", "onUnpause", "onPostUnpause", "updateContainerElements", "containerElements", "elementsAsArray", "Boolean", "_openBody", "openBody_fn", "_closeBody", "closeBody_fn", "_computePosition", "computePosition_fn", "_allowClickOutside", "allowClickOutside_fn", "_halfArrowWidth", "halfArrowWidth_get", "component_controller_default", "Controller", "__privateAdd", "createFocusTrap", "__privateMethod", "opened", "_", "prevPosition", "middleware", "offset", "autoPlacement", "arrow", "autoUpdate", "computePosition", "x", "y", "middlewareData", "placement", "parsedPlacement", "arrowX", "arrowY", "position", "__privateGet", "target", "__publicField", "noop", "dispatch", "i", "n", "_", "t", "Dispatch", "parseTypenames", "typenames", "types", "name", "typename", "callback", "T", "get", "set", "copy", "type", "that", "args", "c", "dispatch_default", "xhtml", "namespaces_default", "namespace_default", "name", "prefix", "i", "namespaces_default", "creatorInherit", "name", "document", "uri", "xhtml", "creatorFixed", "fullname", "creator_default", "namespace_default", "none", "selector_default", "selector", "select_default", "select", "selector_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "subnode", "i", "Selection", "array", "x", "empty", "selectorAll_default", "selector", "arrayAll", "select", "array", "selectAll_default", "selectorAll_default", "groups", "m", "subgroups", "parents", "j", "group", "n", "node", "i", "Selection", "matcher_default", "selector", "childMatcher", "node", "find", "childFind", "match", "childFirst", "selectChild_default", "childMatcher", "filter", "children", "childrenFilter", "match", "selectChildren_default", "childMatcher", "filter_default", "match", "matcher_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "i", "Selection", "sparse_default", "update", "enter_default", "Selection", "sparse_default", "EnterNode", "parent", "datum", "child", "next", "selector", "constant_default", "x", "bindIndex", "parent", "group", "enter", "update", "exit", "data", "i", "node", "groupLength", "dataLength", "EnterNode", "bindKey", "key", "nodeByKeyValue", "keyValues", "keyValue", "datum", "data_default", "value", "bind", "parents", "groups", "constant_default", "m", "j", "arraylike", "enterGroup", "updateGroup", "exitGroup", "i0", "i1", "previous", "next", "Selection", "exit_default", "Selection", "sparse_default", "join_default", "onenter", "onupdate", "onexit", "enter", "update", "exit", "merge_default", "context", "selection", "groups0", "groups1", "m0", "m1", "m", "merges", "j", "group0", "group1", "n", "merge", "node", "i", "Selection", "order_default", "groups", "j", "m", "group", "next", "node", "sort_default", "compare", "ascending", "compareNode", "a", "b", "groups", "m", "sortgroups", "j", "group", "n", "sortgroup", "node", "i", "Selection", "call_default", "callback", "nodes_default", "node_default", "groups", "j", "m", "group", "n", "node", "size_default", "size", "node", "empty_default", "each_default", "callback", "groups", "j", "m", "group", "i", "n", "node", "attrRemove", "name", "attrRemoveNS", "fullname", "attrConstant", "value", "attrConstantNS", "attrFunction", "v", "attrFunctionNS", "attr_default", "namespace_default", "node", "window_default", "node", "styleRemove", "name", "styleConstant", "value", "priority", "styleFunction", "v", "style_default", "styleValue", "node", "window_default", "propertyRemove", "name", "propertyConstant", "value", "propertyFunction", "v", "property_default", "classArray", "string", "classList", "node", "ClassList", "name", "i", "classedAdd", "names", "list", "n", "classedRemove", "classedTrue", "classedFalse", "classedFunction", "value", "classed_default", "textRemove", "textConstant", "value", "textFunction", "v", "text_default", "htmlRemove", "htmlConstant", "value", "htmlFunction", "v", "html_default", "raise", "raise_default", "lower", "lower_default", "append_default", "name", "create", "creator_default", "constantNull", "insert_default", "name", "before", "create", "creator_default", "select", "selector_default", "remove", "parent", "remove_default", "selection_cloneShallow", "clone", "parent", "selection_cloneDeep", "clone_default", "deep", "datum_default", "value", "contextListener", "listener", "event", "parseTypenames", "typenames", "name", "i", "onRemove", "typename", "on", "j", "m", "o", "onAdd", "value", "options", "on_default", "n", "t", "dispatchEvent", "node", "type", "params", "window", "window_default", "event", "dispatchConstant", "dispatchFunction", "dispatch_default", "iterator_default", "groups", "j", "m", "group", "n", "node", "root", "Selection", "groups", "parents", "selection", "selection_selection", "select_default", "selectAll_default", "selectChild_default", "selectChildren_default", "filter_default", "data_default", "enter_default", "exit_default", "join_default", "merge_default", "order_default", "sort_default", "call_default", "nodes_default", "node_default", "size_default", "empty_default", "each_default", "attr_default", "style_default", "property_default", "classed_default", "text_default", "html_default", "raise_default", "lower_default", "append_default", "insert_default", "remove_default", "clone_default", "datum_default", "on_default", "dispatch_default", "iterator_default", "selection_default", "select_default", "selector", "Selection", "root", "define_default", "constructor", "factory", "prototype", "extend", "parent", "definition", "key", "Color", "darker", "brighter", "reI", "reN", "reP", "reHex", "reRgbInteger", "reRgbPercent", "reRgbaInteger", "reRgbaPercent", "reHslPercent", "reHslaPercent", "named", "define_default", "color", "channels", "color_formatHex", "color_formatHex8", "color_formatHsl", "color_formatRgb", "hslConvert", "format", "m", "l", "rgbn", "Rgb", "rgba", "hsla", "n", "r", "g", "b", "a", "rgbConvert", "o", "rgb", "opacity", "extend", "k", "clampi", "clampa", "rgb_formatHex", "rgb_formatHex8", "rgb_formatRgb", "hex", "value", "h", "s", "Hsl", "min", "max", "hsl", "m2", "m1", "hsl2rgb", "clamph", "clampt", "basis", "t1", "v0", "v1", "v2", "v3", "t2", "t3", "basis_default", "values", "n", "t", "i", "basisClosed_default", "values", "n", "t", "i", "v0", "v1", "v2", "v3", "basis", "constant_default", "x", "linear", "a", "d", "t", "exponential", "b", "y", "gamma", "y", "nogamma", "a", "b", "exponential", "constant_default", "d", "linear", "rgb_default", "rgbGamma", "y", "color", "gamma", "rgb", "start", "end", "r", "g", "b", "opacity", "nogamma", "t", "rgbSpline", "spline", "colors", "i", "rgbBasis", "basis_default", "rgbBasisClosed", "basisClosed_default", "number_default", "a", "b", "t", "reA", "reB", "zero", "b", "one", "string_default", "a", "bi", "am", "bm", "bs", "i", "s", "q", "number_default", "t", "o", "degrees", "identity", "decompose_default", "a", "b", "c", "d", "e", "f", "scaleX", "scaleY", "skewX", "svgNode", "parseCss", "value", "m", "identity", "decompose_default", "parseSvg", "interpolateTransform", "parse", "pxComma", "pxParen", "degParen", "pop", "s", "translate", "xa", "ya", "xb", "yb", "q", "i", "number_default", "rotate", "a", "b", "skewX", "scale", "t", "n", "o", "interpolateTransformCss", "parseCss", "interpolateTransformSvg", "parseSvg", "frame", "timeout", "interval", "pokeDelay", "taskHead", "taskTail", "clockLast", "clockNow", "clockSkew", "clock", "setFrame", "f", "now", "clearNow", "Timer", "timer", "callback", "delay", "time", "sleep", "t", "timerFlush", "e", "wake", "nap", "poke", "t0", "t1", "t2", "timeout_default", "callback", "delay", "time", "t", "Timer", "elapsed", "emptyOn", "dispatch_default", "emptyTween", "CREATED", "SCHEDULED", "STARTING", "STARTED", "RUNNING", "ENDING", "ENDED", "schedule_default", "node", "name", "id", "index", "group", "timing", "schedules", "create", "init", "schedule", "get", "set", "self", "tween", "timer", "elapsed", "start", "i", "j", "n", "o", "stop", "timeout_default", "tick", "t", "interrupt_default", "node", "name", "schedules", "schedule", "active", "empty", "i", "STARTING", "ENDING", "ENDED", "interrupt_default", "name", "tweenRemove", "id", "name", "tween0", "tween1", "schedule", "set", "tween", "i", "n", "tweenFunction", "value", "t", "tween_default", "get", "tweenValue", "transition", "node", "interpolate_default", "a", "b", "c", "number_default", "color", "rgb_default", "string_default", "attrRemove", "name", "attrRemoveNS", "fullname", "attrConstant", "interpolate", "value1", "string00", "string1", "interpolate0", "string0", "attrConstantNS", "attrFunction", "value", "string10", "attrFunctionNS", "attr_default", "namespace_default", "i", "interpolateTransformSvg", "interpolate_default", "tweenValue", "attrInterpolate", "name", "i", "t", "attrInterpolateNS", "fullname", "attrTweenNS", "value", "t0", "i0", "tween", "attrTween", "attrTween_default", "key", "namespace_default", "delayFunction", "id", "value", "init", "delayConstant", "delay_default", "get", "durationFunction", "id", "value", "set", "durationConstant", "duration_default", "get", "easeConstant", "id", "value", "set", "ease_default", "get", "easeVarying", "id", "value", "v", "set", "easeVarying_default", "filter_default", "match", "matcher_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "i", "Transition", "merge_default", "transition", "groups0", "groups1", "m0", "m1", "m", "merges", "j", "group0", "group1", "n", "merge", "node", "i", "Transition", "start", "name", "i", "onFunction", "id", "listener", "on0", "on1", "sit", "init", "set", "schedule", "on", "on_default", "get", "removeFunction", "id", "parent", "i", "remove_default", "select_default", "select", "name", "id", "selector_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "subnode", "i", "schedule_default", "get", "Transition", "selectAll_default", "select", "name", "id", "selectorAll_default", "groups", "m", "subgroups", "parents", "j", "group", "n", "node", "i", "children", "child", "inherit", "get", "k", "l", "schedule_default", "Transition", "Selection", "selection_default", "styleNull", "name", "interpolate", "string00", "string10", "interpolate0", "string0", "styleValue", "string1", "styleRemove", "styleConstant", "value1", "styleFunction", "value", "styleMaybeRemove", "id", "on0", "on1", "listener0", "key", "event", "remove", "schedule", "set", "on", "listener", "style_default", "priority", "i", "interpolateTransformCss", "interpolate_default", "tweenValue", "styleInterpolate", "name", "i", "priority", "t", "styleTween", "value", "i0", "tween", "styleTween_default", "key", "textConstant", "value", "textFunction", "value1", "text_default", "tweenValue", "textInterpolate", "i", "textTween", "value", "t0", "i0", "tween", "textTween_default", "key", "transition_default", "name", "id0", "id1", "newId", "groups", "m", "j", "group", "n", "node", "i", "inherit", "get", "schedule_default", "Transition", "end_default", "on0", "on1", "that", "id", "size", "resolve", "reject", "cancel", "end", "schedule", "set", "on", "id", "Transition", "groups", "parents", "name", "transition", "selection_default", "newId", "selection_prototype", "select_default", "selectAll_default", "filter_default", "merge_default", "transition_default", "on_default", "attr_default", "attrTween_default", "style_default", "styleTween_default", "text_default", "textTween_default", "remove_default", "tween_default", "delay_default", "duration_default", "ease_default", "easeVarying_default", "end_default", "cubicInOut", "t", "defaultTiming", "cubicInOut", "inherit", "node", "id", "timing", "transition_default", "name", "Transition", "newId", "now", "groups", "m", "j", "group", "n", "i", "schedule_default", "selection_default", "interrupt_default", "transition_default", "abs", "max", "min", "number1", "number2", "X", "type", "x", "e", "xy", "Y", "y", "XY", "type", "t", "Transform", "k", "x", "y", "point", "location", "identity", "transform", "node", "import_flubber", "Point", "x", "y", "pressure", "time", "start", "other", "Bezier", "startPoint", "control2", "control1", "endPoint", "startWidth", "endWidth", "points", "widths", "c2", "c3", "s1", "s2", "s3", "dx1", "dy1", "dx2", "dy2", "m1", "m2", "l1", "l2", "dxm", "dym", "k", "cm", "tx", "ty", "length", "px", "py", "i", "t", "cx", "cy", "xdiff", "ydiff", "c1", "end", "SignatureEventTarget", "error", "type", "listener", "options", "event", "callback", "throttle", "fn", "wait", "previous", "timeout", "result", "storedContext", "storedArgs", "later", "args", "now", "remaining", "SignaturePad", "canvas", "touch", "ctx", "dataUrl", "resolve", "reject", "image", "ratio", "width", "height", "xOffset", "yOffset", "encoderOptions", "isIOS", "pointGroups", "clear", "group", "pointGroupOptions", "newPointGroup", "point", "lastPointGroup", "lastPoints", "lastPoint", "isLastPointTooClose", "curve", "rect", "_lastPoints", "velocity", "newWidth", "widthDelta", "drawSteps", "tt", "ttt", "u", "uu", "uuu", "drawCurve", "drawDot", "j", "basicPoint", "includeBackgroundColor", "minX", "minY", "maxX", "maxY", "svg", "penColor", "path", "attr", "dotSize", "minWidth", "maxWidth", "circle", "size", "component_controller_default", "Controller", "__publicField", "SignaturePad", "wasCompleted", "completed", "select_default", "sel", "start", "end", "fill", "d", "import_flubber", "component_controller_default", "Controller", "__publicField", "select_default", "sel", "start", "end", "fill", "d", "ApplicationController", "Controller", "selector", "_a", "frame", "src", "frameElement", "target", "url", "params", "getStream", "event", "currentTarget", "form", "input", "key", "value", "element", "attribute", "callback", "animation", "duration", "agreement_signatures_controller_default", "ApplicationController", "__publicField", "count", "signatureOutlet", "target", "index", "outlet", "start", "nextIndex", "reversedStart", "reversedOutlets", "previousIndex", "outlets", "a", "b", "application", "component_controller_default", "agreement_signatures_controller_default", "index", "StreamActions", "gtagUrl", "postGtag", "fromKiosk", "redirectUrl", "redirect", "url", "payload", "error", "withinIframe", "location"] }